commit 3dc26db3b9d153d60f10093195e2f86af8ac3b7f Author: miunangel Date: Sat Aug 16 20:46:31 2025 +0800 release code diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fecca59 --- /dev/null +++ b/.gitignore @@ -0,0 +1,211 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[codz] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py.cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock +#poetry.toml + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +# pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python. +# https://pdm-project.org/en/latest/usage/project/#working-with-version-control +#pdm.lock +#pdm.toml +.pdm-python +.pdm-build/ + +# pixi +# Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control. +#pixi.lock +# Pixi creates a virtual environment in the .pixi directory, just like venv module creates one +# in the .venv directory. It is recommended not to include this directory in version control. +.pixi + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.envrc +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Abstra +# Abstra is an AI-powered process automation framework. +# Ignore directories containing user credentials, local state, and settings. +# Learn more at https://abstra.io/docs +.abstra/ + +# Visual Studio Code +# Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore +# that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore +# and can be added to the global gitignore or merged into this file. However, if you prefer, +# you could uncomment the following to ignore the entire vscode folder +# .vscode/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +# Cursor +# Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to +# exclude from AI features like autocomplete and code analysis. Recommended for sensitive data +# refer to https://docs.cursor.com/context/ignore-files +.cursorignore +.cursorindexingignore + +# Marimo +marimo/_static/ +marimo/_lsp/ +__marimo__/ + + +# Custom +**/output* \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/.flake8 b/Dassl.ProGrad.pytorch/.flake8 new file mode 100644 index 0000000..94e3c91 --- /dev/null +++ b/Dassl.ProGrad.pytorch/.flake8 @@ -0,0 +1,22 @@ +[flake8] +ignore = + # At least two spaces before inline comment + E261, + # Line lengths are recommended to be no greater than 79 characters + E501, + # Missing whitespace around arithmetic operator + E226, + # Blank line contains whitespace + W293, + # Do not use bare 'except' + E722, + # Line break after binary operator + W504, + # Too many leading '#' for block comment + E266, + # line break before binary operator + W503, + # continuation line over-indented for hanging indent + E126 +max-line-length = 79 +exclude = __init__.py, build \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/.gitignore b/Dassl.ProGrad.pytorch/.gitignore new file mode 100644 index 0000000..81b80e1 --- /dev/null +++ b/Dassl.ProGrad.pytorch/.gitignore @@ -0,0 +1,140 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# OS X +.DS_Store +.Spotlight-V100 +.Trashes +._* + +# This project +output/ +debug.sh +debug.py diff --git a/Dassl.ProGrad.pytorch/.isort.cfg b/Dassl.ProGrad.pytorch/.isort.cfg new file mode 100644 index 0000000..6b019a3 --- /dev/null +++ b/Dassl.ProGrad.pytorch/.isort.cfg @@ -0,0 +1,10 @@ +[isort] +line_length=79 +multi_line_output=6 +length_sort=true +known_standard_library=numpy,setuptools +known_myself=dassl +known_third_party=matplotlib,cv2,torch,torchvision,PIL,yacs,scipy,gdown +no_lines_before=STDLIB,THIRDPARTY +sections=FUTURE,STDLIB,THIRDPARTY,myself,FIRSTPARTY,LOCALFOLDER +default_section=FIRSTPARTY \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/.style.yapf b/Dassl.ProGrad.pytorch/.style.yapf new file mode 100644 index 0000000..5d8b5f5 --- /dev/null +++ b/Dassl.ProGrad.pytorch/.style.yapf @@ -0,0 +1,7 @@ +[style] +BASED_ON_STYLE = pep8 +BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true +SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true +DEDENT_CLOSING_BRACKETS = true +SPACES_BEFORE_COMMENT = 2 +ARITHMETIC_PRECEDENCE_INDICATION = true \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/DATASETS.md b/Dassl.ProGrad.pytorch/DATASETS.md new file mode 100644 index 0000000..7beefee --- /dev/null +++ b/Dassl.ProGrad.pytorch/DATASETS.md @@ -0,0 +1,313 @@ +# How to Install Datasets + +`$DATA` denotes the location where datasets are installed, e.g. + +``` +$DATA/ +|–– office31/ +|–– office_home/ +|–– visda17/ +``` + +[Domain Adaptation](#domain-adaptation) +- [Office-31](#office-31) +- [Office-Home](#office-home) +- [VisDA17](#visda17) +- [CIFAR10-STL10](#cifar10-stl10) +- [Digit-5](#digit-5) +- [DomainNet](#domainnet) +- [miniDomainNet](#miniDomainNet) + +[Domain Generalization](#domain-generalization) +- [PACS](#pacs) +- [VLCS](#vlcs) +- [Office-Home-DG](#office-home-dg) +- [Digits-DG](#digits-dg) +- [Digit-Single](#digit-single) +- [CIFAR-10-C](#cifar-10-c) +- [CIFAR-100-C](#cifar-100-c) + +[Semi-Supervised Learning](#semi-supervised-learning) +- [CIFAR10/100 and SVHN](#cifar10100-and-svhn) +- [STL10](#stl10) + +## Domain Adaptation + +### Office-31 + +Download link: https://people.eecs.berkeley.edu/~jhoffman/domainadapt/#datasets_code. + +File structure: + +``` +office31/ +|–– amazon/ +| |–– back_pack/ +| |–– bike/ +| |–– ... +|–– dslr/ +| |–– back_pack/ +| |–– bike/ +| |–– ... +|–– webcam/ +| |–– back_pack/ +| |–– bike/ +| |–– ... +``` + +Note that within each domain folder you need to move all class folders out of the `images/` folder and then delete the `images/` folder. + +### Office-Home + +Download link: http://hemanthdv.org/OfficeHome-Dataset/. + +File structure: + +``` +office_home/ +|–– art/ +|–– clipart/ +|–– product/ +|–– real_world/ +``` + +### VisDA17 + +Download link: http://ai.bu.edu/visda-2017/. + +The dataset can also be downloaded using our script at `datasets/da/visda17.sh`. Run the following command in your terminal under `Dassl.pytorch/datasets/da`, + +```bash +sh visda17.sh $DATA +``` + +Once the download is finished, the file structure will look like + +``` +visda17/ +|–– train/ +|–– test/ +|–– validation/ +``` + +### CIFAR10-STL10 + +Run the following command in your terminal under `Dassl.pytorch/datasets/da`, + +```bash +python cifar_stl.py $DATA/cifar_stl +``` + +This will create a folder named `cifar_stl` under `$DATA`. The file structure will look like + +``` +cifar_stl/ +|–– cifar/ +| |–– train/ +| |–– test/ +|–– stl/ +| |–– train/ +| |–– test/ +``` + +Note that only 9 classes shared by both datasets are kept. + +### Digit-5 + +Create a folder `$DATA/digit5` and download to this folder the dataset from [here](https://github.com/VisionLearningGroup/VisionLearningGroup.github.io/tree/master/M3SDA/code_MSDA_digit#digit-five-download). This should give you + +``` +digit5/ +|–– Digit-Five/ +``` + +Then, run the following command in your terminal under `Dassl.pytorch/datasets/da`, + +```bash +python digit5.py $DATA/digit5 +``` + +This will extract the data and organize the file structure as + +``` +digit5/ +|–– Digit-Five/ +|–– mnist/ +|–– mnist_m/ +|–– usps/ +|–– svhn/ +|–– syn/ +``` + +### DomainNet + +Download link: http://ai.bu.edu/M3SDA/. (Please download the cleaned version of split files) + +File structure: + +``` +domainnet/ +|–– clipart/ +|–– infograph/ +|–– painting/ +|–– quickdraw/ +|–– real/ +|–– sketch/ +|–– splits/ +| |–– clipart_train.txt +| |–– clipart_test.txt +| |–– ... +``` + +### miniDomainNet + +You need to download the DomainNet dataset first. The miniDomainNet's split files can be downloaded at this [google drive](https://drive.google.com/open?id=15rrLDCrzyi6ZY-1vJar3u7plgLe4COL7). After the zip file is extracted, you should have the folder `$DATA/domainnet/splits_mini/`. + +## Domain Generalization + +### PACS + +Download link: [google drive](https://drive.google.com/open?id=1m4X4fROCCXMO0lRLrr6Zz9Vb3974NWhE). + +File structure: + +``` +pacs/ +|–– images/ +|–– splits/ +``` + +You do not necessarily have to manually download this dataset. Once you run ``tools/train.py``, the code will detect if the dataset exists or not and automatically download the dataset to ``$DATA`` if missing. This also applies to VLCS, Office-Home-DG, and Digits-DG. + +### VLCS + +Download link: [google drive](https://drive.google.com/file/d/1r0WL5DDqKfSPp9E3tRENwHaXNs1olLZd/view?usp=sharing) (credit to https://github.com/fmcarlucci/JigenDG#vlcs) + +File structure: + +``` +VLCS/ +|–– CALTECH/ +|–– LABELME/ +|–– PASCAL/ +|–– SUN/ +``` + +### Office-Home-DG + +Download link: [google drive](https://drive.google.com/open?id=1gkbf_KaxoBws-GWT3XIPZ7BnkqbAxIFa). + +File structure: + +``` +office_home_dg/ +|–– art/ +|–– clipart/ +|–– product/ +|–– real_world/ +``` + +### Digits-DG + +Download link: [google driv](https://drive.google.com/open?id=15V7EsHfCcfbKgsDmzQKj_DfXt_XYp_P7). + +File structure: + +``` +digits_dg/ +|–– mnist/ +|–– mnist_m/ +|–– svhn/ +|–– syn/ +``` + +### Digit-Single +Follow the steps for [Digit-5](#digit-5) to organize the dataset. + +### CIFAR-10-C + +First download the CIFAR-10-C dataset from https://zenodo.org/record/2535967#.YFxHEWQzb0o to, e.g., $DATA, and extract the file under the same directory. Then, navigate to `Dassl.pytorch/datasets/dg` and run the following command in your terminal +```bash +python cifar_c.py $DATA/CIFAR-10-C +``` +where the first argument denotes the path to the (uncompressed) CIFAR-10-C dataset. + +The script will extract images from the `.npy` files and save them to `cifar10_c/` created under $DATA. The file structure will look like +``` +cifar10_c/ +|–– brightness/ +| |–– 1/ # 5 intensity levels in total +| |–– 2/ +| |–– 3/ +| |–– 4/ +| |–– 5/ +|–– ... # 19 corruption types in total +``` + +Note that `cifar10_c/` only contains the test images. The training images are the normal CIFAR-10 images. See [CIFAR10/100 and SVHN](#cifar10100-and-svhn) for how to prepare the CIFAR-10 dataset. + +### CIFAR-100-C + +First download the CIFAR-100-C dataset from https://zenodo.org/record/3555552#.YFxpQmQzb0o to, e.g., $DATA, and extract the file under the same directory. Then, navigate to `Dassl.pytorch/datasets/dg` and run the following command in your terminal +```bash +python cifar_c.py $DATA/CIFAR-100-C +``` +where the first argument denotes the path to the (uncompressed) CIFAR-100-C dataset. + +The script will extract images from the `.npy` files and save them to `cifar100_c/` created under $DATA. The file structure will look like +``` +cifar100_c/ +|–– brightness/ +| |–– 1/ # 5 intensity levels in total +| |–– 2/ +| |–– 3/ +| |–– 4/ +| |–– 5/ +|–– ... # 19 corruption types in total +``` + +Note that `cifar100_c/` only contains the test images. The training images are the normal CIFAR-100 images. See [CIFAR10/100 and SVHN](#cifar10100-and-svhn) for how to prepare the CIFAR-100 dataset. + +## Semi-Supervised Learning + +### CIFAR10/100 and SVHN + +Run the following command in your terminal under `Dassl.pytorch/datasets/ssl`, + +```bash +python cifar10_cifar100_svhn.py $DATA +``` + +This will create three folders under `$DATA`, i.e. + +``` +cifar10/ +|–– train/ +|–– test/ +cifar100/ +|–– train/ +|–– test/ +svhn/ +|–– train/ +|–– test/ +``` + +### STL10 + +Run the following command in your terminal under `Dassl.pytorch/datasets/ssl`, + +```bash +python stl10.py $DATA/stl10 +``` + +This will create a folder named `stl10` under `$DATA` and extract the data into three folders, i.e. `train`, `test` and `unlabeled`. Then, download from http://ai.stanford.edu/~acoates/stl10/ the "Binary files" and extract it under `stl10`. + +The file structure will look like + +``` +stl10/ +|–– train/ +|–– test/ +|–– unlabeled/ +|–– stl10_binary/ +``` \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/LICENSE b/Dassl.ProGrad.pytorch/LICENSE new file mode 100644 index 0000000..6919614 --- /dev/null +++ b/Dassl.ProGrad.pytorch/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Kaiyang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Dassl.ProGrad.pytorch/README.md b/Dassl.ProGrad.pytorch/README.md new file mode 100644 index 0000000..2993220 --- /dev/null +++ b/Dassl.ProGrad.pytorch/README.md @@ -0,0 +1,279 @@ +# Dassl + +## Introduction + +Dassl is a [PyTorch](https://pytorch.org) toolbox initially developed for our project [Domain Adaptive Ensemble Learning (DAEL)](https://arxiv.org/abs/2003.07325) to support research in domain adaptation and generalization---since in DAEL we study how to unify these two problems in a single learning framework. Given that domain adaptation is closely related to semi-supervised learning---both study how to exploit unlabeled data---we also incorporate components that support research for the latter. + +Why the name "Dassl"? Dassl combines the initials of domain adaptation (DA) and semi-supervised learning (SSL), which sounds natural and informative. + +Dassl has a modular design and unified interfaces, allowing fast prototyping and experimentation of new DA/DG/SSL methods. With Dassl, a new method can be implemented with only a few lines of code. Don't believe? Take a look at the [engine](https://github.com/KaiyangZhou/Dassl.pytorch/tree/master/dassl/engine) folder, which contains the implementations of many existing methods (then you will come back and star this repo). :-) + +Basically, Dassl is perfect for doing research in the following areas: +- Domain adaptation +- Domain generalization +- Semi-supervised learning + +BUT, thanks to the neat design, Dassl can also be used as a codebase to develop any deep learning projects, like [this](https://github.com/KaiyangZhou/CoOp). :-) + +A drawback of Dassl is that it doesn't (yet? hmm) support distributed multi-GPU training (Dassl uses `DataParallel` to wrap a model, which is less efficient than `DistributedDataParallel`). + +We don't provide detailed documentations for Dassl, unlike another [project](https://kaiyangzhou.github.io/deep-person-reid/) of ours. This is because Dassl is developed for research purpose and as a researcher, we think it's important to be able to read source code and we highly encourage you to do so---definitely not because we are lazy. :-) + +## What's new +- Mar 2022: A new domain generalization method [EFDM](https://arxiv.org/abs/2203.07740) developed by [Yabin Zhang (PolyU)](https://ybzh.github.io/) and to appear at CVPR'22 is added to this repo. See [here](https://github.com/KaiyangZhou/Dassl.pytorch/pull/36) for more details. +- Feb 2022: In case you don't know, a class in the painting domain of DomainNet (the official splits) only has test images (no training images), which could affect performance. See section 4.a in our [paper](https://arxiv.org/abs/2003.07325) for more details. +- Oct 2021: `v0.5.0`: **Important changes** made to `transforms.py`. 1) `center_crop` becomes a default transform in testing (applied after resizing the smaller edge to a certain size to keep the image aspect ratio). 2) For training, `Resize(cfg.INPUT.SIZE)` is deactivated when `random_crop` or `random_resized_crop` is used. These changes won't make any difference to the training transforms used in existing config files, nor to the testing transforms unless the raw images are not squared (the only difference is that now the image aspect ratio is respected). +- Oct 2021: `v0.4.3`: Copy the attributes in `self.dm` (data manager) to `SimpleTrainer` and make `self.dm` optional, which means from now on, you can build data loaders from any source you like rather than being forced to use `DataManager`. +- Sep 2021: `v0.4.2`: An important update is to set `drop_last=is_train and len(data_source)>=batch_size` when constructing a data loader to avoid 0-length. + +
+ More + +- Aug 2021: `v0.4.0`: The most noteworthy update is adding the learning rate warmup scheduler. The implementation is detailed [here](https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/dassl/optim/lr_scheduler.py#L10) and the config variables are specified [here](https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/dassl/config/defaults.py#L171). +- Jul 2021: `v0.3.4`: Adds a new function `generate_fewshot_dataset()` to the base dataset class, which allows for the generation of a few-shot learning setting. One can customize a few-shot dataset by specifying `_C.DATASET.NUM_SHOTS` and give it to `generate_fewshot_dataset()`. +- Jul 2021: `v0.3.2`: Adds `_C.INPUT.INTERPOLATION` (default: `bilinear`). Available interpolation modes are `bilinear`, `nearest`, and `bicubic`. +- Jul 2021 `v0.3.1`: Now you can use `*.register(force=True)` to replace previously registered modules. +- Jul 2021 `v0.3.0`: Allows to deploy the model with the best validation performance for final test (for the purpose of model selection). Specifically, a new config variable named `_C.TEST.FINAL_MODEL` is introduced, which takes either `"last_step"` (default) or `"best_val"`. When set to `"best_val"`, the model will be evaluated on the `val` set after each epoch and the one with the best validation performance will be saved and used for final test (see this [code](https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/dassl/engine/trainer.py#L412)). +- Jul 2021 `v0.2.7`: Adds attribute `classnames` to the base dataset class. Now you can get a list of class names ordered by numeric labels by calling `trainer.dm.dataset.classnames`. +- Jun 2021 `v0.2.6`: Merges `MixStyle2` to `MixStyle`. A new variable `self.mix` is used to switch between random mixing and cross-domain mixing. Please see [this](https://github.com/KaiyangZhou/Dassl.pytorch/issues/23) for more details on the new features. +- Jun 2021 `v0.2.5`: Fixs a [bug](https://github.com/KaiyangZhou/Dassl.pytorch/commit/29881c7faee7405f80f5f674de4bbbf80d5dc77a) in the calculation of per-class recognition accuracy. +- Jun 2021 `v0.2.4`: Adds `extend_cfg(cfg)` to `train.py`. This function is particularly useful when you build your own methods on top of Dassl.pytorch and need to define some custom variables. Please see the repository [mixstyle-release](https://github.com/KaiyangZhou/mixstyle-release) or [ssdg-benchmark](https://github.com/KaiyangZhou/ssdg-benchmark) for examples. +- Jun 2021 New benchmarks for semi-supervised domain generalization at https://github.com/KaiyangZhou/ssdg-benchmark. +- Apr 2021 Do you know you can use `tools/parse_test_res.py` to read the log files and automatically calculate and print out the results including mean and standard deviation? Check the instructions in `tools/parse_test_res.py` for more details. +- Apr 2021 `v0.2.3`: A [MixStyle](https://openreview.net/forum?id=6xHJ37MVxxp) layer can now be deactivated or activated by using `model.apply(deactivate_mixstyle)` or `model.apply(activate_mixstyle)` without modifying the source code. See [dassl/modeling/ops/mixstyle.py](dassl/modeling/ops/mixstyle.py) for the details. +- Apr 2021 `v0.2.2`: Adds `RandomClassSampler`, which samples from a certain number of classes a certain number of images to form a minibatch (the code is modified from [Torchreid](https://github.com/KaiyangZhou/deep-person-reid)). +- Apr 2021 `v0.2.1`: Slightly adjusts the ordering in `setup_cfg()` (see `tools/train.py`). +- Apr 2021 `v0.2.0`: Adds `_C.DATASET.ALL_AS_UNLABELED` (for the SSL setting) to the config variable list. When this variable is set to `True`, all labeled data will be included in the unlabeled data set. +- Apr 2021 `v0.1.9`: Adds [VLCS](https://people.csail.mit.edu/torralba/publications/datasets_cvpr11.pdf) to the benchmark datasets (see `dassl/data/datasets/dg/vlcs.py`). +- Mar 2021 `v0.1.8`: Allows `optim` and `sched` to be `None` in `register_model()`. +- Mar 2021 `v0.1.7`: Adds [MixStyle](https://openreview.net/forum?id=6xHJ37MVxxp) models to [dassl/modeling/backbone/resnet.py](dassl/modeling/backbone/resnet.py). The training configs in `configs/trainers/dg/vanilla` can be used to train MixStyle models. +- Mar 2021 `v0.1.6`: Adds [CIFAR-10/100-C](https://arxiv.org/abs/1807.01697) to the benchmark datasets for evaluating a model's robustness to image corruptions. +- Mar 2021 We have just released a survey on domain generalization at https://arxiv.org/abs/2103.02503, which summarizes the ten-year development in this topic with coverage on the history, related problems, datasets, methodologies, potential directions, and so on. +- Jan 2021 Our recent work, [MixStyle](https://openreview.net/forum?id=6xHJ37MVxxp) (mixing instance-level feature statistics of samples of different domains for improving domain generalization), is accepted to ICLR'21. The code is available at https://github.com/KaiyangZhou/mixstyle-release where the cross-domain image classification part is based on Dassl.pytorch. +- May 2020 `v0.1.3`: Adds the `Digit-Single` dataset for benchmarking single-source DG methods. The corresponding CNN model is [dassl/modeling/backbone/cnn_digitsingle.py](dassl/modeling/backbone/cnn_digitsingle.py) and the dataset config file is [configs/datasets/dg/digit_single.yaml](configs/datasets/dg/digit_single.yaml). See [Volpi et al. NIPS'18](https://arxiv.org/abs/1805.12018) for how to do evaluation. +- May 2020 `v0.1.2`: 1) Adds [EfficientNet](https://arxiv.org/abs/1905.11946) models (B0-B7) (credit to https://github.com/lukemelas/EfficientNet-PyTorch). To use EfficientNet, set `MODEL.BACKBONE.NAME` to `efficientnet_b{N}` where `N={0, ..., 7}`. 2) `dassl/modeling/models` is renamed to `dassl/modeling/network` (`build_model()` to `build_network()` and `MODEL_REGISTRY` to `NETWORK_RESIGTRY`). + +
+ +## Overview + +Dassl has implemented the following methods: + +- Single-source domain adaptation + - [Semi-supervised Domain Adaptation via Minimax Entropy (ICCV'19)](https://arxiv.org/abs/1904.06487) [[dassl/engine/da/mme.py](dassl/engine/da/mme.py)] + - [Maximum Classifier Discrepancy for Unsupervised Domain Adaptation (CVPR'18)](https://arxiv.org/abs/1712.02560https://arxiv.org/abs/1712.02560) [[dassl/engine/da/mcd.py](dassl/engine/da/mcd.py)] + - [Self-ensembling for visual domain adaptation (ICLR'18)](https://arxiv.org/abs/1706.05208) [[dassl/engine/da/self_ensembling.py](dassl/engine/da/self_ensembling.py)] + - [Revisiting Batch Normalization For Practical Domain Adaptation (ICLR-W'17)](https://arxiv.org/abs/1603.04779) [[dassl/engine/da/adabn.py](dassl/engine/da/adabn.py)] + - [Adversarial Discriminative Domain Adaptation (CVPR'17)](https://arxiv.org/abs/1702.05464) [[dassl/engine/da/adda.py](dassl/engine/da/adda.py)] + - [Domain-Adversarial Training of Neural Networks (JMLR'16) ](https://arxiv.org/abs/1505.07818) [[dassl/engine/da/dann.py](dassl/engine/da/dann.py)] + +- Multi-source domain adaptation + - [Domain Aadaptive Ensemble Learning](https://arxiv.org/abs/2003.07325) [[dassl/engine/da/dael.py](dassl/engine/da/dael.py)] + - [Moment Matching for Multi-Source Domain Adaptation (ICCV'19)](https://arxiv.org/abs/1812.01754) [[dassl/engine/da/m3sda.py](dassl/engine/da/m3sda.py)] + +- Domain generalization + - [Exact Feature Distribution Matching for Arbitrary Style Transfer and Domain Generalization (CVPR'22)](https://arxiv.org/abs/2203.07740) [[dassl/modeling/ops/efdmix.py](dassl/modeling/ops/efdmix.py)] + - [Domain Generalization with MixStyle (ICLR'21)](https://openreview.net/forum?id=6xHJ37MVxxp) [[dassl/modeling/ops/mixstyle.py](dassl/modeling/ops/mixstyle.py)] + - [Deep Domain-Adversarial Image Generation for Domain Generalisation (AAAI'20)](https://arxiv.org/abs/2003.06054) [[dassl/engine/dg/ddaig.py](dassl/engine/dg/ddaig.py)] + - [Generalizing Across Domains via Cross-Gradient Training (ICLR'18)](https://arxiv.org/abs/1804.10745) [[dassl/engine/dg/crossgrad.py](dassl/engine/dg/crossgrad.py)] + +- Semi-supervised learning + - [FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence](https://arxiv.org/abs/2001.07685) [[dassl/engine/ssl/fixmatch.py](dassl/engine/ssl/fixmatch.py)] + - [MixMatch: A Holistic Approach to Semi-Supervised Learning (NeurIPS'19)](https://arxiv.org/abs/1905.02249) [[dassl/engine/ssl/mixmatch.py](dassl/engine/ssl/mixmatch.py)] + - [Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results (NeurIPS'17)](https://arxiv.org/abs/1703.01780) [[dassl/engine/ssl/mean_teacher.py](dassl/engine/ssl/mean_teacher.py)] + - [Semi-supervised Learning by Entropy Minimization (NeurIPS'04)](http://papers.nips.cc/paper/2740-semi-supervised-learning-by-entropy-minimization.pdf) [[dassl/engine/ssl/entmin.py](dassl/engine/ssl/entmin.py)] + +*Feel free to make a [PR](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) to add your methods here to make it easier for others to benchmark!* + +Dassl supports the following datasets: + +- Domain adaptation + - [Office-31](https://scalable.mpi-inf.mpg.de/files/2013/04/saenko_eccv_2010.pdf) + - [Office-Home](http://hemanthdv.org/OfficeHome-Dataset/) + - [VisDA17](http://ai.bu.edu/visda-2017/) + - [CIFAR10](https://www.cs.toronto.edu/~kriz/cifar.html)-[STL10](https://cs.stanford.edu/~acoates/stl10/) + - [Digit-5](https://github.com/VisionLearningGroup/VisionLearningGroup.github.io/tree/master/M3SDA/code_MSDA_digit#digit-five-download) + - [DomainNet](http://ai.bu.edu/M3SDA/) + - [miniDomainNet](https://arxiv.org/abs/2003.07325) + +- Domain generalization + - [PACS](https://arxiv.org/abs/1710.03077) + - [VLCS](https://people.csail.mit.edu/torralba/publications/datasets_cvpr11.pdf) + - [Office-Home](http://hemanthdv.org/OfficeHome-Dataset/) + - [Digits-DG](https://arxiv.org/abs/2003.06054) + - [Digit-Single](https://arxiv.org/abs/1805.12018) + - [CIFAR-10-C](https://arxiv.org/abs/1807.01697) + - [CIFAR-100-C](https://arxiv.org/abs/1807.01697) + +- Semi-supervised learning + - [CIFAR10/100](https://www.cs.toronto.edu/~kriz/cifar.html.) + - [SVHN](http://ufldl.stanford.edu/housenumbers/) + - [STL10](https://cs.stanford.edu/~acoates/stl10/) + +## Get started + +### Installation + +Make sure [conda](https://www.anaconda.com/distribution/) is installed properly. + +```bash +# Clone this repo +git clone https://github.com/KaiyangZhou/Dassl.pytorch.git +cd Dassl.pytorch/ + +# Create a conda environment +conda create -n dassl python=3.7 + +# Activate the environment +conda activate dassl + +# Install dependencies +pip install -r requirements.txt + +# Install torch (version >= 1.7.1) and torchvision +conda install pytorch torchvision cudatoolkit=10.1 -c pytorch + +# Install this library (no need to re-build if the source code is modified) +python setup.py develop +``` + +Follow the instructions in [DATASETS.md](./DATASETS.md) to preprocess the datasets. + +### Training + +The main interface is implemented in `tools/train.py`, which basically does + +1. initialize the config with `cfg = setup_cfg(args)` where `args` contains the command-line input (see `tools/train.py` for the list of input arguments); +2. instantiate a `trainer` with `build_trainer(cfg)` which loads the dataset and builds a deep neural network model; +3. call `trainer.train()` for training and evaluating the model. + +Below we provide an example for training a source-only baseline on the popular domain adaptation dataset, Office-31, + +```bash +CUDA_VISIBLE_DEVICES=0 python tools/train.py \ +--root $DATA \ +--trainer SourceOnly \ +--source-domains amazon \ +--target-domains webcam \ +--dataset-config-file configs/datasets/da/office31.yaml \ +--config-file configs/trainers/da/source_only/office31.yaml \ +--output-dir output/source_only_office31 +``` + +`$DATA` denotes the location where datasets are installed. `--dataset-config-file` loads the common setting for the dataset (Office-31 in this case) such as image size and model architecture. `--config-file` loads the algorithm-specific setting such as hyper-parameters and optimization parameters. + +To use multiple sources, namely the multi-source domain adaptation task, one just needs to add more sources to `--source-domains`. For instance, to train a source-only baseline on miniDomainNet, one can do + +```bash +CUDA_VISIBLE_DEVICES=0 python tools/train.py \ +--root $DATA \ +--trainer SourceOnly \ +--source-domains clipart painting real \ +--target-domains sketch \ +--dataset-config-file configs/datasets/da/mini_domainnet.yaml \ +--config-file configs/trainers/da/source_only/mini_domainnet.yaml \ +--output-dir output/source_only_minidn +``` + +After the training finishes, the model weights will be saved under the specified output directory, along with a log file and a tensorboard file for visualization. + +To print out the results saved in the log file (so you do not need to exhaustively go through all log files and calculate the mean/std by yourself), you can use `tools/parse_test_res.py`. The instruction can be found in the code. + +For other trainers such as `MCD`, you can set `--trainer MCD` while keeping the config file unchanged, i.e. using the same training parameters as `SourceOnly` (in the simplest case). To modify the hyper-parameters in MCD, like `N_STEP_F` (number of steps to update the feature extractor), you can append `TRAINER.MCD.N_STEP_F 4` to the existing input arguments (otherwise the default value will be used). Alternatively, you can create a new `.yaml` config file to store your custom setting. See [here](https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/dassl/config/defaults.py#L176) for a complete list of algorithm-specific hyper-parameters. + +### Test +Model testing can be done by using `--eval-only`, which asks the code to run `trainer.test()`. You also need to provide the trained model and specify which model file (i.e. saved at which epoch) to use. For example, to use `model.pth.tar-20` saved at `output/source_only_office31/model`, you can do + +```bash +CUDA_VISIBLE_DEVICES=0 python tools/train.py \ +--root $DATA \ +--trainer SourceOnly \ +--source-domains amazon \ +--target-domains webcam \ +--dataset-config-file configs/datasets/da/office31.yaml \ +--config-file configs/trainers/da/source_only/office31.yaml \ +--output-dir output/source_only_office31_test \ +--eval-only \ +--model-dir output/source_only_office31 \ +--load-epoch 20 +``` + +Note that `--model-dir` takes as input the directory path which was specified in `--output-dir` in the training stage. + +### Write a new trainer +A good practice is to go through `dassl/engine/trainer.py` to get familar with the base trainer classes, which provide generic functions and training loops. To write a trainer class for domain adaptation or semi-supervised learning, the new class can subclass `TrainerXU`. For domain generalization, the new class can subclass `TrainerX`. In particular, `TrainerXU` and `TrainerX` mainly differ in whether using a data loader for unlabeled data. With the base classes, a new trainer may only need to implement the `forward_backward()` method, which performs loss computation and model update. See `dassl/enigne/da/source_only.py` for example. + +### Add a new backbone/head/network +`backbone` corresponds to a convolutional neural network model which performs feature extraction. `head` (which is an optional module) is mounted on top of `backbone` for further processing, which can be, for example, a MLP. `backbone` and `head` are basic building blocks for constructing a `SimpleNet()` (see `dassl/engine/trainer.py`) which serves as the primary model for a task. `network` contains custom neural network models, such as an image generator. + +To add a new module, namely a backbone/head/network, you need to first register the module using the corresponding `registry`, i.e. `BACKBONE_REGISTRY` for `backbone`, `HEAD_REGISTRY` for `head` and `NETWORK_RESIGTRY` for `network`. Note that for a new `backbone`, we require the model to subclass `Backbone` as defined in `dassl/modeling/backbone/backbone.py` and specify the `self._out_features` attribute. + +We provide an example below for how to add a new `backbone`. +```python +from dassl.modeling import Backbone, BACKBONE_REGISTRY + +class MyBackbone(Backbone): + + def __init__(self): + super().__init__() + # Create layers + self.conv = ... + + self._out_features = 2048 + + def forward(self, x): + # Extract and return features + +@BACKBONE_REGISTRY.register() +def my_backbone(**kwargs): + return MyBackbone() +``` +Then, you can set `MODEL.BACKBONE.NAME` to `my_backbone` to use your own architecture. For more details, please refer to the source code in `dassl/modeling`. + +### Add a dataset +An example code structure is shown below. Make sure you subclass `DatasetBase` and register the dataset with `@DATASET_REGISTRY.register()`. All you need is to load `train_x`, `train_u` (optional), `val` (optional) and `test`, among which `train_u` and `val` could be `None` or simply ignored. Each of these variables contains a list of `Datum` objects. A `Datum` object (implemented [here](https://github.com/KaiyangZhou/Dassl.pytorch/blob/master/dassl/data/datasets/base_dataset.py#L12)) contains information for a single image, like `impath` (string) and `label` (int). + +```python +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase + +@DATASET_REGISTRY.register() +class NewDataset(DatasetBase): + + dataset_dir = '' + + def __init__(self, cfg): + + train_x = ... + train_u = ... # optional, can be None + val = ... # optional, can be None + test = ... + + super().__init__(train_x=train_x, train_u=train_u, val=val, test=test) +``` + +We suggest you take a look at the datasets code in some projects like [this](https://github.com/KaiyangZhou/CoOp), which is built on top of Dassl. + +## Relevant Research + +We would like to share here our research relevant to Dassl. + +- [Domain Adaptive Ensemble Learning](https://arxiv.org/abs/2003.07325), TIP, 2021. +- [MixStyle Neural Networks for Domain Generalization and Adaptation](https://arxiv.org/abs/2107.02053), arxiv preprint, 2021. +- [Semi-Supervised Domain Generalization with Stochastic StyleMatch](https://arxiv.org/abs/2106.00592), arxiv preprint, 2021. +- [Domain Generalization in Vision: A Survey](https://arxiv.org/abs/2103.02503), arxiv preprint, 2021. +- [Domain Generalization with MixStyle](https://openreview.net/forum?id=6xHJ37MVxxp), in ICLR 2021. +- [Learning to Generate Novel Domains for Domain Generalization](https://arxiv.org/abs/2007.03304), in ECCV 2020. +- [Deep Domain-Adversarial Image Generation for Domain Generalisation](https://arxiv.org/abs/2003.06054), in AAAI 2020. + +## Citation + +If you find this code useful to your research, please give credit to the following paper + +``` +@article{zhou2020domain, + title={Domain Adaptive Ensemble Learning}, + author={Zhou, Kaiyang and Yang, Yongxin and Qiao, Yu and Xiang, Tao}, + journal={IEEE Transactions on Image Processing (TIP)}, + year={2021} +} +``` diff --git a/Dassl.ProGrad.pytorch/configs/README.md b/Dassl.ProGrad.pytorch/configs/README.md new file mode 100644 index 0000000..18b90a4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/README.md @@ -0,0 +1 @@ +The `datasets/` folder contains dataset-specific config files which define the standard protocols (e.g., image size, data augmentation, network architecture) used by most papers. The `trainers/` folder contains method-specific config files which define optimization algorithms (e.g., optimizer, epoch) and hyperparameter settings. diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/cifar_stl.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/cifar_stl.yaml new file mode 100644 index 0000000..52c086f --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/cifar_stl.yaml @@ -0,0 +1,7 @@ +INPUT: + SIZE: (32, 32) + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "CIFARSTL" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/digit5.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/digit5.yaml new file mode 100644 index 0000000..f754d64 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/digit5.yaml @@ -0,0 +1,12 @@ +INPUT: + SIZE: (32, 32) + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + TRANSFORMS: ["normalize"] + +DATASET: + NAME: "Digit5" + +MODEL: + BACKBONE: + NAME: "cnn_digit5_m3sda" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/domainnet.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/domainnet.yaml new file mode 100644 index 0000000..075f923 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/domainnet.yaml @@ -0,0 +1,10 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "DomainNet" + +MODEL: + BACKBONE: + NAME: "resnet101" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/mini_domainnet.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/mini_domainnet.yaml new file mode 100644 index 0000000..cfb34d8 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/mini_domainnet.yaml @@ -0,0 +1,10 @@ +INPUT: + SIZE: (96, 96) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "miniDomainNet" + +MODEL: + BACKBONE: + NAME: "resnet18" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/office31.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/office31.yaml new file mode 100644 index 0000000..77cca03 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/office31.yaml @@ -0,0 +1,14 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "Office31" + +MODEL: + BACKBONE: + NAME: "resnet50" + HEAD: + NAME: "mlp" + HIDDEN_LAYERS: [256] + DROPOUT: 0. \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/office_home.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/office_home.yaml new file mode 100644 index 0000000..7e181fd --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/office_home.yaml @@ -0,0 +1,5 @@ +INPUT: + SIZE: (224, 224) + +DATASET: + NAME: "OfficeHome" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/da/visda17.yaml b/Dassl.ProGrad.pytorch/configs/datasets/da/visda17.yaml new file mode 100644 index 0000000..d54f2f6 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/da/visda17.yaml @@ -0,0 +1,13 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "center_crop", "normalize"] + +DATASET: + NAME: "VisDA17" + +MODEL: + BACKBONE: + NAME: "resnet101" + +TEST: + PER_CLASS_RESULT: True \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar100_c.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar100_c.yaml new file mode 100644 index 0000000..c4b7f91 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar100_c.yaml @@ -0,0 +1,14 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["random_flip", "random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "CIFAR100C" + CIFAR_C_TYPE: "fog" + CIFAR_C_LEVEL: 5 + +MODEL: + BACKBONE: + NAME: "wide_resnet_16_4" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar10_c.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar10_c.yaml new file mode 100644 index 0000000..ec5702e --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/cifar10_c.yaml @@ -0,0 +1,14 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["random_flip", "random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "CIFAR10C" + CIFAR_C_TYPE: "fog" + CIFAR_C_LEVEL: 5 + +MODEL: + BACKBONE: + NAME: "wide_resnet_16_4" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/digit_single.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/digit_single.yaml new file mode 100644 index 0000000..a6bacbb --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/digit_single.yaml @@ -0,0 +1,12 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "DigitSingle" + +MODEL: + BACKBONE: + NAME: "cnn_digitsingle" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/digits_dg.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/digits_dg.yaml new file mode 100644 index 0000000..ca25e21 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/digits_dg.yaml @@ -0,0 +1,12 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "DigitsDG" + +MODEL: + BACKBONE: + NAME: "cnn_digitsdg" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/office_home_dg.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/office_home_dg.yaml new file mode 100644 index 0000000..0835973 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/office_home_dg.yaml @@ -0,0 +1,11 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "OfficeHomeDG" + +MODEL: + BACKBONE: + NAME: "resnet18" + PRETRAINED: True \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/pacs.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/pacs.yaml new file mode 100644 index 0000000..682ab1c --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/pacs.yaml @@ -0,0 +1,11 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "PACS" + +MODEL: + BACKBONE: + NAME: "resnet18" + PRETRAINED: True \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/dg/vlcs.yaml b/Dassl.ProGrad.pytorch/configs/datasets/dg/vlcs.yaml new file mode 100644 index 0000000..0c8804c --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/dg/vlcs.yaml @@ -0,0 +1,11 @@ +INPUT: + SIZE: (224, 224) + TRANSFORMS: ["random_flip", "random_translation", "normalize"] + +DATASET: + NAME: "VLCS" + +MODEL: + BACKBONE: + NAME: "resnet18" + PRETRAINED: True \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar10.yaml b/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar10.yaml new file mode 100644 index 0000000..63b6a1d --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar10.yaml @@ -0,0 +1,14 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["random_flip", "random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + +DATASET: + NAME: "CIFAR10" + NUM_LABELED: 4000 + VAL_PERCENT: 0. + +MODEL: + BACKBONE: + NAME: "wide_resnet_28_2" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar100.yaml b/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar100.yaml new file mode 100644 index 0000000..6230a88 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/ssl/cifar100.yaml @@ -0,0 +1,15 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["random_flip", "random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + CROP_PADDING: 4 + +DATASET: + NAME: "CIFAR100" + NUM_LABELED: 10000 + VAL_PERCENT: 0. + +MODEL: + BACKBONE: + NAME: "wide_resnet_28_2" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/ssl/stl10.yaml b/Dassl.ProGrad.pytorch/configs/datasets/ssl/stl10.yaml new file mode 100644 index 0000000..7b11df1 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/ssl/stl10.yaml @@ -0,0 +1,14 @@ +INPUT: + SIZE: (96, 96) + TRANSFORMS: ["random_flip", "random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + CROP_PADDING: 4 + +DATASET: + NAME: "STL10" + STL10_FOLD: 0 + +MODEL: + BACKBONE: + NAME: "wide_resnet_28_2" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/datasets/ssl/svhn.yaml b/Dassl.ProGrad.pytorch/configs/datasets/ssl/svhn.yaml new file mode 100644 index 0000000..cd3b527 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/datasets/ssl/svhn.yaml @@ -0,0 +1,15 @@ +INPUT: + SIZE: (32, 32) + TRANSFORMS: ["random_crop", "normalize"] + PIXEL_MEAN: [0.5, 0.5, 0.5] + PIXEL_STD: [0.5, 0.5, 0.5] + CROP_PADDING: 4 + +DATASET: + NAME: "SVHN" + NUM_LABELED: 1000 + VAL_PERCENT: 0. + +MODEL: + BACKBONE: + NAME: "wide_resnet_28_2" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/dael/digit5.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/digit5.yaml new file mode 100644 index 0000000..d83bfe4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/digit5.yaml @@ -0,0 +1,20 @@ +DATALOADER: + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 256 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 256 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [30] + MAX_EPOCH: 30 + LR_SCHEDULER: "cosine" + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/dael/domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/domainnet.yaml new file mode 100644 index 0000000..079721b --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/domainnet.yaml @@ -0,0 +1,20 @@ +DATALOADER: + NUM_WORKERS: 4 + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 30 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 6 + TEST: + BATCH_SIZE: 30 + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 40 + LR_SCHEDULER: "cosine" + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["random_flip", "cutout", "randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/dael/mini_domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/mini_domainnet.yaml new file mode 100644 index 0000000..60a6f3b --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/dael/mini_domainnet.yaml @@ -0,0 +1,20 @@ +DATALOADER: + NUM_WORKERS: 8 + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 192 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 200 + +OPTIM: + NAME: "sgd" + LR: 0.005 + MAX_EPOCH: 60 + LR_SCHEDULER: "cosine" + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["random_flip", "cutout", "randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/digit5.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/digit5.yaml new file mode 100644 index 0000000..a70887b --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/digit5.yaml @@ -0,0 +1,16 @@ +DATALOADER: + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 256 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 256 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [30] + MAX_EPOCH: 30 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/domainnet.yaml new file mode 100644 index 0000000..3cba4af --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/domainnet.yaml @@ -0,0 +1,16 @@ +DATALOADER: + NUM_WORKERS: 4 + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 30 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 6 + TEST: + BATCH_SIZE: 30 + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 40 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/mini_domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/mini_domainnet.yaml new file mode 100644 index 0000000..4f0060a --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/m3sda/mini_domainnet.yaml @@ -0,0 +1,16 @@ +DATALOADER: + NUM_WORKERS: 8 + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 192 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 200 + +OPTIM: + NAME: "sgd" + LR: 0.005 + MAX_EPOCH: 60 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/digit5.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/digit5.yaml new file mode 100644 index 0000000..64ce348 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/digit5.yaml @@ -0,0 +1,12 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 256 + TEST: + BATCH_SIZE: 256 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [30] + MAX_EPOCH: 30 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/mini_domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/mini_domainnet.yaml new file mode 100644 index 0000000..b09397a --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/mini_domainnet.yaml @@ -0,0 +1,12 @@ +DATALOADER: + NUM_WORKERS: 8 + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 128 + +OPTIM: + NAME: "sgd" + LR: 0.005 + MAX_EPOCH: 60 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/office31.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/office31.yaml new file mode 100644 index 0000000..8fb73ee --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/office31.yaml @@ -0,0 +1,11 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 32 + +OPTIM: + NAME: "sgd" + LR: 0.002 + STEPSIZE: [20] + MAX_EPOCH: 20 \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/visda17.yaml b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/visda17.yaml new file mode 100644 index 0000000..3c25fb0 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/da/source_only/visda17.yaml @@ -0,0 +1,15 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 32 + +OPTIM: + NAME: "sgd" + LR: 0.0001 + STEPSIZE: [2] + MAX_EPOCH: 2 + +TRAIN: + PRINT_FREQ: 50 + COUNT_ITER: "train_u" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/digits_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/digits_dg.yaml new file mode 100644 index 0000000..c463697 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/digits_dg.yaml @@ -0,0 +1,16 @@ +DATALOADER: + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 120 + TEST: + BATCH_SIZE: 100 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [20] + MAX_EPOCH: 50 + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/office_home_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/office_home_dg.yaml new file mode 100644 index 0000000..d564c8e --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/office_home_dg.yaml @@ -0,0 +1,16 @@ +DATALOADER: + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 30 + TEST: + BATCH_SIZE: 100 + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 40 + LR_SCHEDULER: "cosine" + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["random_flip", "cutout", "randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/pacs.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/pacs.yaml new file mode 100644 index 0000000..d564c8e --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/dael/pacs.yaml @@ -0,0 +1,16 @@ +DATALOADER: + TRAIN_X: + SAMPLER: "RandomDomainSampler" + BATCH_SIZE: 30 + TEST: + BATCH_SIZE: 100 + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 40 + LR_SCHEDULER: "cosine" + +TRAINER: + DAEL: + STRONG_TRANSFORMS: ["random_flip", "cutout", "randaugment2", "normalize"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/digits_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/digits_dg.yaml new file mode 100644 index 0000000..8ee8030 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/digits_dg.yaml @@ -0,0 +1,20 @@ +INPUT: + PIXEL_MEAN: [0., 0., 0.] + PIXEL_STD: [1., 1., 1.] + +DATALOADER: + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 128 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [20] + MAX_EPOCH: 50 + +TRAINER: + DDAIG: + G_ARCH: "fcn_3x32_gctx" + LMDA: 0.3 \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/office_home_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/office_home_dg.yaml new file mode 100644 index 0000000..b55f810 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/office_home_dg.yaml @@ -0,0 +1,21 @@ +INPUT: + PIXEL_MEAN: [0., 0., 0.] + PIXEL_STD: [1., 1., 1.] + +DATALOADER: + TRAIN_X: + BATCH_SIZE: 16 + TEST: + BATCH_SIZE: 16 + +OPTIM: + NAME: "sgd" + LR: 0.0005 + STEPSIZE: [20] + MAX_EPOCH: 25 + +TRAINER: + DDAIG: + G_ARCH: "fcn_3x64_gctx" + WARMUP: 3 + LMDA: 0.3 \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/pacs.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/pacs.yaml new file mode 100644 index 0000000..b55f810 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/ddaig/pacs.yaml @@ -0,0 +1,21 @@ +INPUT: + PIXEL_MEAN: [0., 0., 0.] + PIXEL_STD: [1., 1., 1.] + +DATALOADER: + TRAIN_X: + BATCH_SIZE: 16 + TEST: + BATCH_SIZE: 16 + +OPTIM: + NAME: "sgd" + LR: 0.0005 + STEPSIZE: [20] + MAX_EPOCH: 25 + +TRAINER: + DDAIG: + G_ARCH: "fcn_3x64_gctx" + WARMUP: 3 + LMDA: 0.3 \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/digits_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/digits_dg.yaml new file mode 100644 index 0000000..8b73fbe --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/digits_dg.yaml @@ -0,0 +1,15 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [20] + MAX_EPOCH: 50 + +TRAIN: + PRINT_FREQ: 20 \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/mini_domainnet.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/mini_domainnet.yaml new file mode 100644 index 0000000..b09397a --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/mini_domainnet.yaml @@ -0,0 +1,12 @@ +DATALOADER: + NUM_WORKERS: 8 + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 128 + +OPTIM: + NAME: "sgd" + LR: 0.005 + MAX_EPOCH: 60 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/office_home_dg.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/office_home_dg.yaml new file mode 100644 index 0000000..8940de4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/office_home_dg.yaml @@ -0,0 +1,12 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +OPTIM: + NAME: "sgd" + LR: 0.001 + MAX_EPOCH: 50 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/pacs.yaml b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/pacs.yaml new file mode 100644 index 0000000..8940de4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/dg/vanilla/pacs.yaml @@ -0,0 +1,12 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 64 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +OPTIM: + NAME: "sgd" + LR: 0.001 + MAX_EPOCH: 50 + LR_SCHEDULER: "cosine" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/configs/trainers/ssl/fixmatch/cifar10.yaml b/Dassl.ProGrad.pytorch/configs/trainers/ssl/fixmatch/cifar10.yaml new file mode 100644 index 0000000..a03fc6c --- /dev/null +++ b/Dassl.ProGrad.pytorch/configs/trainers/ssl/fixmatch/cifar10.yaml @@ -0,0 +1,23 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 64 + TRAIN_U: + SAME_AS_X: False + BATCH_SIZE: 448 + TEST: + BATCH_SIZE: 500 + +OPTIM: + NAME: "sgd" + LR: 0.05 + STEPSIZE: [4000] + MAX_EPOCH: 4000 + LR_SCHEDULER: "cosine" + +TRAIN: + COUNT_ITER: "train_u" + PRINT_FREQ: 10 + +TRAINER: + FIXMATCH: + STRONG_TRANSFORMS: ["random_flip", "randaugment_fixmatch", "normalize", "cutout"] \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/dassl/__init__.py b/Dassl.ProGrad.pytorch/dassl/__init__.py new file mode 100644 index 0000000..82a693e --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/__init__.py @@ -0,0 +1,18 @@ +""" +Dassl +------ +PyTorch toolbox for domain adaptation and semi-supervised learning. + +URL: https://github.com/KaiyangZhou/Dassl.pytorch + +@article{zhou2020domain, + title={Domain Adaptive Ensemble Learning}, + author={Zhou, Kaiyang and Yang, Yongxin and Qiao, Yu and Xiang, Tao}, + journal={arXiv preprint arXiv:2003.07325}, + year={2020} +} +""" + +__version__ = "0.5.0" +__author__ = "Kaiyang Zhou" +__homepage__ = "https://kaiyangzhou.github.io/" diff --git a/Dassl.ProGrad.pytorch/dassl/config/__init__.py b/Dassl.ProGrad.pytorch/dassl/config/__init__.py new file mode 100644 index 0000000..4d7485c --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/config/__init__.py @@ -0,0 +1,5 @@ +from .defaults import _C as cfg_default + + +def get_cfg_default(): + return cfg_default.clone() diff --git a/Dassl.ProGrad.pytorch/dassl/config/defaults.py b/Dassl.ProGrad.pytorch/dassl/config/defaults.py new file mode 100644 index 0000000..b2aa03a --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/config/defaults.py @@ -0,0 +1,275 @@ +from yacs.config import CfgNode as CN + +########################### +# Config definition +########################### + +_C = CN() + +_C.VERSION = 1 + +# Directory to save the output files (like log.txt and model weights) +_C.OUTPUT_DIR = "./output" +# Path to a directory where the files were saved previously +_C.RESUME = "" +# Set seed to negative value to randomize everything +# Set seed to positive value to use a fixed seed +_C.SEED = -1 +_C.USE_CUDA = True +# Print detailed information +# E.g. trainer, dataset, and backbone +_C.VERBOSE = True + +########################### +# Input +########################### +_C.INPUT = CN() +_C.INPUT.SIZE = (224, 224) +# Mode of interpolation in resize functions +_C.INPUT.INTERPOLATION = "bilinear" +# For available choices please refer to transforms.py +_C.INPUT.TRANSFORMS = () +# If True, tfm_train and tfm_test will be None +_C.INPUT.NO_TRANSFORM = False +# Default mean and std come from ImageNet +_C.INPUT.PIXEL_MEAN = [0.485, 0.456, 0.406] +_C.INPUT.PIXEL_STD = [0.229, 0.224, 0.225] +# Padding for random crop +_C.INPUT.CROP_PADDING = 4 +# Cutout +_C.INPUT.CUTOUT_N = 1 +_C.INPUT.CUTOUT_LEN = 16 +# Gaussian noise +_C.INPUT.GN_MEAN = 0.0 +_C.INPUT.GN_STD = 0.15 +# RandomAugment +_C.INPUT.RANDAUGMENT_N = 2 +_C.INPUT.RANDAUGMENT_M = 10 +# ColorJitter (brightness, contrast, saturation, hue) +_C.INPUT.COLORJITTER_B = 0.4 +_C.INPUT.COLORJITTER_C = 0.4 +_C.INPUT.COLORJITTER_S = 0.4 +_C.INPUT.COLORJITTER_H = 0.1 +# Random gray scale's probability +_C.INPUT.RGS_P = 0.2 +# Gaussian blur +_C.INPUT.GB_P = 0.5 # propability of applying this operation +_C.INPUT.GB_K = 21 # kernel size (should be an odd number) + +########################### +# Dataset +########################### +_C.DATASET = CN() +# Directory where datasets are stored +_C.DATASET.ROOT = "" +_C.DATASET.NAME = "" +# List of names of source domains +_C.DATASET.SOURCE_DOMAINS = () +# List of names of target domains +_C.DATASET.TARGET_DOMAINS = () +# Number of labeled instances in total +# Useful for the semi-supervised learning +_C.DATASET.NUM_LABELED = -1 +# Number of images per class +_C.DATASET.NUM_SHOTS = -1 +# Percentage of validation data (only used for SSL datasets) +# Set to 0 if do not want to use val data +# Using val data for hyperparameter tuning was done in Oliver et al. 2018 +_C.DATASET.VAL_PERCENT = 0.1 +# Fold index for STL-10 dataset (normal range is 0 - 9) +# Negative number means None +_C.DATASET.STL10_FOLD = -1 +# CIFAR-10/100-C's corruption type and intensity level +_C.DATASET.CIFAR_C_TYPE = "" +_C.DATASET.CIFAR_C_LEVEL = 1 +# Use all data in the unlabeled data set (e.g. FixMatch) +_C.DATASET.ALL_AS_UNLABELED = False + +########################### +# Dataloader +########################### +_C.DATALOADER = CN() +_C.DATALOADER.NUM_WORKERS = 4 +# Apply transformations to an image K times (during training) +_C.DATALOADER.K_TRANSFORMS = 1 +# img0 denotes image tensor without augmentation +# Useful for consistency learning +_C.DATALOADER.RETURN_IMG0 = False +# Setting for the train_x data-loader +_C.DATALOADER.TRAIN_X = CN() +_C.DATALOADER.TRAIN_X.SAMPLER = "RandomSampler" +_C.DATALOADER.TRAIN_X.BATCH_SIZE = 32 +# Parameter for RandomDomainSampler +# 0 or -1 means sampling from all domains +_C.DATALOADER.TRAIN_X.N_DOMAIN = 0 +# Parameter of RandomClassSampler +# Number of instances per class +_C.DATALOADER.TRAIN_X.N_INS = 16 + +# Setting for the train_u data-loader +_C.DATALOADER.TRAIN_U = CN() +# Set to false if you want to have unique +# data loader params for train_u +_C.DATALOADER.TRAIN_U.SAME_AS_X = True +_C.DATALOADER.TRAIN_U.SAMPLER = "RandomSampler" +_C.DATALOADER.TRAIN_U.BATCH_SIZE = 32 +_C.DATALOADER.TRAIN_U.N_DOMAIN = 0 +_C.DATALOADER.TRAIN_U.N_INS = 16 + +# Setting for the test data-loader +_C.DATALOADER.TEST = CN() +_C.DATALOADER.TEST.SAMPLER = "SequentialSampler" +_C.DATALOADER.TEST.BATCH_SIZE = 32 + +########################### +# Model +########################### +_C.MODEL = CN() +# Path to model weights (for initialization) +_C.MODEL.INIT_WEIGHTS = "" +_C.MODEL.BACKBONE = CN() +_C.MODEL.BACKBONE.NAME = "" +_C.MODEL.BACKBONE.PRETRAINED = True +# Definition of embedding layers +_C.MODEL.HEAD = CN() +# If none, do not construct embedding layers, the +# backbone's output will be passed to the classifier +_C.MODEL.HEAD.NAME = "" +# Structure of hidden layers (a list), e.g. [512, 512] +# If undefined, no embedding layer will be constructed +_C.MODEL.HEAD.HIDDEN_LAYERS = () +_C.MODEL.HEAD.ACTIVATION = "relu" +_C.MODEL.HEAD.BN = True +_C.MODEL.HEAD.DROPOUT = 0.0 + +########################### +# Optimization +########################### +_C.OPTIM = CN() +_C.OPTIM.NAME = "adam" +_C.OPTIM.LR = 0.0003 +_C.OPTIM.WEIGHT_DECAY = 5e-4 +_C.OPTIM.MOMENTUM = 0.9 +_C.OPTIM.SGD_DAMPNING = 0 +_C.OPTIM.SGD_NESTEROV = False +_C.OPTIM.RMSPROP_ALPHA = 0.99 +_C.OPTIM.ADAM_BETA1 = 0.9 +_C.OPTIM.ADAM_BETA2 = 0.999 +# STAGED_LR allows different layers to have +# different lr, e.g. pre-trained base layers +# can be assigned a smaller lr than the new +# classification layer +_C.OPTIM.STAGED_LR = False +_C.OPTIM.NEW_LAYERS = () +_C.OPTIM.BASE_LR_MULT = 0.1 +# Learning rate scheduler +_C.OPTIM.LR_SCHEDULER = "single_step" +# -1 or 0 means the stepsize is equal to max_epoch +_C.OPTIM.STEPSIZE = (-1, ) +_C.OPTIM.GAMMA = 0.1 +_C.OPTIM.MAX_EPOCH = 10 +# Set WARMUP_EPOCH larger than 0 to activate warmup training +_C.OPTIM.WARMUP_EPOCH = -1 +# Either linear or constant +_C.OPTIM.WARMUP_TYPE = "linear" +# Constant learning rate when type=constant +_C.OPTIM.WARMUP_CONS_LR = 1e-5 +# Minimum learning rate when type=linear +_C.OPTIM.WARMUP_MIN_LR = 1e-5 +# Recount epoch for the next scheduler (last_epoch=-1) +# Otherwise last_epoch=warmup_epoch +_C.OPTIM.WARMUP_RECOUNT = True + +########################### +# Train +########################### +_C.TRAIN = CN() +# How often (epoch) to save model during training +# Set to 0 or negative value to only save the last one +_C.TRAIN.CHECKPOINT_FREQ = 0 +# How often (batch) to print training information +_C.TRAIN.PRINT_FREQ = 10 +# Use 'train_x', 'train_u' or 'smaller_one' to count +# the number of iterations in an epoch (for DA and SSL) +_C.TRAIN.COUNT_ITER = "train_x" + +########################### +# Test +########################### +_C.TEST = CN() +_C.TEST.EVALUATOR = "Classification" +_C.TEST.PER_CLASS_RESULT = False +# Compute confusion matrix, which will be saved +# to $OUTPUT_DIR/cmat.pt +_C.TEST.COMPUTE_CMAT = False +# If NO_TEST=True, no testing will be conducted +_C.TEST.NO_TEST = False +# Use test or val set for FINAL evaluation +_C.TEST.SPLIT = "test" +# Which model to test after training +# Either last_step or best_val +_C.TEST.FINAL_MODEL = "last_step" + +########################### +# Trainer specifics +########################### +_C.TRAINER = CN() +_C.TRAINER.NAME = "" + +# MCD +_C.TRAINER.MCD = CN() +_C.TRAINER.MCD.N_STEP_F = 4 # number of steps to train F +# MME +_C.TRAINER.MME = CN() +_C.TRAINER.MME.LMDA = 0.1 # weight for the entropy loss +# SelfEnsembling +_C.TRAINER.SE = CN() +_C.TRAINER.SE.EMA_ALPHA = 0.999 +_C.TRAINER.SE.CONF_THRE = 0.95 +_C.TRAINER.SE.RAMPUP = 300 + +# M3SDA +_C.TRAINER.M3SDA = CN() +_C.TRAINER.M3SDA.LMDA = 0.5 # weight for the moment distance loss +_C.TRAINER.M3SDA.N_STEP_F = 4 # follow MCD +# DAEL +_C.TRAINER.DAEL = CN() +_C.TRAINER.DAEL.WEIGHT_U = 0.5 # weight on the unlabeled loss +_C.TRAINER.DAEL.CONF_THRE = 0.95 # confidence threshold +_C.TRAINER.DAEL.STRONG_TRANSFORMS = () + +# CrossGrad +_C.TRAINER.CG = CN() +_C.TRAINER.CG.EPS_F = 1.0 # scaling parameter for D's gradients +_C.TRAINER.CG.EPS_D = 1.0 # scaling parameter for F's gradients +_C.TRAINER.CG.ALPHA_F = 0.5 # balancing weight for the label net's loss +_C.TRAINER.CG.ALPHA_D = 0.5 # balancing weight for the domain net's loss +# DDAIG +_C.TRAINER.DDAIG = CN() +_C.TRAINER.DDAIG.G_ARCH = "" # generator's architecture +_C.TRAINER.DDAIG.LMDA = 0.3 # perturbation weight +_C.TRAINER.DDAIG.CLAMP = False # clamp perturbation values +_C.TRAINER.DDAIG.CLAMP_MIN = -1.0 +_C.TRAINER.DDAIG.CLAMP_MAX = 1.0 +_C.TRAINER.DDAIG.WARMUP = 0 +_C.TRAINER.DDAIG.ALPHA = 0.5 # balancing weight for the losses + +# EntMin +_C.TRAINER.ENTMIN = CN() +_C.TRAINER.ENTMIN.LMDA = 1e-3 # weight on the entropy loss +# Mean Teacher +_C.TRAINER.MEANTEA = CN() +_C.TRAINER.MEANTEA.WEIGHT_U = 1.0 # weight on the unlabeled loss +_C.TRAINER.MEANTEA.EMA_ALPHA = 0.999 +_C.TRAINER.MEANTEA.RAMPUP = 5 # epochs used to ramp up the loss_u weight +# MixMatch +_C.TRAINER.MIXMATCH = CN() +_C.TRAINER.MIXMATCH.WEIGHT_U = 100.0 # weight on the unlabeled loss +_C.TRAINER.MIXMATCH.TEMP = 2.0 # temperature for sharpening the probability +_C.TRAINER.MIXMATCH.MIXUP_BETA = 0.75 +_C.TRAINER.MIXMATCH.RAMPUP = 20000 # steps used to ramp up the loss_u weight +# FixMatch +_C.TRAINER.FIXMATCH = CN() +_C.TRAINER.FIXMATCH.WEIGHT_U = 1.0 # weight on the unlabeled loss +_C.TRAINER.FIXMATCH.CONF_THRE = 0.95 # confidence threshold +_C.TRAINER.FIXMATCH.STRONG_TRANSFORMS = () diff --git a/Dassl.ProGrad.pytorch/dassl/data/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/__init__.py new file mode 100644 index 0000000..66ca734 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/__init__.py @@ -0,0 +1 @@ +from .data_manager import DataManager, DatasetWrapper diff --git a/Dassl.ProGrad.pytorch/dassl/data/data_manager.py b/Dassl.ProGrad.pytorch/dassl/data/data_manager.py new file mode 100644 index 0000000..cd833aa --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/data_manager.py @@ -0,0 +1,264 @@ +import torch +import torchvision.transforms as T +from PIL import Image +from torch.utils.data import Dataset as TorchDataset + +from dassl.utils import read_image + +from .datasets import build_dataset +from .samplers import build_sampler +from .transforms import build_transform + +INTERPOLATION_MODES = { + "bilinear": Image.BILINEAR, + "bicubic": Image.BICUBIC, + "nearest": Image.NEAREST, +} + + +def build_data_loader( + cfg, + sampler_type="SequentialSampler", + data_source=None, + batch_size=64, + n_domain=0, + n_ins=2, + tfm=None, + is_train=True, + dataset_wrapper=None, +): + # Build sampler + sampler = build_sampler( + sampler_type, + cfg=cfg, + data_source=data_source, + batch_size=batch_size, + n_domain=n_domain, + n_ins=n_ins, + ) + + if dataset_wrapper is None: + dataset_wrapper = DatasetWrapper + + # Build data loader + data_loader = torch.utils.data.DataLoader( + dataset_wrapper(cfg, data_source, transform=tfm, is_train=is_train), + batch_size=batch_size, + sampler=sampler, + num_workers=cfg.DATALOADER.NUM_WORKERS, + drop_last=is_train and len(data_source) >= batch_size, + pin_memory=(torch.cuda.is_available() and cfg.USE_CUDA), + ) + assert len(data_loader) > 0 + + return data_loader + + +class DataManager: + + def __init__( + self, + cfg, + custom_tfm_train=None, + custom_tfm_test=None, + dataset_wrapper=None + ): + # Load dataset + dataset = build_dataset(cfg) + # Build transform + if custom_tfm_train is None: + tfm_train = build_transform(cfg, is_train=True) + else: + print("* Using custom transform for training") + tfm_train = custom_tfm_train + + if custom_tfm_test is None: + tfm_test = build_transform(cfg, is_train=False) + else: + print("* Using custom transform for testing") + tfm_test = custom_tfm_test + + # Build train_loader_x + train_loader_x = build_data_loader( + cfg, + sampler_type=cfg.DATALOADER.TRAIN_X.SAMPLER, + data_source=dataset.train_x, + batch_size=cfg.DATALOADER.TRAIN_X.BATCH_SIZE, + n_domain=cfg.DATALOADER.TRAIN_X.N_DOMAIN, + n_ins=cfg.DATALOADER.TRAIN_X.N_INS, + tfm=tfm_train, + is_train=True, + dataset_wrapper=dataset_wrapper, + ) + + # Build train_loader_u + train_loader_u = None + if dataset.train_u: + sampler_type_ = cfg.DATALOADER.TRAIN_U.SAMPLER + batch_size_ = cfg.DATALOADER.TRAIN_U.BATCH_SIZE + n_domain_ = cfg.DATALOADER.TRAIN_U.N_DOMAIN + n_ins_ = cfg.DATALOADER.TRAIN_U.N_INS + + if cfg.DATALOADER.TRAIN_U.SAME_AS_X: + sampler_type_ = cfg.DATALOADER.TRAIN_X.SAMPLER + batch_size_ = cfg.DATALOADER.TRAIN_X.BATCH_SIZE + n_domain_ = cfg.DATALOADER.TRAIN_X.N_DOMAIN + n_ins_ = cfg.DATALOADER.TRAIN_X.N_INS + + train_loader_u = build_data_loader( + cfg, + sampler_type=sampler_type_, + data_source=dataset.train_u, + batch_size=batch_size_, + n_domain=n_domain_, + n_ins=n_ins_, + tfm=tfm_train, + is_train=True, + dataset_wrapper=dataset_wrapper, + ) + + # Build val_loader + val_loader = None + if dataset.val: + val_loader = build_data_loader( + cfg, + sampler_type=cfg.DATALOADER.TEST.SAMPLER, + data_source=dataset.val, + batch_size=cfg.DATALOADER.TEST.BATCH_SIZE, + tfm=tfm_test, + is_train=False, + dataset_wrapper=dataset_wrapper, + ) + + # Build test_loader + test_loader = build_data_loader( + cfg, + sampler_type=cfg.DATALOADER.TEST.SAMPLER, + data_source=dataset.test, + batch_size=cfg.DATALOADER.TEST.BATCH_SIZE, + tfm=tfm_test, + is_train=False, + dataset_wrapper=dataset_wrapper, + ) + + # Attributes + self._num_classes = dataset.num_classes + self._num_source_domains = len(cfg.DATASET.SOURCE_DOMAINS) + self._lab2cname = dataset.lab2cname + + # Dataset and data-loaders + self.dataset = dataset + self.train_loader_x = train_loader_x + self.train_loader_u = train_loader_u + self.val_loader = val_loader + self.test_loader = test_loader + + if cfg.VERBOSE: + self.show_dataset_summary(cfg) + + @property + def num_classes(self): + return self._num_classes + + @property + def num_source_domains(self): + return self._num_source_domains + + @property + def lab2cname(self): + return self._lab2cname + + def show_dataset_summary(self, cfg): + print("***** Dataset statistics *****") + + print(" Dataset: {}".format(cfg.DATASET.NAME)) + + if cfg.DATASET.SOURCE_DOMAINS: + print(" Source domains: {}".format(cfg.DATASET.SOURCE_DOMAINS)) + if cfg.DATASET.TARGET_DOMAINS: + print(" Target domains: {}".format(cfg.DATASET.TARGET_DOMAINS)) + + print(" # classes: {:,}".format(self.num_classes)) + + print(" # train_x: {:,}".format(len(self.dataset.train_x))) + + if self.dataset.train_u: + print(" # train_u: {:,}".format(len(self.dataset.train_u))) + + if self.dataset.val: + print(" # val: {:,}".format(len(self.dataset.val))) + + print(" # test: {:,}".format(len(self.dataset.test))) + + +class DatasetWrapper(TorchDataset): + + def __init__(self, cfg, data_source, transform=None, is_train=False): + self.cfg = cfg + self.data_source = data_source + self.transform = transform # accept list (tuple) as input + self.is_train = is_train + # Augmenting an image K>1 times is only allowed during training + self.k_tfm = cfg.DATALOADER.K_TRANSFORMS if is_train else 1 + self.return_img0 = cfg.DATALOADER.RETURN_IMG0 + + if self.k_tfm > 1 and transform is None: + raise ValueError( + "Cannot augment the image {} times " + "because transform is None".format(self.k_tfm) + ) + + # Build transform that doesn't apply any data augmentation + interp_mode = INTERPOLATION_MODES[cfg.INPUT.INTERPOLATION] + to_tensor = [] + to_tensor += [T.Resize(cfg.INPUT.SIZE, interpolation=interp_mode)] + to_tensor += [T.ToTensor()] + if "normalize" in cfg.INPUT.TRANSFORMS: + normalize = T.Normalize( + mean=cfg.INPUT.PIXEL_MEAN, std=cfg.INPUT.PIXEL_STD + ) + to_tensor += [normalize] + self.to_tensor = T.Compose(to_tensor) + + def __len__(self): + return len(self.data_source) + + def __getitem__(self, idx): + item = self.data_source[idx] + + output = { + "label": item.label, + "domain": item.domain, + "impath": item.impath + } + + img0 = read_image(item.impath) + + if self.transform is not None: + if isinstance(self.transform, (list, tuple)): + for i, tfm in enumerate(self.transform): + img = self._transform_image(tfm, img0) + keyname = "img" + if (i + 1) > 1: + keyname += str(i + 1) + output[keyname] = img + else: + img = self._transform_image(self.transform, img0) + output["img"] = img + + if self.return_img0: + output["img0"] = self.to_tensor(img0) + + return output + + def _transform_image(self, tfm, img0): + img_list = [] + + for k in range(self.k_tfm): + img_list.append(tfm(img0)) + + img = img_list + if len(img) == 1: + img = img[0] + + return img diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/__init__.py new file mode 100644 index 0000000..4f58326 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/__init__.py @@ -0,0 +1,6 @@ +from .build import DATASET_REGISTRY, build_dataset # isort:skip +from .base_dataset import Datum, DatasetBase # isort:skip + +from .da import * +from .dg import * +from .ssl import * diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/base_dataset.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/base_dataset.py new file mode 100644 index 0000000..5fd9d48 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/base_dataset.py @@ -0,0 +1,225 @@ +import os +import random +import os.path as osp +import tarfile +import zipfile +from collections import defaultdict +import gdown + +from dassl.utils import check_isfile + + +class Datum: + """Data instance which defines the basic attributes. + + Args: + impath (str): image path. + label (int): class label. + domain (int): domain label. + classname (str): class name. + """ + + def __init__(self, impath="", label=0, domain=0, classname=""): + assert isinstance(impath, str) + assert check_isfile(impath) + + self._impath = impath + self._label = label + self._domain = domain + self._classname = classname + + @property + def impath(self): + return self._impath + + @property + def label(self): + return self._label + + @property + def domain(self): + return self._domain + + @property + def classname(self): + return self._classname + + +class DatasetBase: + """A unified dataset class for + 1) domain adaptation + 2) domain generalization + 3) semi-supervised learning + """ + + dataset_dir = "" # the directory where the dataset is stored + domains = [] # string names of all domains + + def __init__(self, train_x=None, train_u=None, val=None, test=None): + self._train_x = train_x # labeled training data + self._train_u = train_u # unlabeled training data (optional) + self._val = val # validation data (optional) + self._test = test # test data + + self._num_classes = self.get_num_classes(train_x) + self._lab2cname, self._classnames = self.get_lab2cname(train_x) + + @property + def train_x(self): + return self._train_x + + @property + def train_u(self): + return self._train_u + + @property + def val(self): + return self._val + + @property + def test(self): + return self._test + + @property + def lab2cname(self): + return self._lab2cname + + @property + def classnames(self): + return self._classnames + + @property + def num_classes(self): + return self._num_classes + + def get_num_classes(self, data_source): + """Count number of classes. + + Args: + data_source (list): a list of Datum objects. + """ + label_set = set() + for item in data_source: + label_set.add(item.label) + return max(label_set) + 1 + + def get_lab2cname(self, data_source): + """Get a label-to-classname mapping (dict). + + Args: + data_source (list): a list of Datum objects. + """ + container = set() + for item in data_source: + container.add((item.label, item.classname)) + mapping = {label: classname for label, classname in container} + labels = list(mapping.keys()) + labels.sort() + classnames = [mapping[label] for label in labels] + return mapping, classnames + + def check_input_domains(self, source_domains, target_domains): + self.is_input_domain_valid(source_domains) + self.is_input_domain_valid(target_domains) + + def is_input_domain_valid(self, input_domains): + for domain in input_domains: + if domain not in self.domains: + raise ValueError( + "Input domain must belong to {}, " + "but got [{}]".format(self.domains, domain) + ) + + def download_data(self, url, dst, from_gdrive=True): + if not osp.exists(osp.dirname(dst)): + os.makedirs(osp.dirname(dst)) + + if from_gdrive: + gdown.download(url, dst, quiet=False) + else: + raise NotImplementedError + + print("Extracting file ...") + + try: + tar = tarfile.open(dst) + tar.extractall(path=osp.dirname(dst)) + tar.close() + except: + zip_ref = zipfile.ZipFile(dst, "r") + zip_ref.extractall(osp.dirname(dst)) + zip_ref.close() + + print("File extracted to {}".format(osp.dirname(dst))) + + def generate_fewshot_dataset( + self, *data_sources, num_shots=-1, repeat=False + ): + """Generate a few-shot dataset (typically for the training set). + + This function is useful when one wants to evaluate a model + in a few-shot learning setting where each class only contains + a few number of images. + + Args: + data_sources: each individual is a list containing Datum objects. + num_shots (int): number of instances per class to sample. + repeat (bool): repeat images if needed (default: False). + """ + if num_shots < 1: + if len(data_sources) == 1: + return data_sources[0] + return data_sources + + print(f"Creating a {num_shots}-shot dataset") + + output = [] + + for data_source in data_sources: + tracker = self.split_dataset_by_label(data_source) + dataset = [] + + for label, items in tracker.items(): + if len(items) >= num_shots: + sampled_items = random.sample(items, num_shots) + else: + if repeat: + sampled_items = random.choices(items, k=num_shots) + else: + sampled_items = items + dataset.extend(sampled_items) + + output.append(dataset) + + if len(output) == 1: + return output[0] + + return output + + def split_dataset_by_label(self, data_source): + """Split a dataset, i.e. a list of Datum objects, + into class-specific groups stored in a dictionary. + + Args: + data_source (list): a list of Datum objects. + """ + output = defaultdict(list) + + for item in data_source: + output[item.label].append(item) + + return output + + def split_dataset_by_domain(self, data_source): + """Split a dataset, i.e. a list of Datum objects, + into domain-specific groups stored in a dictionary. + + Args: + data_source (list): a list of Datum objects. + """ + output = defaultdict(list) + + for item in data_source: + output[item.domain].append(item) + + return output diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/build.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/build.py new file mode 100644 index 0000000..9de62c6 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +DATASET_REGISTRY = Registry("DATASET") + + +def build_dataset(cfg): + avai_datasets = DATASET_REGISTRY.registered_names() + check_availability(cfg.DATASET.NAME, avai_datasets) + if cfg.VERBOSE: + print("Loading dataset: {}".format(cfg.DATASET.NAME)) + return DATASET_REGISTRY.get(cfg.DATASET.NAME)(cfg) diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/__init__.py new file mode 100644 index 0000000..9c7b60f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/__init__.py @@ -0,0 +1,7 @@ +from .digit5 import Digit5 +from .visda17 import VisDA17 +from .cifarstl import CIFARSTL +from .office31 import Office31 +from .domainnet import DomainNet +from .office_home import OfficeHome +from .mini_domainnet import miniDomainNet diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/cifarstl.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/cifarstl.py new file mode 100644 index 0000000..ca27eb1 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/cifarstl.py @@ -0,0 +1,68 @@ +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class CIFARSTL(DatasetBase): + """CIFAR-10 and STL-10. + + CIFAR-10: + - 60,000 32x32 colour images. + - 10 classes, with 6,000 images per class. + - 50,000 training images and 10,000 test images. + - URL: https://www.cs.toronto.edu/~kriz/cifar.html. + + STL-10: + - 10 classes: airplane, bird, car, cat, deer, dog, horse, + monkey, ship, truck. + - Images are 96x96 pixels, color. + - 500 training images (10 pre-defined folds), 800 test images + per class. + - URL: https://cs.stanford.edu/~acoates/stl10/. + + Reference: + - Krizhevsky. Learning Multiple Layers of Features + from Tiny Images. Tech report. + - Coates et al. An Analysis of Single Layer Networks in + Unsupervised Feature Learning. AISTATS 2011. + """ + + dataset_dir = "cifar_stl" + domains = ["cifar", "stl"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="train") + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="train") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="test") + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, input_domains, split="train"): + items = [] + + for domain, dname in enumerate(input_domains): + data_dir = osp.join(self.dataset_dir, dname, split) + class_names = listdir_nohidden(data_dir) + + for class_name in class_names: + class_dir = osp.join(data_dir, class_name) + imnames = listdir_nohidden(class_dir) + label = int(class_name.split("_")[0]) + + for imname in imnames: + impath = osp.join(class_dir, imname) + item = Datum(impath=impath, label=label, domain=domain) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/digit5.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/digit5.py new file mode 100644 index 0000000..4320005 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/digit5.py @@ -0,0 +1,124 @@ +import random +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + +# Folder names for train and test sets +MNIST = {"train": "train_images", "test": "test_images"} +MNIST_M = {"train": "train_images", "test": "test_images"} +SVHN = {"train": "train_images", "test": "test_images"} +SYN = {"train": "train_images", "test": "test_images"} +USPS = {"train": "train_images", "test": "test_images"} + + +def read_image_list(im_dir, n_max=None, n_repeat=None): + items = [] + + for imname in listdir_nohidden(im_dir): + imname_noext = osp.splitext(imname)[0] + label = int(imname_noext.split("_")[1]) + impath = osp.join(im_dir, imname) + items.append((impath, label)) + + if n_max is not None: + items = random.sample(items, n_max) + + if n_repeat is not None: + items *= n_repeat + + return items + + +def load_mnist(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, MNIST[split]) + n_max = 25000 if split == "train" else 9000 + return read_image_list(data_dir, n_max=n_max) + + +def load_mnist_m(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, MNIST_M[split]) + n_max = 25000 if split == "train" else 9000 + return read_image_list(data_dir, n_max=n_max) + + +def load_svhn(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, SVHN[split]) + n_max = 25000 if split == "train" else 9000 + return read_image_list(data_dir, n_max=n_max) + + +def load_syn(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, SYN[split]) + n_max = 25000 if split == "train" else 9000 + return read_image_list(data_dir, n_max=n_max) + + +def load_usps(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, USPS[split]) + n_repeat = 3 if split == "train" else None + return read_image_list(data_dir, n_repeat=n_repeat) + + +@DATASET_REGISTRY.register() +class Digit5(DatasetBase): + """Five digit datasets. + + It contains: + - MNIST: hand-written digits. + - MNIST-M: variant of MNIST with blended background. + - SVHN: street view house number. + - SYN: synthetic digits. + - USPS: hand-written digits, slightly different from MNIST. + + For MNIST, MNIST-M, SVHN and SYN, we randomly sample 25,000 images from + the training set and 9,000 images from the test set. For USPS which has only + 9,298 images in total, we use the entire dataset but replicate its training + set for 3 times so as to match the training set size of other domains. + + Reference: + - Lecun et al. Gradient-based learning applied to document + recognition. IEEE 1998. + - Ganin et al. Domain-adversarial training of neural networks. + JMLR 2016. + - Netzer et al. Reading digits in natural images with unsupervised + feature learning. NIPS-W 2011. + """ + + dataset_dir = "digit5" + domains = ["mnist", "mnist_m", "svhn", "syn", "usps"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="train") + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="train") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="test") + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, input_domains, split="train"): + items = [] + + for domain, dname in enumerate(input_domains): + func = "load_" + dname + domain_dir = osp.join(self.dataset_dir, dname) + items_d = eval(func)(domain_dir, split=split) + + for impath, label in items_d: + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=str(label) + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/domainnet.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/domainnet.py new file mode 100644 index 0000000..8a703bf --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/domainnet.py @@ -0,0 +1,69 @@ +import os.path as osp + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class DomainNet(DatasetBase): + """DomainNet. + + Statistics: + - 6 distinct domains: Clipart, Infograph, Painting, Quickdraw, + Real, Sketch. + - Around 0.6M images. + - 345 categories. + - URL: http://ai.bu.edu/M3SDA/. + + Special note: the t-shirt class (327) is missing in painting_train.txt. + + Reference: + - Peng et al. Moment Matching for Multi-Source Domain + Adaptation. ICCV 2019. + """ + + dataset_dir = "domainnet" + domains = [ + "clipart", "infograph", "painting", "quickdraw", "real", "sketch" + ] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + self.split_dir = osp.join(self.dataset_dir, "splits") + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="train") + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="train") + val = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="test") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="test") + + super().__init__(train_x=train_x, train_u=train_u, val=val, test=test) + + def _read_data(self, input_domains, split="train"): + items = [] + + for domain, dname in enumerate(input_domains): + filename = dname + "_" + split + ".txt" + split_file = osp.join(self.split_dir, filename) + + with open(split_file, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip() + impath, label = line.split(" ") + classname = impath.split("/")[1] + impath = osp.join(self.dataset_dir, impath) + label = int(label) + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=classname + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/mini_domainnet.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/mini_domainnet.py new file mode 100644 index 0000000..4a70869 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/mini_domainnet.py @@ -0,0 +1,58 @@ +import os.path as osp + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class miniDomainNet(DatasetBase): + """A subset of DomainNet. + + Reference: + - Peng et al. Moment Matching for Multi-Source Domain + Adaptation. ICCV 2019. + - Zhou et al. Domain Adaptive Ensemble Learning. + """ + + dataset_dir = "domainnet" + domains = ["clipart", "painting", "real", "sketch"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + self.split_dir = osp.join(self.dataset_dir, "splits_mini") + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="train") + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="train") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="test") + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, input_domains, split="train"): + items = [] + + for domain, dname in enumerate(input_domains): + filename = dname + "_" + split + ".txt" + split_file = osp.join(self.split_dir, filename) + + with open(split_file, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip() + impath, label = line.split(" ") + classname = impath.split("/")[1] + impath = osp.join(self.dataset_dir, impath) + label = int(label) + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=classname + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office31.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office31.py new file mode 100644 index 0000000..c2daca1 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office31.py @@ -0,0 +1,63 @@ +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class Office31(DatasetBase): + """Office-31. + + Statistics: + - 4,110 images. + - 31 classes related to office objects. + - 3 domains: Amazon, Webcam, Dslr. + - URL: https://people.eecs.berkeley.edu/~jhoffman/domainadapt/. + + Reference: + - Saenko et al. Adapting visual category models to + new domains. ECCV 2010. + """ + + dataset_dir = "office31" + domains = ["amazon", "webcam", "dslr"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS) + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS) + test = self._read_data(cfg.DATASET.TARGET_DOMAINS) + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, input_domains): + items = [] + + for domain, dname in enumerate(input_domains): + domain_dir = osp.join(self.dataset_dir, dname) + class_names = listdir_nohidden(domain_dir) + class_names.sort() + + for label, class_name in enumerate(class_names): + class_path = osp.join(domain_dir, class_name) + imnames = listdir_nohidden(class_path) + + for imname in imnames: + impath = osp.join(class_path, imname) + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=class_name + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office_home.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office_home.py new file mode 100644 index 0000000..61996f2 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/office_home.py @@ -0,0 +1,63 @@ +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class OfficeHome(DatasetBase): + """Office-Home. + + Statistics: + - Around 15,500 images. + - 65 classes related to office and home objects. + - 4 domains: Art, Clipart, Product, Real World. + - URL: http://hemanthdv.org/OfficeHome-Dataset/. + + Reference: + - Venkateswara et al. Deep Hashing Network for Unsupervised + Domain Adaptation. CVPR 2017. + """ + + dataset_dir = "office_home" + domains = ["art", "clipart", "product", "real_world"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data(cfg.DATASET.SOURCE_DOMAINS) + train_u = self._read_data(cfg.DATASET.TARGET_DOMAINS) + test = self._read_data(cfg.DATASET.TARGET_DOMAINS) + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, input_domains): + items = [] + + for domain, dname in enumerate(input_domains): + domain_dir = osp.join(self.dataset_dir, dname) + class_names = listdir_nohidden(domain_dir) + class_names.sort() + + for label, class_name in enumerate(class_names): + class_path = osp.join(domain_dir, class_name) + imnames = listdir_nohidden(class_path) + + for imname in imnames: + impath = osp.join(class_path, imname) + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=class_name.lower(), + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/da/visda17.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/visda17.py new file mode 100644 index 0000000..48c1045 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/da/visda17.py @@ -0,0 +1,61 @@ +import os.path as osp + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class VisDA17(DatasetBase): + """VisDA17. + + Focusing on simulation-to-reality domain shift. + + URL: http://ai.bu.edu/visda-2017/. + + Reference: + - Peng et al. VisDA: The Visual Domain Adaptation + Challenge. ArXiv 2017. + """ + + dataset_dir = "visda17" + domains = ["synthetic", "real"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train_x = self._read_data("synthetic") + train_u = self._read_data("real") + test = self._read_data("real") + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data(self, dname): + filedir = "train" if dname == "synthetic" else "validation" + image_list = osp.join(self.dataset_dir, filedir, "image_list.txt") + items = [] + # There is only one source domain + domain = 0 + + with open(image_list, "r") as f: + lines = f.readlines() + + for line in lines: + line = line.strip() + impath, label = line.split(" ") + classname = impath.split("/")[0] + impath = osp.join(self.dataset_dir, filedir, impath) + label = int(label) + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=classname + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/__init__.py new file mode 100644 index 0000000..0a59eff --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/__init__.py @@ -0,0 +1,6 @@ +from .pacs import PACS +from .vlcs import VLCS +from .cifar_c import CIFAR10C, CIFAR100C +from .digits_dg import DigitsDG +from .digit_single import DigitSingle +from .office_home_dg import OfficeHomeDG diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/cifar_c.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/cifar_c.py new file mode 100644 index 0000000..7d1e4f3 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/cifar_c.py @@ -0,0 +1,123 @@ +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + +AVAI_C_TYPES = [ + "brightness", + "contrast", + "defocus_blur", + "elastic_transform", + "fog", + "frost", + "gaussian_blur", + "gaussian_noise", + "glass_blur", + "impulse_noise", + "jpeg_compression", + "motion_blur", + "pixelate", + "saturate", + "shot_noise", + "snow", + "spatter", + "speckle_noise", + "zoom_blur", +] + + +@DATASET_REGISTRY.register() +class CIFAR10C(DatasetBase): + """CIFAR-10 -> CIFAR-10-C. + + Dataset link: https://zenodo.org/record/2535967#.YFwtV2Qzb0o + + Statistics: + - 2 domains: the normal CIFAR-10 vs. a corrupted CIFAR-10 + - 10 categories + + Reference: + - Hendrycks et al. Benchmarking neural network robustness + to common corruptions and perturbations. ICLR 2019. + """ + + dataset_dir = "" + domains = ["cifar10", "cifar10_c"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = root + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + source_domain = cfg.DATASET.SOURCE_DOMAINS[0] + target_domain = cfg.DATASET.TARGET_DOMAINS[0] + assert source_domain == self.domains[0] + assert target_domain == self.domains[1] + + c_type = cfg.DATASET.CIFAR_C_TYPE + c_level = cfg.DATASET.CIFAR_C_LEVEL + + if not c_type: + raise ValueError( + "Please specify DATASET.CIFAR_C_TYPE in the config file" + ) + + assert ( + c_type in AVAI_C_TYPES + ), f'C_TYPE is expected to belong to {AVAI_C_TYPES}, but got "{c_type}"' + assert 1 <= c_level <= 5 + + train_dir = osp.join(self.dataset_dir, source_domain, "train") + test_dir = osp.join( + self.dataset_dir, target_domain, c_type, str(c_level) + ) + + if not osp.exists(test_dir): + raise ValueError + + train = self._read_data(train_dir) + test = self._read_data(test_dir) + + super().__init__(train_x=train, test=test) + + def _read_data(self, data_dir): + class_names = listdir_nohidden(data_dir) + class_names.sort() + items = [] + + for label, class_name in enumerate(class_names): + class_dir = osp.join(data_dir, class_name) + imnames = listdir_nohidden(class_dir) + + for imname in imnames: + impath = osp.join(class_dir, imname) + item = Datum(impath=impath, label=label, domain=0) + items.append(item) + + return items + + +@DATASET_REGISTRY.register() +class CIFAR100C(CIFAR10C): + """CIFAR-100 -> CIFAR-100-C. + + Dataset link: https://zenodo.org/record/3555552#.YFxpQmQzb0o + + Statistics: + - 2 domains: the normal CIFAR-100 vs. a corrupted CIFAR-100 + - 10 categories + + Reference: + - Hendrycks et al. Benchmarking neural network robustness + to common corruptions and perturbations. ICLR 2019. + """ + + dataset_dir = "" + domains = ["cifar100", "cifar100_c"] + + def __init__(self, cfg): + super().__init__(cfg) diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digit_single.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digit_single.py new file mode 100644 index 0000000..5490e92 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digit_single.py @@ -0,0 +1,124 @@ +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + +# Folder names for train and test sets +MNIST = {"train": "train_images", "test": "test_images"} +MNIST_M = {"train": "train_images", "test": "test_images"} +SVHN = {"train": "train_images", "test": "test_images"} +SYN = {"train": "train_images", "test": "test_images"} +USPS = {"train": "train_images", "test": "test_images"} + + +def read_image_list(im_dir, n_max=None, n_repeat=None): + items = [] + + for imname in listdir_nohidden(im_dir): + imname_noext = osp.splitext(imname)[0] + label = int(imname_noext.split("_")[1]) + impath = osp.join(im_dir, imname) + items.append((impath, label)) + + if n_max is not None: + # Note that the sampling process is NOT random, + # which follows that in Volpi et al. NIPS'18. + items = items[:n_max] + + if n_repeat is not None: + items *= n_repeat + + return items + + +def load_mnist(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, MNIST[split]) + n_max = 10000 if split == "train" else None + return read_image_list(data_dir, n_max=n_max) + + +def load_mnist_m(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, MNIST_M[split]) + n_max = 10000 if split == "train" else None + return read_image_list(data_dir, n_max=n_max) + + +def load_svhn(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, SVHN[split]) + n_max = 10000 if split == "train" else None + return read_image_list(data_dir, n_max=n_max) + + +def load_syn(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, SYN[split]) + n_max = 10000 if split == "train" else None + return read_image_list(data_dir, n_max=n_max) + + +def load_usps(dataset_dir, split="train"): + data_dir = osp.join(dataset_dir, USPS[split]) + return read_image_list(data_dir) + + +@DATASET_REGISTRY.register() +class DigitSingle(DatasetBase): + """Digit recognition datasets for single-source domain generalization. + + There are five digit datasets: + - MNIST: hand-written digits. + - MNIST-M: variant of MNIST with blended background. + - SVHN: street view house number. + - SYN: synthetic digits. + - USPS: hand-written digits, slightly different from MNIST. + + Protocol: + Volpi et al. train a model using 10,000 images from MNIST and + evaluate the model on the test split of the other four datasets. However, + the code does not restrict you to only use MNIST as the source dataset. + Instead, you can use any dataset as the source. But note that only 10,000 + images will be sampled from the source dataset for training. + + Reference: + - Lecun et al. Gradient-based learning applied to document + recognition. IEEE 1998. + - Ganin et al. Domain-adversarial training of neural networks. + JMLR 2016. + - Netzer et al. Reading digits in natural images with unsupervised + feature learning. NIPS-W 2011. + - Volpi et al. Generalizing to Unseen Domains via Adversarial Data + Augmentation. NIPS 2018. + """ + + # Reuse the digit-5 folder instead of creating a new folder + dataset_dir = "digit5" + domains = ["mnist", "mnist_m", "svhn", "syn", "usps"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="train") + val = self._read_data(cfg.DATASET.SOURCE_DOMAINS, split="test") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, split="test") + + super().__init__(train_x=train, val=val, test=test) + + def _read_data(self, input_domains, split="train"): + items = [] + + for domain, dname in enumerate(input_domains): + func = "load_" + dname + domain_dir = osp.join(self.dataset_dir, dname) + items_d = eval(func)(domain_dir, split=split) + + for impath, label in items_d: + item = Datum(impath=impath, label=label, domain=domain) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digits_dg.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digits_dg.py new file mode 100644 index 0000000..43ccd6f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/digits_dg.py @@ -0,0 +1,97 @@ +import glob +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class DigitsDG(DatasetBase): + """Digits-DG. + + It contains 4 digit datasets: + - MNIST: hand-written digits. + - MNIST-M: variant of MNIST with blended background. + - SVHN: street view house number. + - SYN: synthetic digits. + + Reference: + - Lecun et al. Gradient-based learning applied to document + recognition. IEEE 1998. + - Ganin et al. Domain-adversarial training of neural networks. + JMLR 2016. + - Netzer et al. Reading digits in natural images with unsupervised + feature learning. NIPS-W 2011. + - Zhou et al. Deep Domain-Adversarial Image Generation for Domain + Generalisation. AAAI 2020. + """ + + dataset_dir = "digits_dg" + domains = ["mnist", "mnist_m", "svhn", "syn"] + data_url = "https://drive.google.com/uc?id=15V7EsHfCcfbKgsDmzQKj_DfXt_XYp_P7" + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + if not osp.exists(self.dataset_dir): + dst = osp.join(root, "digits_dg.zip") + self.download_data(self.data_url, dst, from_gdrive=True) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train = self.read_data( + self.dataset_dir, cfg.DATASET.SOURCE_DOMAINS, "train" + ) + val = self.read_data( + self.dataset_dir, cfg.DATASET.SOURCE_DOMAINS, "val" + ) + test = self.read_data( + self.dataset_dir, cfg.DATASET.TARGET_DOMAINS, "all" + ) + + super().__init__(train_x=train, val=val, test=test) + + @staticmethod + def read_data(dataset_dir, input_domains, split): + + def _load_data_from_directory(directory): + folders = listdir_nohidden(directory) + folders.sort() + items_ = [] + + for label, folder in enumerate(folders): + impaths = glob.glob(osp.join(directory, folder, "*.jpg")) + + for impath in impaths: + items_.append((impath, label)) + + return items_ + + items = [] + + for domain, dname in enumerate(input_domains): + if split == "all": + train_dir = osp.join(dataset_dir, dname, "train") + impath_label_list = _load_data_from_directory(train_dir) + val_dir = osp.join(dataset_dir, dname, "val") + impath_label_list += _load_data_from_directory(val_dir) + else: + split_dir = osp.join(dataset_dir, dname, split) + impath_label_list = _load_data_from_directory(split_dir) + + for impath, label in impath_label_list: + class_name = impath.split("/")[-2].lower() + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=class_name + ) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/office_home_dg.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/office_home_dg.py new file mode 100644 index 0000000..ef08754 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/office_home_dg.py @@ -0,0 +1,49 @@ +import os.path as osp + +from ..build import DATASET_REGISTRY +from .digits_dg import DigitsDG +from ..base_dataset import DatasetBase + + +@DATASET_REGISTRY.register() +class OfficeHomeDG(DatasetBase): + """Office-Home. + + Statistics: + - Around 15,500 images. + - 65 classes related to office and home objects. + - 4 domains: Art, Clipart, Product, Real World. + - URL: http://hemanthdv.org/OfficeHome-Dataset/. + + Reference: + - Venkateswara et al. Deep Hashing Network for Unsupervised + Domain Adaptation. CVPR 2017. + """ + + dataset_dir = "office_home_dg" + domains = ["art", "clipart", "product", "real_world"] + data_url = "https://drive.google.com/uc?id=1gkbf_KaxoBws-GWT3XIPZ7BnkqbAxIFa" + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + if not osp.exists(self.dataset_dir): + dst = osp.join(root, "office_home_dg.zip") + self.download_data(self.data_url, dst, from_gdrive=True) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train = DigitsDG.read_data( + self.dataset_dir, cfg.DATASET.SOURCE_DOMAINS, "train" + ) + val = DigitsDG.read_data( + self.dataset_dir, cfg.DATASET.SOURCE_DOMAINS, "val" + ) + test = DigitsDG.read_data( + self.dataset_dir, cfg.DATASET.TARGET_DOMAINS, "all" + ) + + super().__init__(train_x=train, val=val, test=test) diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/pacs.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/pacs.py new file mode 100644 index 0000000..e0159d4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/pacs.py @@ -0,0 +1,94 @@ +import os.path as osp + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class PACS(DatasetBase): + """PACS. + + Statistics: + - 4 domains: Photo (1,670), Art (2,048), Cartoon + (2,344), Sketch (3,929). + - 7 categories: dog, elephant, giraffe, guitar, horse, + house and person. + + Reference: + - Li et al. Deeper, broader and artier domain generalization. + ICCV 2017. + """ + + dataset_dir = "pacs" + domains = ["art_painting", "cartoon", "photo", "sketch"] + data_url = "https://drive.google.com/uc?id=1m4X4fROCCXMO0lRLrr6Zz9Vb3974NWhE" + # the following images contain errors and should be ignored + _error_paths = ["sketch/dog/n02103406_4068-1.png"] + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + self.image_dir = osp.join(self.dataset_dir, "images") + self.split_dir = osp.join(self.dataset_dir, "splits") + + if not osp.exists(self.dataset_dir): + dst = osp.join(root, "pacs.zip") + self.download_data(self.data_url, dst, from_gdrive=True) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train = self._read_data(cfg.DATASET.SOURCE_DOMAINS, "train") + val = self._read_data(cfg.DATASET.SOURCE_DOMAINS, "crossval") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, "all") + + super().__init__(train_x=train, val=val, test=test) + + def _read_data(self, input_domains, split): + items = [] + + for domain, dname in enumerate(input_domains): + if split == "all": + file_train = osp.join( + self.split_dir, dname + "_train_kfold.txt" + ) + impath_label_list = self._read_split_pacs(file_train) + file_val = osp.join( + self.split_dir, dname + "_crossval_kfold.txt" + ) + impath_label_list += self._read_split_pacs(file_val) + else: + file = osp.join( + self.split_dir, dname + "_" + split + "_kfold.txt" + ) + impath_label_list = self._read_split_pacs(file) + + for impath, label in impath_label_list: + classname = impath.split("/")[-2] + item = Datum( + impath=impath, + label=label, + domain=domain, + classname=classname + ) + items.append(item) + + return items + + def _read_split_pacs(self, split_file): + items = [] + + with open(split_file, "r") as f: + lines = f.readlines() + + for line in lines: + line = line.strip() + impath, label = line.split(" ") + if impath in self._error_paths: + continue + impath = osp.join(self.image_dir, impath) + label = int(label) - 1 + items.append((impath, label)) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/vlcs.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/vlcs.py new file mode 100644 index 0000000..77218e2 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/dg/vlcs.py @@ -0,0 +1,60 @@ +import glob +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class VLCS(DatasetBase): + """VLCS. + + Statistics: + - 4 domains: CALTECH, LABELME, PASCAL, SUN + - 5 categories: bird, car, chair, dog, and person. + + Reference: + - Torralba and Efros. Unbiased look at dataset bias. CVPR 2011. + """ + + dataset_dir = "VLCS" + domains = ["caltech", "labelme", "pascal", "sun"] + data_url = "https://drive.google.com/uc?id=1r0WL5DDqKfSPp9E3tRENwHaXNs1olLZd" + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + + if not osp.exists(self.dataset_dir): + dst = osp.join(root, "vlcs.zip") + self.download_data(self.data_url, dst, from_gdrive=True) + + self.check_input_domains( + cfg.DATASET.SOURCE_DOMAINS, cfg.DATASET.TARGET_DOMAINS + ) + + train = self._read_data(cfg.DATASET.SOURCE_DOMAINS, "train") + val = self._read_data(cfg.DATASET.SOURCE_DOMAINS, "crossval") + test = self._read_data(cfg.DATASET.TARGET_DOMAINS, "test") + + super().__init__(train_x=train, val=val, test=test) + + def _read_data(self, input_domains, split): + items = [] + + for domain, dname in enumerate(input_domains): + dname = dname.upper() + path = osp.join(self.dataset_dir, dname, split) + folders = listdir_nohidden(path) + folders.sort() + + for label, folder in enumerate(folders): + impaths = glob.glob(osp.join(path, folder, "*.jpg")) + + for impath in impaths: + item = Datum(impath=impath, label=label, domain=domain) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/__init__.py new file mode 100644 index 0000000..a6607dc --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/__init__.py @@ -0,0 +1,3 @@ +from .svhn import SVHN +from .cifar import CIFAR10, CIFAR100 +from .stl10 import STL10 diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/cifar.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/cifar.py new file mode 100644 index 0000000..5584527 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/cifar.py @@ -0,0 +1,108 @@ +import math +import random +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class CIFAR10(DatasetBase): + """CIFAR10 for SSL. + + Reference: + - Krizhevsky. Learning Multiple Layers of Features + from Tiny Images. Tech report. + """ + + dataset_dir = "cifar10" + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + train_dir = osp.join(self.dataset_dir, "train") + test_dir = osp.join(self.dataset_dir, "test") + + assert cfg.DATASET.NUM_LABELED > 0 + + train_x, train_u, val = self._read_data_train( + train_dir, cfg.DATASET.NUM_LABELED, cfg.DATASET.VAL_PERCENT + ) + test = self._read_data_test(test_dir) + + if cfg.DATASET.ALL_AS_UNLABELED: + train_u = train_u + train_x + + if len(val) == 0: + val = None + + super().__init__(train_x=train_x, train_u=train_u, val=val, test=test) + + def _read_data_train(self, data_dir, num_labeled, val_percent): + class_names = listdir_nohidden(data_dir) + class_names.sort() + num_labeled_per_class = num_labeled / len(class_names) + items_x, items_u, items_v = [], [], [] + + for label, class_name in enumerate(class_names): + class_dir = osp.join(data_dir, class_name) + imnames = listdir_nohidden(class_dir) + + # Split into train and val following Oliver et al. 2018 + # Set cfg.DATASET.VAL_PERCENT to 0 to not use val data + num_val = math.floor(len(imnames) * val_percent) + imnames_train = imnames[num_val:] + imnames_val = imnames[:num_val] + + # Note we do shuffle after split + random.shuffle(imnames_train) + + for i, imname in enumerate(imnames_train): + impath = osp.join(class_dir, imname) + item = Datum(impath=impath, label=label) + + if (i + 1) <= num_labeled_per_class: + items_x.append(item) + + else: + items_u.append(item) + + for imname in imnames_val: + impath = osp.join(class_dir, imname) + item = Datum(impath=impath, label=label) + items_v.append(item) + + return items_x, items_u, items_v + + def _read_data_test(self, data_dir): + class_names = listdir_nohidden(data_dir) + class_names.sort() + items = [] + + for label, class_name in enumerate(class_names): + class_dir = osp.join(data_dir, class_name) + imnames = listdir_nohidden(class_dir) + + for imname in imnames: + impath = osp.join(class_dir, imname) + item = Datum(impath=impath, label=label) + items.append(item) + + return items + + +@DATASET_REGISTRY.register() +class CIFAR100(CIFAR10): + """CIFAR100 for SSL. + + Reference: + - Krizhevsky. Learning Multiple Layers of Features + from Tiny Images. Tech report. + """ + + dataset_dir = "cifar100" + + def __init__(self, cfg): + super().__init__(cfg) diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/stl10.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/stl10.py new file mode 100644 index 0000000..6a1f9f2 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/stl10.py @@ -0,0 +1,87 @@ +import numpy as np +import os.path as osp + +from dassl.utils import listdir_nohidden + +from ..build import DATASET_REGISTRY +from ..base_dataset import Datum, DatasetBase + + +@DATASET_REGISTRY.register() +class STL10(DatasetBase): + """STL-10 dataset. + + Description: + - 10 classes: airplane, bird, car, cat, deer, dog, horse, + monkey, ship, truck. + - Images are 96x96 pixels, color. + - 500 training images per class, 800 test images per class. + - 100,000 unlabeled images for unsupervised learning. + + Reference: + - Coates et al. An Analysis of Single Layer Networks in + Unsupervised Feature Learning. AISTATS 2011. + """ + + dataset_dir = "stl10" + + def __init__(self, cfg): + root = osp.abspath(osp.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = osp.join(root, self.dataset_dir) + train_dir = osp.join(self.dataset_dir, "train") + test_dir = osp.join(self.dataset_dir, "test") + unlabeled_dir = osp.join(self.dataset_dir, "unlabeled") + fold_file = osp.join( + self.dataset_dir, "stl10_binary", "fold_indices.txt" + ) + + # Only use the first five splits + assert 0 <= cfg.DATASET.STL10_FOLD <= 4 + + train_x = self._read_data_train( + train_dir, cfg.DATASET.STL10_FOLD, fold_file + ) + train_u = self._read_data_all(unlabeled_dir) + test = self._read_data_all(test_dir) + + if cfg.DATASET.ALL_AS_UNLABELED: + train_u = train_u + train_x + + super().__init__(train_x=train_x, train_u=train_u, test=test) + + def _read_data_train(self, data_dir, fold, fold_file): + imnames = listdir_nohidden(data_dir) + imnames.sort() + items = [] + + list_idx = list(range(len(imnames))) + if fold >= 0: + with open(fold_file, "r") as f: + str_idx = f.read().splitlines()[fold] + list_idx = np.fromstring(str_idx, dtype=np.uint8, sep=" ") + + for i in list_idx: + imname = imnames[i] + impath = osp.join(data_dir, imname) + label = osp.splitext(imname)[0].split("_")[1] + label = int(label) + item = Datum(impath=impath, label=label) + items.append(item) + + return items + + def _read_data_all(self, data_dir): + imnames = listdir_nohidden(data_dir) + items = [] + + for imname in imnames: + impath = osp.join(data_dir, imname) + label = osp.splitext(imname)[0].split("_")[1] + if label == "none": + label = -1 + else: + label = int(label) + item = Datum(impath=impath, label=label) + items.append(item) + + return items diff --git a/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/svhn.py b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/svhn.py new file mode 100644 index 0000000..15e0de5 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/datasets/ssl/svhn.py @@ -0,0 +1,17 @@ +from .cifar import CIFAR10 +from ..build import DATASET_REGISTRY + + +@DATASET_REGISTRY.register() +class SVHN(CIFAR10): + """SVHN for SSL. + + Reference: + - Netzer et al. Reading Digits in Natural Images with + Unsupervised Feature Learning. NIPS-W 2011. + """ + + dataset_dir = "svhn" + + def __init__(self, cfg): + super().__init__(cfg) diff --git a/Dassl.ProGrad.pytorch/dassl/data/samplers.py b/Dassl.ProGrad.pytorch/dassl/data/samplers.py new file mode 100644 index 0000000..562bfbc --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/samplers.py @@ -0,0 +1,205 @@ +import copy +import numpy as np +import random +from collections import defaultdict +from torch.utils.data.sampler import Sampler, RandomSampler, SequentialSampler + + +class RandomDomainSampler(Sampler): + """Randomly samples N domains each with K images + to form a minibatch of size N*K. + + Args: + data_source (list): list of Datums. + batch_size (int): batch size. + n_domain (int): number of domains to sample in a minibatch. + """ + + def __init__(self, data_source, batch_size, n_domain): + self.data_source = data_source + + # Keep track of image indices for each domain + self.domain_dict = defaultdict(list) + for i, item in enumerate(data_source): + self.domain_dict[item.domain].append(i) + self.domains = list(self.domain_dict.keys()) + + # Make sure each domain has equal number of images + if n_domain is None or n_domain <= 0: + n_domain = len(self.domains) + assert batch_size % n_domain == 0 + self.n_img_per_domain = batch_size // n_domain + + self.batch_size = batch_size + # n_domain denotes number of domains sampled in a minibatch + self.n_domain = n_domain + self.length = len(list(self.__iter__())) + + def __iter__(self): + domain_dict = copy.deepcopy(self.domain_dict) + final_idxs = [] + stop_sampling = False + + while not stop_sampling: + selected_domains = random.sample(self.domains, self.n_domain) + + for domain in selected_domains: + idxs = domain_dict[domain] + selected_idxs = random.sample(idxs, self.n_img_per_domain) + final_idxs.extend(selected_idxs) + + for idx in selected_idxs: + domain_dict[domain].remove(idx) + + remaining = len(domain_dict[domain]) + if remaining < self.n_img_per_domain: + stop_sampling = True + + return iter(final_idxs) + + def __len__(self): + return self.length + + +class SeqDomainSampler(Sampler): + """Sequential domain sampler, which randomly samples K + images from each domain to form a minibatch. + + Args: + data_source (list): list of Datums. + batch_size (int): batch size. + """ + + def __init__(self, data_source, batch_size): + self.data_source = data_source + + # Keep track of image indices for each domain + self.domain_dict = defaultdict(list) + for i, item in enumerate(data_source): + self.domain_dict[item.domain].append(i) + self.domains = list(self.domain_dict.keys()) + self.domains.sort() + + # Make sure each domain has equal number of images + n_domain = len(self.domains) + assert batch_size % n_domain == 0 + self.n_img_per_domain = batch_size // n_domain + + self.batch_size = batch_size + # n_domain denotes number of domains sampled in a minibatch + self.n_domain = n_domain + self.length = len(list(self.__iter__())) + + def __iter__(self): + domain_dict = copy.deepcopy(self.domain_dict) + final_idxs = [] + stop_sampling = False + + while not stop_sampling: + for domain in self.domains: + idxs = domain_dict[domain] + selected_idxs = random.sample(idxs, self.n_img_per_domain) + final_idxs.extend(selected_idxs) + + for idx in selected_idxs: + domain_dict[domain].remove(idx) + + remaining = len(domain_dict[domain]) + if remaining < self.n_img_per_domain: + stop_sampling = True + + return iter(final_idxs) + + def __len__(self): + return self.length + + +class RandomClassSampler(Sampler): + """Randomly samples N classes each with K instances to + form a minibatch of size N*K. + + Modified from https://github.com/KaiyangZhou/deep-person-reid. + + Args: + data_source (list): list of Datums. + batch_size (int): batch size. + n_ins (int): number of instances per class to sample in a minibatch. + """ + + def __init__(self, data_source, batch_size, n_ins): + if batch_size < n_ins: + raise ValueError( + "batch_size={} must be no less " + "than n_ins={}".format(batch_size, n_ins) + ) + + self.data_source = data_source + self.batch_size = batch_size + self.n_ins = n_ins + self.ncls_per_batch = self.batch_size // self.n_ins + self.index_dic = defaultdict(list) + for index, item in enumerate(data_source): + self.index_dic[item.label].append(index) + self.labels = list(self.index_dic.keys()) + assert len(self.labels) >= self.ncls_per_batch + + # estimate number of images in an epoch + self.length = len(list(self.__iter__())) + + def __iter__(self): + batch_idxs_dict = defaultdict(list) + + for label in self.labels: + idxs = copy.deepcopy(self.index_dic[label]) + if len(idxs) < self.n_ins: + idxs = np.random.choice(idxs, size=self.n_ins, replace=True) + random.shuffle(idxs) + batch_idxs = [] + for idx in idxs: + batch_idxs.append(idx) + if len(batch_idxs) == self.n_ins: + batch_idxs_dict[label].append(batch_idxs) + batch_idxs = [] + + avai_labels = copy.deepcopy(self.labels) + final_idxs = [] + + while len(avai_labels) >= self.ncls_per_batch: + selected_labels = random.sample(avai_labels, self.ncls_per_batch) + for label in selected_labels: + batch_idxs = batch_idxs_dict[label].pop(0) + final_idxs.extend(batch_idxs) + if len(batch_idxs_dict[label]) == 0: + avai_labels.remove(label) + + return iter(final_idxs) + + def __len__(self): + return self.length + + +def build_sampler( + sampler_type, + cfg=None, + data_source=None, + batch_size=32, + n_domain=0, + n_ins=16 +): + if sampler_type == "RandomSampler": + return RandomSampler(data_source) + + elif sampler_type == "SequentialSampler": + return SequentialSampler(data_source) + + elif sampler_type == "RandomDomainSampler": + return RandomDomainSampler(data_source, batch_size, n_domain) + + elif sampler_type == "SeqDomainSampler": + return SeqDomainSampler(data_source, batch_size) + + elif sampler_type == "RandomClassSampler": + return RandomClassSampler(data_source, batch_size, n_ins) + + else: + raise ValueError("Unknown sampler type: {}".format(sampler_type)) diff --git a/Dassl.ProGrad.pytorch/dassl/data/transforms/__init__.py b/Dassl.ProGrad.pytorch/dassl/data/transforms/__init__.py new file mode 100644 index 0000000..172ac02 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/transforms/__init__.py @@ -0,0 +1 @@ +from .transforms import build_transform diff --git a/Dassl.ProGrad.pytorch/dassl/data/transforms/autoaugment.py b/Dassl.ProGrad.pytorch/dassl/data/transforms/autoaugment.py new file mode 100644 index 0000000..2e14fce --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/transforms/autoaugment.py @@ -0,0 +1,273 @@ +""" +Source: https://github.com/DeepVoltaire/AutoAugment +""" +import numpy as np +import random +from PIL import Image, ImageOps, ImageEnhance + + +class ImageNetPolicy: + """Randomly choose one of the best 24 Sub-policies on ImageNet. + + Example: + >>> policy = ImageNetPolicy() + >>> transformed = policy(image) + + Example as a PyTorch Transform: + >>> transform=transforms.Compose([ + >>> transforms.Resize(256), + >>> ImageNetPolicy(), + >>> transforms.ToTensor()]) + """ + + def __init__(self, fillcolor=(128, 128, 128)): + self.policies = [ + SubPolicy(0.4, "posterize", 8, 0.6, "rotate", 9, fillcolor), + SubPolicy(0.6, "solarize", 5, 0.6, "autocontrast", 5, fillcolor), + SubPolicy(0.8, "equalize", 8, 0.6, "equalize", 3, fillcolor), + SubPolicy(0.6, "posterize", 7, 0.6, "posterize", 6, fillcolor), + SubPolicy(0.4, "equalize", 7, 0.2, "solarize", 4, fillcolor), + SubPolicy(0.4, "equalize", 4, 0.8, "rotate", 8, fillcolor), + SubPolicy(0.6, "solarize", 3, 0.6, "equalize", 7, fillcolor), + SubPolicy(0.8, "posterize", 5, 1.0, "equalize", 2, fillcolor), + SubPolicy(0.2, "rotate", 3, 0.6, "solarize", 8, fillcolor), + SubPolicy(0.6, "equalize", 8, 0.4, "posterize", 6, fillcolor), + SubPolicy(0.8, "rotate", 8, 0.4, "color", 0, fillcolor), + SubPolicy(0.4, "rotate", 9, 0.6, "equalize", 2, fillcolor), + SubPolicy(0.0, "equalize", 7, 0.8, "equalize", 8, fillcolor), + SubPolicy(0.6, "invert", 4, 1.0, "equalize", 8, fillcolor), + SubPolicy(0.6, "color", 4, 1.0, "contrast", 8, fillcolor), + SubPolicy(0.8, "rotate", 8, 1.0, "color", 2, fillcolor), + SubPolicy(0.8, "color", 8, 0.8, "solarize", 7, fillcolor), + SubPolicy(0.4, "sharpness", 7, 0.6, "invert", 8, fillcolor), + SubPolicy(0.6, "shearX", 5, 1.0, "equalize", 9, fillcolor), + SubPolicy(0.4, "color", 0, 0.6, "equalize", 3, fillcolor), + SubPolicy(0.4, "equalize", 7, 0.2, "solarize", 4, fillcolor), + SubPolicy(0.6, "solarize", 5, 0.6, "autocontrast", 5, fillcolor), + SubPolicy(0.6, "invert", 4, 1.0, "equalize", 8, fillcolor), + SubPolicy(0.6, "color", 4, 1.0, "contrast", 8, fillcolor), + SubPolicy(0.8, "equalize", 8, 0.6, "equalize", 3, fillcolor), + ] + + def __call__(self, img): + policy_idx = random.randint(0, len(self.policies) - 1) + return self.policies[policy_idx](img) + + def __repr__(self): + return "AutoAugment ImageNet Policy" + + +class CIFAR10Policy: + """Randomly choose one of the best 25 Sub-policies on CIFAR10. + + Example: + >>> policy = CIFAR10Policy() + >>> transformed = policy(image) + + Example as a PyTorch Transform: + >>> transform=transforms.Compose([ + >>> transforms.Resize(256), + >>> CIFAR10Policy(), + >>> transforms.ToTensor()]) + """ + + def __init__(self, fillcolor=(128, 128, 128)): + self.policies = [ + SubPolicy(0.1, "invert", 7, 0.2, "contrast", 6, fillcolor), + SubPolicy(0.7, "rotate", 2, 0.3, "translateX", 9, fillcolor), + SubPolicy(0.8, "sharpness", 1, 0.9, "sharpness", 3, fillcolor), + SubPolicy(0.5, "shearY", 8, 0.7, "translateY", 9, fillcolor), + SubPolicy(0.5, "autocontrast", 8, 0.9, "equalize", 2, fillcolor), + SubPolicy(0.2, "shearY", 7, 0.3, "posterize", 7, fillcolor), + SubPolicy(0.4, "color", 3, 0.6, "brightness", 7, fillcolor), + SubPolicy(0.3, "sharpness", 9, 0.7, "brightness", 9, fillcolor), + SubPolicy(0.6, "equalize", 5, 0.5, "equalize", 1, fillcolor), + SubPolicy(0.6, "contrast", 7, 0.6, "sharpness", 5, fillcolor), + SubPolicy(0.7, "color", 7, 0.5, "translateX", 8, fillcolor), + SubPolicy(0.3, "equalize", 7, 0.4, "autocontrast", 8, fillcolor), + SubPolicy(0.4, "translateY", 3, 0.2, "sharpness", 6, fillcolor), + SubPolicy(0.9, "brightness", 6, 0.2, "color", 8, fillcolor), + SubPolicy(0.5, "solarize", 2, 0.0, "invert", 3, fillcolor), + SubPolicy(0.2, "equalize", 0, 0.6, "autocontrast", 0, fillcolor), + SubPolicy(0.2, "equalize", 8, 0.6, "equalize", 4, fillcolor), + SubPolicy(0.9, "color", 9, 0.6, "equalize", 6, fillcolor), + SubPolicy(0.8, "autocontrast", 4, 0.2, "solarize", 8, fillcolor), + SubPolicy(0.1, "brightness", 3, 0.7, "color", 0, fillcolor), + SubPolicy(0.4, "solarize", 5, 0.9, "autocontrast", 3, fillcolor), + SubPolicy(0.9, "translateY", 9, 0.7, "translateY", 9, fillcolor), + SubPolicy(0.9, "autocontrast", 2, 0.8, "solarize", 3, fillcolor), + SubPolicy(0.8, "equalize", 8, 0.1, "invert", 3, fillcolor), + SubPolicy(0.7, "translateY", 9, 0.9, "autocontrast", 1, fillcolor), + ] + + def __call__(self, img): + policy_idx = random.randint(0, len(self.policies) - 1) + return self.policies[policy_idx](img) + + def __repr__(self): + return "AutoAugment CIFAR10 Policy" + + +class SVHNPolicy: + """Randomly choose one of the best 25 Sub-policies on SVHN. + + Example: + >>> policy = SVHNPolicy() + >>> transformed = policy(image) + + Example as a PyTorch Transform: + >>> transform=transforms.Compose([ + >>> transforms.Resize(256), + >>> SVHNPolicy(), + >>> transforms.ToTensor()]) + """ + + def __init__(self, fillcolor=(128, 128, 128)): + self.policies = [ + SubPolicy(0.9, "shearX", 4, 0.2, "invert", 3, fillcolor), + SubPolicy(0.9, "shearY", 8, 0.7, "invert", 5, fillcolor), + SubPolicy(0.6, "equalize", 5, 0.6, "solarize", 6, fillcolor), + SubPolicy(0.9, "invert", 3, 0.6, "equalize", 3, fillcolor), + SubPolicy(0.6, "equalize", 1, 0.9, "rotate", 3, fillcolor), + SubPolicy(0.9, "shearX", 4, 0.8, "autocontrast", 3, fillcolor), + SubPolicy(0.9, "shearY", 8, 0.4, "invert", 5, fillcolor), + SubPolicy(0.9, "shearY", 5, 0.2, "solarize", 6, fillcolor), + SubPolicy(0.9, "invert", 6, 0.8, "autocontrast", 1, fillcolor), + SubPolicy(0.6, "equalize", 3, 0.9, "rotate", 3, fillcolor), + SubPolicy(0.9, "shearX", 4, 0.3, "solarize", 3, fillcolor), + SubPolicy(0.8, "shearY", 8, 0.7, "invert", 4, fillcolor), + SubPolicy(0.9, "equalize", 5, 0.6, "translateY", 6, fillcolor), + SubPolicy(0.9, "invert", 4, 0.6, "equalize", 7, fillcolor), + SubPolicy(0.3, "contrast", 3, 0.8, "rotate", 4, fillcolor), + SubPolicy(0.8, "invert", 5, 0.0, "translateY", 2, fillcolor), + SubPolicy(0.7, "shearY", 6, 0.4, "solarize", 8, fillcolor), + SubPolicy(0.6, "invert", 4, 0.8, "rotate", 4, fillcolor), + SubPolicy(0.3, "shearY", 7, 0.9, "translateX", 3, fillcolor), + SubPolicy(0.1, "shearX", 6, 0.6, "invert", 5, fillcolor), + SubPolicy(0.7, "solarize", 2, 0.6, "translateY", 7, fillcolor), + SubPolicy(0.8, "shearY", 4, 0.8, "invert", 8, fillcolor), + SubPolicy(0.7, "shearX", 9, 0.8, "translateY", 3, fillcolor), + SubPolicy(0.8, "shearY", 5, 0.7, "autocontrast", 3, fillcolor), + SubPolicy(0.7, "shearX", 2, 0.1, "invert", 5, fillcolor), + ] + + def __call__(self, img): + policy_idx = random.randint(0, len(self.policies) - 1) + return self.policies[policy_idx](img) + + def __repr__(self): + return "AutoAugment SVHN Policy" + + +class SubPolicy(object): + + def __init__( + self, + p1, + operation1, + magnitude_idx1, + p2, + operation2, + magnitude_idx2, + fillcolor=(128, 128, 128), + ): + ranges = { + "shearX": np.linspace(0, 0.3, 10), + "shearY": np.linspace(0, 0.3, 10), + "translateX": np.linspace(0, 150 / 331, 10), + "translateY": np.linspace(0, 150 / 331, 10), + "rotate": np.linspace(0, 30, 10), + "color": np.linspace(0.0, 0.9, 10), + "posterize": np.round(np.linspace(8, 4, 10), 0).astype(np.int), + "solarize": np.linspace(256, 0, 10), + "contrast": np.linspace(0.0, 0.9, 10), + "sharpness": np.linspace(0.0, 0.9, 10), + "brightness": np.linspace(0.0, 0.9, 10), + "autocontrast": [0] * 10, + "equalize": [0] * 10, + "invert": [0] * 10, + } + + # from https://stackoverflow.com/questions/5252170/specify-image-filling-color-when-rotating-in-python-with-pil-and-setting-expand + def rotate_with_fill(img, magnitude): + rot = img.convert("RGBA").rotate(magnitude) + return Image.composite( + rot, Image.new("RGBA", rot.size, (128, ) * 4), rot + ).convert(img.mode) + + func = { + "shearX": + lambda img, magnitude: img.transform( + img.size, + Image.AFFINE, + (1, magnitude * random.choice([-1, 1]), 0, 0, 1, 0), + Image.BICUBIC, + fillcolor=fillcolor, + ), + "shearY": + lambda img, magnitude: img.transform( + img.size, + Image.AFFINE, + (1, 0, 0, magnitude * random.choice([-1, 1]), 1, 0), + Image.BICUBIC, + fillcolor=fillcolor, + ), + "translateX": + lambda img, magnitude: img.transform( + img.size, + Image.AFFINE, + ( + 1, 0, magnitude * img.size[0] * random.choice([-1, 1]), 0, + 1, 0 + ), + fillcolor=fillcolor, + ), + "translateY": + lambda img, magnitude: img.transform( + img.size, + Image.AFFINE, + ( + 1, 0, 0, 0, 1, magnitude * img.size[1] * random. + choice([-1, 1]) + ), + fillcolor=fillcolor, + ), + "rotate": + lambda img, magnitude: rotate_with_fill(img, magnitude), + "color": + lambda img, magnitude: ImageEnhance.Color(img). + enhance(1 + magnitude * random.choice([-1, 1])), + "posterize": + lambda img, magnitude: ImageOps.posterize(img, magnitude), + "solarize": + lambda img, magnitude: ImageOps.solarize(img, magnitude), + "contrast": + lambda img, magnitude: ImageEnhance.Contrast(img). + enhance(1 + magnitude * random.choice([-1, 1])), + "sharpness": + lambda img, magnitude: ImageEnhance.Sharpness(img). + enhance(1 + magnitude * random.choice([-1, 1])), + "brightness": + lambda img, magnitude: ImageEnhance.Brightness(img). + enhance(1 + magnitude * random.choice([-1, 1])), + "autocontrast": + lambda img, magnitude: ImageOps.autocontrast(img), + "equalize": + lambda img, magnitude: ImageOps.equalize(img), + "invert": + lambda img, magnitude: ImageOps.invert(img), + } + + self.p1 = p1 + self.operation1 = func[operation1] + self.magnitude1 = ranges[operation1][magnitude_idx1] + self.p2 = p2 + self.operation2 = func[operation2] + self.magnitude2 = ranges[operation2][magnitude_idx2] + + def __call__(self, img): + if random.random() < self.p1: + img = self.operation1(img, self.magnitude1) + if random.random() < self.p2: + img = self.operation2(img, self.magnitude2) + return img diff --git a/Dassl.ProGrad.pytorch/dassl/data/transforms/randaugment.py b/Dassl.ProGrad.pytorch/dassl/data/transforms/randaugment.py new file mode 100644 index 0000000..5c39ff3 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/transforms/randaugment.py @@ -0,0 +1,363 @@ +""" +Credit to +1) https://github.com/ildoonet/pytorch-randaugment +2) https://github.com/kakaobrain/fast-autoaugment +""" +import numpy as np +import random +import PIL +import torch +import PIL.ImageOps +import PIL.ImageDraw +import PIL.ImageEnhance +from PIL import Image + + +def ShearX(img, v): + assert -0.3 <= v <= 0.3 + if random.random() > 0.5: + v = -v + return img.transform(img.size, PIL.Image.AFFINE, (1, v, 0, 0, 1, 0)) + + +def ShearY(img, v): + assert -0.3 <= v <= 0.3 + if random.random() > 0.5: + v = -v + return img.transform(img.size, PIL.Image.AFFINE, (1, 0, 0, v, 1, 0)) + + +def TranslateX(img, v): + # [-150, 150] => percentage: [-0.45, 0.45] + assert -0.45 <= v <= 0.45 + if random.random() > 0.5: + v = -v + v = v * img.size[0] + return img.transform(img.size, PIL.Image.AFFINE, (1, 0, v, 0, 1, 0)) + + +def TranslateXabs(img, v): + # [-150, 150] => percentage: [-0.45, 0.45] + assert 0 <= v + if random.random() > 0.5: + v = -v + return img.transform(img.size, PIL.Image.AFFINE, (1, 0, v, 0, 1, 0)) + + +def TranslateY(img, v): + # [-150, 150] => percentage: [-0.45, 0.45] + assert -0.45 <= v <= 0.45 + if random.random() > 0.5: + v = -v + v = v * img.size[1] + return img.transform(img.size, PIL.Image.AFFINE, (1, 0, 0, 0, 1, v)) + + +def TranslateYabs(img, v): + # [-150, 150] => percentage: [-0.45, 0.45] + assert 0 <= v + if random.random() > 0.5: + v = -v + return img.transform(img.size, PIL.Image.AFFINE, (1, 0, 0, 0, 1, v)) + + +def Rotate(img, v): + assert -30 <= v <= 30 + if random.random() > 0.5: + v = -v + return img.rotate(v) + + +def AutoContrast(img, _): + return PIL.ImageOps.autocontrast(img) + + +def Invert(img, _): + return PIL.ImageOps.invert(img) + + +def Equalize(img, _): + return PIL.ImageOps.equalize(img) + + +def Flip(img, _): + return PIL.ImageOps.mirror(img) + + +def Solarize(img, v): + assert 0 <= v <= 256 + return PIL.ImageOps.solarize(img, v) + + +def SolarizeAdd(img, addition=0, threshold=128): + img_np = np.array(img).astype(np.int) + img_np = img_np + addition + img_np = np.clip(img_np, 0, 255) + img_np = img_np.astype(np.uint8) + img = Image.fromarray(img_np) + return PIL.ImageOps.solarize(img, threshold) + + +def Posterize(img, v): + assert 4 <= v <= 8 + v = int(v) + return PIL.ImageOps.posterize(img, v) + + +def Contrast(img, v): + assert 0.0 <= v <= 2.0 + return PIL.ImageEnhance.Contrast(img).enhance(v) + + +def Color(img, v): + assert 0.0 <= v <= 2.0 + return PIL.ImageEnhance.Color(img).enhance(v) + + +def Brightness(img, v): + assert 0.0 <= v <= 2.0 + return PIL.ImageEnhance.Brightness(img).enhance(v) + + +def Sharpness(img, v): + assert 0.0 <= v <= 2.0 + return PIL.ImageEnhance.Sharpness(img).enhance(v) + + +def Cutout(img, v): + # [0, 60] => percentage: [0, 0.2] + assert 0.0 <= v <= 0.2 + if v <= 0.0: + return img + + v = v * img.size[0] + return CutoutAbs(img, v) + + +def CutoutAbs(img, v): + # [0, 60] => percentage: [0, 0.2] + # assert 0 <= v <= 20 + if v < 0: + return img + w, h = img.size + x0 = np.random.uniform(w) + y0 = np.random.uniform(h) + + x0 = int(max(0, x0 - v/2.0)) + y0 = int(max(0, y0 - v/2.0)) + x1 = min(w, x0 + v) + y1 = min(h, y0 + v) + + xy = (x0, y0, x1, y1) + color = (125, 123, 114) + # color = (0, 0, 0) + img = img.copy() + PIL.ImageDraw.Draw(img).rectangle(xy, color) + return img + + +def SamplePairing(imgs): + # [0, 0.4] + def f(img1, v): + i = np.random.choice(len(imgs)) + img2 = PIL.Image.fromarray(imgs[i]) + return PIL.Image.blend(img1, img2, v) + + return f + + +def Identity(img, v): + return img + + +class Lighting: + """Lighting noise (AlexNet - style PCA - based noise).""" + + def __init__(self, alphastd, eigval, eigvec): + self.alphastd = alphastd + self.eigval = torch.Tensor(eigval) + self.eigvec = torch.Tensor(eigvec) + + def __call__(self, img): + if self.alphastd == 0: + return img + + alpha = img.new().resize_(3).normal_(0, self.alphastd) + rgb = ( + self.eigvec.type_as(img).clone().mul( + alpha.view(1, 3).expand(3, 3) + ).mul(self.eigval.view(1, 3).expand(3, 3)).sum(1).squeeze() + ) + + return img.add(rgb.view(3, 1, 1).expand_as(img)) + + +class CutoutDefault: + """ + Reference : https://github.com/quark0/darts/blob/master/cnn/utils.py + """ + + def __init__(self, length): + self.length = length + + def __call__(self, img): + h, w = img.size(1), img.size(2) + mask = np.ones((h, w), np.float32) + y = np.random.randint(h) + x = np.random.randint(w) + + y1 = np.clip(y - self.length // 2, 0, h) + y2 = np.clip(y + self.length // 2, 0, h) + x1 = np.clip(x - self.length // 2, 0, w) + x2 = np.clip(x + self.length // 2, 0, w) + + mask[y1:y2, x1:x2] = 0.0 + mask = torch.from_numpy(mask) + mask = mask.expand_as(img) + img *= mask + return img + + +def randaugment_list(): + # 16 oeprations and their ranges + # https://github.com/google-research/uda/blob/master/image/randaugment/policies.py#L57 + # augs = [ + # (Identity, 0., 1.0), + # (ShearX, 0., 0.3), # 0 + # (ShearY, 0., 0.3), # 1 + # (TranslateX, 0., 0.33), # 2 + # (TranslateY, 0., 0.33), # 3 + # (Rotate, 0, 30), # 4 + # (AutoContrast, 0, 1), # 5 + # (Invert, 0, 1), # 6 + # (Equalize, 0, 1), # 7 + # (Solarize, 0, 110), # 8 + # (Posterize, 4, 8), # 9 + # # (Contrast, 0.1, 1.9), # 10 + # (Color, 0.1, 1.9), # 11 + # (Brightness, 0.1, 1.9), # 12 + # (Sharpness, 0.1, 1.9), # 13 + # # (Cutout, 0, 0.2), # 14 + # # (SamplePairing(imgs), 0, 0.4) # 15 + # ] + + # https://github.com/tensorflow/tpu/blob/8462d083dd89489a79e3200bcc8d4063bf362186/models/official/efficientnet/autoaugment.py#L505 + augs = [ + (AutoContrast, 0, 1), + (Equalize, 0, 1), + (Invert, 0, 1), + (Rotate, 0, 30), + (Posterize, 4, 8), + (Solarize, 0, 256), + (SolarizeAdd, 0, 110), + (Color, 0.1, 1.9), + (Contrast, 0.1, 1.9), + (Brightness, 0.1, 1.9), + (Sharpness, 0.1, 1.9), + (ShearX, 0.0, 0.3), + (ShearY, 0.0, 0.3), + (CutoutAbs, 0, 40), + (TranslateXabs, 0.0, 100), + (TranslateYabs, 0.0, 100), + ] + + return augs + + +def randaugment_list2(): + augs = [ + (AutoContrast, 0, 1), + (Brightness, 0.1, 1.9), + (Color, 0.1, 1.9), + (Contrast, 0.1, 1.9), + (Equalize, 0, 1), + (Identity, 0, 1), + (Invert, 0, 1), + (Posterize, 4, 8), + (Rotate, -30, 30), + (Sharpness, 0.1, 1.9), + (ShearX, -0.3, 0.3), + (ShearY, -0.3, 0.3), + (Solarize, 0, 256), + (TranslateX, -0.3, 0.3), + (TranslateY, -0.3, 0.3), + ] + + return augs + + +def fixmatch_list(): + # https://arxiv.org/abs/2001.07685 + augs = [ + (AutoContrast, 0, 1), + (Brightness, 0.05, 0.95), + (Color, 0.05, 0.95), + (Contrast, 0.05, 0.95), + (Equalize, 0, 1), + (Identity, 0, 1), + (Posterize, 4, 8), + (Rotate, -30, 30), + (Sharpness, 0.05, 0.95), + (ShearX, -0.3, 0.3), + (ShearY, -0.3, 0.3), + (Solarize, 0, 256), + (TranslateX, -0.3, 0.3), + (TranslateY, -0.3, 0.3), + ] + + return augs + + +class RandAugment: + + def __init__(self, n=2, m=10): + assert 0 <= m <= 30 + self.n = n + self.m = m + self.augment_list = randaugment_list() + + def __call__(self, img): + ops = random.choices(self.augment_list, k=self.n) + + for op, minval, maxval in ops: + val = (self.m / 30) * (maxval-minval) + minval + img = op(img, val) + + return img + + +class RandAugment2: + + def __init__(self, n=2, p=0.6): + self.n = n + self.p = p + self.augment_list = randaugment_list2() + + def __call__(self, img): + ops = random.choices(self.augment_list, k=self.n) + + for op, minval, maxval in ops: + if random.random() > self.p: + continue + m = random.random() + val = m * (maxval-minval) + minval + img = op(img, val) + + return img + + +class RandAugmentFixMatch: + + def __init__(self, n=2): + self.n = n + self.augment_list = fixmatch_list() + + def __call__(self, img): + ops = random.choices(self.augment_list, k=self.n) + + for op, minval, maxval in ops: + m = random.random() + val = m * (maxval-minval) + minval + img = op(img, val) + + return img diff --git a/Dassl.ProGrad.pytorch/dassl/data/transforms/transforms.py b/Dassl.ProGrad.pytorch/dassl/data/transforms/transforms.py new file mode 100644 index 0000000..a2a0e3f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/data/transforms/transforms.py @@ -0,0 +1,341 @@ +import numpy as np +import random +import torch +from PIL import Image +from torchvision.transforms import ( + Resize, Compose, ToTensor, Normalize, CenterCrop, RandomCrop, ColorJitter, + RandomApply, GaussianBlur, RandomGrayscale, RandomResizedCrop, + RandomHorizontalFlip +) + +from .autoaugment import SVHNPolicy, CIFAR10Policy, ImageNetPolicy +from .randaugment import RandAugment, RandAugment2, RandAugmentFixMatch + +AVAI_CHOICES = [ + "random_flip", + "random_resized_crop", + "normalize", + "instance_norm", + "random_crop", + "random_translation", + "center_crop", # This has become a default operation for test + "cutout", + "imagenet_policy", + "cifar10_policy", + "svhn_policy", + "randaugment", + "randaugment_fixmatch", + "randaugment2", + "gaussian_noise", + "colorjitter", + "randomgrayscale", + "gaussian_blur", +] + +INTERPOLATION_MODES = { + "bilinear": Image.BILINEAR, + "bicubic": Image.BICUBIC, + "nearest": Image.NEAREST, +} + + +class Random2DTranslation: + """Given an image of (height, width), we resize it to + (height*1.125, width*1.125), and then perform random cropping. + + Args: + height (int): target image height. + width (int): target image width. + p (float, optional): probability that this operation takes place. + Default is 0.5. + interpolation (int, optional): desired interpolation. Default is + ``PIL.Image.BILINEAR`` + """ + + def __init__(self, height, width, p=0.5, interpolation=Image.BILINEAR): + self.height = height + self.width = width + self.p = p + self.interpolation = interpolation + + def __call__(self, img): + if random.uniform(0, 1) > self.p: + return img.resize((self.width, self.height), self.interpolation) + + new_width = int(round(self.width * 1.125)) + new_height = int(round(self.height * 1.125)) + resized_img = img.resize((new_width, new_height), self.interpolation) + + x_maxrange = new_width - self.width + y_maxrange = new_height - self.height + x1 = int(round(random.uniform(0, x_maxrange))) + y1 = int(round(random.uniform(0, y_maxrange))) + croped_img = resized_img.crop( + (x1, y1, x1 + self.width, y1 + self.height) + ) + + return croped_img + + +class InstanceNormalization: + """Normalize data using per-channel mean and standard deviation. + + Reference: + - Ulyanov et al. Instance normalization: The missing in- gredient + for fast stylization. ArXiv 2016. + - Shu et al. A DIRT-T Approach to Unsupervised Domain Adaptation. + ICLR 2018. + """ + + def __init__(self, eps=1e-8): + self.eps = eps + + def __call__(self, img): + C, H, W = img.shape + img_re = img.reshape(C, H * W) + mean = img_re.mean(1).view(C, 1, 1) + std = img_re.std(1).view(C, 1, 1) + return (img-mean) / (std + self.eps) + + +class Cutout: + """Randomly mask out one or more patches from an image. + + https://github.com/uoguelph-mlrg/Cutout + + Args: + n_holes (int, optional): number of patches to cut out + of each image. Default is 1. + length (int, optinal): length (in pixels) of each square + patch. Default is 16. + """ + + def __init__(self, n_holes=1, length=16): + self.n_holes = n_holes + self.length = length + + def __call__(self, img): + """ + Args: + img (Tensor): tensor image of size (C, H, W). + + Returns: + Tensor: image with n_holes of dimension + length x length cut out of it. + """ + h = img.size(1) + w = img.size(2) + + mask = np.ones((h, w), np.float32) + + for n in range(self.n_holes): + y = np.random.randint(h) + x = np.random.randint(w) + + y1 = np.clip(y - self.length // 2, 0, h) + y2 = np.clip(y + self.length // 2, 0, h) + x1 = np.clip(x - self.length // 2, 0, w) + x2 = np.clip(x + self.length // 2, 0, w) + + mask[y1:y2, x1:x2] = 0.0 + + mask = torch.from_numpy(mask) + mask = mask.expand_as(img) + return img * mask + + +class GaussianNoise: + """Add gaussian noise.""" + + def __init__(self, mean=0, std=0.15, p=0.5): + self.mean = mean + self.std = std + self.p = p + + def __call__(self, img): + if random.uniform(0, 1) > self.p: + return img + noise = torch.randn(img.size()) * self.std + self.mean + return img + noise + + +def build_transform(cfg, is_train=True, choices=None): + """Build transformation function. + + Args: + cfg (CfgNode): config. + is_train (bool, optional): for training (True) or test (False). + Default is True. + choices (list, optional): list of strings which will overwrite + cfg.INPUT.TRANSFORMS if given. Default is None. + """ + if cfg.INPUT.NO_TRANSFORM: + print("Note: no transform is applied!") + return None + + if choices is None: + choices = cfg.INPUT.TRANSFORMS + + for choice in choices: + assert choice in AVAI_CHOICES + + target_size = f"{cfg.INPUT.SIZE[0]}x{cfg.INPUT.SIZE[1]}" + + normalize = Normalize(mean=cfg.INPUT.PIXEL_MEAN, std=cfg.INPUT.PIXEL_STD) + + if is_train: + return _build_transform_train(cfg, choices, target_size, normalize) + else: + return _build_transform_test(cfg, choices, target_size, normalize) + + +def _build_transform_train(cfg, choices, target_size, normalize): + print("Building transform_train") + tfm_train = [] + + interp_mode = INTERPOLATION_MODES[cfg.INPUT.INTERPOLATION] + + # Make sure the image size matches the target size + conditions = [] + conditions += ["random_crop" not in choices] + conditions += ["random_resized_crop" not in choices] + if all(conditions): + print(f"+ resize to {target_size}") + tfm_train += [Resize(cfg.INPUT.SIZE, interpolation=interp_mode)] + + if "random_translation" in choices: + print("+ random translation") + tfm_train += [ + Random2DTranslation(cfg.INPUT.SIZE[0], cfg.INPUT.SIZE[1]) + ] + + if "random_crop" in choices: + crop_padding = cfg.INPUT.CROP_PADDING + print("+ random crop (padding = {})".format(crop_padding)) + tfm_train += [RandomCrop(cfg.INPUT.SIZE, padding=crop_padding)] + + if "random_resized_crop" in choices: + print(f"+ random resized crop (size={cfg.INPUT.SIZE})") + tfm_train += [ + RandomResizedCrop(cfg.INPUT.SIZE, interpolation=interp_mode) + ] + + if "center_crop" in choices: + print(f"+ center crop (size={cfg.INPUT.SIZE})") + tfm_train += [CenterCrop(cfg.INPUT.SIZE)] + + if "random_flip" in choices: + print("+ random flip") + tfm_train += [RandomHorizontalFlip()] + + if "imagenet_policy" in choices: + print("+ imagenet policy") + tfm_train += [ImageNetPolicy()] + + if "cifar10_policy" in choices: + print("+ cifar10 policy") + tfm_train += [CIFAR10Policy()] + + if "svhn_policy" in choices: + print("+ svhn policy") + tfm_train += [SVHNPolicy()] + + if "randaugment" in choices: + n_ = cfg.INPUT.RANDAUGMENT_N + m_ = cfg.INPUT.RANDAUGMENT_M + print("+ randaugment (n={}, m={})".format(n_, m_)) + tfm_train += [RandAugment(n_, m_)] + + if "randaugment_fixmatch" in choices: + n_ = cfg.INPUT.RANDAUGMENT_N + print("+ randaugment_fixmatch (n={})".format(n_)) + tfm_train += [RandAugmentFixMatch(n_)] + + if "randaugment2" in choices: + n_ = cfg.INPUT.RANDAUGMENT_N + print("+ randaugment2 (n={})".format(n_)) + tfm_train += [RandAugment2(n_)] + + if "colorjitter" in choices: + print("+ color jitter") + tfm_train += [ + ColorJitter( + brightness=cfg.INPUT.COLORJITTER_B, + contrast=cfg.INPUT.COLORJITTER_C, + saturation=cfg.INPUT.COLORJITTER_S, + hue=cfg.INPUT.COLORJITTER_H, + ) + ] + + if "randomgrayscale" in choices: + print("+ random gray scale") + tfm_train += [RandomGrayscale(p=cfg.INPUT.RGS_P)] + + if "gaussian_blur" in choices: + print(f"+ gaussian blur (kernel={cfg.INPUT.GB_K})") + tfm_train += [ + RandomApply([GaussianBlur(cfg.INPUT.GB_K)], p=cfg.INPUT.GB_P) + ] + + print("+ to torch tensor of range [0, 1]") + tfm_train += [ToTensor()] + + if "cutout" in choices: + cutout_n = cfg.INPUT.CUTOUT_N + cutout_len = cfg.INPUT.CUTOUT_LEN + print("+ cutout (n_holes={}, length={})".format(cutout_n, cutout_len)) + tfm_train += [Cutout(cutout_n, cutout_len)] + + if "normalize" in choices: + print( + "+ normalization (mean={}, " + "std={})".format(cfg.INPUT.PIXEL_MEAN, cfg.INPUT.PIXEL_STD) + ) + tfm_train += [normalize] + + if "gaussian_noise" in choices: + print( + "+ gaussian noise (mean={}, std={})".format( + cfg.INPUT.GN_MEAN, cfg.INPUT.GN_STD + ) + ) + tfm_train += [GaussianNoise(cfg.INPUT.GN_MEAN, cfg.INPUT.GN_STD)] + + if "instance_norm" in choices: + print("+ instance normalization") + tfm_train += [InstanceNormalization()] + + tfm_train = Compose(tfm_train) + + return tfm_train + + +def _build_transform_test(cfg, choices, target_size, normalize): + print("Building transform_test") + tfm_test = [] + + interp_mode = INTERPOLATION_MODES[cfg.INPUT.INTERPOLATION] + + print(f"+ resize the smaller edge to {max(cfg.INPUT.SIZE)}") + tfm_test += [Resize(max(cfg.INPUT.SIZE), interpolation=interp_mode)] + + print(f"+ {target_size} center crop") + tfm_test += [CenterCrop(cfg.INPUT.SIZE)] + + print("+ to torch tensor of range [0, 1]") + tfm_test += [ToTensor()] + + if "normalize" in choices: + print( + "+ normalization (mean={}, " + "std={})".format(cfg.INPUT.PIXEL_MEAN, cfg.INPUT.PIXEL_STD) + ) + tfm_test += [normalize] + + if "instance_norm" in choices: + print("+ instance normalization") + tfm_test += [InstanceNormalization()] + + tfm_test = Compose(tfm_test) + + return tfm_test diff --git a/Dassl.ProGrad.pytorch/dassl/engine/__init__.py b/Dassl.ProGrad.pytorch/dassl/engine/__init__.py new file mode 100644 index 0000000..3cb3fb8 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/__init__.py @@ -0,0 +1,6 @@ +from .build import TRAINER_REGISTRY, build_trainer # isort:skip +from .trainer import TrainerX, TrainerXU, TrainerBase, SimpleTrainer, SimpleNet # isort:skip + +from .da import * +from .dg import * +from .ssl import * diff --git a/Dassl.ProGrad.pytorch/dassl/engine/build.py b/Dassl.ProGrad.pytorch/dassl/engine/build.py new file mode 100644 index 0000000..456ba8d --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +TRAINER_REGISTRY = Registry("TRAINER") + + +def build_trainer(cfg): + avai_trainers = TRAINER_REGISTRY.registered_names() + check_availability(cfg.TRAINER.NAME, avai_trainers) + if cfg.VERBOSE: + print("Loading trainer: {}".format(cfg.TRAINER.NAME)) + return TRAINER_REGISTRY.get(cfg.TRAINER.NAME)(cfg) diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/__init__.py b/Dassl.ProGrad.pytorch/dassl/engine/da/__init__.py new file mode 100644 index 0000000..2d46469 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/__init__.py @@ -0,0 +1,9 @@ +from .mcd import MCD +from .mme import MME +from .adda import ADDA +from .dael import DAEL +from .dann import DANN +from .adabn import AdaBN +from .m3sda import M3SDA +from .source_only import SourceOnly +from .self_ensembling import SelfEnsembling diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/adabn.py b/Dassl.ProGrad.pytorch/dassl/engine/da/adabn.py new file mode 100644 index 0000000..116d8a2 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/adabn.py @@ -0,0 +1,38 @@ +import torch + +from dassl.utils import check_isfile +from dassl.engine import TRAINER_REGISTRY, TrainerXU + + +@TRAINER_REGISTRY.register() +class AdaBN(TrainerXU): + """Adaptive Batch Normalization. + + https://arxiv.org/abs/1603.04779. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.done_reset_bn_stats = False + + def check_cfg(self, cfg): + assert check_isfile( + cfg.MODEL.INIT_WEIGHTS + ), "The weights of source model must be provided" + + def before_epoch(self): + if not self.done_reset_bn_stats: + for m in self.model.modules(): + classname = m.__class__.__name__ + if classname.find("BatchNorm") != -1: + m.reset_running_stats() + + self.done_reset_bn_stats = True + + def forward_backward(self, batch_x, batch_u): + input_u = batch_u["img"].to(self.device) + + with torch.no_grad(): + self.model(input_u) + + return None diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/adda.py b/Dassl.ProGrad.pytorch/dassl/engine/da/adda.py new file mode 100644 index 0000000..a9018e7 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/adda.py @@ -0,0 +1,85 @@ +import copy +import torch +import torch.nn as nn + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import check_isfile, count_num_param, open_specified_layers +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.modeling import build_head + + +@TRAINER_REGISTRY.register() +class ADDA(TrainerXU): + """Adversarial Discriminative Domain Adaptation. + + https://arxiv.org/abs/1702.05464. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.open_layers = ["backbone"] + if isinstance(self.model.head, nn.Module): + self.open_layers.append("head") + + self.source_model = copy.deepcopy(self.model) + self.source_model.eval() + for param in self.source_model.parameters(): + param.requires_grad_(False) + + self.build_critic() + + self.bce = nn.BCEWithLogitsLoss() + + def check_cfg(self, cfg): + assert check_isfile( + cfg.MODEL.INIT_WEIGHTS + ), "The weights of source model must be provided" + + def build_critic(self): + cfg = self.cfg + + print("Building critic network") + fdim = self.model.fdim + critic_body = build_head( + "mlp", + verbose=cfg.VERBOSE, + in_features=fdim, + hidden_layers=[fdim, fdim // 2], + activation="leaky_relu", + ) + self.critic = nn.Sequential(critic_body, nn.Linear(fdim // 2, 1)) + print("# params: {:,}".format(count_num_param(self.critic))) + self.critic.to(self.device) + self.optim_c = build_optimizer(self.critic, cfg.OPTIM) + self.sched_c = build_lr_scheduler(self.optim_c, cfg.OPTIM) + self.register_model("critic", self.critic, self.optim_c, self.sched_c) + + def forward_backward(self, batch_x, batch_u): + open_specified_layers(self.model, self.open_layers) + input_x, _, input_u = self.parse_batch_train(batch_x, batch_u) + domain_x = torch.ones(input_x.shape[0], 1).to(self.device) + domain_u = torch.zeros(input_u.shape[0], 1).to(self.device) + + _, feat_x = self.source_model(input_x, return_feature=True) + _, feat_u = self.model(input_u, return_feature=True) + + logit_xd = self.critic(feat_x) + logit_ud = self.critic(feat_u.detach()) + + loss_critic = self.bce(logit_xd, domain_x) + loss_critic += self.bce(logit_ud, domain_u) + self.model_backward_and_update(loss_critic, "critic") + + logit_ud = self.critic(feat_u) + loss_model = self.bce(logit_ud, 1 - domain_u) + self.model_backward_and_update(loss_model, "model") + + loss_summary = { + "loss_critic": loss_critic.item(), + "loss_model": loss_model.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/dael.py b/Dassl.ProGrad.pytorch/dassl/engine/da/dael.py new file mode 100644 index 0000000..458df7d --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/dael.py @@ -0,0 +1,210 @@ +import torch +import torch.nn as nn + +from dassl.data import DataManager +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.engine.trainer import SimpleNet +from dassl.data.transforms import build_transform +from dassl.modeling.ops.utils import create_onehot + + +class Experts(nn.Module): + + def __init__(self, n_source, fdim, num_classes): + super().__init__() + self.linears = nn.ModuleList( + [nn.Linear(fdim, num_classes) for _ in range(n_source)] + ) + self.softmax = nn.Softmax(dim=1) + + def forward(self, i, x): + x = self.linears[i](x) + x = self.softmax(x) + return x + + +@TRAINER_REGISTRY.register() +class DAEL(TrainerXU): + """Domain Adaptive Ensemble Learning. + + https://arxiv.org/abs/2003.07325. + """ + + def __init__(self, cfg): + super().__init__(cfg) + n_domain = cfg.DATALOADER.TRAIN_X.N_DOMAIN + batch_size = cfg.DATALOADER.TRAIN_X.BATCH_SIZE + if n_domain <= 0: + n_domain = self.num_source_domains + self.split_batch = batch_size // n_domain + self.n_domain = n_domain + + self.weight_u = cfg.TRAINER.DAEL.WEIGHT_U + self.conf_thre = cfg.TRAINER.DAEL.CONF_THRE + + def check_cfg(self, cfg): + assert cfg.DATALOADER.TRAIN_X.SAMPLER == "RandomDomainSampler" + assert not cfg.DATALOADER.TRAIN_U.SAME_AS_X + assert len(cfg.TRAINER.DAEL.STRONG_TRANSFORMS) > 0 + + def build_data_loader(self): + cfg = self.cfg + tfm_train = build_transform(cfg, is_train=True) + custom_tfm_train = [tfm_train] + choices = cfg.TRAINER.DAEL.STRONG_TRANSFORMS + tfm_train_strong = build_transform(cfg, is_train=True, choices=choices) + custom_tfm_train += [tfm_train_strong] + dm = DataManager(self.cfg, custom_tfm_train=custom_tfm_train) + self.train_loader_x = dm.train_loader_x + self.train_loader_u = dm.train_loader_u + self.val_loader = dm.val_loader + self.test_loader = dm.test_loader + self.num_classes = dm.num_classes + self.num_source_domains = dm.num_source_domains + self.lab2cname = dm.lab2cname + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, 0) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + fdim = self.F.fdim + + print("Building E") + self.E = Experts(self.num_source_domains, fdim, self.num_classes) + self.E.to(self.device) + print("# params: {:,}".format(count_num_param(self.E))) + self.optim_E = build_optimizer(self.E, cfg.OPTIM) + self.sched_E = build_lr_scheduler(self.optim_E, cfg.OPTIM) + self.register_model("E", self.E, self.optim_E, self.sched_E) + + def forward_backward(self, batch_x, batch_u): + parsed_data = self.parse_batch_train(batch_x, batch_u) + input_x, input_x2, label_x, domain_x, input_u, input_u2 = parsed_data + + input_x = torch.split(input_x, self.split_batch, 0) + input_x2 = torch.split(input_x2, self.split_batch, 0) + label_x = torch.split(label_x, self.split_batch, 0) + domain_x = torch.split(domain_x, self.split_batch, 0) + domain_x = [d[0].item() for d in domain_x] + + # Generate pseudo label + with torch.no_grad(): + feat_u = self.F(input_u) + pred_u = [] + for k in range(self.num_source_domains): + pred_uk = self.E(k, feat_u) + pred_uk = pred_uk.unsqueeze(1) + pred_u.append(pred_uk) + pred_u = torch.cat(pred_u, 1) # (B, K, C) + # Get the highest probability and index (label) for each expert + experts_max_p, experts_max_idx = pred_u.max(2) # (B, K) + # Get the most confident expert + max_expert_p, max_expert_idx = experts_max_p.max(1) # (B) + pseudo_label_u = [] + for i, experts_label in zip(max_expert_idx, experts_max_idx): + pseudo_label_u.append(experts_label[i]) + pseudo_label_u = torch.stack(pseudo_label_u, 0) + pseudo_label_u = create_onehot(pseudo_label_u, self.num_classes) + pseudo_label_u = pseudo_label_u.to(self.device) + label_u_mask = (max_expert_p >= self.conf_thre).float() + + loss_x = 0 + loss_cr = 0 + acc_x = 0 + + feat_x = [self.F(x) for x in input_x] + feat_x2 = [self.F(x) for x in input_x2] + feat_u2 = self.F(input_u2) + + for feat_xi, feat_x2i, label_xi, i in zip( + feat_x, feat_x2, label_x, domain_x + ): + cr_s = [j for j in domain_x if j != i] + + # Learning expert + pred_xi = self.E(i, feat_xi) + loss_x += (-label_xi * torch.log(pred_xi + 1e-5)).sum(1).mean() + expert_label_xi = pred_xi.detach() + acc_x += compute_accuracy(pred_xi.detach(), + label_xi.max(1)[1])[0].item() + + # Consistency regularization + cr_pred = [] + for j in cr_s: + pred_j = self.E(j, feat_x2i) + pred_j = pred_j.unsqueeze(1) + cr_pred.append(pred_j) + cr_pred = torch.cat(cr_pred, 1) + cr_pred = cr_pred.mean(1) + loss_cr += ((cr_pred - expert_label_xi)**2).sum(1).mean() + + loss_x /= self.n_domain + loss_cr /= self.n_domain + acc_x /= self.n_domain + + # Unsupervised loss + pred_u = [] + for k in range(self.num_source_domains): + pred_uk = self.E(k, feat_u2) + pred_uk = pred_uk.unsqueeze(1) + pred_u.append(pred_uk) + pred_u = torch.cat(pred_u, 1) + pred_u = pred_u.mean(1) + l_u = (-pseudo_label_u * torch.log(pred_u + 1e-5)).sum(1) + loss_u = (l_u * label_u_mask).mean() + + loss = 0 + loss += loss_x + loss += loss_cr + loss += loss_u * self.weight_u + self.model_backward_and_update(loss) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": acc_x, + "loss_cr": loss_cr.item(), + "loss_u": loss_u.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"] + input_x2 = batch_x["img2"] + label_x = batch_x["label"] + domain_x = batch_x["domain"] + input_u = batch_u["img"] + input_u2 = batch_u["img2"] + + label_x = create_onehot(label_x, self.num_classes) + + input_x = input_x.to(self.device) + input_x2 = input_x2.to(self.device) + label_x = label_x.to(self.device) + input_u = input_u.to(self.device) + input_u2 = input_u2.to(self.device) + + return input_x, input_x2, label_x, domain_x, input_u, input_u2 + + def model_inference(self, input): + f = self.F(input) + p = [] + for k in range(self.num_source_domains): + p_k = self.E(k, f) + p_k = p_k.unsqueeze(1) + p.append(p_k) + p = torch.cat(p, 1) + p = p.mean(1) + return p diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/dann.py b/Dassl.ProGrad.pytorch/dassl/engine/da/dann.py new file mode 100644 index 0000000..64bb3f7 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/dann.py @@ -0,0 +1,78 @@ +import numpy as np +import torch +import torch.nn as nn + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.modeling import build_head +from dassl.modeling.ops import ReverseGrad + + +@TRAINER_REGISTRY.register() +class DANN(TrainerXU): + """Domain-Adversarial Neural Networks. + + https://arxiv.org/abs/1505.07818. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.build_critic() + self.ce = nn.CrossEntropyLoss() + self.bce = nn.BCEWithLogitsLoss() + + def build_critic(self): + cfg = self.cfg + + print("Building critic network") + fdim = self.model.fdim + critic_body = build_head( + "mlp", + verbose=cfg.VERBOSE, + in_features=fdim, + hidden_layers=[fdim, fdim], + activation="leaky_relu", + ) + self.critic = nn.Sequential(critic_body, nn.Linear(fdim, 1)) + print("# params: {:,}".format(count_num_param(self.critic))) + self.critic.to(self.device) + self.optim_c = build_optimizer(self.critic, cfg.OPTIM) + self.sched_c = build_lr_scheduler(self.optim_c, cfg.OPTIM) + self.register_model("critic", self.critic, self.optim_c, self.sched_c) + self.revgrad = ReverseGrad() + + def forward_backward(self, batch_x, batch_u): + input_x, label_x, input_u = self.parse_batch_train(batch_x, batch_u) + domain_x = torch.ones(input_x.shape[0], 1).to(self.device) + domain_u = torch.zeros(input_u.shape[0], 1).to(self.device) + + global_step = self.batch_idx + self.epoch * self.num_batches + progress = global_step / (self.max_epoch * self.num_batches) + lmda = 2 / (1 + np.exp(-10 * progress)) - 1 + + logit_x, feat_x = self.model(input_x, return_feature=True) + _, feat_u = self.model(input_u, return_feature=True) + + loss_x = self.ce(logit_x, label_x) + + feat_x = self.revgrad(feat_x, grad_scaling=lmda) + feat_u = self.revgrad(feat_u, grad_scaling=lmda) + output_xd = self.critic(feat_x) + output_ud = self.critic(feat_u) + loss_d = self.bce(output_xd, domain_x) + self.bce(output_ud, domain_u) + + loss = loss_x + loss_d + self.model_backward_and_update(loss) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(logit_x, label_x)[0].item(), + "loss_d": loss_d.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/m3sda.py b/Dassl.ProGrad.pytorch/dassl/engine/da/m3sda.py new file mode 100644 index 0000000..59b5673 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/m3sda.py @@ -0,0 +1,208 @@ +import torch +import torch.nn as nn +from torch.nn import functional as F + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.engine.trainer import SimpleNet + + +class PairClassifiers(nn.Module): + + def __init__(self, fdim, num_classes): + super().__init__() + self.c1 = nn.Linear(fdim, num_classes) + self.c2 = nn.Linear(fdim, num_classes) + + def forward(self, x): + z1 = self.c1(x) + if not self.training: + return z1 + z2 = self.c2(x) + return z1, z2 + + +@TRAINER_REGISTRY.register() +class M3SDA(TrainerXU): + """Moment Matching for Multi-Source Domain Adaptation. + + https://arxiv.org/abs/1812.01754. + """ + + def __init__(self, cfg): + super().__init__(cfg) + n_domain = cfg.DATALOADER.TRAIN_X.N_DOMAIN + batch_size = cfg.DATALOADER.TRAIN_X.BATCH_SIZE + if n_domain <= 0: + n_domain = self.num_source_domains + self.split_batch = batch_size // n_domain + self.n_domain = n_domain + + self.n_step_F = cfg.TRAINER.M3SDA.N_STEP_F + self.lmda = cfg.TRAINER.M3SDA.LMDA + + def check_cfg(self, cfg): + assert cfg.DATALOADER.TRAIN_X.SAMPLER == "RandomDomainSampler" + assert not cfg.DATALOADER.TRAIN_U.SAME_AS_X + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, 0) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + fdim = self.F.fdim + + print("Building C") + self.C = nn.ModuleList( + [ + PairClassifiers(fdim, self.num_classes) + for _ in range(self.num_source_domains) + ] + ) + self.C.to(self.device) + print("# params: {:,}".format(count_num_param(self.C))) + self.optim_C = build_optimizer(self.C, cfg.OPTIM) + self.sched_C = build_lr_scheduler(self.optim_C, cfg.OPTIM) + self.register_model("C", self.C, self.optim_C, self.sched_C) + + def forward_backward(self, batch_x, batch_u): + parsed = self.parse_batch_train(batch_x, batch_u) + input_x, label_x, domain_x, input_u = parsed + + input_x = torch.split(input_x, self.split_batch, 0) + label_x = torch.split(label_x, self.split_batch, 0) + domain_x = torch.split(domain_x, self.split_batch, 0) + domain_x = [d[0].item() for d in domain_x] + + # Step A + loss_x = 0 + feat_x = [] + + for x, y, d in zip(input_x, label_x, domain_x): + f = self.F(x) + z1, z2 = self.C[d](f) + loss_x += F.cross_entropy(z1, y) + F.cross_entropy(z2, y) + + feat_x.append(f) + + loss_x /= self.n_domain + + feat_u = self.F(input_u) + loss_msda = self.moment_distance(feat_x, feat_u) + + loss_step_A = loss_x + loss_msda * self.lmda + self.model_backward_and_update(loss_step_A) + + # Step B + with torch.no_grad(): + feat_u = self.F(input_u) + + loss_x, loss_dis = 0, 0 + + for x, y, d in zip(input_x, label_x, domain_x): + with torch.no_grad(): + f = self.F(x) + z1, z2 = self.C[d](f) + loss_x += F.cross_entropy(z1, y) + F.cross_entropy(z2, y) + + z1, z2 = self.C[d](feat_u) + p1 = F.softmax(z1, 1) + p2 = F.softmax(z2, 1) + loss_dis += self.discrepancy(p1, p2) + + loss_x /= self.n_domain + loss_dis /= self.n_domain + + loss_step_B = loss_x - loss_dis + self.model_backward_and_update(loss_step_B, "C") + + # Step C + for _ in range(self.n_step_F): + feat_u = self.F(input_u) + + loss_dis = 0 + + for d in domain_x: + z1, z2 = self.C[d](feat_u) + p1 = F.softmax(z1, 1) + p2 = F.softmax(z2, 1) + loss_dis += self.discrepancy(p1, p2) + + loss_dis /= self.n_domain + loss_step_C = loss_dis + + self.model_backward_and_update(loss_step_C, "F") + + loss_summary = { + "loss_step_A": loss_step_A.item(), + "loss_step_B": loss_step_B.item(), + "loss_step_C": loss_step_C.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def moment_distance(self, x, u): + # x (list): a list of feature matrix. + # u (torch.Tensor): feature matrix. + x_mean = [xi.mean(0) for xi in x] + u_mean = u.mean(0) + dist1 = self.pairwise_distance(x_mean, u_mean) + + x_var = [xi.var(0) for xi in x] + u_var = u.var(0) + dist2 = self.pairwise_distance(x_var, u_var) + + return (dist1+dist2) / 2 + + def pairwise_distance(self, x, u): + # x (list): a list of feature vector. + # u (torch.Tensor): feature vector. + dist = 0 + count = 0 + + for xi in x: + dist += self.euclidean(xi, u) + count += 1 + + for i in range(len(x) - 1): + for j in range(i + 1, len(x)): + dist += self.euclidean(x[i], x[j]) + count += 1 + + return dist / count + + def euclidean(self, input1, input2): + return ((input1 - input2)**2).sum().sqrt() + + def discrepancy(self, y1, y2): + return (y1 - y2).abs().mean() + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"] + label_x = batch_x["label"] + domain_x = batch_x["domain"] + input_u = batch_u["img"] + + input_x = input_x.to(self.device) + label_x = label_x.to(self.device) + input_u = input_u.to(self.device) + + return input_x, label_x, domain_x, input_u + + def model_inference(self, input): + f = self.F(input) + p = 0 + for C_i in self.C: + z = C_i(f) + p += F.softmax(z, 1) + p = p / len(self.C) + return p diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/mcd.py b/Dassl.ProGrad.pytorch/dassl/engine/da/mcd.py new file mode 100644 index 0000000..174a2e0 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/mcd.py @@ -0,0 +1,105 @@ +import torch +import torch.nn as nn +from torch.nn import functional as F + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.engine.trainer import SimpleNet + + +@TRAINER_REGISTRY.register() +class MCD(TrainerXU): + """Maximum Classifier Discrepancy. + + https://arxiv.org/abs/1712.02560. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.n_step_F = cfg.TRAINER.MCD.N_STEP_F + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, 0) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + fdim = self.F.fdim + + print("Building C1") + self.C1 = nn.Linear(fdim, self.num_classes) + self.C1.to(self.device) + print("# params: {:,}".format(count_num_param(self.C1))) + self.optim_C1 = build_optimizer(self.C1, cfg.OPTIM) + self.sched_C1 = build_lr_scheduler(self.optim_C1, cfg.OPTIM) + self.register_model("C1", self.C1, self.optim_C1, self.sched_C1) + + print("Building C2") + self.C2 = nn.Linear(fdim, self.num_classes) + self.C2.to(self.device) + print("# params: {:,}".format(count_num_param(self.C2))) + self.optim_C2 = build_optimizer(self.C2, cfg.OPTIM) + self.sched_C2 = build_lr_scheduler(self.optim_C2, cfg.OPTIM) + self.register_model("C2", self.C2, self.optim_C2, self.sched_C2) + + def forward_backward(self, batch_x, batch_u): + parsed = self.parse_batch_train(batch_x, batch_u) + input_x, label_x, input_u = parsed + + # Step A + feat_x = self.F(input_x) + logit_x1 = self.C1(feat_x) + logit_x2 = self.C2(feat_x) + loss_x1 = F.cross_entropy(logit_x1, label_x) + loss_x2 = F.cross_entropy(logit_x2, label_x) + loss_step_A = loss_x1 + loss_x2 + self.model_backward_and_update(loss_step_A) + + # Step B + with torch.no_grad(): + feat_x = self.F(input_x) + logit_x1 = self.C1(feat_x) + logit_x2 = self.C2(feat_x) + loss_x1 = F.cross_entropy(logit_x1, label_x) + loss_x2 = F.cross_entropy(logit_x2, label_x) + loss_x = loss_x1 + loss_x2 + + with torch.no_grad(): + feat_u = self.F(input_u) + pred_u1 = F.softmax(self.C1(feat_u), 1) + pred_u2 = F.softmax(self.C2(feat_u), 1) + loss_dis = self.discrepancy(pred_u1, pred_u2) + + loss_step_B = loss_x - loss_dis + self.model_backward_and_update(loss_step_B, ["C1", "C2"]) + + # Step C + for _ in range(self.n_step_F): + feat_u = self.F(input_u) + pred_u1 = F.softmax(self.C1(feat_u), 1) + pred_u2 = F.softmax(self.C2(feat_u), 1) + loss_step_C = self.discrepancy(pred_u1, pred_u2) + self.model_backward_and_update(loss_step_C, "F") + + loss_summary = { + "loss_step_A": loss_step_A.item(), + "loss_step_B": loss_step_B.item(), + "loss_step_C": loss_step_C.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def discrepancy(self, y1, y2): + return (y1 - y2).abs().mean() + + def model_inference(self, input): + feat = self.F(input) + return self.C1(feat) diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/mme.py b/Dassl.ProGrad.pytorch/dassl/engine/da/mme.py new file mode 100644 index 0000000..fd7775c --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/mme.py @@ -0,0 +1,86 @@ +import torch +import torch.nn as nn +from torch.nn import functional as F + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.modeling.ops import ReverseGrad +from dassl.engine.trainer import SimpleNet + + +class Prototypes(nn.Module): + + def __init__(self, fdim, num_classes, temp=0.05): + super().__init__() + self.prototypes = nn.Linear(fdim, num_classes, bias=False) + self.temp = temp + + def forward(self, x): + x = F.normalize(x, p=2, dim=1) + out = self.prototypes(x) + out = out / self.temp + return out + + +@TRAINER_REGISTRY.register() +class MME(TrainerXU): + """Minimax Entropy. + + https://arxiv.org/abs/1904.06487. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.lmda = cfg.TRAINER.MME.LMDA + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, 0) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + + print("Building C") + self.C = Prototypes(self.F.fdim, self.num_classes) + self.C.to(self.device) + print("# params: {:,}".format(count_num_param(self.C))) + self.optim_C = build_optimizer(self.C, cfg.OPTIM) + self.sched_C = build_lr_scheduler(self.optim_C, cfg.OPTIM) + self.register_model("C", self.C, self.optim_C, self.sched_C) + + self.revgrad = ReverseGrad() + + def forward_backward(self, batch_x, batch_u): + input_x, label_x, input_u = self.parse_batch_train(batch_x, batch_u) + + feat_x = self.F(input_x) + logit_x = self.C(feat_x) + loss_x = F.cross_entropy(logit_x, label_x) + self.model_backward_and_update(loss_x) + + feat_u = self.F(input_u) + feat_u = self.revgrad(feat_u) + logit_u = self.C(feat_u) + prob_u = F.softmax(logit_u, 1) + loss_u = -(-prob_u * torch.log(prob_u + 1e-5)).sum(1).mean() + self.model_backward_and_update(loss_u * self.lmda) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(logit_x, label_x)[0].item(), + "loss_u": loss_u.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def model_inference(self, input): + return self.C(self.F(input)) diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/self_ensembling.py b/Dassl.ProGrad.pytorch/dassl/engine/da/self_ensembling.py new file mode 100644 index 0000000..96e50a3 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/self_ensembling.py @@ -0,0 +1,78 @@ +import copy +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.modeling.ops.utils import sigmoid_rampup, ema_model_update + + +@TRAINER_REGISTRY.register() +class SelfEnsembling(TrainerXU): + """Self-ensembling for visual domain adaptation. + + https://arxiv.org/abs/1706.05208. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.ema_alpha = cfg.TRAINER.SE.EMA_ALPHA + self.conf_thre = cfg.TRAINER.SE.CONF_THRE + self.rampup = cfg.TRAINER.SE.RAMPUP + + self.teacher = copy.deepcopy(self.model) + self.teacher.train() + for param in self.teacher.parameters(): + param.requires_grad_(False) + + def check_cfg(self, cfg): + assert cfg.DATALOADER.K_TRANSFORMS == 2 + + def forward_backward(self, batch_x, batch_u): + global_step = self.batch_idx + self.epoch * self.num_batches + parsed = self.parse_batch_train(batch_x, batch_u) + input_x, label_x, input_u1, input_u2 = parsed + + logit_x = self.model(input_x) + loss_x = F.cross_entropy(logit_x, label_x) + + prob_u = F.softmax(self.model(input_u1), 1) + t_prob_u = F.softmax(self.teacher(input_u2), 1) + loss_u = ((prob_u - t_prob_u)**2).sum(1) + + if self.conf_thre: + max_prob = t_prob_u.max(1)[0] + mask = (max_prob > self.conf_thre).float() + loss_u = (loss_u * mask).mean() + else: + weight_u = sigmoid_rampup(global_step, self.rampup) + loss_u = loss_u.mean() * weight_u + + loss = loss_x + loss_u + self.model_backward_and_update(loss) + + ema_alpha = min(1 - 1 / (global_step+1), self.ema_alpha) + ema_model_update(self.model, self.teacher, ema_alpha) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(logit_x, label_x)[0].item(), + "loss_u": loss_u.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"][0] + label_x = batch_x["label"] + input_u = batch_u["img"] + input_u1, input_u2 = input_u + + input_x = input_x.to(self.device) + label_x = label_x.to(self.device) + input_u1 = input_u1.to(self.device) + input_u2 = input_u2.to(self.device) + + return input_x, label_x, input_u1, input_u2 diff --git a/Dassl.ProGrad.pytorch/dassl/engine/da/source_only.py b/Dassl.ProGrad.pytorch/dassl/engine/da/source_only.py new file mode 100644 index 0000000..2e7d9a6 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/da/source_only.py @@ -0,0 +1,34 @@ +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy + + +@TRAINER_REGISTRY.register() +class SourceOnly(TrainerXU): + """Baseline model for domain adaptation, which is + trained using source data only. + """ + + def forward_backward(self, batch_x, batch_u): + input, label = self.parse_batch_train(batch_x, batch_u) + output = self.model(input) + loss = F.cross_entropy(output, label) + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input = batch_x["img"] + label = batch_x["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label diff --git a/Dassl.ProGrad.pytorch/dassl/engine/dg/__init__.py b/Dassl.ProGrad.pytorch/dassl/engine/dg/__init__.py new file mode 100644 index 0000000..a13e83c --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/dg/__init__.py @@ -0,0 +1,4 @@ +from .ddaig import DDAIG +from .daeldg import DAELDG +from .vanilla import Vanilla +from .crossgrad import CrossGrad diff --git a/Dassl.ProGrad.pytorch/dassl/engine/dg/crossgrad.py b/Dassl.ProGrad.pytorch/dassl/engine/dg/crossgrad.py new file mode 100644 index 0000000..ff10d00 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/dg/crossgrad.py @@ -0,0 +1,83 @@ +import torch +from torch.nn import functional as F + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.engine.trainer import SimpleNet + + +@TRAINER_REGISTRY.register() +class CrossGrad(TrainerX): + """Cross-gradient training. + + https://arxiv.org/abs/1804.10745. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.eps_f = cfg.TRAINER.CG.EPS_F + self.eps_d = cfg.TRAINER.CG.EPS_D + self.alpha_f = cfg.TRAINER.CG.ALPHA_F + self.alpha_d = cfg.TRAINER.CG.ALPHA_D + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, self.num_classes) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + + print("Building D") + self.D = SimpleNet(cfg, cfg.MODEL, self.num_source_domains) + self.D.to(self.device) + print("# params: {:,}".format(count_num_param(self.D))) + self.optim_D = build_optimizer(self.D, cfg.OPTIM) + self.sched_D = build_lr_scheduler(self.optim_D, cfg.OPTIM) + self.register_model("D", self.D, self.optim_D, self.sched_D) + + def forward_backward(self, batch): + input, label, domain = self.parse_batch_train(batch) + + input.requires_grad = True + + # Compute domain perturbation + loss_d = F.cross_entropy(self.D(input), domain) + loss_d.backward() + grad_d = torch.clamp(input.grad.data, min=-0.1, max=0.1) + input_d = input.data + self.eps_f * grad_d + + # Compute label perturbation + input.grad.data.zero_() + loss_f = F.cross_entropy(self.F(input), label) + loss_f.backward() + grad_f = torch.clamp(input.grad.data, min=-0.1, max=0.1) + input_f = input.data + self.eps_d * grad_f + + input = input.detach() + + # Update label net + loss_f1 = F.cross_entropy(self.F(input), label) + loss_f2 = F.cross_entropy(self.F(input_d), label) + loss_f = (1 - self.alpha_f) * loss_f1 + self.alpha_f * loss_f2 + self.model_backward_and_update(loss_f, "F") + + # Update domain net + loss_d1 = F.cross_entropy(self.D(input), domain) + loss_d2 = F.cross_entropy(self.D(input_f), domain) + loss_d = (1 - self.alpha_d) * loss_d1 + self.alpha_d * loss_d2 + self.model_backward_and_update(loss_d, "D") + + loss_summary = {"loss_f": loss_f.item(), "loss_d": loss_d.item()} + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def model_inference(self, input): + return self.F(input) diff --git a/Dassl.ProGrad.pytorch/dassl/engine/dg/daeldg.py b/Dassl.ProGrad.pytorch/dassl/engine/dg/daeldg.py new file mode 100644 index 0000000..bb7a3a4 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/dg/daeldg.py @@ -0,0 +1,169 @@ +import torch +import torch.nn as nn + +from dassl.data import DataManager +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.engine.trainer import SimpleNet +from dassl.data.transforms import build_transform +from dassl.modeling.ops.utils import create_onehot + + +class Experts(nn.Module): + + def __init__(self, n_source, fdim, num_classes): + super().__init__() + self.linears = nn.ModuleList( + [nn.Linear(fdim, num_classes) for _ in range(n_source)] + ) + self.softmax = nn.Softmax(dim=1) + + def forward(self, i, x): + x = self.linears[i](x) + x = self.softmax(x) + return x + + +@TRAINER_REGISTRY.register() +class DAELDG(TrainerX): + """Domain Adaptive Ensemble Learning. + + DG version: only use labeled source data. + + https://arxiv.org/abs/2003.07325. + """ + + def __init__(self, cfg): + super().__init__(cfg) + n_domain = cfg.DATALOADER.TRAIN_X.N_DOMAIN + batch_size = cfg.DATALOADER.TRAIN_X.BATCH_SIZE + if n_domain <= 0: + n_domain = self.num_source_domains + self.split_batch = batch_size // n_domain + self.n_domain = n_domain + + self.conf_thre = cfg.TRAINER.DAEL.CONF_THRE + + def check_cfg(self, cfg): + assert cfg.DATALOADER.TRAIN_X.SAMPLER == "RandomDomainSampler" + assert len(cfg.TRAINER.DAEL.STRONG_TRANSFORMS) > 0 + + def build_data_loader(self): + cfg = self.cfg + tfm_train = build_transform(cfg, is_train=True) + custom_tfm_train = [tfm_train] + choices = cfg.TRAINER.DAEL.STRONG_TRANSFORMS + tfm_train_strong = build_transform(cfg, is_train=True, choices=choices) + custom_tfm_train += [tfm_train_strong] + dm = DataManager(self.cfg, custom_tfm_train=custom_tfm_train) + self.train_loader_x = dm.train_loader_x + self.train_loader_u = dm.train_loader_u + self.val_loader = dm.val_loader + self.test_loader = dm.test_loader + self.num_classes = dm.num_classes + self.num_source_domains = dm.num_source_domains + self.lab2cname = dm.lab2cname + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, 0) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + fdim = self.F.fdim + + print("Building E") + self.E = Experts(self.num_source_domains, fdim, self.num_classes) + self.E.to(self.device) + print("# params: {:,}".format(count_num_param(self.E))) + self.optim_E = build_optimizer(self.E, cfg.OPTIM) + self.sched_E = build_lr_scheduler(self.optim_E, cfg.OPTIM) + self.register_model("E", self.E, self.optim_E, self.sched_E) + + def forward_backward(self, batch): + parsed_data = self.parse_batch_train(batch) + input, input2, label, domain = parsed_data + + input = torch.split(input, self.split_batch, 0) + input2 = torch.split(input2, self.split_batch, 0) + label = torch.split(label, self.split_batch, 0) + domain = torch.split(domain, self.split_batch, 0) + domain = [d[0].item() for d in domain] + + loss_x = 0 + loss_cr = 0 + acc = 0 + + feat = [self.F(x) for x in input] + feat2 = [self.F(x) for x in input2] + + for feat_i, feat2_i, label_i, i in zip(feat, feat2, label, domain): + cr_s = [j for j in domain if j != i] + + # Learning expert + pred_i = self.E(i, feat_i) + loss_x += (-label_i * torch.log(pred_i + 1e-5)).sum(1).mean() + expert_label_i = pred_i.detach() + acc += compute_accuracy(pred_i.detach(), + label_i.max(1)[1])[0].item() + + # Consistency regularization + cr_pred = [] + for j in cr_s: + pred_j = self.E(j, feat2_i) + pred_j = pred_j.unsqueeze(1) + cr_pred.append(pred_j) + cr_pred = torch.cat(cr_pred, 1) + cr_pred = cr_pred.mean(1) + loss_cr += ((cr_pred - expert_label_i)**2).sum(1).mean() + + loss_x /= self.n_domain + loss_cr /= self.n_domain + acc /= self.n_domain + + loss = 0 + loss += loss_x + loss += loss_cr + self.model_backward_and_update(loss) + + loss_summary = { + "loss_x": loss_x.item(), + "acc": acc, + "loss_cr": loss_cr.item() + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + input2 = batch["img2"] + label = batch["label"] + domain = batch["domain"] + + label = create_onehot(label, self.num_classes) + + input = input.to(self.device) + input2 = input2.to(self.device) + label = label.to(self.device) + + return input, input2, label, domain + + def model_inference(self, input): + f = self.F(input) + p = [] + for k in range(self.num_source_domains): + p_k = self.E(k, f) + p_k = p_k.unsqueeze(1) + p.append(p_k) + p = torch.cat(p, 1) + p = p.mean(1) + return p diff --git a/Dassl.ProGrad.pytorch/dassl/engine/dg/ddaig.py b/Dassl.ProGrad.pytorch/dassl/engine/dg/ddaig.py new file mode 100644 index 0000000..b7fbd97 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/dg/ddaig.py @@ -0,0 +1,107 @@ +import torch +from torch.nn import functional as F + +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import count_num_param +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.modeling import build_network +from dassl.engine.trainer import SimpleNet + + +@TRAINER_REGISTRY.register() +class DDAIG(TrainerX): + """Deep Domain-Adversarial Image Generation. + + https://arxiv.org/abs/2003.06054. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.lmda = cfg.TRAINER.DDAIG.LMDA + self.clamp = cfg.TRAINER.DDAIG.CLAMP + self.clamp_min = cfg.TRAINER.DDAIG.CLAMP_MIN + self.clamp_max = cfg.TRAINER.DDAIG.CLAMP_MAX + self.warmup = cfg.TRAINER.DDAIG.WARMUP + self.alpha = cfg.TRAINER.DDAIG.ALPHA + + def build_model(self): + cfg = self.cfg + + print("Building F") + self.F = SimpleNet(cfg, cfg.MODEL, self.num_classes) + self.F.to(self.device) + print("# params: {:,}".format(count_num_param(self.F))) + self.optim_F = build_optimizer(self.F, cfg.OPTIM) + self.sched_F = build_lr_scheduler(self.optim_F, cfg.OPTIM) + self.register_model("F", self.F, self.optim_F, self.sched_F) + + print("Building D") + self.D = SimpleNet(cfg, cfg.MODEL, self.num_source_domains) + self.D.to(self.device) + print("# params: {:,}".format(count_num_param(self.D))) + self.optim_D = build_optimizer(self.D, cfg.OPTIM) + self.sched_D = build_lr_scheduler(self.optim_D, cfg.OPTIM) + self.register_model("D", self.D, self.optim_D, self.sched_D) + + print("Building G") + self.G = build_network(cfg.TRAINER.DDAIG.G_ARCH, verbose=cfg.VERBOSE) + self.G.to(self.device) + print("# params: {:,}".format(count_num_param(self.G))) + self.optim_G = build_optimizer(self.G, cfg.OPTIM) + self.sched_G = build_lr_scheduler(self.optim_G, cfg.OPTIM) + self.register_model("G", self.G, self.optim_G, self.sched_G) + + def forward_backward(self, batch): + input, label, domain = self.parse_batch_train(batch) + + ############# + # Update G + ############# + input_p = self.G(input, lmda=self.lmda) + if self.clamp: + input_p = torch.clamp( + input_p, min=self.clamp_min, max=self.clamp_max + ) + loss_g = 0 + # Minimize label loss + loss_g += F.cross_entropy(self.F(input_p), label) + # Maximize domain loss + loss_g -= F.cross_entropy(self.D(input_p), domain) + self.model_backward_and_update(loss_g, "G") + + # Perturb data with new G + with torch.no_grad(): + input_p = self.G(input, lmda=self.lmda) + if self.clamp: + input_p = torch.clamp( + input_p, min=self.clamp_min, max=self.clamp_max + ) + + ############# + # Update F + ############# + loss_f = F.cross_entropy(self.F(input), label) + if (self.epoch + 1) > self.warmup: + loss_fp = F.cross_entropy(self.F(input_p), label) + loss_f = (1.0 - self.alpha) * loss_f + self.alpha * loss_fp + self.model_backward_and_update(loss_f, "F") + + ############# + # Update D + ############# + loss_d = F.cross_entropy(self.D(input), domain) + self.model_backward_and_update(loss_d, "D") + + loss_summary = { + "loss_g": loss_g.item(), + "loss_f": loss_f.item(), + "loss_d": loss_d.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def model_inference(self, input): + return self.F(input) diff --git a/Dassl.ProGrad.pytorch/dassl/engine/dg/vanilla.py b/Dassl.ProGrad.pytorch/dassl/engine/dg/vanilla.py new file mode 100644 index 0000000..9f8729a --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/dg/vanilla.py @@ -0,0 +1,32 @@ +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy + + +@TRAINER_REGISTRY.register() +class Vanilla(TrainerX): + """Vanilla baseline.""" + + def forward_backward(self, batch): + input, label = self.parse_batch_train(batch) + output = self.model(input) + loss = F.cross_entropy(output, label) + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/__init__.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/__init__.py new file mode 100644 index 0000000..46fa781 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/__init__.py @@ -0,0 +1,5 @@ +from .entmin import EntMin +from .fixmatch import FixMatch +from .mixmatch import MixMatch +from .mean_teacher import MeanTeacher +from .sup_baseline import SupBaseline diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/entmin.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/entmin.py new file mode 100644 index 0000000..a17186a --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/entmin.py @@ -0,0 +1,41 @@ +import torch +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy + + +@TRAINER_REGISTRY.register() +class EntMin(TrainerXU): + """Entropy Minimization. + + http://papers.nips.cc/paper/2740-semi-supervised-learning-by-entropy-minimization.pdf. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.lmda = cfg.TRAINER.ENTMIN.LMDA + + def forward_backward(self, batch_x, batch_u): + input_x, label_x, input_u = self.parse_batch_train(batch_x, batch_u) + + output_x = self.model(input_x) + loss_x = F.cross_entropy(output_x, label_x) + + output_u = F.softmax(self.model(input_u), 1) + loss_u = (-output_u * torch.log(output_u + 1e-5)).sum(1).mean() + + loss = loss_x + loss_u * self.lmda + + self.model_backward_and_update(loss) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(output_x, label_x)[0].item(), + "loss_u": loss_u.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/fixmatch.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/fixmatch.py new file mode 100644 index 0000000..be6001f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/fixmatch.py @@ -0,0 +1,112 @@ +import torch +from torch.nn import functional as F + +from dassl.data import DataManager +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.data.transforms import build_transform + + +@TRAINER_REGISTRY.register() +class FixMatch(TrainerXU): + """FixMatch: Simplifying Semi-Supervised Learning with + Consistency and Confidence. + + https://arxiv.org/abs/2001.07685. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.weight_u = cfg.TRAINER.FIXMATCH.WEIGHT_U + self.conf_thre = cfg.TRAINER.FIXMATCH.CONF_THRE + + def check_cfg(self, cfg): + assert len(cfg.TRAINER.FIXMATCH.STRONG_TRANSFORMS) > 0 + + def build_data_loader(self): + cfg = self.cfg + tfm_train = build_transform(cfg, is_train=True) + custom_tfm_train = [tfm_train] + choices = cfg.TRAINER.FIXMATCH.STRONG_TRANSFORMS + tfm_train_strong = build_transform(cfg, is_train=True, choices=choices) + custom_tfm_train += [tfm_train_strong] + self.dm = DataManager(self.cfg, custom_tfm_train=custom_tfm_train) + self.train_loader_x = self.dm.train_loader_x + self.train_loader_u = self.dm.train_loader_u + self.val_loader = self.dm.val_loader + self.test_loader = self.dm.test_loader + self.num_classes = self.dm.num_classes + + def assess_y_pred_quality(self, y_pred, y_true, mask): + n_masked_correct = (y_pred.eq(y_true).float() * mask).sum() + acc_thre = n_masked_correct / (mask.sum() + 1e-5) + acc_raw = y_pred.eq(y_true).sum() / y_pred.numel() # raw accuracy + keep_rate = mask.sum() / mask.numel() + output = { + "acc_thre": acc_thre, + "acc_raw": acc_raw, + "keep_rate": keep_rate + } + return output + + def forward_backward(self, batch_x, batch_u): + parsed_data = self.parse_batch_train(batch_x, batch_u) + input_x, input_x2, label_x, input_u, input_u2, label_u = parsed_data + input_u = torch.cat([input_x, input_u], 0) + input_u2 = torch.cat([input_x2, input_u2], 0) + n_x = input_x.size(0) + + # Generate pseudo labels + with torch.no_grad(): + output_u = F.softmax(self.model(input_u), 1) + max_prob, label_u_pred = output_u.max(1) + mask_u = (max_prob >= self.conf_thre).float() + + # Evaluate pseudo labels' accuracy + y_u_pred_stats = self.assess_y_pred_quality( + label_u_pred[n_x:], label_u, mask_u[n_x:] + ) + + # Supervised loss + output_x = self.model(input_x) + loss_x = F.cross_entropy(output_x, label_x) + + # Unsupervised loss + output_u = self.model(input_u2) + loss_u = F.cross_entropy(output_u, label_u_pred, reduction="none") + loss_u = (loss_u * mask_u).mean() + + loss = loss_x + loss_u * self.weight_u + self.model_backward_and_update(loss) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(output_x, label_x)[0].item(), + "loss_u": loss_u.item(), + "y_u_pred_acc_raw": y_u_pred_stats["acc_raw"], + "y_u_pred_acc_thre": y_u_pred_stats["acc_thre"], + "y_u_pred_keep": y_u_pred_stats["keep_rate"], + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"] + input_x2 = batch_x["img2"] + label_x = batch_x["label"] + input_u = batch_u["img"] + input_u2 = batch_u["img2"] + # label_u is used only for evaluating pseudo labels' accuracy + label_u = batch_u["label"] + + input_x = input_x.to(self.device) + input_x2 = input_x2.to(self.device) + label_x = label_x.to(self.device) + input_u = input_u.to(self.device) + input_u2 = input_u2.to(self.device) + label_u = label_u.to(self.device) + + return input_x, input_x2, label_x, input_u, input_u2, label_u diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/mean_teacher.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/mean_teacher.py new file mode 100644 index 0000000..59f6a61 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/mean_teacher.py @@ -0,0 +1,54 @@ +import copy +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy +from dassl.modeling.ops.utils import sigmoid_rampup, ema_model_update + + +@TRAINER_REGISTRY.register() +class MeanTeacher(TrainerXU): + """Mean teacher. + + https://arxiv.org/abs/1703.01780. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.weight_u = cfg.TRAINER.MEANTEA.WEIGHT_U + self.ema_alpha = cfg.TRAINER.MEANTEA.EMA_ALPHA + self.rampup = cfg.TRAINER.MEANTEA.RAMPUP + + self.teacher = copy.deepcopy(self.model) + self.teacher.train() + for param in self.teacher.parameters(): + param.requires_grad_(False) + + def forward_backward(self, batch_x, batch_u): + input_x, label_x, input_u = self.parse_batch_train(batch_x, batch_u) + + logit_x = self.model(input_x) + loss_x = F.cross_entropy(logit_x, label_x) + + target_u = F.softmax(self.teacher(input_u), 1) + prob_u = F.softmax(self.model(input_u), 1) + loss_u = ((prob_u - target_u)**2).sum(1).mean() + + weight_u = self.weight_u * sigmoid_rampup(self.epoch, self.rampup) + loss = loss_x + loss_u*weight_u + self.model_backward_and_update(loss) + + global_step = self.batch_idx + self.epoch * self.num_batches + ema_alpha = min(1 - 1 / (global_step+1), self.ema_alpha) + ema_model_update(self.model, self.teacher, ema_alpha) + + loss_summary = { + "loss_x": loss_x.item(), + "acc_x": compute_accuracy(logit_x, label_x)[0].item(), + "loss_u": loss_u.item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/mixmatch.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/mixmatch.py new file mode 100644 index 0000000..6bb24e1 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/mixmatch.py @@ -0,0 +1,98 @@ +import torch +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.modeling.ops import mixup +from dassl.modeling.ops.utils import ( + sharpen_prob, create_onehot, linear_rampup, shuffle_index +) + + +@TRAINER_REGISTRY.register() +class MixMatch(TrainerXU): + """MixMatch: A Holistic Approach to Semi-Supervised Learning. + + https://arxiv.org/abs/1905.02249. + """ + + def __init__(self, cfg): + super().__init__(cfg) + self.weight_u = cfg.TRAINER.MIXMATCH.WEIGHT_U + self.temp = cfg.TRAINER.MIXMATCH.TEMP + self.beta = cfg.TRAINER.MIXMATCH.MIXUP_BETA + self.rampup = cfg.TRAINER.MIXMATCH.RAMPUP + + def check_cfg(self, cfg): + assert cfg.DATALOADER.K_TRANSFORMS > 1 + + def forward_backward(self, batch_x, batch_u): + input_x, label_x, input_u = self.parse_batch_train(batch_x, batch_u) + num_x = input_x.shape[0] + + global_step = self.batch_idx + self.epoch * self.num_batches + weight_u = self.weight_u * linear_rampup(global_step, self.rampup) + + # Generate pseudo-label for unlabeled data + with torch.no_grad(): + output_u = 0 + for input_ui in input_u: + output_ui = F.softmax(self.model(input_ui), 1) + output_u += output_ui + output_u /= len(input_u) + label_u = sharpen_prob(output_u, self.temp) + label_u = [label_u] * len(input_u) + label_u = torch.cat(label_u, 0) + input_u = torch.cat(input_u, 0) + + # Combine and shuffle labeled and unlabeled data + input_xu = torch.cat([input_x, input_u], 0) + label_xu = torch.cat([label_x, label_u], 0) + input_xu, label_xu = shuffle_index(input_xu, label_xu) + + # Mixup + input_x, label_x = mixup( + input_x, + input_xu[:num_x], + label_x, + label_xu[:num_x], + self.beta, + preserve_order=True, + ) + + input_u, label_u = mixup( + input_u, + input_xu[num_x:], + label_u, + label_xu[num_x:], + self.beta, + preserve_order=True, + ) + + # Compute losses + output_x = F.softmax(self.model(input_x), 1) + loss_x = (-label_x * torch.log(output_x + 1e-5)).sum(1).mean() + + output_u = F.softmax(self.model(input_u), 1) + loss_u = ((label_u - output_u)**2).mean() + + loss = loss_x + loss_u*weight_u + self.model_backward_and_update(loss) + + loss_summary = {"loss_x": loss_x.item(), "loss_u": loss_u.item()} + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"][0] + label_x = batch_x["label"] + label_x = create_onehot(label_x, self.num_classes) + input_u = batch_u["img"] + + input_x = input_x.to(self.device) + label_x = label_x.to(self.device) + input_u = [input_ui.to(self.device) for input_ui in input_u] + + return input_x, label_x, input_u diff --git a/Dassl.ProGrad.pytorch/dassl/engine/ssl/sup_baseline.py b/Dassl.ProGrad.pytorch/dassl/engine/ssl/sup_baseline.py new file mode 100644 index 0000000..b2f5228 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/ssl/sup_baseline.py @@ -0,0 +1,32 @@ +from torch.nn import functional as F + +from dassl.engine import TRAINER_REGISTRY, TrainerXU +from dassl.metrics import compute_accuracy + + +@TRAINER_REGISTRY.register() +class SupBaseline(TrainerXU): + """Supervised Baseline.""" + + def forward_backward(self, batch_x, batch_u): + input, label = self.parse_batch_train(batch_x, batch_u) + output = self.model(input) + loss = F.cross_entropy(output, label) + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch_x, batch_u): + input = batch_x["img"] + label = batch_x["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label diff --git a/Dassl.ProGrad.pytorch/dassl/engine/trainer.py b/Dassl.ProGrad.pytorch/dassl/engine/trainer.py new file mode 100644 index 0000000..c9f6d8d --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/engine/trainer.py @@ -0,0 +1,735 @@ +import json +import time +import numpy as np +import os.path as osp +import datetime +from collections import OrderedDict +import torch +import torch.nn as nn +from tqdm import tqdm +from torch.utils.tensorboard import SummaryWriter + +from dassl.data import DataManager +from dassl.optim import build_optimizer, build_lr_scheduler +from dassl.utils import ( + MetricMeter, AverageMeter, tolist_if_not, count_num_param, load_checkpoint, + save_checkpoint, mkdir_if_missing, resume_from_checkpoint, + load_pretrained_weights +) +from dassl.modeling import build_head, build_backbone +from dassl.evaluation import build_evaluator + + +class SimpleNet(nn.Module): + """A simple neural network composed of a CNN backbone + and optionally a head such as mlp for classification. + """ + + def __init__(self, cfg, model_cfg, num_classes, **kwargs): + super().__init__() + self.backbone = build_backbone( + model_cfg.BACKBONE.NAME, + verbose=cfg.VERBOSE, + pretrained=model_cfg.BACKBONE.PRETRAINED, + **kwargs, + ) + fdim = self.backbone.out_features + + self.head = None + if model_cfg.HEAD.NAME and model_cfg.HEAD.HIDDEN_LAYERS: + self.head = build_head( + model_cfg.HEAD.NAME, + verbose=cfg.VERBOSE, + in_features=fdim, + hidden_layers=model_cfg.HEAD.HIDDEN_LAYERS, + activation=model_cfg.HEAD.ACTIVATION, + bn=model_cfg.HEAD.BN, + dropout=model_cfg.HEAD.DROPOUT, + **kwargs, + ) + fdim = self.head.out_features + + self.classifier = None + if num_classes > 0: + self.classifier = nn.Linear(fdim, num_classes) + + self._fdim = fdim + + @property + def fdim(self): + return self._fdim + + def forward(self, x, return_feature=False): + f = self.backbone(x) + if self.head is not None: + f = self.head(f) + + if self.classifier is None: + return f + + y = self.classifier(f) + + if return_feature: + return y, f + + return y + + +class TrainerBase: + """Base class for iterative trainer.""" + + def __init__(self): + self._models = OrderedDict() + self._optims = OrderedDict() + self._scheds = OrderedDict() + self._writer = None + + def register_model(self, name="model", model=None, optim=None, sched=None): + if self.__dict__.get("_models") is None: + raise AttributeError( + "Cannot assign model before super().__init__() call" + ) + + if self.__dict__.get("_optims") is None: + raise AttributeError( + "Cannot assign optim before super().__init__() call" + ) + + if self.__dict__.get("_scheds") is None: + raise AttributeError( + "Cannot assign sched before super().__init__() call" + ) + + assert name not in self._models, "Found duplicate model names" + + self._models[name] = model + self._optims[name] = optim + self._scheds[name] = sched + + def get_model_names(self, names=None): + names_real = list(self._models.keys()) + if names is not None: + names = tolist_if_not(names) + for name in names: + assert name in names_real + return names + else: + return names_real + + def save_model(self, epoch, directory, is_best=False, model_name=""): + names = self.get_model_names() + + for name in names: + model_dict = self._models[name].state_dict() + + optim_dict = None + if self._optims[name] is not None: + optim_dict = self._optims[name].state_dict() + + sched_dict = None + if self._scheds[name] is not None: + sched_dict = self._scheds[name].state_dict() + + save_checkpoint( + { + "state_dict": model_dict, + "epoch": epoch + 1, + "optimizer": optim_dict, + "scheduler": sched_dict, + }, + osp.join(directory, name), + is_best=is_best, + model_name=model_name, + ) + + def resume_model_if_exist(self, directory): + names = self.get_model_names() + file_missing = False + + for name in names: + path = osp.join(directory, name) + if not osp.exists(path): + file_missing = True + break + + if file_missing: + print("No checkpoint found, train from scratch") + return 0 + + print( + 'Found checkpoint in "{}". Will resume training'.format(directory) + ) + + for name in names: + path = osp.join(directory, name) + start_epoch = resume_from_checkpoint( + path, self._models[name], self._optims[name], + self._scheds[name] + ) + + return start_epoch + + def load_model(self, directory, epoch=None): + if not directory: + print( + "Note that load_model() is skipped as no pretrained " + "model is given (ignore this if it's done on purpose)" + ) + return + + names = self.get_model_names() + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError( + 'Model not found at "{}"'.format(model_path) + ) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + print( + "Loading weights to {} " + 'from "{}" (epoch = {})'.format(name, model_path, epoch) + ) + self._models[name].load_state_dict(state_dict) + + def set_model_mode(self, mode="train", names=None): + names = self.get_model_names(names) + + for name in names: + if mode == "train": + self._models[name].train() + elif mode in ["test", "eval"]: + self._models[name].eval() + else: + raise KeyError + + def update_lr(self, names=None): + names = self.get_model_names(names) + + for name in names: + if self._scheds[name] is not None: + self._scheds[name].step() + + def detect_anomaly(self, loss): + if not torch.isfinite(loss).all(): + raise FloatingPointError("Loss is infinite or NaN!") + + def init_writer(self, log_dir): + if self.__dict__.get("_writer") is None or self._writer is None: + print( + "Initializing summary writer for tensorboard " + "with log_dir={}".format(log_dir) + ) + self._writer = SummaryWriter(log_dir=log_dir) + + def close_writer(self): + if self._writer is not None: + self._writer.close() + + def write_scalar(self, tag, scalar_value, global_step=None): + if self._writer is None: + # Do nothing if writer is not initialized + # Note that writer is only used when training is needed + pass + else: + self._writer.add_scalar(tag, scalar_value, global_step) + + def train(self, start_epoch, max_epoch): + """Generic training loops.""" + self.start_epoch = start_epoch + self.max_epoch = max_epoch + + self.before_train() + for self.epoch in range(self.start_epoch, self.max_epoch): + self.before_epoch() + self.run_epoch() + self.after_epoch() + self.after_train() + + def before_train(self): + pass + + def after_train(self): + pass + + def before_epoch(self): + pass + + def after_epoch(self): + pass + + def run_epoch(self): + raise NotImplementedError + + def test(self): + raise NotImplementedError + + def parse_batch_train(self, batch): + raise NotImplementedError + + def parse_batch_test(self, batch): + raise NotImplementedError + + def forward_backward(self, batch): + raise NotImplementedError + + def model_inference(self, input): + raise NotImplementedError + + def model_zero_grad(self, names=None): + names = self.get_model_names(names) + for name in names: + if self._optims[name] is not None: + self._optims[name].zero_grad() + + def model_backward(self, loss): + self.detect_anomaly(loss) + loss.backward() + + def model_update(self, names=None): + names = self.get_model_names(names) + for name in names: + if self._optims[name] is not None: + self._optims[name].step() + + def model_backward_and_update(self, loss, names=None): + self.model_zero_grad(names) + self.model_backward(loss) + self.model_update(names) + + def prograd_backward_and_update( + self, loss_a, loss_b, lambda_=1, names=None + ): + # loss_b not increase is okay + # loss_a has to decline + self.model_zero_grad(names) + # get name of the model parameters + names = self.get_model_names(names) + # backward loss_a + self.detect_anomaly(loss_b) + loss_b.backward(retain_graph=True) + # normalize gradient + b_grads = [] + for name in names: + for p in self._models[name].parameters(): + b_grads.append(p.grad.clone()) + + # optimizer don't step + for name in names: + self._optims[name].zero_grad() + + # backward loss_a + self.detect_anomaly(loss_a) + loss_a.backward() + for name in names: + for p, b_grad in zip(self._models[name].parameters(), b_grads): + # calculate cosine distance + b_grad_norm = b_grad / torch.linalg.norm(b_grad) + a_grad = p.grad.clone() + a_grad_norm = a_grad / torch.linalg.norm(a_grad) + + if torch.dot(a_grad_norm.flatten(), b_grad_norm.flatten()) < 0: + p.grad = a_grad - lambda_ * torch.dot( + a_grad.flatten(), b_grad_norm.flatten() + ) * b_grad_norm + + # optimizer + for name in names: + self._optims[name].step() + + +class SimpleTrainer(TrainerBase): + """A simple trainer class implementing generic functions.""" + + def __init__(self, cfg): + super().__init__() + self.check_cfg(cfg) + + if torch.cuda.is_available() and cfg.USE_CUDA: + self.device = torch.device("cuda") + else: + self.device = torch.device("cpu") + + # Save as attributes some frequently used variables + self.start_epoch = self.epoch = 0 + self.max_epoch = cfg.OPTIM.MAX_EPOCH + self.output_dir = cfg.OUTPUT_DIR + + self.cfg = cfg + self.build_data_loader() + self.build_model() + self.evaluator = build_evaluator(cfg, lab2cname=self.lab2cname) + self.best_result = -np.inf + + def check_cfg(self, cfg): + """Check whether some variables are set correctly for + the trainer (optional). + + For example, a trainer might require a particular sampler + for training such as 'RandomDomainSampler', so it is good + to do the checking: + + assert cfg.DATALOADER.SAMPLER_TRAIN == 'RandomDomainSampler' + """ + pass + + def build_data_loader(self): + """Create essential data-related attributes. + + A re-implementation of this method must create the + same attributes (except self.dm). + """ + dm = DataManager(self.cfg) + + self.train_loader_x = dm.train_loader_x + self.train_loader_u = dm.train_loader_u # optional, can be None + self.val_loader = dm.val_loader # optional, can be None + self.test_loader = dm.test_loader + self.num_classes = dm.num_classes + self.num_source_domains = dm.num_source_domains + self.lab2cname = dm.lab2cname # dict {label: classname} + + self.dm = dm + + def build_model(self): + """Build and register model. + + The default builds a classification model along with its + optimizer and scheduler. + + Custom trainers can re-implement this method if necessary. + """ + cfg = self.cfg + + print("Building model") + self.model = SimpleNet(cfg, cfg.MODEL, self.num_classes) + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model, cfg.MODEL.INIT_WEIGHTS) + self.model.to(self.device) + print("# params: {:,}".format(count_num_param(self.model))) + self.optim = build_optimizer(self.model, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("model", self.model, self.optim, self.sched) + + device_count = torch.cuda.device_count() + if device_count > 1: + print( + f"Detected {device_count} GPUs. Wrap the model with nn.DataParallel" + ) + self.model = nn.DataParallel(self.model) + + def train(self): + super().train(self.start_epoch, self.max_epoch) + + def before_train(self): + directory = self.cfg.OUTPUT_DIR + if self.cfg.RESUME: + directory = self.cfg.RESUME + self.start_epoch = self.resume_model_if_exist(directory) + + # Initialize summary writer + writer_dir = osp.join(self.output_dir, "tensorboard") + mkdir_if_missing(writer_dir) + self.init_writer(writer_dir) + + # Remember the starting time (for computing the elapsed time) + self.time_start = time.time() + + def after_train(self): + print("Finished training") + + do_test = not self.cfg.TEST.NO_TEST + if do_test: + if self.cfg.TEST.FINAL_MODEL == "best_val": + print("Deploy the model with the best val performance") + self.load_model(self.output_dir) + self.test() + + # Show elapsed time + elapsed = round(time.time() - self.time_start) + elapsed = str(datetime.timedelta(seconds=elapsed)) + print("Elapsed: {}".format(elapsed)) + + # Close writer + self.close_writer() + + def after_epoch(self): + last_epoch = (self.epoch + 1) == self.max_epoch + do_test = not self.cfg.TEST.NO_TEST + meet_checkpoint_freq = ( + (self.epoch + 1) % self.cfg.TRAIN.CHECKPOINT_FREQ == 0 + if self.cfg.TRAIN.CHECKPOINT_FREQ > 0 else False + ) + + if do_test and self.cfg.TEST.FINAL_MODEL == "best_val": + curr_result = self.test(split="val") + is_best = curr_result > self.best_result + if is_best: + self.best_result = curr_result + self.save_model( + self.epoch, + self.output_dir, + model_name="model-best.pth.tar" + ) + + if meet_checkpoint_freq or last_epoch: + self.save_model(self.epoch, self.output_dir) + + @torch.no_grad() + def output_test(self, split=None): + """testing pipline, which could also output the results.""" + self.set_model_mode("eval") + self.evaluator.reset() + + output_file = osp.join(self.cfg.OUTPUT_DIR, 'output.json') + res_json = {} + + if split is None: + split = self.cfg.TEST.SPLIT + + if split == "val" and self.val_loader is not None: + data_loader = self.val_loader + print("Do evaluation on {} set".format(split)) + else: + data_loader = self.test_loader + print("Do evaluation on test set") + + for batch_idx, batch in enumerate(tqdm(data_loader)): + img_path = batch['impath'] + input, label = self.parse_batch_test(batch) + output = self.model_inference(input) + self.evaluator.process(output, label) + for i in range(len(img_path)): + res_json[img_path[i]] = { + 'predict': output[i].cpu().numpy().tolist(), + 'gt': label[i].cpu().numpy().tolist() + } + with open(output_file, 'w') as f: + json.dump(res_json, f) + results = self.evaluator.evaluate() + + for k, v in results.items(): + tag = "{}/{}".format(split, k) + self.write_scalar(tag, v, self.epoch) + + return list(results.values())[0] + + @torch.no_grad() + def test(self, split=None): + """A generic testing pipeline.""" + self.set_model_mode("eval") + self.evaluator.reset() + + if split is None: + split = self.cfg.TEST.SPLIT + + if split == "val" and self.val_loader is not None: + data_loader = self.val_loader + print("Do evaluation on {} set".format(split)) + else: + data_loader = self.test_loader + print("Do evaluation on test set") + + for batch_idx, batch in enumerate(tqdm(data_loader)): + input, label = self.parse_batch_test(batch) + output = self.model_inference(input) + self.evaluator.process(output, label) + + results = self.evaluator.evaluate() + + for k, v in results.items(): + tag = "{}/{}".format(split, k) + self.write_scalar(tag, v, self.epoch) + + return list(results.values())[0] + + def model_inference(self, input): + return self.model(input) + + def parse_batch_test(self, batch): + input = batch["img"] + label = batch["label"] + + input = input.to(self.device) + label = label.to(self.device) + + return input, label + + def get_current_lr(self, names=None): + names = self.get_model_names(names) + name = names[0] + return self._optims[name].param_groups[0]["lr"] + + +class TrainerXU(SimpleTrainer): + """A base trainer using both labeled and unlabeled data. + + In the context of domain adaptation, labeled and unlabeled data + come from source and target domains respectively. + + When it comes to semi-supervised learning, all data comes from the + same domain. + """ + + def run_epoch(self): + self.set_model_mode("train") + losses = MetricMeter() + batch_time = AverageMeter() + data_time = AverageMeter() + + # Decide to iterate over labeled or unlabeled dataset + len_train_loader_x = len(self.train_loader_x) + len_train_loader_u = len(self.train_loader_u) + if self.cfg.TRAIN.COUNT_ITER == "train_x": + self.num_batches = len_train_loader_x + elif self.cfg.TRAIN.COUNT_ITER == "train_u": + self.num_batches = len_train_loader_u + elif self.cfg.TRAIN.COUNT_ITER == "smaller_one": + self.num_batches = min(len_train_loader_x, len_train_loader_u) + else: + raise ValueError + + train_loader_x_iter = iter(self.train_loader_x) + train_loader_u_iter = iter(self.train_loader_u) + + end = time.time() + for self.batch_idx in range(self.num_batches): + try: + batch_x = next(train_loader_x_iter) + except StopIteration: + train_loader_x_iter = iter(self.train_loader_x) + batch_x = next(train_loader_x_iter) + + try: + batch_u = next(train_loader_u_iter) + except StopIteration: + train_loader_u_iter = iter(self.train_loader_u) + batch_u = next(train_loader_u_iter) + + data_time.update(time.time() - end) + loss_summary = self.forward_backward(batch_x, batch_u) + batch_time.update(time.time() - end) + losses.update(loss_summary) + + if ( + self.batch_idx + 1 + ) % self.cfg.TRAIN.PRINT_FREQ == 0 or self.num_batches < self.cfg.TRAIN.PRINT_FREQ: + nb_remain = 0 + nb_remain += self.num_batches - self.batch_idx - 1 + nb_remain += ( + self.max_epoch - self.epoch - 1 + ) * self.num_batches + eta_seconds = batch_time.avg * nb_remain + eta = str(datetime.timedelta(seconds=int(eta_seconds))) + print( + "epoch [{0}/{1}][{2}/{3}]\t" + "time {batch_time.val:.3f} ({batch_time.avg:.3f})\t" + "data {data_time.val:.3f} ({data_time.avg:.3f})\t" + "eta {eta}\t" + "{losses}\t" + "lr {lr:.6e}".format( + self.epoch + 1, + self.max_epoch, + self.batch_idx + 1, + self.num_batches, + batch_time=batch_time, + data_time=data_time, + eta=eta, + losses=losses, + lr=self.get_current_lr(), + ) + ) + + n_iter = self.epoch * self.num_batches + self.batch_idx + for name, meter in losses.meters.items(): + self.write_scalar("train/" + name, meter.avg, n_iter) + self.write_scalar("train/lr", self.get_current_lr(), n_iter) + + end = time.time() + + def parse_batch_train(self, batch_x, batch_u): + input_x = batch_x["img"] + label_x = batch_x["label"] + input_u = batch_u["img"] + + input_x = input_x.to(self.device) + label_x = label_x.to(self.device) + input_u = input_u.to(self.device) + + return input_x, label_x, input_u + + +class TrainerX(SimpleTrainer): + """A base trainer using labeled data only.""" + + def run_epoch(self): + self.set_model_mode("train") + losses = MetricMeter() + batch_time = AverageMeter() + data_time = AverageMeter() + self.num_batches = len(self.train_loader_x) + + end = time.time() + for self.batch_idx, batch in enumerate(self.train_loader_x): + data_time.update(time.time() - end) + loss_summary = self.forward_backward(batch) + batch_time.update(time.time() - end) + losses.update(loss_summary) + + if ( + self.batch_idx + 1 + ) % self.cfg.TRAIN.PRINT_FREQ == 0 or self.num_batches < self.cfg.TRAIN.PRINT_FREQ: + nb_remain = 0 + nb_remain += self.num_batches - self.batch_idx - 1 + nb_remain += ( + self.max_epoch - self.epoch - 1 + ) * self.num_batches + eta_seconds = batch_time.avg * nb_remain + eta = str(datetime.timedelta(seconds=int(eta_seconds))) + print( + "epoch [{0}/{1}][{2}/{3}]\t" + "time {batch_time.val:.3f} ({batch_time.avg:.3f})\t" + "data {data_time.val:.3f} ({data_time.avg:.3f})\t" + "eta {eta}\t" + "{losses}\t" + "lr {lr:.6e}".format( + self.epoch + 1, + self.max_epoch, + self.batch_idx + 1, + self.num_batches, + batch_time=batch_time, + data_time=data_time, + eta=eta, + losses=losses, + lr=self.get_current_lr(), + ) + ) + + n_iter = self.epoch * self.num_batches + self.batch_idx + for name, meter in losses.meters.items(): + self.write_scalar("train/" + name, meter.avg, n_iter) + self.write_scalar("train/lr", self.get_current_lr(), n_iter) + + end = time.time() + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + domain = batch["domain"] + + input = input.to(self.device) + label = label.to(self.device) + domain = domain.to(self.device) + + return input, label, domain diff --git a/Dassl.ProGrad.pytorch/dassl/evaluation/__init__.py b/Dassl.ProGrad.pytorch/dassl/evaluation/__init__.py new file mode 100644 index 0000000..59a024f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/evaluation/__init__.py @@ -0,0 +1,3 @@ +from .build import build_evaluator, EVALUATOR_REGISTRY # isort:skip + +from .evaluator import EvaluatorBase, Classification diff --git a/Dassl.ProGrad.pytorch/dassl/evaluation/build.py b/Dassl.ProGrad.pytorch/dassl/evaluation/build.py new file mode 100644 index 0000000..3132a3f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/evaluation/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +EVALUATOR_REGISTRY = Registry("EVALUATOR") + + +def build_evaluator(cfg, **kwargs): + avai_evaluators = EVALUATOR_REGISTRY.registered_names() + check_availability(cfg.TEST.EVALUATOR, avai_evaluators) + if cfg.VERBOSE: + print("Loading evaluator: {}".format(cfg.TEST.EVALUATOR)) + return EVALUATOR_REGISTRY.get(cfg.TEST.EVALUATOR)(cfg, **kwargs) diff --git a/Dassl.ProGrad.pytorch/dassl/evaluation/evaluator.py b/Dassl.ProGrad.pytorch/dassl/evaluation/evaluator.py new file mode 100644 index 0000000..c348999 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/evaluation/evaluator.py @@ -0,0 +1,127 @@ +import numpy as np +import os.path as osp +from collections import OrderedDict, defaultdict +import torch +from sklearn.metrics import f1_score, confusion_matrix + +from .build import EVALUATOR_REGISTRY + + +class EvaluatorBase: + """Base evaluator.""" + + def __init__(self, cfg): + self.cfg = cfg + + def reset(self): + raise NotImplementedError + + def process(self, mo, gt): + raise NotImplementedError + + def evaluate(self): + raise NotImplementedError + + +@EVALUATOR_REGISTRY.register() +class Classification(EvaluatorBase): + """Evaluator for classification.""" + + def __init__(self, cfg, lab2cname=None, **kwargs): + super().__init__(cfg) + self._lab2cname = lab2cname + self._correct = 0 + self._total = 0 + self._per_class_res = None + self._y_true = [] + self._y_pred = [] + if cfg.TEST.PER_CLASS_RESULT: + assert lab2cname is not None + self._per_class_res = defaultdict(list) + + def reset(self): + self._correct = 0 + self._total = 0 + self._y_true = [] + self._y_pred = [] + if self._per_class_res is not None: + self._per_class_res = defaultdict(list) + + def process(self, mo, gt): + # mo (torch.Tensor): model output [batch, num_classes] + # gt (torch.LongTensor): ground truth [batch] + pred = mo.max(1)[1] + matches = pred.eq(gt).float() + self._correct += int(matches.sum().item()) + self._total += gt.shape[0] + + self._y_true.extend(gt.data.cpu().numpy().tolist()) + self._y_pred.extend(pred.data.cpu().numpy().tolist()) + + if self._per_class_res is not None: + for i, label in enumerate(gt): + label = label.item() + matches_i = int(matches[i].item()) + self._per_class_res[label].append(matches_i) + + def evaluate(self): + results = OrderedDict() + acc = 100.0 * self._correct / self._total + err = 100.0 - acc + macro_f1 = 100.0 * f1_score( + self._y_true, + self._y_pred, + average="macro", + labels=np.unique(self._y_true) + ) + + # The first value will be returned by trainer.test() + results["accuracy"] = acc + results["error_rate"] = err + results["macro_f1"] = macro_f1 + + print( + "=> result\n" + f"* total: {self._total:,}\n" + f"* correct: {self._correct:,}\n" + f"* accuracy: {acc:.2f}%\n" + f"* error: {err:.2f}%\n" + f"* macro_f1: {macro_f1:.2f}%" + ) + + if self._per_class_res is not None: + labels = list(self._per_class_res.keys()) + labels.sort() + + print("=> per-class result") + accs = [] + + for label in labels: + classname = self._lab2cname[label] + res = self._per_class_res[label] + correct = sum(res) + total = len(res) + acc = 100.0 * correct / total + accs.append(acc) + print( + "* class: {} ({})\t" + "total: {:,}\t" + "correct: {:,}\t" + "acc: {:.2f}%".format( + label, classname, total, correct, acc + ) + ) + mean_acc = np.mean(accs) + print("* average: {:.2f}%".format(mean_acc)) + + results["perclass_accuracy"] = mean_acc + + if self.cfg.TEST.COMPUTE_CMAT: + cmat = confusion_matrix( + self._y_true, self._y_pred, normalize="true" + ) + save_path = osp.join(self.cfg.OUTPUT_DIR, "cmat.pt") + torch.save(cmat, save_path) + print('Confusion matrix is saved to "{}"'.format(save_path)) + + return results diff --git a/Dassl.ProGrad.pytorch/dassl/metrics/__init__.py b/Dassl.ProGrad.pytorch/dassl/metrics/__init__.py new file mode 100644 index 0000000..c2b37de --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/metrics/__init__.py @@ -0,0 +1,4 @@ +from .accuracy import compute_accuracy +from .distance import ( + cosine_distance, compute_distance_matrix, euclidean_squared_distance +) diff --git a/Dassl.ProGrad.pytorch/dassl/metrics/accuracy.py b/Dassl.ProGrad.pytorch/dassl/metrics/accuracy.py new file mode 100644 index 0000000..a8ed0ae --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/metrics/accuracy.py @@ -0,0 +1,30 @@ +def compute_accuracy(output, target, topk=(1, )): + """Computes the accuracy over the k top predictions for + the specified values of k. + + Args: + output (torch.Tensor): prediction matrix with shape (batch_size, num_classes). + target (torch.LongTensor): ground truth labels with shape (batch_size). + topk (tuple, optional): accuracy at top-k will be computed. For example, + topk=(1, 5) means accuracy at top-1 and top-5 will be computed. + + Returns: + list: accuracy at top-k. + """ + maxk = max(topk) + batch_size = target.size(0) + + if isinstance(output, (tuple, list)): + output = output[0] + + _, pred = output.topk(maxk, 1, True, True) + pred = pred.t() + correct = pred.eq(target.view(1, -1).expand_as(pred)) + + res = [] + for k in topk: + correct_k = correct[:k].view(-1).float().sum(0, keepdim=True) + acc = correct_k.mul_(100.0 / batch_size) + res.append(acc) + + return res diff --git a/Dassl.ProGrad.pytorch/dassl/metrics/distance.py b/Dassl.ProGrad.pytorch/dassl/metrics/distance.py new file mode 100644 index 0000000..8056815 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/metrics/distance.py @@ -0,0 +1,77 @@ +""" +Source: https://github.com/KaiyangZhou/deep-person-reid +""" +import torch +from torch.nn import functional as F + + +def compute_distance_matrix(input1, input2, metric="euclidean"): + """A wrapper function for computing distance matrix. + + Each input matrix has the shape (n_data, feature_dim). + + Args: + input1 (torch.Tensor): 2-D feature matrix. + input2 (torch.Tensor): 2-D feature matrix. + metric (str, optional): "euclidean" or "cosine". + Default is "euclidean". + + Returns: + torch.Tensor: distance matrix. + """ + # check input + assert isinstance(input1, torch.Tensor) + assert isinstance(input2, torch.Tensor) + assert input1.dim() == 2, "Expected 2-D tensor, but got {}-D".format( + input1.dim() + ) + assert input2.dim() == 2, "Expected 2-D tensor, but got {}-D".format( + input2.dim() + ) + assert input1.size(1) == input2.size(1) + + if metric == "euclidean": + distmat = euclidean_squared_distance(input1, input2) + elif metric == "cosine": + distmat = cosine_distance(input1, input2) + else: + raise ValueError( + "Unknown distance metric: {}. " + 'Please choose either "euclidean" or "cosine"'.format(metric) + ) + + return distmat + + +def euclidean_squared_distance(input1, input2): + """Computes euclidean squared distance. + + Args: + input1 (torch.Tensor): 2-D feature matrix. + input2 (torch.Tensor): 2-D feature matrix. + + Returns: + torch.Tensor: distance matrix. + """ + m, n = input1.size(0), input2.size(0) + mat1 = torch.pow(input1, 2).sum(dim=1, keepdim=True).expand(m, n) + mat2 = torch.pow(input2, 2).sum(dim=1, keepdim=True).expand(n, m).t() + distmat = mat1 + mat2 + distmat.addmm_(1, -2, input1, input2.t()) + return distmat + + +def cosine_distance(input1, input2): + """Computes cosine distance. + + Args: + input1 (torch.Tensor): 2-D feature matrix. + input2 (torch.Tensor): 2-D feature matrix. + + Returns: + torch.Tensor: distance matrix. + """ + input1_normed = F.normalize(input1, p=2, dim=1) + input2_normed = F.normalize(input2, p=2, dim=1) + distmat = 1 - torch.mm(input1_normed, input2_normed.t()) + return distmat diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/__init__.py new file mode 100644 index 0000000..88466b9 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/__init__.py @@ -0,0 +1,3 @@ +from .head import HEAD_REGISTRY, build_head +from .network import NETWORK_REGISTRY, build_network +from .backbone import BACKBONE_REGISTRY, Backbone, build_backbone diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/__init__.py new file mode 100644 index 0000000..50f644b --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/__init__.py @@ -0,0 +1,27 @@ +from .build import build_backbone, BACKBONE_REGISTRY # isort:skip +from .backbone import Backbone # isort:skip + +from .vgg import vgg16 +from .resnet import ( + resnet18, resnet34, resnet50, resnet101, resnet152, resnet18_ms_l1, + resnet50_ms_l1, resnet18_ms_l12, resnet50_ms_l12, resnet101_ms_l1, + resnet18_ms_l123, resnet50_ms_l123, resnet101_ms_l12, resnet101_ms_l123, + resnet18_efdmix_l1, resnet50_efdmix_l1, resnet18_efdmix_l12, + resnet50_efdmix_l12, resnet101_efdmix_l1, resnet18_efdmix_l123, + resnet50_efdmix_l123, resnet101_efdmix_l12, resnet101_efdmix_l123 +) +from .alexnet import alexnet +from .mobilenetv2 import mobilenetv2 +from .wide_resnet import wide_resnet_16_4, wide_resnet_28_2 +from .cnn_digitsdg import cnn_digitsdg +from .efficientnet import ( + efficientnet_b0, efficientnet_b1, efficientnet_b2, efficientnet_b3, + efficientnet_b4, efficientnet_b5, efficientnet_b6, efficientnet_b7 +) +from .shufflenetv2 import ( + shufflenet_v2_x0_5, shufflenet_v2_x1_0, shufflenet_v2_x1_5, + shufflenet_v2_x2_0 +) +from .cnn_digitsingle import cnn_digitsingle +from .preact_resnet18 import preact_resnet18 +from .cnn_digit5_m3sda import cnn_digit5_m3sda diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/alexnet.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/alexnet.py new file mode 100644 index 0000000..2daff24 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/alexnet.py @@ -0,0 +1,64 @@ +import torch +import torch.nn as nn +import torch.utils.model_zoo as model_zoo + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + +model_urls = { + "alexnet": "https://download.pytorch.org/models/alexnet-owt-4df8aa71.pth", +} + + +class AlexNet(Backbone): + + def __init__(self): + super().__init__() + self.features = nn.Sequential( + nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2), + nn.ReLU(inplace=True), + nn.MaxPool2d(kernel_size=3, stride=2), + nn.Conv2d(64, 192, kernel_size=5, padding=2), + nn.ReLU(inplace=True), + nn.MaxPool2d(kernel_size=3, stride=2), + nn.Conv2d(192, 384, kernel_size=3, padding=1), + nn.ReLU(inplace=True), + nn.Conv2d(384, 256, kernel_size=3, padding=1), + nn.ReLU(inplace=True), + nn.Conv2d(256, 256, kernel_size=3, padding=1), + nn.ReLU(inplace=True), + nn.MaxPool2d(kernel_size=3, stride=2), + ) + self.avgpool = nn.AdaptiveAvgPool2d((6, 6)) + # Note that self.classifier outputs features rather than logits + self.classifier = nn.Sequential( + nn.Dropout(), + nn.Linear(256 * 6 * 6, 4096), + nn.ReLU(inplace=True), + nn.Dropout(), + nn.Linear(4096, 4096), + nn.ReLU(inplace=True), + ) + + self._out_features = 4096 + + def forward(self, x): + x = self.features(x) + x = self.avgpool(x) + x = torch.flatten(x, 1) + return self.classifier(x) + + +def init_pretrained_weights(model, model_url): + pretrain_dict = model_zoo.load_url(model_url) + model.load_state_dict(pretrain_dict, strict=False) + + +@BACKBONE_REGISTRY.register() +def alexnet(pretrained=True, **kwargs): + model = AlexNet() + + if pretrained: + init_pretrained_weights(model, model_urls["alexnet"]) + + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/backbone.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/backbone.py new file mode 100644 index 0000000..b544d94 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/backbone.py @@ -0,0 +1,17 @@ +import torch.nn as nn + + +class Backbone(nn.Module): + + def __init__(self): + super().__init__() + + def forward(self): + pass + + @property + def out_features(self): + """Output feature dimension.""" + if self.__dict__.get("_out_features") is None: + return None + return self._out_features diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/build.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/build.py new file mode 100644 index 0000000..61f4e4f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +BACKBONE_REGISTRY = Registry("BACKBONE") + + +def build_backbone(name, verbose=True, **kwargs): + avai_backbones = BACKBONE_REGISTRY.registered_names() + check_availability(name, avai_backbones) + if verbose: + print("Backbone: {}".format(name)) + return BACKBONE_REGISTRY.get(name)(**kwargs) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digit5_m3sda.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digit5_m3sda.py new file mode 100644 index 0000000..deabded --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digit5_m3sda.py @@ -0,0 +1,58 @@ +""" +Reference + +https://github.com/VisionLearningGroup/VisionLearningGroup.github.io/tree/master/M3SDA +""" +import torch.nn as nn +from torch.nn import functional as F + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + + +class FeatureExtractor(Backbone): + + def __init__(self): + super().__init__() + self.conv1 = nn.Conv2d(3, 64, kernel_size=5, stride=1, padding=2) + self.bn1 = nn.BatchNorm2d(64) + self.conv2 = nn.Conv2d(64, 64, kernel_size=5, stride=1, padding=2) + self.bn2 = nn.BatchNorm2d(64) + self.conv3 = nn.Conv2d(64, 128, kernel_size=5, stride=1, padding=2) + self.bn3 = nn.BatchNorm2d(128) + self.fc1 = nn.Linear(8192, 3072) + self.bn1_fc = nn.BatchNorm1d(3072) + self.fc2 = nn.Linear(3072, 2048) + self.bn2_fc = nn.BatchNorm1d(2048) + + self._out_features = 2048 + + def _check_input(self, x): + H, W = x.shape[2:] + assert ( + H == 32 and W == 32 + ), "Input to network must be 32x32, " "but got {}x{}".format(H, W) + + def forward(self, x): + self._check_input(x) + x = F.relu(self.bn1(self.conv1(x))) + x = F.max_pool2d(x, stride=2, kernel_size=3, padding=1) + x = F.relu(self.bn2(self.conv2(x))) + x = F.max_pool2d(x, stride=2, kernel_size=3, padding=1) + x = F.relu(self.bn3(self.conv3(x))) + x = x.view(x.size(0), 8192) + x = F.relu(self.bn1_fc(self.fc1(x))) + x = F.dropout(x, training=self.training) + x = F.relu(self.bn2_fc(self.fc2(x))) + return x + + +@BACKBONE_REGISTRY.register() +def cnn_digit5_m3sda(**kwargs): + """ + This architecture was used for the Digit-5 dataset in: + + - Peng et al. Moment Matching for Multi-Source + Domain Adaptation. ICCV 2019. + """ + return FeatureExtractor() diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsdg.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsdg.py new file mode 100644 index 0000000..c68044f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsdg.py @@ -0,0 +1,61 @@ +import torch.nn as nn +from torch.nn import functional as F + +from dassl.utils import init_network_weights + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + + +class Convolution(nn.Module): + + def __init__(self, c_in, c_out): + super().__init__() + self.conv = nn.Conv2d(c_in, c_out, 3, stride=1, padding=1) + self.relu = nn.ReLU(True) + + def forward(self, x): + return self.relu(self.conv(x)) + + +class ConvNet(Backbone): + + def __init__(self, c_hidden=64): + super().__init__() + self.conv1 = Convolution(3, c_hidden) + self.conv2 = Convolution(c_hidden, c_hidden) + self.conv3 = Convolution(c_hidden, c_hidden) + self.conv4 = Convolution(c_hidden, c_hidden) + + self._out_features = 2**2 * c_hidden + + def _check_input(self, x): + H, W = x.shape[2:] + assert ( + H == 32 and W == 32 + ), "Input to network must be 32x32, " "but got {}x{}".format(H, W) + + def forward(self, x): + self._check_input(x) + x = self.conv1(x) + x = F.max_pool2d(x, 2) + x = self.conv2(x) + x = F.max_pool2d(x, 2) + x = self.conv3(x) + x = F.max_pool2d(x, 2) + x = self.conv4(x) + x = F.max_pool2d(x, 2) + return x.view(x.size(0), -1) + + +@BACKBONE_REGISTRY.register() +def cnn_digitsdg(**kwargs): + """ + This architecture was used for DigitsDG dataset in: + + - Zhou et al. Deep Domain-Adversarial Image Generation + for Domain Generalisation. AAAI 2020. + """ + model = ConvNet(c_hidden=64) + init_network_weights(model, init_type="kaiming") + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsingle.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsingle.py new file mode 100644 index 0000000..0c5101c --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/cnn_digitsingle.py @@ -0,0 +1,56 @@ +""" +This model is built based on +https://github.com/ricvolpi/generalize-unseen-domains/blob/master/model.py +""" +import torch.nn as nn +from torch.nn import functional as F + +from dassl.utils import init_network_weights + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + + +class CNN(Backbone): + + def __init__(self): + super().__init__() + self.conv1 = nn.Conv2d(3, 64, 5) + self.conv2 = nn.Conv2d(64, 128, 5) + self.fc3 = nn.Linear(5 * 5 * 128, 1024) + self.fc4 = nn.Linear(1024, 1024) + + self._out_features = 1024 + + def _check_input(self, x): + H, W = x.shape[2:] + assert ( + H == 32 and W == 32 + ), "Input to network must be 32x32, " "but got {}x{}".format(H, W) + + def forward(self, x): + self._check_input(x) + x = self.conv1(x) + x = F.relu(x) + x = F.max_pool2d(x, 2) + + x = self.conv2(x) + x = F.relu(x) + x = F.max_pool2d(x, 2) + + x = x.view(x.size(0), -1) + + x = self.fc3(x) + x = F.relu(x) + + x = self.fc4(x) + x = F.relu(x) + + return x + + +@BACKBONE_REGISTRY.register() +def cnn_digitsingle(**kwargs): + model = CNN() + init_network_weights(model, init_type="kaiming") + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/__init__.py new file mode 100644 index 0000000..20ee433 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/__init__.py @@ -0,0 +1,12 @@ +""" +Source: https://github.com/lukemelas/EfficientNet-PyTorch. +""" +__version__ = "0.6.4" +from .model import ( + EfficientNet, efficientnet_b0, efficientnet_b1, efficientnet_b2, + efficientnet_b3, efficientnet_b4, efficientnet_b5, efficientnet_b6, + efficientnet_b7 +) +from .utils import ( + BlockArgs, BlockDecoder, GlobalParams, efficientnet, get_model_params +) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/model.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/model.py new file mode 100644 index 0000000..296e53d --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/model.py @@ -0,0 +1,371 @@ +import torch +from torch import nn +from torch.nn import functional as F + +from .utils import ( + Swish, MemoryEfficientSwish, drop_connect, round_filters, round_repeats, + get_model_params, efficientnet_params, get_same_padding_conv2d, + load_pretrained_weights, calculate_output_image_size +) +from ..build import BACKBONE_REGISTRY +from ..backbone import Backbone + + +class MBConvBlock(nn.Module): + """ + Mobile Inverted Residual Bottleneck Block + + Args: + block_args (namedtuple): BlockArgs, see above + global_params (namedtuple): GlobalParam, see above + + Attributes: + has_se (bool): Whether the block contains a Squeeze and Excitation layer. + """ + + def __init__(self, block_args, global_params, image_size=None): + super().__init__() + self._block_args = block_args + self._bn_mom = 1 - global_params.batch_norm_momentum + self._bn_eps = global_params.batch_norm_epsilon + self.has_se = (self._block_args.se_ratio + is not None) and (0 < self._block_args.se_ratio <= 1) + self.id_skip = block_args.id_skip # skip connection and drop connect + + # Expansion phase + inp = self._block_args.input_filters # number of input channels + oup = ( + self._block_args.input_filters * self._block_args.expand_ratio + ) # number of output channels + if self._block_args.expand_ratio != 1: + Conv2d = get_same_padding_conv2d(image_size=image_size) + self._expand_conv = Conv2d( + in_channels=inp, out_channels=oup, kernel_size=1, bias=False + ) + self._bn0 = nn.BatchNorm2d( + num_features=oup, momentum=self._bn_mom, eps=self._bn_eps + ) + # image_size = calculate_output_image_size(image_size, 1) <-- this would do nothing + + # Depthwise convolution phase + k = self._block_args.kernel_size + s = self._block_args.stride + Conv2d = get_same_padding_conv2d(image_size=image_size) + self._depthwise_conv = Conv2d( + in_channels=oup, + out_channels=oup, + groups=oup, # groups makes it depthwise + kernel_size=k, + stride=s, + bias=False, + ) + self._bn1 = nn.BatchNorm2d( + num_features=oup, momentum=self._bn_mom, eps=self._bn_eps + ) + image_size = calculate_output_image_size(image_size, s) + + # Squeeze and Excitation layer, if desired + if self.has_se: + Conv2d = get_same_padding_conv2d(image_size=(1, 1)) + num_squeezed_channels = max( + 1, + int( + self._block_args.input_filters * self._block_args.se_ratio + ) + ) + self._se_reduce = Conv2d( + in_channels=oup, + out_channels=num_squeezed_channels, + kernel_size=1 + ) + self._se_expand = Conv2d( + in_channels=num_squeezed_channels, + out_channels=oup, + kernel_size=1 + ) + + # Output phase + final_oup = self._block_args.output_filters + Conv2d = get_same_padding_conv2d(image_size=image_size) + self._project_conv = Conv2d( + in_channels=oup, out_channels=final_oup, kernel_size=1, bias=False + ) + self._bn2 = nn.BatchNorm2d( + num_features=final_oup, momentum=self._bn_mom, eps=self._bn_eps + ) + self._swish = MemoryEfficientSwish() + + def forward(self, inputs, drop_connect_rate=None): + """ + :param inputs: input tensor + :param drop_connect_rate: drop connect rate (float, between 0 and 1) + :return: output of block + """ + + # Expansion and Depthwise Convolution + x = inputs + if self._block_args.expand_ratio != 1: + x = self._swish(self._bn0(self._expand_conv(inputs))) + x = self._swish(self._bn1(self._depthwise_conv(x))) + + # Squeeze and Excitation + if self.has_se: + x_squeezed = F.adaptive_avg_pool2d(x, 1) + x_squeezed = self._se_expand( + self._swish(self._se_reduce(x_squeezed)) + ) + x = torch.sigmoid(x_squeezed) * x + + x = self._bn2(self._project_conv(x)) + + # Skip connection and drop connect + input_filters, output_filters = ( + self._block_args.input_filters, + self._block_args.output_filters, + ) + if ( + self.id_skip and self._block_args.stride == 1 + and input_filters == output_filters + ): + if drop_connect_rate: + x = drop_connect( + x, p=drop_connect_rate, training=self.training + ) + x = x + inputs # skip connection + return x + + def set_swish(self, memory_efficient=True): + """Sets swish function as memory efficient (for training) or standard (for export)""" + self._swish = MemoryEfficientSwish() if memory_efficient else Swish() + + +class EfficientNet(Backbone): + """ + An EfficientNet model. Most easily loaded with the .from_name or .from_pretrained methods + + Args: + blocks_args (list): A list of BlockArgs to construct blocks + global_params (namedtuple): A set of GlobalParams shared between blocks + + Example: + model = EfficientNet.from_pretrained('efficientnet-b0') + + """ + + def __init__(self, blocks_args=None, global_params=None): + super().__init__() + assert isinstance(blocks_args, list), "blocks_args should be a list" + assert len(blocks_args) > 0, "block args must be greater than 0" + self._global_params = global_params + self._blocks_args = blocks_args + + # Batch norm parameters + bn_mom = 1 - self._global_params.batch_norm_momentum + bn_eps = self._global_params.batch_norm_epsilon + + # Get stem static or dynamic convolution depending on image size + image_size = global_params.image_size + Conv2d = get_same_padding_conv2d(image_size=global_params.image_size) + + # Stem + in_channels = 3 # rgb + out_channels = round_filters( + 32, self._global_params + ) # number of output channels + self._conv_stem = Conv2d( + in_channels, out_channels, kernel_size=3, stride=2, bias=False + ) + self._bn0 = nn.BatchNorm2d( + num_features=out_channels, momentum=bn_mom, eps=bn_eps + ) + image_size = calculate_output_image_size(image_size, 2) + + # Build blocks + self._blocks = nn.ModuleList([]) + for block_args in self._blocks_args: + + # Update block input and output filters based on depth multiplier. + block_args = block_args._replace( + input_filters=round_filters( + block_args.input_filters, self._global_params + ), + output_filters=round_filters( + block_args.output_filters, self._global_params + ), + num_repeat=round_repeats( + block_args.num_repeat, self._global_params + ), + ) + + # The first block needs to take care of stride and filter size increase. + self._blocks.append( + MBConvBlock( + block_args, self._global_params, image_size=image_size + ) + ) + image_size = calculate_output_image_size( + image_size, block_args.stride + ) + if block_args.num_repeat > 1: + block_args = block_args._replace( + input_filters=block_args.output_filters, stride=1 + ) + for _ in range(block_args.num_repeat - 1): + self._blocks.append( + MBConvBlock( + block_args, self._global_params, image_size=image_size + ) + ) + # image_size = calculate_output_image_size(image_size, block_args.stride) # ? + + # Head + in_channels = block_args.output_filters # output of final block + out_channels = round_filters(1280, self._global_params) + Conv2d = get_same_padding_conv2d(image_size=image_size) + self._conv_head = Conv2d( + in_channels, out_channels, kernel_size=1, bias=False + ) + self._bn1 = nn.BatchNorm2d( + num_features=out_channels, momentum=bn_mom, eps=bn_eps + ) + + # Final linear layer + self._avg_pooling = nn.AdaptiveAvgPool2d(1) + self._dropout = nn.Dropout(self._global_params.dropout_rate) + # self._fc = nn.Linear(out_channels, self._global_params.num_classes) + self._swish = MemoryEfficientSwish() + + self._out_features = out_channels + + def set_swish(self, memory_efficient=True): + """Sets swish function as memory efficient (for training) or standard (for export)""" + self._swish = MemoryEfficientSwish() if memory_efficient else Swish() + for block in self._blocks: + block.set_swish(memory_efficient) + + def extract_features(self, inputs): + """Returns output of the final convolution layer""" + + # Stem + x = self._swish(self._bn0(self._conv_stem(inputs))) + + # Blocks + for idx, block in enumerate(self._blocks): + drop_connect_rate = self._global_params.drop_connect_rate + if drop_connect_rate: + drop_connect_rate *= float(idx) / len(self._blocks) + x = block(x, drop_connect_rate=drop_connect_rate) + + # Head + x = self._swish(self._bn1(self._conv_head(x))) + + return x + + def forward(self, inputs): + """ + Calls extract_features to extract features, applies + final linear layer, and returns logits. + """ + bs = inputs.size(0) + # Convolution layers + x = self.extract_features(inputs) + + # Pooling and final linear layer + x = self._avg_pooling(x) + x = x.view(bs, -1) + x = self._dropout(x) + # x = self._fc(x) + return x + + @classmethod + def from_name(cls, model_name, override_params=None): + cls._check_model_name_is_valid(model_name) + blocks_args, global_params = get_model_params( + model_name, override_params + ) + return cls(blocks_args, global_params) + + @classmethod + def from_pretrained( + cls, model_name, advprop=False, num_classes=1000, in_channels=3 + ): + model = cls.from_name( + model_name, override_params={"num_classes": num_classes} + ) + load_pretrained_weights( + model, model_name, load_fc=(num_classes == 1000), advprop=advprop + ) + model._change_in_channels(in_channels) + return model + + @classmethod + def get_image_size(cls, model_name): + cls._check_model_name_is_valid(model_name) + _, _, res, _ = efficientnet_params(model_name) + return res + + @classmethod + def _check_model_name_is_valid(cls, model_name): + """Validates model name.""" + valid_models = ["efficientnet-b" + str(i) for i in range(9)] + if model_name not in valid_models: + raise ValueError( + "model_name should be one of: " + ", ".join(valid_models) + ) + + def _change_in_channels(model, in_channels): + if in_channels != 3: + Conv2d = get_same_padding_conv2d( + image_size=model._global_params.image_size + ) + out_channels = round_filters(32, model._global_params) + model._conv_stem = Conv2d( + in_channels, out_channels, kernel_size=3, stride=2, bias=False + ) + + +def build_efficientnet(name, pretrained): + if pretrained: + return EfficientNet.from_pretrained("efficientnet-{}".format(name)) + else: + return EfficientNet.from_name("efficientnet-{}".format(name)) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b0(pretrained=True, **kwargs): + return build_efficientnet("b0", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b1(pretrained=True, **kwargs): + return build_efficientnet("b1", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b2(pretrained=True, **kwargs): + return build_efficientnet("b2", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b3(pretrained=True, **kwargs): + return build_efficientnet("b3", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b4(pretrained=True, **kwargs): + return build_efficientnet("b4", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b5(pretrained=True, **kwargs): + return build_efficientnet("b5", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b6(pretrained=True, **kwargs): + return build_efficientnet("b6", pretrained) + + +@BACKBONE_REGISTRY.register() +def efficientnet_b7(pretrained=True, **kwargs): + return build_efficientnet("b7", pretrained) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/utils.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/utils.py new file mode 100644 index 0000000..a420506 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/efficientnet/utils.py @@ -0,0 +1,477 @@ +""" +This file contains helper functions for building the model and for loading model parameters. +These helper functions are built to mirror those in the official TensorFlow implementation. +""" + +import re +import math +import collections +from functools import partial +import torch +from torch import nn +from torch.nn import functional as F +from torch.utils import model_zoo + +######################################################################## +############### HELPERS FUNCTIONS FOR MODEL ARCHITECTURE ############### +######################################################################## + +# Parameters for the entire model (stem, all blocks, and head) +GlobalParams = collections.namedtuple( + "GlobalParams", + [ + "batch_norm_momentum", + "batch_norm_epsilon", + "dropout_rate", + "num_classes", + "width_coefficient", + "depth_coefficient", + "depth_divisor", + "min_depth", + "drop_connect_rate", + "image_size", + ], +) + +# Parameters for an individual model block +BlockArgs = collections.namedtuple( + "BlockArgs", + [ + "kernel_size", + "num_repeat", + "input_filters", + "output_filters", + "expand_ratio", + "id_skip", + "stride", + "se_ratio", + ], +) + +# Change namedtuple defaults +GlobalParams.__new__.__defaults__ = (None, ) * len(GlobalParams._fields) +BlockArgs.__new__.__defaults__ = (None, ) * len(BlockArgs._fields) + + +class SwishImplementation(torch.autograd.Function): + + @staticmethod + def forward(ctx, i): + result = i * torch.sigmoid(i) + ctx.save_for_backward(i) + return result + + @staticmethod + def backward(ctx, grad_output): + i = ctx.saved_variables[0] + sigmoid_i = torch.sigmoid(i) + return grad_output * (sigmoid_i * (1 + i * (1-sigmoid_i))) + + +class MemoryEfficientSwish(nn.Module): + + def forward(self, x): + return SwishImplementation.apply(x) + + +class Swish(nn.Module): + + def forward(self, x): + return x * torch.sigmoid(x) + + +def round_filters(filters, global_params): + """Calculate and round number of filters based on depth multiplier.""" + multiplier = global_params.width_coefficient + if not multiplier: + return filters + divisor = global_params.depth_divisor + min_depth = global_params.min_depth + filters *= multiplier + min_depth = min_depth or divisor + new_filters = max(min_depth, int(filters + divisor/2) // divisor * divisor) + if new_filters < 0.9 * filters: # prevent rounding by more than 10% + new_filters += divisor + return int(new_filters) + + +def round_repeats(repeats, global_params): + """Round number of filters based on depth multiplier.""" + multiplier = global_params.depth_coefficient + if not multiplier: + return repeats + return int(math.ceil(multiplier * repeats)) + + +def drop_connect(inputs, p, training): + """Drop connect.""" + if not training: + return inputs + batch_size = inputs.shape[0] + keep_prob = 1 - p + random_tensor = keep_prob + random_tensor += torch.rand( + [batch_size, 1, 1, 1], dtype=inputs.dtype, device=inputs.device + ) + binary_tensor = torch.floor(random_tensor) + output = inputs / keep_prob * binary_tensor + return output + + +def get_same_padding_conv2d(image_size=None): + """Chooses static padding if you have specified an image size, and dynamic padding otherwise. + Static padding is necessary for ONNX exporting of models.""" + if image_size is None: + return Conv2dDynamicSamePadding + else: + return partial(Conv2dStaticSamePadding, image_size=image_size) + + +def get_width_and_height_from_size(x): + """Obtains width and height from a int or tuple""" + if isinstance(x, int): + return x, x + if isinstance(x, list) or isinstance(x, tuple): + return x + else: + raise TypeError() + + +def calculate_output_image_size(input_image_size, stride): + """ + Calculates the output image size when using Conv2dSamePadding with a stride. + Necessary for static padding. Thanks to mannatsingh for pointing this out. + """ + if input_image_size is None: + return None + image_height, image_width = get_width_and_height_from_size( + input_image_size + ) + stride = stride if isinstance(stride, int) else stride[0] + image_height = int(math.ceil(image_height / stride)) + image_width = int(math.ceil(image_width / stride)) + return [image_height, image_width] + + +class Conv2dDynamicSamePadding(nn.Conv2d): + """2D Convolutions like TensorFlow, for a dynamic image size""" + + def __init__( + self, + in_channels, + out_channels, + kernel_size, + stride=1, + dilation=1, + groups=1, + bias=True, + ): + super().__init__( + in_channels, out_channels, kernel_size, stride, 0, dilation, + groups, bias + ) + self.stride = self.stride if len(self.stride + ) == 2 else [self.stride[0]] * 2 + + def forward(self, x): + ih, iw = x.size()[-2:] + kh, kw = self.weight.size()[-2:] + sh, sw = self.stride + oh, ow = math.ceil(ih / sh), math.ceil(iw / sw) + pad_h = max( + (oh-1) * self.stride[0] + (kh-1) * self.dilation[0] + 1 - ih, 0 + ) + pad_w = max( + (ow-1) * self.stride[1] + (kw-1) * self.dilation[1] + 1 - iw, 0 + ) + if pad_h > 0 or pad_w > 0: + x = F.pad( + x, + [pad_w // 2, pad_w - pad_w//2, pad_h // 2, pad_h - pad_h//2] + ) + return F.conv2d( + x, + self.weight, + self.bias, + self.stride, + self.padding, + self.dilation, + self.groups, + ) + + +class Conv2dStaticSamePadding(nn.Conv2d): + """2D Convolutions like TensorFlow, for a fixed image size""" + + def __init__( + self, + in_channels, + out_channels, + kernel_size, + image_size=None, + **kwargs + ): + super().__init__(in_channels, out_channels, kernel_size, **kwargs) + self.stride = self.stride if len(self.stride + ) == 2 else [self.stride[0]] * 2 + + # Calculate padding based on image size and save it + assert image_size is not None + ih, iw = (image_size, + image_size) if isinstance(image_size, int) else image_size + kh, kw = self.weight.size()[-2:] + sh, sw = self.stride + oh, ow = math.ceil(ih / sh), math.ceil(iw / sw) + pad_h = max( + (oh-1) * self.stride[0] + (kh-1) * self.dilation[0] + 1 - ih, 0 + ) + pad_w = max( + (ow-1) * self.stride[1] + (kw-1) * self.dilation[1] + 1 - iw, 0 + ) + if pad_h > 0 or pad_w > 0: + self.static_padding = nn.ZeroPad2d( + (pad_w // 2, pad_w - pad_w//2, pad_h // 2, pad_h - pad_h//2) + ) + else: + self.static_padding = Identity() + + def forward(self, x): + x = self.static_padding(x) + x = F.conv2d( + x, + self.weight, + self.bias, + self.stride, + self.padding, + self.dilation, + self.groups, + ) + return x + + +class Identity(nn.Module): + + def __init__(self, ): + super(Identity, self).__init__() + + def forward(self, input): + return input + + +######################################################################## +############## HELPERS FUNCTIONS FOR LOADING MODEL PARAMS ############## +######################################################################## + + +def efficientnet_params(model_name): + """Map EfficientNet model name to parameter coefficients.""" + params_dict = { + # Coefficients: width,depth,res,dropout + "efficientnet-b0": (1.0, 1.0, 224, 0.2), + "efficientnet-b1": (1.0, 1.1, 240, 0.2), + "efficientnet-b2": (1.1, 1.2, 260, 0.3), + "efficientnet-b3": (1.2, 1.4, 300, 0.3), + "efficientnet-b4": (1.4, 1.8, 380, 0.4), + "efficientnet-b5": (1.6, 2.2, 456, 0.4), + "efficientnet-b6": (1.8, 2.6, 528, 0.5), + "efficientnet-b7": (2.0, 3.1, 600, 0.5), + "efficientnet-b8": (2.2, 3.6, 672, 0.5), + "efficientnet-l2": (4.3, 5.3, 800, 0.5), + } + return params_dict[model_name] + + +class BlockDecoder(object): + """Block Decoder for readability, straight from the official TensorFlow repository""" + + @staticmethod + def _decode_block_string(block_string): + """Gets a block through a string notation of arguments.""" + assert isinstance(block_string, str) + + ops = block_string.split("_") + options = {} + for op in ops: + splits = re.split(r"(\d.*)", op) + if len(splits) >= 2: + key, value = splits[:2] + options[key] = value + + # Check stride + assert ("s" in options and len(options["s"]) == 1) or ( + len(options["s"]) == 2 and options["s"][0] == options["s"][1] + ) + + return BlockArgs( + kernel_size=int(options["k"]), + num_repeat=int(options["r"]), + input_filters=int(options["i"]), + output_filters=int(options["o"]), + expand_ratio=int(options["e"]), + id_skip=("noskip" not in block_string), + se_ratio=float(options["se"]) if "se" in options else None, + stride=[int(options["s"][0])], + ) + + @staticmethod + def _encode_block_string(block): + """Encodes a block to a string.""" + args = [ + "r%d" % block.num_repeat, + "k%d" % block.kernel_size, + "s%d%d" % (block.strides[0], block.strides[1]), + "e%s" % block.expand_ratio, + "i%d" % block.input_filters, + "o%d" % block.output_filters, + ] + if 0 < block.se_ratio <= 1: + args.append("se%s" % block.se_ratio) + if block.id_skip is False: + args.append("noskip") + return "_".join(args) + + @staticmethod + def decode(string_list): + """ + Decodes a list of string notations to specify blocks inside the network. + + :param string_list: a list of strings, each string is a notation of block + :return: a list of BlockArgs namedtuples of block args + """ + assert isinstance(string_list, list) + blocks_args = [] + for block_string in string_list: + blocks_args.append(BlockDecoder._decode_block_string(block_string)) + return blocks_args + + @staticmethod + def encode(blocks_args): + """ + Encodes a list of BlockArgs to a list of strings. + + :param blocks_args: a list of BlockArgs namedtuples of block args + :return: a list of strings, each string is a notation of block + """ + block_strings = [] + for block in blocks_args: + block_strings.append(BlockDecoder._encode_block_string(block)) + return block_strings + + +def efficientnet( + width_coefficient=None, + depth_coefficient=None, + dropout_rate=0.2, + drop_connect_rate=0.2, + image_size=None, + num_classes=1000, +): + """Creates a efficientnet model.""" + + blocks_args = [ + "r1_k3_s11_e1_i32_o16_se0.25", + "r2_k3_s22_e6_i16_o24_se0.25", + "r2_k5_s22_e6_i24_o40_se0.25", + "r3_k3_s22_e6_i40_o80_se0.25", + "r3_k5_s11_e6_i80_o112_se0.25", + "r4_k5_s22_e6_i112_o192_se0.25", + "r1_k3_s11_e6_i192_o320_se0.25", + ] + blocks_args = BlockDecoder.decode(blocks_args) + + global_params = GlobalParams( + batch_norm_momentum=0.99, + batch_norm_epsilon=1e-3, + dropout_rate=dropout_rate, + drop_connect_rate=drop_connect_rate, + # data_format='channels_last', # removed, this is always true in PyTorch + num_classes=num_classes, + width_coefficient=width_coefficient, + depth_coefficient=depth_coefficient, + depth_divisor=8, + min_depth=None, + image_size=image_size, + ) + + return blocks_args, global_params + + +def get_model_params(model_name, override_params): + """Get the block args and global params for a given model""" + if model_name.startswith("efficientnet"): + w, d, s, p = efficientnet_params(model_name) + # note: all models have drop connect rate = 0.2 + blocks_args, global_params = efficientnet( + width_coefficient=w, + depth_coefficient=d, + dropout_rate=p, + image_size=s + ) + else: + raise NotImplementedError( + "model name is not pre-defined: %s" % model_name + ) + if override_params: + # ValueError will be raised here if override_params has fields not included in global_params. + global_params = global_params._replace(**override_params) + return blocks_args, global_params + + +url_map = { + "efficientnet-b0": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b0-355c32eb.pth", + "efficientnet-b1": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b1-f1951068.pth", + "efficientnet-b2": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b2-8bb594d6.pth", + "efficientnet-b3": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b3-5fb5a3c3.pth", + "efficientnet-b4": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b4-6ed6700e.pth", + "efficientnet-b5": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b5-b6417697.pth", + "efficientnet-b6": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b6-c76e70fd.pth", + "efficientnet-b7": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b7-dcc49843.pth", +} + +url_map_advprop = { + "efficientnet-b0": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b0-b64d5a18.pth", + "efficientnet-b1": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b1-0f3ce85a.pth", + "efficientnet-b2": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b2-6e9d97e5.pth", + "efficientnet-b3": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b3-cdd7c0f4.pth", + "efficientnet-b4": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b4-44fb3a87.pth", + "efficientnet-b5": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b5-86493f6b.pth", + "efficientnet-b6": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b6-ac80338e.pth", + "efficientnet-b7": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b7-4652b6dd.pth", + "efficientnet-b8": + "https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/adv-efficientnet-b8-22a8fe65.pth", +} + + +def load_pretrained_weights(model, model_name, load_fc=True, advprop=False): + """Loads pretrained weights, and downloads if loading for the first time.""" + # AutoAugment or Advprop (different preprocessing) + url_map_ = url_map_advprop if advprop else url_map + state_dict = model_zoo.load_url(url_map_[model_name]) + model.load_state_dict(state_dict, strict=False) + """ + if load_fc: + model.load_state_dict(state_dict) + else: + state_dict.pop('_fc.weight') + state_dict.pop('_fc.bias') + res = model.load_state_dict(state_dict, strict=False) + assert set(res.missing_keys) == set(['_fc.weight', '_fc.bias']), 'issue loading pretrained weights' + + print('Loaded pretrained weights for {}'.format(model_name)) + """ diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/mobilenetv2.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/mobilenetv2.py new file mode 100644 index 0000000..5a911a6 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/mobilenetv2.py @@ -0,0 +1,217 @@ +import torch.utils.model_zoo as model_zoo +from torch import nn + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + +model_urls = { + "mobilenet_v2": + "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth", +} + + +def _make_divisible(v, divisor, min_value=None): + """ + This function is taken from the original tf repo. + It ensures that all layers have a channel number that is divisible by 8 + It can be seen here: + https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/mobilenet.py + :param v: + :param divisor: + :param min_value: + :return: + """ + if min_value is None: + min_value = divisor + new_v = max(min_value, int(v + divisor/2) // divisor * divisor) + # Make sure that round down does not go down by more than 10%. + if new_v < 0.9 * v: + new_v += divisor + return new_v + + +class ConvBNReLU(nn.Sequential): + + def __init__( + self, in_planes, out_planes, kernel_size=3, stride=1, groups=1 + ): + padding = (kernel_size-1) // 2 + super().__init__( + nn.Conv2d( + in_planes, + out_planes, + kernel_size, + stride, + padding, + groups=groups, + bias=False, + ), + nn.BatchNorm2d(out_planes), + nn.ReLU6(inplace=True), + ) + + +class InvertedResidual(nn.Module): + + def __init__(self, inp, oup, stride, expand_ratio): + super().__init__() + self.stride = stride + assert stride in [1, 2] + + hidden_dim = int(round(inp * expand_ratio)) + self.use_res_connect = self.stride == 1 and inp == oup + + layers = [] + if expand_ratio != 1: + # pw + layers.append(ConvBNReLU(inp, hidden_dim, kernel_size=1)) + layers.extend( + [ + # dw + ConvBNReLU( + hidden_dim, hidden_dim, stride=stride, groups=hidden_dim + ), + # pw-linear + nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), + nn.BatchNorm2d(oup), + ] + ) + self.conv = nn.Sequential(*layers) + + def forward(self, x): + if self.use_res_connect: + return x + self.conv(x) + else: + return self.conv(x) + + +class MobileNetV2(Backbone): + + def __init__( + self, + width_mult=1.0, + inverted_residual_setting=None, + round_nearest=8, + block=None, + ): + """ + MobileNet V2. + + Args: + width_mult (float): Width multiplier - adjusts number of channels in each layer by this amount + inverted_residual_setting: Network structure + round_nearest (int): Round the number of channels in each layer to be a multiple of this number + Set to 1 to turn off rounding + block: Module specifying inverted residual building block for mobilenet + """ + super().__init__() + + if block is None: + block = InvertedResidual + input_channel = 32 + last_channel = 1280 + + if inverted_residual_setting is None: + inverted_residual_setting = [ + # t, c, n, s + [1, 16, 1, 1], + [6, 24, 2, 2], + [6, 32, 3, 2], + [6, 64, 4, 2], + [6, 96, 3, 1], + [6, 160, 3, 2], + [6, 320, 1, 1], + ] + + # only check the first element, assuming user knows t,c,n,s are required + if ( + len(inverted_residual_setting) == 0 + or len(inverted_residual_setting[0]) != 4 + ): + raise ValueError( + "inverted_residual_setting should be non-empty " + "or a 4-element list, got {}". + format(inverted_residual_setting) + ) + + # building first layer + input_channel = _make_divisible( + input_channel * width_mult, round_nearest + ) + self.last_channel = _make_divisible( + last_channel * max(1.0, width_mult), round_nearest + ) + features = [ConvBNReLU(3, input_channel, stride=2)] + # building inverted residual blocks + for t, c, n, s in inverted_residual_setting: + output_channel = _make_divisible(c * width_mult, round_nearest) + for i in range(n): + stride = s if i == 0 else 1 + features.append( + block( + input_channel, output_channel, stride, expand_ratio=t + ) + ) + input_channel = output_channel + # building last several layers + features.append( + ConvBNReLU(input_channel, self.last_channel, kernel_size=1) + ) + # make it nn.Sequential + self.features = nn.Sequential(*features) + + self._out_features = self.last_channel + + # weight initialization + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.BatchNorm2d): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + nn.init.zeros_(m.bias) + + def _forward_impl(self, x): + # This exists since TorchScript doesn't support inheritance, so the superclass method + # (this one) needs to have a name other than `forward` that can be accessed in a subclass + x = self.features(x) + x = x.mean([2, 3]) + return x + + def forward(self, x): + return self._forward_impl(x) + + +def init_pretrained_weights(model, model_url): + """Initializes model with pretrained weights. + + Layers that don't match with pretrained layers in name or size are kept unchanged. + """ + if model_url is None: + import warnings + + warnings.warn( + "ImageNet pretrained weights are unavailable for this model" + ) + return + pretrain_dict = model_zoo.load_url(model_url) + model_dict = model.state_dict() + pretrain_dict = { + k: v + for k, v in pretrain_dict.items() + if k in model_dict and model_dict[k].size() == v.size() + } + model_dict.update(pretrain_dict) + model.load_state_dict(model_dict) + + +@BACKBONE_REGISTRY.register() +def mobilenetv2(pretrained=True, **kwargs): + model = MobileNetV2(**kwargs) + if pretrained: + init_pretrained_weights(model, model_urls["mobilenet_v2"]) + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/preact_resnet18.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/preact_resnet18.py new file mode 100644 index 0000000..8c07089 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/preact_resnet18.py @@ -0,0 +1,135 @@ +import torch.nn as nn +import torch.nn.functional as F + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + + +class PreActBlock(nn.Module): + expansion = 1 + + def __init__(self, in_planes, planes, stride=1): + super().__init__() + self.bn1 = nn.BatchNorm2d(in_planes) + self.conv1 = nn.Conv2d( + in_planes, + planes, + kernel_size=3, + stride=stride, + padding=1, + bias=False + ) + self.bn2 = nn.BatchNorm2d(planes) + self.conv2 = nn.Conv2d( + planes, planes, kernel_size=3, stride=1, padding=1, bias=False + ) + + if stride != 1 or in_planes != self.expansion * planes: + self.shortcut = nn.Sequential( + nn.Conv2d( + in_planes, + self.expansion * planes, + kernel_size=1, + stride=stride, + bias=False, + ) + ) + + def forward(self, x): + out = F.relu(self.bn1(x)) + shortcut = self.shortcut(out) if hasattr(self, "shortcut") else x + out = self.conv1(out) + out = self.conv2(F.relu(self.bn2(out))) + out += shortcut + return out + + +class PreActBottleneck(nn.Module): + expansion = 4 + + def __init__(self, in_planes, planes, stride=1): + super().__init__() + self.bn1 = nn.BatchNorm2d(in_planes) + self.conv1 = nn.Conv2d(in_planes, planes, kernel_size=1, bias=False) + self.bn2 = nn.BatchNorm2d(planes) + self.conv2 = nn.Conv2d( + planes, + planes, + kernel_size=3, + stride=stride, + padding=1, + bias=False + ) + self.bn3 = nn.BatchNorm2d(planes) + self.conv3 = nn.Conv2d( + planes, self.expansion * planes, kernel_size=1, bias=False + ) + + if stride != 1 or in_planes != self.expansion * planes: + self.shortcut = nn.Sequential( + nn.Conv2d( + in_planes, + self.expansion * planes, + kernel_size=1, + stride=stride, + bias=False, + ) + ) + + def forward(self, x): + out = F.relu(self.bn1(x)) + shortcut = self.shortcut(out) if hasattr(self, "shortcut") else x + out = self.conv1(out) + out = self.conv2(F.relu(self.bn2(out))) + out = self.conv3(F.relu(self.bn3(out))) + out += shortcut + return out + + +class PreActResNet(Backbone): + + def __init__(self, block, num_blocks): + super().__init__() + self.in_planes = 64 + + self.conv1 = nn.Conv2d( + 3, 64, kernel_size=3, stride=1, padding=1, bias=False + ) + self.layer1 = self._make_layer(block, 64, num_blocks[0], stride=1) + self.layer2 = self._make_layer(block, 128, num_blocks[1], stride=2) + self.layer3 = self._make_layer(block, 256, num_blocks[2], stride=2) + self.layer4 = self._make_layer(block, 512, num_blocks[3], stride=2) + + self._out_features = 512 * block.expansion + + def _make_layer(self, block, planes, num_blocks, stride): + strides = [stride] + [1] * (num_blocks-1) + layers = [] + for stride in strides: + layers.append(block(self.in_planes, planes, stride)) + self.in_planes = planes * block.expansion + return nn.Sequential(*layers) + + def forward(self, x): + out = self.conv1(x) + out = self.layer1(out) + out = self.layer2(out) + out = self.layer3(out) + out = self.layer4(out) + out = F.avg_pool2d(out, 4) + out = out.view(out.size(0), -1) + return out + + +""" +Preact-ResNet18 was used for the CIFAR10 and +SVHN datasets (both are SSL tasks) in + +- Wang et al. Semi-Supervised Learning by +Augmented Distribution Alignment. ICCV 2019. +""" + + +@BACKBONE_REGISTRY.register() +def preact_resnet18(**kwargs): + return PreActResNet(PreActBlock, [2, 2, 2, 2]) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/resnet.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/resnet.py new file mode 100644 index 0000000..de9ffaf --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/resnet.py @@ -0,0 +1,589 @@ +import torch.nn as nn +import torch.utils.model_zoo as model_zoo + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + +model_urls = { + "resnet18": "https://download.pytorch.org/models/resnet18-5c106cde.pth", + "resnet34": "https://download.pytorch.org/models/resnet34-333f7ec4.pth", + "resnet50": "https://download.pytorch.org/models/resnet50-19c8e357.pth", + "resnet101": "https://download.pytorch.org/models/resnet101-5d3b4d8f.pth", + "resnet152": "https://download.pytorch.org/models/resnet152-b121ed2d.pth", +} + + +def conv3x3(in_planes, out_planes, stride=1): + """3x3 convolution with padding""" + return nn.Conv2d( + in_planes, + out_planes, + kernel_size=3, + stride=stride, + padding=1, + bias=False + ) + + +class BasicBlock(nn.Module): + expansion = 1 + + def __init__(self, inplanes, planes, stride=1, downsample=None): + super().__init__() + self.conv1 = conv3x3(inplanes, planes, stride) + self.bn1 = nn.BatchNorm2d(planes) + self.relu = nn.ReLU(inplace=True) + self.conv2 = conv3x3(planes, planes) + self.bn2 = nn.BatchNorm2d(planes) + self.downsample = downsample + self.stride = stride + + def forward(self, x): + residual = x + + out = self.conv1(x) + out = self.bn1(out) + out = self.relu(out) + + out = self.conv2(out) + out = self.bn2(out) + + if self.downsample is not None: + residual = self.downsample(x) + + out += residual + out = self.relu(out) + + return out + + +class Bottleneck(nn.Module): + expansion = 4 + + def __init__(self, inplanes, planes, stride=1, downsample=None): + super().__init__() + self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False) + self.bn1 = nn.BatchNorm2d(planes) + self.conv2 = nn.Conv2d( + planes, + planes, + kernel_size=3, + stride=stride, + padding=1, + bias=False + ) + self.bn2 = nn.BatchNorm2d(planes) + self.conv3 = nn.Conv2d( + planes, planes * self.expansion, kernel_size=1, bias=False + ) + self.bn3 = nn.BatchNorm2d(planes * self.expansion) + self.relu = nn.ReLU(inplace=True) + self.downsample = downsample + self.stride = stride + + def forward(self, x): + residual = x + + out = self.conv1(x) + out = self.bn1(out) + out = self.relu(out) + + out = self.conv2(out) + out = self.bn2(out) + out = self.relu(out) + + out = self.conv3(out) + out = self.bn3(out) + + if self.downsample is not None: + residual = self.downsample(x) + + out += residual + out = self.relu(out) + + return out + + +class ResNet(Backbone): + + def __init__( + self, + block, + layers, + ms_class=None, + ms_layers=[], + ms_p=0.5, + ms_a=0.1, + **kwargs + ): + self.inplanes = 64 + super().__init__() + + # backbone network + self.conv1 = nn.Conv2d( + 3, 64, kernel_size=7, stride=2, padding=3, bias=False + ) + self.bn1 = nn.BatchNorm2d(64) + self.relu = nn.ReLU(inplace=True) + self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) + self.layer1 = self._make_layer(block, 64, layers[0]) + self.layer2 = self._make_layer(block, 128, layers[1], stride=2) + self.layer3 = self._make_layer(block, 256, layers[2], stride=2) + self.layer4 = self._make_layer(block, 512, layers[3], stride=2) + self.global_avgpool = nn.AdaptiveAvgPool2d(1) + + self._out_features = 512 * block.expansion + + self.mixstyle = None + if ms_layers: + self.mixstyle = ms_class(p=ms_p, alpha=ms_a) + for layer_name in ms_layers: + assert layer_name in ["layer1", "layer2", "layer3"] + print(f"Insert MixStyle after {ms_layers}") + self.ms_layers = ms_layers + + self._init_params() + + def _make_layer(self, block, planes, blocks, stride=1): + downsample = None + if stride != 1 or self.inplanes != planes * block.expansion: + downsample = nn.Sequential( + nn.Conv2d( + self.inplanes, + planes * block.expansion, + kernel_size=1, + stride=stride, + bias=False, + ), + nn.BatchNorm2d(planes * block.expansion), + ) + + layers = [] + layers.append(block(self.inplanes, planes, stride, downsample)) + self.inplanes = planes * block.expansion + for i in range(1, blocks): + layers.append(block(self.inplanes, planes)) + + return nn.Sequential(*layers) + + def _init_params(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_( + m.weight, mode="fan_out", nonlinearity="relu" + ) + if m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.BatchNorm2d): + nn.init.constant_(m.weight, 1) + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.BatchNorm1d): + nn.init.constant_(m.weight, 1) + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + if m.bias is not None: + nn.init.constant_(m.bias, 0) + + def featuremaps(self, x): + x = self.conv1(x) + x = self.bn1(x) + x = self.relu(x) + x = self.maxpool(x) + x = self.layer1(x) + if "layer1" in self.ms_layers: + x = self.mixstyle(x) + x = self.layer2(x) + if "layer2" in self.ms_layers: + x = self.mixstyle(x) + x = self.layer3(x) + if "layer3" in self.ms_layers: + x = self.mixstyle(x) + return self.layer4(x) + + def forward(self, x): + f = self.featuremaps(x) + v = self.global_avgpool(f) + return v.view(v.size(0), -1) + + +def init_pretrained_weights(model, model_url): + pretrain_dict = model_zoo.load_url(model_url) + model.load_state_dict(pretrain_dict, strict=False) + + +""" +Residual network configurations: +-- +resnet18: block=BasicBlock, layers=[2, 2, 2, 2] +resnet34: block=BasicBlock, layers=[3, 4, 6, 3] +resnet50: block=Bottleneck, layers=[3, 4, 6, 3] +resnet101: block=Bottleneck, layers=[3, 4, 23, 3] +resnet152: block=Bottleneck, layers=[3, 8, 36, 3] +""" + + +@BACKBONE_REGISTRY.register() +def resnet18(pretrained=True, **kwargs): + model = ResNet(block=BasicBlock, layers=[2, 2, 2, 2]) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet34(pretrained=True, **kwargs): + model = ResNet(block=BasicBlock, layers=[3, 4, 6, 3]) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet34"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50(pretrained=True, **kwargs): + model = ResNet(block=Bottleneck, layers=[3, 4, 6, 3]) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101(pretrained=True, **kwargs): + model = ResNet(block=Bottleneck, layers=[3, 4, 23, 3]) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet152(pretrained=True, **kwargs): + model = ResNet(block=Bottleneck, layers=[3, 8, 36, 3]) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet152"]) + + return model + + +""" +Residual networks with mixstyle +""" + + +@BACKBONE_REGISTRY.register() +def resnet18_ms_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=MixStyle, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet18_ms_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=MixStyle, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet18_ms_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=MixStyle, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_ms_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=MixStyle, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_ms_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=MixStyle, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_ms_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=MixStyle, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_ms_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=MixStyle, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_ms_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=MixStyle, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_ms_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import MixStyle + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=MixStyle, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +""" +Residual networks with efdmix +""" + + +@BACKBONE_REGISTRY.register() +def resnet18_efdmix_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=EFDMix, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet18_efdmix_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=EFDMix, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet18_efdmix_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=BasicBlock, + layers=[2, 2, 2, 2], + ms_class=EFDMix, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet18"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_efdmix_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=EFDMix, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_efdmix_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=EFDMix, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet50_efdmix_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 6, 3], + ms_class=EFDMix, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet50"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_efdmix_l123(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=EFDMix, + ms_layers=["layer1", "layer2", "layer3"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_efdmix_l12(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=EFDMix, + ms_layers=["layer1", "layer2"], + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model + + +@BACKBONE_REGISTRY.register() +def resnet101_efdmix_l1(pretrained=True, **kwargs): + from dassl.modeling.ops import EFDMix + + model = ResNet( + block=Bottleneck, + layers=[3, 4, 23, 3], + ms_class=EFDMix, + ms_layers=["layer1"] + ) + + if pretrained: + init_pretrained_weights(model, model_urls["resnet101"]) + + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/shufflenetv2.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/shufflenetv2.py new file mode 100644 index 0000000..b560bcc --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/shufflenetv2.py @@ -0,0 +1,229 @@ +""" +Code source: https://github.com/pytorch/vision +""" +import torch +import torch.utils.model_zoo as model_zoo +from torch import nn + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + +model_urls = { + "shufflenetv2_x0.5": + "https://download.pytorch.org/models/shufflenetv2_x0.5-f707e7126e.pth", + "shufflenetv2_x1.0": + "https://download.pytorch.org/models/shufflenetv2_x1-5666bf0f80.pth", + "shufflenetv2_x1.5": None, + "shufflenetv2_x2.0": None, +} + + +def channel_shuffle(x, groups): + batchsize, num_channels, height, width = x.data.size() + channels_per_group = num_channels // groups + + # reshape + x = x.view(batchsize, groups, channels_per_group, height, width) + + x = torch.transpose(x, 1, 2).contiguous() + + # flatten + x = x.view(batchsize, -1, height, width) + + return x + + +class InvertedResidual(nn.Module): + + def __init__(self, inp, oup, stride): + super().__init__() + + if not (1 <= stride <= 3): + raise ValueError("illegal stride value") + self.stride = stride + + branch_features = oup // 2 + assert (self.stride != 1) or (inp == branch_features << 1) + + if self.stride > 1: + self.branch1 = nn.Sequential( + self.depthwise_conv( + inp, inp, kernel_size=3, stride=self.stride, padding=1 + ), + nn.BatchNorm2d(inp), + nn.Conv2d( + inp, + branch_features, + kernel_size=1, + stride=1, + padding=0, + bias=False + ), + nn.BatchNorm2d(branch_features), + nn.ReLU(inplace=True), + ) + + self.branch2 = nn.Sequential( + nn.Conv2d( + inp if (self.stride > 1) else branch_features, + branch_features, + kernel_size=1, + stride=1, + padding=0, + bias=False, + ), + nn.BatchNorm2d(branch_features), + nn.ReLU(inplace=True), + self.depthwise_conv( + branch_features, + branch_features, + kernel_size=3, + stride=self.stride, + padding=1, + ), + nn.BatchNorm2d(branch_features), + nn.Conv2d( + branch_features, + branch_features, + kernel_size=1, + stride=1, + padding=0, + bias=False, + ), + nn.BatchNorm2d(branch_features), + nn.ReLU(inplace=True), + ) + + @staticmethod + def depthwise_conv(i, o, kernel_size, stride=1, padding=0, bias=False): + return nn.Conv2d( + i, o, kernel_size, stride, padding, bias=bias, groups=i + ) + + def forward(self, x): + if self.stride == 1: + x1, x2 = x.chunk(2, dim=1) + out = torch.cat((x1, self.branch2(x2)), dim=1) + else: + out = torch.cat((self.branch1(x), self.branch2(x)), dim=1) + + out = channel_shuffle(out, 2) + + return out + + +class ShuffleNetV2(Backbone): + + def __init__(self, stages_repeats, stages_out_channels, **kwargs): + super().__init__() + if len(stages_repeats) != 3: + raise ValueError( + "expected stages_repeats as list of 3 positive ints" + ) + if len(stages_out_channels) != 5: + raise ValueError( + "expected stages_out_channels as list of 5 positive ints" + ) + self._stage_out_channels = stages_out_channels + + input_channels = 3 + output_channels = self._stage_out_channels[0] + self.conv1 = nn.Sequential( + nn.Conv2d(input_channels, output_channels, 3, 2, 1, bias=False), + nn.BatchNorm2d(output_channels), + nn.ReLU(inplace=True), + ) + input_channels = output_channels + + self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) + + stage_names = ["stage{}".format(i) for i in [2, 3, 4]] + for name, repeats, output_channels in zip( + stage_names, stages_repeats, self._stage_out_channels[1:] + ): + seq = [InvertedResidual(input_channels, output_channels, 2)] + for i in range(repeats - 1): + seq.append( + InvertedResidual(output_channels, output_channels, 1) + ) + setattr(self, name, nn.Sequential(*seq)) + input_channels = output_channels + + output_channels = self._stage_out_channels[-1] + self.conv5 = nn.Sequential( + nn.Conv2d(input_channels, output_channels, 1, 1, 0, bias=False), + nn.BatchNorm2d(output_channels), + nn.ReLU(inplace=True), + ) + self.global_avgpool = nn.AdaptiveAvgPool2d((1, 1)) + + self._out_features = output_channels + + def featuremaps(self, x): + x = self.conv1(x) + x = self.maxpool(x) + x = self.stage2(x) + x = self.stage3(x) + x = self.stage4(x) + x = self.conv5(x) + return x + + def forward(self, x): + f = self.featuremaps(x) + v = self.global_avgpool(f) + return v.view(v.size(0), -1) + + +def init_pretrained_weights(model, model_url): + """Initializes model with pretrained weights. + + Layers that don't match with pretrained layers in name or size are kept unchanged. + """ + if model_url is None: + import warnings + + warnings.warn( + "ImageNet pretrained weights are unavailable for this model" + ) + return + pretrain_dict = model_zoo.load_url(model_url) + model_dict = model.state_dict() + pretrain_dict = { + k: v + for k, v in pretrain_dict.items() + if k in model_dict and model_dict[k].size() == v.size() + } + model_dict.update(pretrain_dict) + model.load_state_dict(model_dict) + + +@BACKBONE_REGISTRY.register() +def shufflenet_v2_x0_5(pretrained=True, **kwargs): + model = ShuffleNetV2([4, 8, 4], [24, 48, 96, 192, 1024], **kwargs) + if pretrained: + init_pretrained_weights(model, model_urls["shufflenetv2_x0.5"]) + return model + + +@BACKBONE_REGISTRY.register() +def shufflenet_v2_x1_0(pretrained=True, **kwargs): + model = ShuffleNetV2([4, 8, 4], [24, 116, 232, 464, 1024], **kwargs) + if pretrained: + init_pretrained_weights(model, model_urls["shufflenetv2_x1.0"]) + return model + + +@BACKBONE_REGISTRY.register() +def shufflenet_v2_x1_5(pretrained=True, **kwargs): + model = ShuffleNetV2([4, 8, 4], [24, 176, 352, 704, 1024], **kwargs) + if pretrained: + init_pretrained_weights(model, model_urls["shufflenetv2_x1.5"]) + return model + + +@BACKBONE_REGISTRY.register() +def shufflenet_v2_x2_0(pretrained=True, **kwargs): + model = ShuffleNetV2([4, 8, 4], [24, 244, 488, 976, 2048], **kwargs) + if pretrained: + init_pretrained_weights(model, model_urls["shufflenetv2_x2.0"]) + return model diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/vgg.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/vgg.py new file mode 100644 index 0000000..3f91491 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/vgg.py @@ -0,0 +1,147 @@ +import torch +import torch.nn as nn + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + +try: + from torch.hub import load_state_dict_from_url +except ImportError: + from torch.utils.model_zoo import load_url as load_state_dict_from_url + +model_urls = { + "vgg11": "https://download.pytorch.org/models/vgg11-bbd30ac9.pth", + "vgg13": "https://download.pytorch.org/models/vgg13-c768596a.pth", + "vgg16": "https://download.pytorch.org/models/vgg16-397923af.pth", + "vgg19": "https://download.pytorch.org/models/vgg19-dcbb9e9d.pth", + "vgg11_bn": "https://download.pytorch.org/models/vgg11_bn-6002323d.pth", + "vgg13_bn": "https://download.pytorch.org/models/vgg13_bn-abd245e5.pth", + "vgg16_bn": "https://download.pytorch.org/models/vgg16_bn-6c64b313.pth", + "vgg19_bn": "https://download.pytorch.org/models/vgg19_bn-c79401a0.pth", +} + + +class VGG(Backbone): + + def __init__(self, features, init_weights=True): + super().__init__() + self.features = features + self.avgpool = nn.AdaptiveAvgPool2d((7, 7)) + # Note that self.classifier outputs features rather than logits + self.classifier = nn.Sequential( + nn.Linear(512 * 7 * 7, 4096), + nn.ReLU(True), + nn.Dropout(), + nn.Linear(4096, 4096), + nn.ReLU(True), + nn.Dropout(), + ) + + self._out_features = 4096 + + if init_weights: + self._initialize_weights() + + def forward(self, x): + x = self.features(x) + x = self.avgpool(x) + x = torch.flatten(x, 1) + return self.classifier(x) + + def _initialize_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_( + m.weight, mode="fan_out", nonlinearity="relu" + ) + if m.bias is not None: + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.BatchNorm2d): + nn.init.constant_(m.weight, 1) + nn.init.constant_(m.bias, 0) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + nn.init.constant_(m.bias, 0) + + +def make_layers(cfg, batch_norm=False): + layers = [] + in_channels = 3 + for v in cfg: + if v == "M": + layers += [nn.MaxPool2d(kernel_size=2, stride=2)] + else: + conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1) + if batch_norm: + layers += [conv2d, nn.BatchNorm2d(v), nn.ReLU(inplace=True)] + else: + layers += [conv2d, nn.ReLU(inplace=True)] + in_channels = v + return nn.Sequential(*layers) + + +cfgs = { + "A": [64, "M", 128, "M", 256, 256, "M", 512, 512, "M", 512, 512, "M"], + "B": + [64, 64, "M", 128, 128, "M", 256, 256, "M", 512, 512, "M", 512, 512, "M"], + "D": [ + 64, + 64, + "M", + 128, + 128, + "M", + 256, + 256, + 256, + "M", + 512, + 512, + 512, + "M", + 512, + 512, + 512, + "M", + ], + "E": [ + 64, + 64, + "M", + 128, + 128, + "M", + 256, + 256, + 256, + 256, + "M", + 512, + 512, + 512, + 512, + "M", + 512, + 512, + 512, + 512, + "M", + ], +} + + +def _vgg(arch, cfg, batch_norm, pretrained): + init_weights = False if pretrained else True + model = VGG( + make_layers(cfgs[cfg], batch_norm=batch_norm), + init_weights=init_weights + ) + if pretrained: + state_dict = load_state_dict_from_url(model_urls[arch], progress=True) + model.load_state_dict(state_dict, strict=False) + return model + + +@BACKBONE_REGISTRY.register() +def vgg16(pretrained=True, **kwargs): + return _vgg("vgg16", "D", False, pretrained) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/backbone/wide_resnet.py b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/wide_resnet.py new file mode 100644 index 0000000..88ea949 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/backbone/wide_resnet.py @@ -0,0 +1,150 @@ +""" +Modified from https://github.com/xternalz/WideResNet-pytorch +""" +import torch +import torch.nn as nn +import torch.nn.functional as F + +from .build import BACKBONE_REGISTRY +from .backbone import Backbone + + +class BasicBlock(nn.Module): + + def __init__(self, in_planes, out_planes, stride, dropRate=0.0): + super().__init__() + self.bn1 = nn.BatchNorm2d(in_planes) + self.relu1 = nn.LeakyReLU(0.01, inplace=True) + self.conv1 = nn.Conv2d( + in_planes, + out_planes, + kernel_size=3, + stride=stride, + padding=1, + bias=False + ) + self.bn2 = nn.BatchNorm2d(out_planes) + self.relu2 = nn.LeakyReLU(0.01, inplace=True) + self.conv2 = nn.Conv2d( + out_planes, + out_planes, + kernel_size=3, + stride=1, + padding=1, + bias=False + ) + self.droprate = dropRate + self.equalInOut = in_planes == out_planes + self.convShortcut = ( + (not self.equalInOut) and nn.Conv2d( + in_planes, + out_planes, + kernel_size=1, + stride=stride, + padding=0, + bias=False, + ) or None + ) + + def forward(self, x): + if not self.equalInOut: + x = self.relu1(self.bn1(x)) + else: + out = self.relu1(self.bn1(x)) + out = self.relu2(self.bn2(self.conv1(out if self.equalInOut else x))) + if self.droprate > 0: + out = F.dropout(out, p=self.droprate, training=self.training) + out = self.conv2(out) + return torch.add(x if self.equalInOut else self.convShortcut(x), out) + + +class NetworkBlock(nn.Module): + + def __init__( + self, nb_layers, in_planes, out_planes, block, stride, dropRate=0.0 + ): + super().__init__() + self.layer = self._make_layer( + block, in_planes, out_planes, nb_layers, stride, dropRate + ) + + def _make_layer( + self, block, in_planes, out_planes, nb_layers, stride, dropRate + ): + layers = [] + for i in range(int(nb_layers)): + layers.append( + block( + i == 0 and in_planes or out_planes, + out_planes, + i == 0 and stride or 1, + dropRate, + ) + ) + return nn.Sequential(*layers) + + def forward(self, x): + return self.layer(x) + + +class WideResNet(Backbone): + + def __init__(self, depth, widen_factor, dropRate=0.0): + super().__init__() + nChannels = [ + 16, 16 * widen_factor, 32 * widen_factor, 64 * widen_factor + ] + assert (depth-4) % 6 == 0 + n = (depth-4) / 6 + block = BasicBlock + # 1st conv before any network block + self.conv1 = nn.Conv2d( + 3, nChannels[0], kernel_size=3, stride=1, padding=1, bias=False + ) + # 1st block + self.block1 = NetworkBlock( + n, nChannels[0], nChannels[1], block, 1, dropRate + ) + # 2nd block + self.block2 = NetworkBlock( + n, nChannels[1], nChannels[2], block, 2, dropRate + ) + # 3rd block + self.block3 = NetworkBlock( + n, nChannels[2], nChannels[3], block, 2, dropRate + ) + # global average pooling and classifier + self.bn1 = nn.BatchNorm2d(nChannels[3]) + self.relu = nn.LeakyReLU(0.01, inplace=True) + + self._out_features = nChannels[3] + + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_( + m.weight, mode="fan_out", nonlinearity="relu" + ) + elif isinstance(m, nn.BatchNorm2d): + m.weight.data.fill_(1) + m.bias.data.zero_() + elif isinstance(m, nn.Linear): + m.bias.data.zero_() + + def forward(self, x): + out = self.conv1(x) + out = self.block1(out) + out = self.block2(out) + out = self.block3(out) + out = self.relu(self.bn1(out)) + out = F.adaptive_avg_pool2d(out, 1) + return out.view(out.size(0), -1) + + +@BACKBONE_REGISTRY.register() +def wide_resnet_28_2(**kwargs): + return WideResNet(28, 2) + + +@BACKBONE_REGISTRY.register() +def wide_resnet_16_4(**kwargs): + return WideResNet(16, 4) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/head/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/head/__init__.py new file mode 100644 index 0000000..e76fb8c --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/head/__init__.py @@ -0,0 +1,3 @@ +from .build import build_head, HEAD_REGISTRY # isort:skip + +from .mlp import mlp diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/head/build.py b/Dassl.ProGrad.pytorch/dassl/modeling/head/build.py new file mode 100644 index 0000000..730437b --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/head/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +HEAD_REGISTRY = Registry("HEAD") + + +def build_head(name, verbose=True, **kwargs): + avai_heads = HEAD_REGISTRY.registered_names() + check_availability(name, avai_heads) + if verbose: + print("Head: {}".format(name)) + return HEAD_REGISTRY.get(name)(**kwargs) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/head/mlp.py b/Dassl.ProGrad.pytorch/dassl/modeling/head/mlp.py new file mode 100644 index 0000000..89aae50 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/head/mlp.py @@ -0,0 +1,50 @@ +import functools +import torch.nn as nn + +from .build import HEAD_REGISTRY + + +class MLP(nn.Module): + + def __init__( + self, + in_features=2048, + hidden_layers=[], + activation="relu", + bn=True, + dropout=0.0, + ): + super().__init__() + if isinstance(hidden_layers, int): + hidden_layers = [hidden_layers] + + assert len(hidden_layers) > 0 + self.out_features = hidden_layers[-1] + + mlp = [] + + if activation == "relu": + act_fn = functools.partial(nn.ReLU, inplace=True) + elif activation == "leaky_relu": + act_fn = functools.partial(nn.LeakyReLU, inplace=True) + else: + raise NotImplementedError + + for hidden_dim in hidden_layers: + mlp += [nn.Linear(in_features, hidden_dim)] + if bn: + mlp += [nn.BatchNorm1d(hidden_dim)] + mlp += [act_fn()] + if dropout > 0: + mlp += [nn.Dropout(dropout)] + in_features = hidden_dim + + self.mlp = nn.Sequential(*mlp) + + def forward(self, x): + return self.mlp(x) + + +@HEAD_REGISTRY.register() +def mlp(**kwargs): + return MLP(**kwargs) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/network/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/network/__init__.py new file mode 100644 index 0000000..a6fcc63 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/network/__init__.py @@ -0,0 +1,5 @@ +from .build import build_network, NETWORK_REGISTRY # isort:skip + +from .ddaig_fcn import ( + fcn_3x32_gctx, fcn_3x64_gctx, fcn_3x32_gctx_stn, fcn_3x64_gctx_stn +) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/network/build.py b/Dassl.ProGrad.pytorch/dassl/modeling/network/build.py new file mode 100644 index 0000000..e615314 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/network/build.py @@ -0,0 +1,11 @@ +from dassl.utils import Registry, check_availability + +NETWORK_REGISTRY = Registry("NETWORK") + + +def build_network(name, verbose=True, **kwargs): + avai_models = NETWORK_REGISTRY.registered_names() + check_availability(name, avai_models) + if verbose: + print("Network: {}".format(name)) + return NETWORK_REGISTRY.get(name)(**kwargs) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/network/ddaig_fcn.py b/Dassl.ProGrad.pytorch/dassl/modeling/network/ddaig_fcn.py new file mode 100644 index 0000000..17e3bdd --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/network/ddaig_fcn.py @@ -0,0 +1,329 @@ +""" +Credit to: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix +""" +import functools +import torch +import torch.nn as nn +from torch.nn import functional as F + +from .build import NETWORK_REGISTRY + + +def init_network_weights(model, init_type="normal", gain=0.02): + + def _init_func(m): + classname = m.__class__.__name__ + if hasattr(m, "weight") and ( + classname.find("Conv") != -1 or classname.find("Linear") != -1 + ): + if init_type == "normal": + nn.init.normal_(m.weight.data, 0.0, gain) + elif init_type == "xavier": + nn.init.xavier_normal_(m.weight.data, gain=gain) + elif init_type == "kaiming": + nn.init.kaiming_normal_(m.weight.data, a=0, mode="fan_in") + elif init_type == "orthogonal": + nn.init.orthogonal_(m.weight.data, gain=gain) + else: + raise NotImplementedError( + "initialization method {} is not implemented". + format(init_type) + ) + if hasattr(m, "bias") and m.bias is not None: + nn.init.constant_(m.bias.data, 0.0) + elif classname.find("BatchNorm2d") != -1: + nn.init.constant_(m.weight.data, 1.0) + nn.init.constant_(m.bias.data, 0.0) + elif classname.find("InstanceNorm2d") != -1: + if m.weight is not None and m.bias is not None: + nn.init.constant_(m.weight.data, 1.0) + nn.init.constant_(m.bias.data, 0.0) + + model.apply(_init_func) + + +def get_norm_layer(norm_type="instance"): + if norm_type == "batch": + norm_layer = functools.partial(nn.BatchNorm2d, affine=True) + elif norm_type == "instance": + norm_layer = functools.partial( + nn.InstanceNorm2d, affine=False, track_running_stats=False + ) + elif norm_type == "none": + norm_layer = None + else: + raise NotImplementedError( + "normalization layer [%s] is not found" % norm_type + ) + return norm_layer + + +class ResnetBlock(nn.Module): + + def __init__(self, dim, padding_type, norm_layer, use_dropout, use_bias): + super().__init__() + self.conv_block = self.build_conv_block( + dim, padding_type, norm_layer, use_dropout, use_bias + ) + + def build_conv_block( + self, dim, padding_type, norm_layer, use_dropout, use_bias + ): + conv_block = [] + p = 0 + if padding_type == "reflect": + conv_block += [nn.ReflectionPad2d(1)] + elif padding_type == "replicate": + conv_block += [nn.ReplicationPad2d(1)] + elif padding_type == "zero": + p = 1 + else: + raise NotImplementedError( + "padding [%s] is not implemented" % padding_type + ) + + conv_block += [ + nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), + norm_layer(dim), + nn.ReLU(True), + ] + if use_dropout: + conv_block += [nn.Dropout(0.5)] + + p = 0 + if padding_type == "reflect": + conv_block += [nn.ReflectionPad2d(1)] + elif padding_type == "replicate": + conv_block += [nn.ReplicationPad2d(1)] + elif padding_type == "zero": + p = 1 + else: + raise NotImplementedError( + "padding [%s] is not implemented" % padding_type + ) + conv_block += [ + nn.Conv2d(dim, dim, kernel_size=3, padding=p, bias=use_bias), + norm_layer(dim), + ] + + return nn.Sequential(*conv_block) + + def forward(self, x): + return x + self.conv_block(x) + + +class LocNet(nn.Module): + """Localization network.""" + + def __init__( + self, + input_nc, + nc=32, + n_blocks=3, + use_dropout=False, + padding_type="zero", + image_size=32, + ): + super().__init__() + + backbone = [] + backbone += [ + nn.Conv2d( + input_nc, nc, kernel_size=3, stride=2, padding=1, bias=False + ) + ] + backbone += [nn.BatchNorm2d(nc)] + backbone += [nn.ReLU(True)] + for _ in range(n_blocks): + backbone += [ + ResnetBlock( + nc, + padding_type=padding_type, + norm_layer=nn.BatchNorm2d, + use_dropout=use_dropout, + use_bias=False, + ) + ] + backbone += [nn.MaxPool2d(2, stride=2)] + self.backbone = nn.Sequential(*backbone) + reduced_imsize = int(image_size * 0.5**(n_blocks + 1)) + self.fc_loc = nn.Linear(nc * reduced_imsize**2, 2 * 2) + + def forward(self, x): + x = self.backbone(x) + x = x.view(x.size(0), -1) + x = self.fc_loc(x) + x = torch.tanh(x) + x = x.view(-1, 2, 2) + theta = x.data.new_zeros(x.size(0), 2, 3) + theta[:, :, :2] = x + return theta + + +class FCN(nn.Module): + """Fully convolutional network.""" + + def __init__( + self, + input_nc, + output_nc, + nc=32, + n_blocks=3, + norm_layer=nn.BatchNorm2d, + use_dropout=False, + padding_type="reflect", + gctx=True, + stn=False, + image_size=32, + ): + super().__init__() + + backbone = [] + + p = 0 + if padding_type == "reflect": + backbone += [nn.ReflectionPad2d(1)] + elif padding_type == "replicate": + backbone += [nn.ReplicationPad2d(1)] + elif padding_type == "zero": + p = 1 + else: + raise NotImplementedError + backbone += [ + nn.Conv2d( + input_nc, nc, kernel_size=3, stride=1, padding=p, bias=False + ) + ] + backbone += [norm_layer(nc)] + backbone += [nn.ReLU(True)] + + for _ in range(n_blocks): + backbone += [ + ResnetBlock( + nc, + padding_type=padding_type, + norm_layer=norm_layer, + use_dropout=use_dropout, + use_bias=False, + ) + ] + self.backbone = nn.Sequential(*backbone) + + # global context fusion layer + self.gctx_fusion = None + if gctx: + self.gctx_fusion = nn.Sequential( + nn.Conv2d( + 2 * nc, nc, kernel_size=1, stride=1, padding=0, bias=False + ), + norm_layer(nc), + nn.ReLU(True), + ) + + self.regress = nn.Sequential( + nn.Conv2d( + nc, output_nc, kernel_size=1, stride=1, padding=0, bias=True + ), + nn.Tanh(), + ) + + self.locnet = None + if stn: + self.locnet = LocNet( + input_nc, nc=nc, n_blocks=n_blocks, image_size=image_size + ) + + def init_loc_layer(self): + """Initialize the weights/bias with identity transformation.""" + if self.locnet is not None: + self.locnet.fc_loc.weight.data.zero_() + self.locnet.fc_loc.bias.data.copy_( + torch.tensor([1, 0, 0, 1], dtype=torch.float) + ) + + def stn(self, x): + """Spatial transformer network.""" + theta = self.locnet(x) + grid = F.affine_grid(theta, x.size()) + return F.grid_sample(x, grid), theta + + def forward(self, x, lmda=1.0, return_p=False, return_stn_output=False): + """ + Args: + x (torch.Tensor): input mini-batch. + lmda (float): multiplier for perturbation. + return_p (bool): return perturbation. + return_stn_output (bool): return the output of stn. + """ + theta = None + if self.locnet is not None: + x, theta = self.stn(x) + input = x + + x = self.backbone(x) + if self.gctx_fusion is not None: + c = F.adaptive_avg_pool2d(x, (1, 1)) + c = c.expand_as(x) + x = torch.cat([x, c], 1) + x = self.gctx_fusion(x) + + p = self.regress(x) + x_p = input + lmda*p + + if return_stn_output: + return x_p, p, input + + if return_p: + return x_p, p + + return x_p + + +@NETWORK_REGISTRY.register() +def fcn_3x32_gctx(**kwargs): + norm_layer = get_norm_layer(norm_type="instance") + net = FCN(3, 3, nc=32, n_blocks=3, norm_layer=norm_layer) + init_network_weights(net, init_type="normal", gain=0.02) + return net + + +@NETWORK_REGISTRY.register() +def fcn_3x64_gctx(**kwargs): + norm_layer = get_norm_layer(norm_type="instance") + net = FCN(3, 3, nc=64, n_blocks=3, norm_layer=norm_layer) + init_network_weights(net, init_type="normal", gain=0.02) + return net + + +@NETWORK_REGISTRY.register() +def fcn_3x32_gctx_stn(image_size=32, **kwargs): + norm_layer = get_norm_layer(norm_type="instance") + net = FCN( + 3, + 3, + nc=32, + n_blocks=3, + norm_layer=norm_layer, + stn=True, + image_size=image_size + ) + init_network_weights(net, init_type="normal", gain=0.02) + net.init_loc_layer() + return net + + +@NETWORK_REGISTRY.register() +def fcn_3x64_gctx_stn(image_size=224, **kwargs): + norm_layer = get_norm_layer(norm_type="instance") + net = FCN( + 3, + 3, + nc=64, + n_blocks=3, + norm_layer=norm_layer, + stn=True, + image_size=image_size + ) + init_network_weights(net, init_type="normal", gain=0.02) + net.init_loc_layer() + return net diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/__init__.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/__init__.py new file mode 100644 index 0000000..b2c0d0f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/__init__.py @@ -0,0 +1,16 @@ +from .mmd import MaximumMeanDiscrepancy +from .dsbn import DSBN1d, DSBN2d +from .mixup import mixup +from .efdmix import ( + EFDMix, random_efdmix, activate_efdmix, run_with_efdmix, deactivate_efdmix, + crossdomain_efdmix, run_without_efdmix +) +from .mixstyle import ( + MixStyle, random_mixstyle, activate_mixstyle, run_with_mixstyle, + deactivate_mixstyle, crossdomain_mixstyle, run_without_mixstyle +) +from .transnorm import TransNorm1d, TransNorm2d +from .sequential2 import Sequential2 +from .reverse_grad import ReverseGrad +from .cross_entropy import cross_entropy +from .optimal_transport import SinkhornDivergence, MinibatchEnergyDistance diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/cross_entropy.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/cross_entropy.py new file mode 100644 index 0000000..21723b0 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/cross_entropy.py @@ -0,0 +1,30 @@ +import torch +from torch.nn import functional as F + + +def cross_entropy(input, target, label_smooth=0, reduction="mean"): + """Cross entropy loss. + + Args: + input (torch.Tensor): logit matrix with shape of (batch, num_classes). + target (torch.LongTensor): int label matrix. + label_smooth (float, optional): label smoothing hyper-parameter. + Default is 0. + reduction (str, optional): how the losses for a mini-batch + will be aggregated. Default is 'mean'. + """ + num_classes = input.shape[1] + log_prob = F.log_softmax(input, dim=1) + zeros = torch.zeros(log_prob.size()) + target = zeros.scatter_(1, target.unsqueeze(1).data.cpu(), 1) + target = target.type_as(input) + target = (1-label_smooth) * target + label_smooth/num_classes + loss = (-target * log_prob).sum(1) + if reduction == "mean": + return loss.mean() + elif reduction == "sum": + return loss.sum() + elif reduction == "none": + return loss + else: + raise ValueError diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/dsbn.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/dsbn.py new file mode 100644 index 0000000..e3ee355 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/dsbn.py @@ -0,0 +1,45 @@ +import torch.nn as nn + + +class _DSBN(nn.Module): + """Domain Specific Batch Normalization. + + Args: + num_features (int): number of features. + n_domain (int): number of domains. + bn_type (str): type of bn. Choices are ['1d', '2d']. + """ + + def __init__(self, num_features, n_domain, bn_type): + super().__init__() + if bn_type == "1d": + BN = nn.BatchNorm1d + elif bn_type == "2d": + BN = nn.BatchNorm2d + else: + raise ValueError + + self.bn = nn.ModuleList(BN(num_features) for _ in range(n_domain)) + + self.valid_domain_idxs = list(range(n_domain)) + self.n_domain = n_domain + self.domain_idx = 0 + + def select_bn(self, domain_idx=0): + assert domain_idx in self.valid_domain_idxs + self.domain_idx = domain_idx + + def forward(self, x): + return self.bn[self.domain_idx](x) + + +class DSBN1d(_DSBN): + + def __init__(self, num_features, n_domain): + super().__init__(num_features, n_domain, "1d") + + +class DSBN2d(_DSBN): + + def __init__(self, num_features, n_domain): + super().__init__(num_features, n_domain, "2d") diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/efdmix.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/efdmix.py new file mode 100644 index 0000000..af58815 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/efdmix.py @@ -0,0 +1,118 @@ +import random +from contextlib import contextmanager +import torch +import torch.nn as nn + + +def deactivate_efdmix(m): + if type(m) == EFDMix: + m.set_activation_status(False) + + +def activate_efdmix(m): + if type(m) == EFDMix: + m.set_activation_status(True) + + +def random_efdmix(m): + if type(m) == EFDMix: + m.update_mix_method("random") + + +def crossdomain_efdmix(m): + if type(m) == EFDMix: + m.update_mix_method("crossdomain") + + +@contextmanager +def run_without_efdmix(model): + # Assume MixStyle was initially activated + try: + model.apply(deactivate_efdmix) + yield + finally: + model.apply(activate_efdmix) + + +@contextmanager +def run_with_efdmix(model, mix=None): + # Assume MixStyle was initially deactivated + if mix == "random": + model.apply(random_efdmix) + + elif mix == "crossdomain": + model.apply(crossdomain_efdmix) + + try: + model.apply(activate_efdmix) + yield + finally: + model.apply(deactivate_efdmix) + + +class EFDMix(nn.Module): + """EFDMix. + + Reference: + Zhang et al. Exact Feature Distribution Matching for Arbitrary Style Transfer and Domain Generalization. CVPR 2022. + """ + + def __init__(self, p=0.5, alpha=0.1, eps=1e-6, mix="random"): + """ + Args: + p (float): probability of using MixStyle. + alpha (float): parameter of the Beta distribution. + eps (float): scaling parameter to avoid numerical issues. + mix (str): how to mix. + """ + super().__init__() + self.p = p + self.beta = torch.distributions.Beta(alpha, alpha) + self.eps = eps + self.alpha = alpha + self.mix = mix + self._activated = True + + def __repr__(self): + return ( + f"MixStyle(p={self.p}, alpha={self.alpha}, eps={self.eps}, mix={self.mix})" + ) + + def set_activation_status(self, status=True): + self._activated = status + + def update_mix_method(self, mix="random"): + self.mix = mix + + def forward(self, x): + if not self.training or not self._activated: + return x + + if random.random() > self.p: + return x + + B, C, W, H = x.size(0), x.size(1), x.size(2), x.size(3) + x_view = x.view(B, C, -1) + value_x, index_x = torch.sort(x_view) # sort inputs + lmda = self.beta.sample((B, 1, 1)) + lmda = lmda.to(x.device) + + if self.mix == "random": + # random shuffle + perm = torch.randperm(B) + + elif self.mix == "crossdomain": + # split into two halves and swap the order + perm = torch.arange(B - 1, -1, -1) # inverse index + perm_b, perm_a = perm.chunk(2) + perm_b = perm_b[torch.randperm(perm_b.shape[0])] + perm_a = perm_a[torch.randperm(perm_a.shape[0])] + perm = torch.cat([perm_b, perm_a], 0) + + else: + raise NotImplementedError + + inverse_index = index_x.argsort(-1) + x_view_copy = value_x[perm].gather(-1, inverse_index) + new_x = x_view + (x_view_copy - x_view.detach()) * (1-lmda) + return new_x.view(B, C, W, H) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixstyle.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixstyle.py new file mode 100644 index 0000000..34f47a8 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixstyle.py @@ -0,0 +1,124 @@ +import random +from contextlib import contextmanager +import torch +import torch.nn as nn + + +def deactivate_mixstyle(m): + if type(m) == MixStyle: + m.set_activation_status(False) + + +def activate_mixstyle(m): + if type(m) == MixStyle: + m.set_activation_status(True) + + +def random_mixstyle(m): + if type(m) == MixStyle: + m.update_mix_method("random") + + +def crossdomain_mixstyle(m): + if type(m) == MixStyle: + m.update_mix_method("crossdomain") + + +@contextmanager +def run_without_mixstyle(model): + # Assume MixStyle was initially activated + try: + model.apply(deactivate_mixstyle) + yield + finally: + model.apply(activate_mixstyle) + + +@contextmanager +def run_with_mixstyle(model, mix=None): + # Assume MixStyle was initially deactivated + if mix == "random": + model.apply(random_mixstyle) + + elif mix == "crossdomain": + model.apply(crossdomain_mixstyle) + + try: + model.apply(activate_mixstyle) + yield + finally: + model.apply(deactivate_mixstyle) + + +class MixStyle(nn.Module): + """MixStyle. + + Reference: + Zhou et al. Domain Generalization with MixStyle. ICLR 2021. + """ + + def __init__(self, p=0.5, alpha=0.1, eps=1e-6, mix="random"): + """ + Args: + p (float): probability of using MixStyle. + alpha (float): parameter of the Beta distribution. + eps (float): scaling parameter to avoid numerical issues. + mix (str): how to mix. + """ + super().__init__() + self.p = p + self.beta = torch.distributions.Beta(alpha, alpha) + self.eps = eps + self.alpha = alpha + self.mix = mix + self._activated = True + + def __repr__(self): + return ( + f"MixStyle(p={self.p}, alpha={self.alpha}, eps={self.eps}, mix={self.mix})" + ) + + def set_activation_status(self, status=True): + self._activated = status + + def update_mix_method(self, mix="random"): + self.mix = mix + + def forward(self, x): + if not self.training or not self._activated: + return x + + if random.random() > self.p: + return x + + B = x.size(0) + + mu = x.mean(dim=[2, 3], keepdim=True) + var = x.var(dim=[2, 3], keepdim=True) + sig = (var + self.eps).sqrt() + mu, sig = mu.detach(), sig.detach() + x_normed = (x-mu) / sig + + lmda = self.beta.sample((B, 1, 1, 1)) + lmda = lmda.to(x.device) + + if self.mix == "random": + # random shuffle + perm = torch.randperm(B) + + elif self.mix == "crossdomain": + # split into two halves and swap the order + perm = torch.arange(B - 1, -1, -1) # inverse index + perm_b, perm_a = perm.chunk(2) + perm_b = perm_b[torch.randperm(perm_b.shape[0])] + perm_a = perm_a[torch.randperm(perm_a.shape[0])] + perm = torch.cat([perm_b, perm_a], 0) + + else: + raise NotImplementedError + + mu2, sig2 = mu[perm], sig[perm] + mu_mix = mu*lmda + mu2 * (1-lmda) + sig_mix = sig*lmda + sig2 * (1-lmda) + + return x_normed*sig_mix + mu_mix diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixup.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixup.py new file mode 100644 index 0000000..5844074 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mixup.py @@ -0,0 +1,23 @@ +import torch + + +def mixup(x1, x2, y1, y2, beta, preserve_order=False): + """Mixup. + + Args: + x1 (torch.Tensor): data with shape of (b, c, h, w). + x2 (torch.Tensor): data with shape of (b, c, h, w). + y1 (torch.Tensor): label with shape of (b, n). + y2 (torch.Tensor): label with shape of (b, n). + beta (float): hyper-parameter for Beta sampling. + preserve_order (bool): apply lmda=max(lmda, 1-lmda). + Default is False. + """ + lmda = torch.distributions.Beta(beta, beta).sample([x1.shape[0], 1, 1, 1]) + if preserve_order: + lmda = torch.max(lmda, 1 - lmda) + lmda = lmda.to(x1.device) + xmix = x1*lmda + x2 * (1-lmda) + lmda = lmda[:, :, 0, 0] + ymix = y1*lmda + y2 * (1-lmda) + return xmix, ymix diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/mmd.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mmd.py new file mode 100644 index 0000000..a23fa57 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/mmd.py @@ -0,0 +1,91 @@ +import torch +import torch.nn as nn +from torch.nn import functional as F + + +class MaximumMeanDiscrepancy(nn.Module): + + def __init__(self, kernel_type="rbf", normalize=False): + super().__init__() + self.kernel_type = kernel_type + self.normalize = normalize + + def forward(self, x, y): + # x, y: two batches of data with shape (batch, dim) + # MMD^2(x, y) = k(x, x') - 2k(x, y) + k(y, y') + if self.normalize: + x = F.normalize(x, dim=1) + y = F.normalize(y, dim=1) + if self.kernel_type == "linear": + return self.linear_mmd(x, y) + elif self.kernel_type == "poly": + return self.poly_mmd(x, y) + elif self.kernel_type == "rbf": + return self.rbf_mmd(x, y) + else: + raise NotImplementedError + + def linear_mmd(self, x, y): + # k(x, y) = x^T y + k_xx = self.remove_self_distance(torch.mm(x, x.t())) + k_yy = self.remove_self_distance(torch.mm(y, y.t())) + k_xy = torch.mm(x, y.t()) + return k_xx.mean() + k_yy.mean() - 2 * k_xy.mean() + + def poly_mmd(self, x, y, alpha=1.0, c=2.0, d=2): + # k(x, y) = (alpha * x^T y + c)^d + k_xx = self.remove_self_distance(torch.mm(x, x.t())) + k_xx = (alpha*k_xx + c).pow(d) + k_yy = self.remove_self_distance(torch.mm(y, y.t())) + k_yy = (alpha*k_yy + c).pow(d) + k_xy = torch.mm(x, y.t()) + k_xy = (alpha*k_xy + c).pow(d) + return k_xx.mean() + k_yy.mean() - 2 * k_xy.mean() + + def rbf_mmd(self, x, y): + # k_xx + d_xx = self.euclidean_squared_distance(x, x) + d_xx = self.remove_self_distance(d_xx) + k_xx = self.rbf_kernel_mixture(d_xx) + # k_yy + d_yy = self.euclidean_squared_distance(y, y) + d_yy = self.remove_self_distance(d_yy) + k_yy = self.rbf_kernel_mixture(d_yy) + # k_xy + d_xy = self.euclidean_squared_distance(x, y) + k_xy = self.rbf_kernel_mixture(d_xy) + return k_xx.mean() + k_yy.mean() - 2 * k_xy.mean() + + @staticmethod + def rbf_kernel_mixture(exponent, sigmas=[1, 5, 10]): + K = 0 + for sigma in sigmas: + gamma = 1.0 / (2.0 * sigma**2) + K += torch.exp(-gamma * exponent) + return K + + @staticmethod + def remove_self_distance(distmat): + tmp_list = [] + for i, row in enumerate(distmat): + row1 = torch.cat([row[:i], row[i + 1:]]) + tmp_list.append(row1) + return torch.stack(tmp_list) + + @staticmethod + def euclidean_squared_distance(x, y): + m, n = x.size(0), y.size(0) + distmat = ( + torch.pow(x, 2).sum(dim=1, keepdim=True).expand(m, n) + + torch.pow(y, 2).sum(dim=1, keepdim=True).expand(n, m).t() + ) + # distmat.addmm_(1, -2, x, y.t()) + distmat.addmm_(x, y.t(), beta=1, alpha=-2) + return distmat + + +if __name__ == "__main__": + mmd = MaximumMeanDiscrepancy(kernel_type="rbf") + input1, input2 = torch.rand(3, 100), torch.rand(3, 100) + d = mmd(input1, input2) + print(d.item()) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/optimal_transport.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/optimal_transport.py new file mode 100644 index 0000000..128ea96 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/optimal_transport.py @@ -0,0 +1,147 @@ +import torch +import torch.nn as nn +from torch.nn import functional as F + + +class OptimalTransport(nn.Module): + + @staticmethod + def distance(batch1, batch2, dist_metric="cosine"): + if dist_metric == "cosine": + batch1 = F.normalize(batch1, p=2, dim=1) + batch2 = F.normalize(batch2, p=2, dim=1) + dist_mat = 1 - torch.mm(batch1, batch2.t()) + elif dist_metric == "euclidean": + m, n = batch1.size(0), batch2.size(0) + dist_mat = ( + torch.pow(batch1, 2).sum(dim=1, keepdim=True).expand(m, n) + + torch.pow(batch2, 2).sum(dim=1, keepdim=True).expand(n, m).t() + ) + dist_mat.addmm_( + 1, -2, batch1, batch2.t() + ) # squared euclidean distance + elif dist_metric == "fast_euclidean": + batch1 = batch1.unsqueeze(-2) + batch2 = batch2.unsqueeze(-3) + dist_mat = torch.sum((torch.abs(batch1 - batch2))**2, -1) + else: + raise ValueError( + "Unknown cost function: {}. Expected to " + "be one of [cosine | euclidean]".format(dist_metric) + ) + return dist_mat + + +class SinkhornDivergence(OptimalTransport): + thre = 1e-3 + + def __init__( + self, + dist_metric="cosine", + eps=0.01, + max_iter=5, + bp_to_sinkhorn=False + ): + super().__init__() + self.dist_metric = dist_metric + self.eps = eps + self.max_iter = max_iter + self.bp_to_sinkhorn = bp_to_sinkhorn + + def forward(self, x, y): + # x, y: two batches of data with shape (batch, dim) + W_xy = self.transport_cost(x, y) + W_xx = self.transport_cost(x, x) + W_yy = self.transport_cost(y, y) + return 2*W_xy - W_xx - W_yy + + def transport_cost(self, x, y, return_pi=False): + C = self.distance(x, y, dist_metric=self.dist_metric) + pi = self.sinkhorn_iterate(C, self.eps, self.max_iter, self.thre) + if not self.bp_to_sinkhorn: + pi = pi.detach() + cost = torch.sum(pi * C) + if return_pi: + return cost, pi + return cost + + @staticmethod + def sinkhorn_iterate(C, eps, max_iter, thre): + nx, ny = C.shape + mu = torch.ones(nx, dtype=C.dtype, device=C.device) * (1.0/nx) + nu = torch.ones(ny, dtype=C.dtype, device=C.device) * (1.0/ny) + u = torch.zeros_like(mu) + v = torch.zeros_like(nu) + + def M(_C, _u, _v): + """Modified cost for logarithmic updates. + Eq: M_{ij} = (-c_{ij} + u_i + v_j) / epsilon + """ + return (-_C + _u.unsqueeze(-1) + _v.unsqueeze(-2)) / eps + + real_iter = 0 # check if algorithm terminates before max_iter + # Sinkhorn iterations + for i in range(max_iter): + u0 = u + u = eps * ( + torch.log(mu + 1e-8) - torch.logsumexp(M(C, u, v), dim=1) + ) + u + v = ( + eps * ( + torch.log(nu + 1e-8) - + torch.logsumexp(M(C, u, v).permute(1, 0), dim=1) + ) + v + ) + err = (u - u0).abs().sum() + real_iter += 1 + if err.item() < thre: + break + # Transport plan pi = diag(a)*K*diag(b) + return torch.exp(M(C, u, v)) + + +class MinibatchEnergyDistance(SinkhornDivergence): + + def __init__( + self, + dist_metric="cosine", + eps=0.01, + max_iter=5, + bp_to_sinkhorn=False + ): + super().__init__( + dist_metric=dist_metric, + eps=eps, + max_iter=max_iter, + bp_to_sinkhorn=bp_to_sinkhorn, + ) + + def forward(self, x, y): + x1, x2 = torch.split(x, x.size(0) // 2, dim=0) + y1, y2 = torch.split(y, y.size(0) // 2, dim=0) + cost = 0 + cost += self.transport_cost(x1, y1) + cost += self.transport_cost(x1, y2) + cost += self.transport_cost(x2, y1) + cost += self.transport_cost(x2, y2) + cost -= 2 * self.transport_cost(x1, x2) + cost -= 2 * self.transport_cost(y1, y2) + return cost + + +if __name__ == "__main__": + # example: https://dfdazac.github.io/sinkhorn.html + import numpy as np + + n_points = 5 + a = np.array([[i, 0] for i in range(n_points)]) + b = np.array([[i, 1] for i in range(n_points)]) + x = torch.tensor(a, dtype=torch.float) + y = torch.tensor(b, dtype=torch.float) + sinkhorn = SinkhornDivergence( + dist_metric="euclidean", eps=0.01, max_iter=5 + ) + dist, pi = sinkhorn.transport_cost(x, y, True) + import pdb + + pdb.set_trace() diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/reverse_grad.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/reverse_grad.py new file mode 100644 index 0000000..34bab9d --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/reverse_grad.py @@ -0,0 +1,34 @@ +import torch.nn as nn +from torch.autograd import Function + + +class _ReverseGrad(Function): + + @staticmethod + def forward(ctx, input, grad_scaling): + ctx.grad_scaling = grad_scaling + return input.view_as(input) + + @staticmethod + def backward(ctx, grad_output): + grad_scaling = ctx.grad_scaling + return -grad_scaling * grad_output, None + + +reverse_grad = _ReverseGrad.apply + + +class ReverseGrad(nn.Module): + """Gradient reversal layer. + + It acts as an identity layer in the forward, + but reverses the sign of the gradient in + the backward. + """ + + def forward(self, x, grad_scaling=1.0): + assert (grad_scaling >= + 0), "grad_scaling must be non-negative, " "but got {}".format( + grad_scaling + ) + return reverse_grad(x, grad_scaling) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/sequential2.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/sequential2.py new file mode 100644 index 0000000..47a8383 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/sequential2.py @@ -0,0 +1,15 @@ +import torch.nn as nn + + +class Sequential2(nn.Sequential): + """An alternative sequential container to nn.Sequential, + which accepts an arbitrary number of input arguments. + """ + + def forward(self, *inputs): + for module in self._modules.values(): + if isinstance(inputs, tuple): + inputs = module(*inputs) + else: + inputs = module(inputs) + return inputs diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/transnorm.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/transnorm.py new file mode 100644 index 0000000..453db77 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/transnorm.py @@ -0,0 +1,138 @@ +import torch +import torch.nn as nn + + +class _TransNorm(nn.Module): + """Transferable normalization. + + Reference: + - Wang et al. Transferable Normalization: Towards Improving + Transferability of Deep Neural Networks. NeurIPS 2019. + + Args: + num_features (int): number of features. + eps (float): epsilon. + momentum (float): value for updating running_mean and running_var. + adaptive_alpha (bool): apply domain adaptive alpha. + """ + + def __init__( + self, num_features, eps=1e-5, momentum=0.1, adaptive_alpha=True + ): + super().__init__() + self.num_features = num_features + self.eps = eps + self.momentum = momentum + self.adaptive_alpha = adaptive_alpha + + self.register_buffer("running_mean_s", torch.zeros(num_features)) + self.register_buffer("running_var_s", torch.ones(num_features)) + self.register_buffer("running_mean_t", torch.zeros(num_features)) + self.register_buffer("running_var_t", torch.ones(num_features)) + + self.weight = nn.Parameter(torch.ones(num_features)) + self.bias = nn.Parameter(torch.zeros(num_features)) + + def resnet_running_stats(self): + self.running_mean_s.zero_() + self.running_var_s.fill_(1) + self.running_mean_t.zero_() + self.running_var_t.fill_(1) + + def reset_parameters(self): + nn.init.ones_(self.weight) + nn.init.zeros_(self.bias) + + def _check_input(self, x): + raise NotImplementedError + + def _compute_alpha(self, mean_s, var_s, mean_t, var_t): + C = self.num_features + ratio_s = mean_s / (var_s + self.eps).sqrt() + ratio_t = mean_t / (var_t + self.eps).sqrt() + dist = (ratio_s - ratio_t).abs() + dist_inv = 1 / (1+dist) + return C * dist_inv / dist_inv.sum() + + def forward(self, input): + self._check_input(input) + C = self.num_features + if input.dim() == 2: + new_shape = (1, C) + elif input.dim() == 4: + new_shape = (1, C, 1, 1) + else: + raise ValueError + + weight = self.weight.view(*new_shape) + bias = self.bias.view(*new_shape) + + if not self.training: + mean_t = self.running_mean_t.view(*new_shape) + var_t = self.running_var_t.view(*new_shape) + output = (input-mean_t) / (var_t + self.eps).sqrt() + output = output*weight + bias + + if self.adaptive_alpha: + mean_s = self.running_mean_s.view(*new_shape) + var_s = self.running_var_s.view(*new_shape) + alpha = self._compute_alpha(mean_s, var_s, mean_t, var_t) + alpha = alpha.reshape(*new_shape) + output = (1 + alpha.detach()) * output + + return output + + input_s, input_t = torch.split(input, input.shape[0] // 2, dim=0) + + x_s = input_s.transpose(0, 1).reshape(C, -1) + mean_s = x_s.mean(1) + var_s = x_s.var(1) + self.running_mean_s.mul_(self.momentum) + self.running_mean_s.add_((1 - self.momentum) * mean_s.data) + self.running_var_s.mul_(self.momentum) + self.running_var_s.add_((1 - self.momentum) * var_s.data) + mean_s = mean_s.reshape(*new_shape) + var_s = var_s.reshape(*new_shape) + output_s = (input_s-mean_s) / (var_s + self.eps).sqrt() + output_s = output_s*weight + bias + + x_t = input_t.transpose(0, 1).reshape(C, -1) + mean_t = x_t.mean(1) + var_t = x_t.var(1) + self.running_mean_t.mul_(self.momentum) + self.running_mean_t.add_((1 - self.momentum) * mean_t.data) + self.running_var_t.mul_(self.momentum) + self.running_var_t.add_((1 - self.momentum) * var_t.data) + mean_t = mean_t.reshape(*new_shape) + var_t = var_t.reshape(*new_shape) + output_t = (input_t-mean_t) / (var_t + self.eps).sqrt() + output_t = output_t*weight + bias + + output = torch.cat([output_s, output_t], 0) + + if self.adaptive_alpha: + alpha = self._compute_alpha(mean_s, var_s, mean_t, var_t) + alpha = alpha.reshape(*new_shape) + output = (1 + alpha.detach()) * output + + return output + + +class TransNorm1d(_TransNorm): + + def _check_input(self, x): + if x.dim() != 2: + raise ValueError( + "Expected the input to be 2-D, " + "but got {}-D".format(x.dim()) + ) + + +class TransNorm2d(_TransNorm): + + def _check_input(self, x): + if x.dim() != 4: + raise ValueError( + "Expected the input to be 4-D, " + "but got {}-D".format(x.dim()) + ) diff --git a/Dassl.ProGrad.pytorch/dassl/modeling/ops/utils.py b/Dassl.ProGrad.pytorch/dassl/modeling/ops/utils.py new file mode 100644 index 0000000..0764de8 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/modeling/ops/utils.py @@ -0,0 +1,75 @@ +import numpy as np +import torch + + +def sharpen_prob(p, temperature=2): + """Sharpening probability with a temperature. + + Args: + p (torch.Tensor): probability matrix (batch_size, n_classes) + temperature (float): temperature. + """ + p = p.pow(temperature) + return p / p.sum(1, keepdim=True) + + +def reverse_index(data, label): + """Reverse order.""" + inv_idx = torch.arange(data.size(0) - 1, -1, -1).long() + return data[inv_idx], label[inv_idx] + + +def shuffle_index(data, label): + """Shuffle order.""" + rnd_idx = torch.randperm(data.shape[0]) + return data[rnd_idx], label[rnd_idx] + + +def create_onehot(label, num_classes): + """Create one-hot tensor. + + We suggest using nn.functional.one_hot. + + Args: + label (torch.Tensor): 1-D tensor. + num_classes (int): number of classes. + """ + onehot = torch.zeros(label.shape[0], num_classes) + return onehot.scatter(1, label.unsqueeze(1).data.cpu(), 1) + + +def sigmoid_rampup(current, rampup_length): + """Exponential rampup. + + Args: + current (int): current step. + rampup_length (int): maximum step. + """ + assert rampup_length > 0 + current = np.clip(current, 0.0, rampup_length) + phase = 1.0 - current/rampup_length + return float(np.exp(-5.0 * phase * phase)) + + +def linear_rampup(current, rampup_length): + """Linear rampup. + + Args: + current (int): current step. + rampup_length (int): maximum step. + """ + assert rampup_length > 0 + ratio = np.clip(current / rampup_length, 0.0, 1.0) + return float(ratio) + + +def ema_model_update(model, ema_model, alpha): + """Exponential moving average of model parameters. + + Args: + model (nn.Module): model being trained. + ema_model (nn.Module): ema of the model. + alpha (float): ema decay rate. + """ + for ema_param, param in zip(ema_model.parameters(), model.parameters()): + ema_param.data.mul_(alpha).add_(param.data, alpha=1 - alpha) diff --git a/Dassl.ProGrad.pytorch/dassl/optim/__init__.py b/Dassl.ProGrad.pytorch/dassl/optim/__init__.py new file mode 100644 index 0000000..e7ef4c0 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/optim/__init__.py @@ -0,0 +1,2 @@ +from .optimizer import build_optimizer +from .lr_scheduler import build_lr_scheduler diff --git a/Dassl.ProGrad.pytorch/dassl/optim/lr_scheduler.py b/Dassl.ProGrad.pytorch/dassl/optim/lr_scheduler.py new file mode 100644 index 0000000..f94c6f3 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/optim/lr_scheduler.py @@ -0,0 +1,154 @@ +""" +Modified from https://github.com/KaiyangZhou/deep-person-reid +""" +import torch +from torch.optim.lr_scheduler import _LRScheduler + +AVAI_SCHEDS = ["single_step", "multi_step", "cosine"] + + +class _BaseWarmupScheduler(_LRScheduler): + + def __init__( + self, + optimizer, + successor, + warmup_epoch, + last_epoch=-1, + verbose=False + ): + self.successor = successor + self.warmup_epoch = warmup_epoch + super().__init__(optimizer, last_epoch, verbose) + + def get_lr(self): + raise NotImplementedError + + def step(self, epoch=None): + if self.last_epoch >= self.warmup_epoch: + self.successor.step(epoch) + self._last_lr = self.successor.get_last_lr() + else: + super().step(epoch) + + +class ConstantWarmupScheduler(_BaseWarmupScheduler): + + def __init__( + self, + optimizer, + successor, + warmup_epoch, + cons_lr, + last_epoch=-1, + verbose=False + ): + self.cons_lr = cons_lr + super().__init__( + optimizer, successor, warmup_epoch, last_epoch, verbose + ) + + def get_lr(self): + if self.last_epoch >= self.warmup_epoch: + return self.successor.get_last_lr() + return [self.cons_lr for _ in self.base_lrs] + + +class LinearWarmupScheduler(_BaseWarmupScheduler): + + def __init__( + self, + optimizer, + successor, + warmup_epoch, + min_lr, + last_epoch=-1, + verbose=False + ): + self.min_lr = min_lr + super().__init__( + optimizer, successor, warmup_epoch, last_epoch, verbose + ) + + def get_lr(self): + if self.last_epoch >= self.warmup_epoch: + return self.successor.get_last_lr() + if self.last_epoch == 0: + return [self.min_lr for _ in self.base_lrs] + return [ + lr * self.last_epoch / self.warmup_epoch for lr in self.base_lrs + ] + + +def build_lr_scheduler(optimizer, optim_cfg): + """A function wrapper for building a learning rate scheduler. + + Args: + optimizer (Optimizer): an Optimizer. + optim_cfg (CfgNode): optimization config. + """ + lr_scheduler = optim_cfg.LR_SCHEDULER + stepsize = optim_cfg.STEPSIZE + gamma = optim_cfg.GAMMA + max_epoch = optim_cfg.MAX_EPOCH + + if lr_scheduler not in AVAI_SCHEDS: + raise ValueError( + "Unsupported scheduler: {}. Must be one of {}".format( + lr_scheduler, AVAI_SCHEDS + ) + ) + + if lr_scheduler == "single_step": + if isinstance(stepsize, (list, tuple)): + stepsize = stepsize[-1] + + if not isinstance(stepsize, int): + raise TypeError( + "For single_step lr_scheduler, stepsize must " + "be an integer, but got {}".format(type(stepsize)) + ) + + if stepsize <= 0: + stepsize = max_epoch + + scheduler = torch.optim.lr_scheduler.StepLR( + optimizer, step_size=stepsize, gamma=gamma + ) + + elif lr_scheduler == "multi_step": + if not isinstance(stepsize, (list, tuple)): + raise TypeError( + "For multi_step lr_scheduler, stepsize must " + "be a list, but got {}".format(type(stepsize)) + ) + + scheduler = torch.optim.lr_scheduler.MultiStepLR( + optimizer, milestones=stepsize, gamma=gamma + ) + + elif lr_scheduler == "cosine": + scheduler = torch.optim.lr_scheduler.CosineAnnealingLR( + optimizer, float(max_epoch) + ) + + if optim_cfg.WARMUP_EPOCH > 0: + if not optim_cfg.WARMUP_RECOUNT: + scheduler.last_epoch = optim_cfg.WARMUP_EPOCH + + if optim_cfg.WARMUP_TYPE == "constant": + scheduler = ConstantWarmupScheduler( + optimizer, scheduler, optim_cfg.WARMUP_EPOCH, + optim_cfg.WARMUP_CONS_LR + ) + + elif optim_cfg.WARMUP_TYPE == "linear": + scheduler = LinearWarmupScheduler( + optimizer, scheduler, optim_cfg.WARMUP_EPOCH, + optim_cfg.WARMUP_MIN_LR + ) + + else: + raise ValueError + + return scheduler diff --git a/Dassl.ProGrad.pytorch/dassl/optim/optimizer.py b/Dassl.ProGrad.pytorch/dassl/optim/optimizer.py new file mode 100644 index 0000000..4f656e2 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/optim/optimizer.py @@ -0,0 +1,136 @@ +""" +Modified from https://github.com/KaiyangZhou/deep-person-reid +""" +import warnings +import torch +import torch.nn as nn + +from .radam import RAdam + +AVAI_OPTIMS = ["adam", "amsgrad", "sgd", "rmsprop", "radam", "adamw"] + + +def build_optimizer(model, optim_cfg): + """A function wrapper for building an optimizer. + + Args: + model (nn.Module or iterable): model. + optim_cfg (CfgNode): optimization config. + """ + optim = optim_cfg.NAME + lr = optim_cfg.LR + weight_decay = optim_cfg.WEIGHT_DECAY + momentum = optim_cfg.MOMENTUM + sgd_dampening = optim_cfg.SGD_DAMPNING + sgd_nesterov = optim_cfg.SGD_NESTEROV + rmsprop_alpha = optim_cfg.RMSPROP_ALPHA + adam_beta1 = optim_cfg.ADAM_BETA1 + adam_beta2 = optim_cfg.ADAM_BETA2 + staged_lr = optim_cfg.STAGED_LR + new_layers = optim_cfg.NEW_LAYERS + base_lr_mult = optim_cfg.BASE_LR_MULT + + if optim not in AVAI_OPTIMS: + raise ValueError( + "Unsupported optim: {}. Must be one of {}".format( + optim, AVAI_OPTIMS + ) + ) + + if staged_lr: + if not isinstance(model, nn.Module): + raise TypeError( + "When staged_lr is True, model given to " + "build_optimizer() must be an instance of nn.Module" + ) + + if isinstance(model, nn.DataParallel): + model = model.module + + if isinstance(new_layers, str): + if new_layers is None: + warnings.warn( + "new_layers is empty, therefore, staged_lr is useless" + ) + new_layers = [new_layers] + + base_params = [] + base_layers = [] + new_params = [] + + for name, module in model.named_children(): + if name in new_layers: + new_params += [p for p in module.parameters()] + else: + base_params += [p for p in module.parameters()] + base_layers.append(name) + + param_groups = [ + { + "params": base_params, + "lr": lr * base_lr_mult + }, + { + "params": new_params + }, + ] + + else: + if isinstance(model, nn.Module): + param_groups = model.parameters() + else: + param_groups = model + + if optim == "adam": + optimizer = torch.optim.Adam( + param_groups, + lr=lr, + weight_decay=weight_decay, + betas=(adam_beta1, adam_beta2), + ) + + elif optim == "amsgrad": + optimizer = torch.optim.Adam( + param_groups, + lr=lr, + weight_decay=weight_decay, + betas=(adam_beta1, adam_beta2), + amsgrad=True, + ) + + elif optim == "sgd": + optimizer = torch.optim.SGD( + param_groups, + lr=lr, + momentum=momentum, + weight_decay=weight_decay, + dampening=sgd_dampening, + nesterov=sgd_nesterov, + ) + + elif optim == "rmsprop": + optimizer = torch.optim.RMSprop( + param_groups, + lr=lr, + momentum=momentum, + weight_decay=weight_decay, + alpha=rmsprop_alpha, + ) + + elif optim == "radam": + optimizer = RAdam( + param_groups, + lr=lr, + weight_decay=weight_decay, + betas=(adam_beta1, adam_beta2), + ) + + elif optim == "adamw": + optimizer = torch.optim.AdamW( + param_groups, + lr=lr, + weight_decay=weight_decay, + betas=(adam_beta1, adam_beta2), + ) + + return optimizer diff --git a/Dassl.ProGrad.pytorch/dassl/optim/radam.py b/Dassl.ProGrad.pytorch/dassl/optim/radam.py new file mode 100644 index 0000000..f4c1989 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/optim/radam.py @@ -0,0 +1,332 @@ +""" +Imported from: https://github.com/LiyuanLucasLiu/RAdam + +https://arxiv.org/abs/1908.03265 + +@article{liu2019radam, + title={On the Variance of the Adaptive Learning Rate and Beyond}, + author={Liu, Liyuan and Jiang, Haoming and He, Pengcheng and Chen, Weizhu and Liu, Xiaodong and Gao, Jianfeng and Han, Jiawei}, + journal={arXiv preprint arXiv:1908.03265}, + year={2019} +} +""" +import math +import torch +from torch.optim.optimizer import Optimizer + + +class RAdam(Optimizer): + + def __init__( + self, + params, + lr=1e-3, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0, + degenerated_to_sgd=True, + ): + if not 0.0 <= lr: + raise ValueError("Invalid learning rate: {}".format(lr)) + if not 0.0 <= eps: + raise ValueError("Invalid epsilon value: {}".format(eps)) + if not 0.0 <= betas[0] < 1.0: + raise ValueError( + "Invalid beta parameter at index 0: {}".format(betas[0]) + ) + if not 0.0 <= betas[1] < 1.0: + raise ValueError( + "Invalid beta parameter at index 1: {}".format(betas[1]) + ) + + self.degenerated_to_sgd = degenerated_to_sgd + defaults = dict(lr=lr, betas=betas, eps=eps, weight_decay=weight_decay) + self.buffer = [[None, None, None] for ind in range(10)] + super(RAdam, self).__init__(params, defaults) + + def __setstate__(self, state): + super(RAdam, self).__setstate__(state) + + def step(self, closure=None): + + loss = None + if closure is not None: + loss = closure() + + for group in self.param_groups: + + for p in group["params"]: + if p.grad is None: + continue + grad = p.grad.data.float() + if grad.is_sparse: + raise RuntimeError( + "RAdam does not support sparse gradients" + ) + + p_data_fp32 = p.data.float() + + state = self.state[p] + + if len(state) == 0: + state["step"] = 0 + state["exp_avg"] = torch.zeros_like(p_data_fp32) + state["exp_avg_sq"] = torch.zeros_like(p_data_fp32) + else: + state["exp_avg"] = state["exp_avg"].type_as(p_data_fp32) + state["exp_avg_sq"] = state["exp_avg_sq"].type_as( + p_data_fp32 + ) + + exp_avg, exp_avg_sq = state["exp_avg"], state["exp_avg_sq"] + beta1, beta2 = group["betas"] + + exp_avg_sq.mul_(beta2).addcmul_(1 - beta2, grad, grad) + exp_avg.mul_(beta1).add_(1 - beta1, grad) + + state["step"] += 1 + buffered = self.buffer[int(state["step"] % 10)] + if state["step"] == buffered[0]: + N_sma, step_size = buffered[1], buffered[2] + else: + buffered[0] = state["step"] + beta2_t = beta2**state["step"] + N_sma_max = 2 / (1-beta2) - 1 + N_sma = N_sma_max - 2 * state["step" + ] * beta2_t / (1-beta2_t) + buffered[1] = N_sma + + # more conservative since it's an approximated value + if N_sma >= 5: + step_size = math.sqrt( + (1-beta2_t) * (N_sma-4) / (N_sma_max-4) * + (N_sma-2) / N_sma * N_sma_max / (N_sma_max-2) + ) / (1 - beta1**state["step"]) + elif self.degenerated_to_sgd: + step_size = 1.0 / (1 - beta1**state["step"]) + else: + step_size = -1 + buffered[2] = step_size + + # more conservative since it's an approximated value + if N_sma >= 5: + if group["weight_decay"] != 0: + p_data_fp32.add_( + -group["weight_decay"] * group["lr"], p_data_fp32 + ) + denom = exp_avg_sq.sqrt().add_(group["eps"]) + p_data_fp32.addcdiv_( + -step_size * group["lr"], exp_avg, denom + ) + p.data.copy_(p_data_fp32) + elif step_size > 0: + if group["weight_decay"] != 0: + p_data_fp32.add_( + -group["weight_decay"] * group["lr"], p_data_fp32 + ) + p_data_fp32.add_(-step_size * group["lr"], exp_avg) + p.data.copy_(p_data_fp32) + + return loss + + +class PlainRAdam(Optimizer): + + def __init__( + self, + params, + lr=1e-3, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0, + degenerated_to_sgd=True, + ): + if not 0.0 <= lr: + raise ValueError("Invalid learning rate: {}".format(lr)) + if not 0.0 <= eps: + raise ValueError("Invalid epsilon value: {}".format(eps)) + if not 0.0 <= betas[0] < 1.0: + raise ValueError( + "Invalid beta parameter at index 0: {}".format(betas[0]) + ) + if not 0.0 <= betas[1] < 1.0: + raise ValueError( + "Invalid beta parameter at index 1: {}".format(betas[1]) + ) + + self.degenerated_to_sgd = degenerated_to_sgd + defaults = dict(lr=lr, betas=betas, eps=eps, weight_decay=weight_decay) + + super(PlainRAdam, self).__init__(params, defaults) + + def __setstate__(self, state): + super(PlainRAdam, self).__setstate__(state) + + def step(self, closure=None): + + loss = None + if closure is not None: + loss = closure() + + for group in self.param_groups: + + for p in group["params"]: + if p.grad is None: + continue + grad = p.grad.data.float() + if grad.is_sparse: + raise RuntimeError( + "RAdam does not support sparse gradients" + ) + + p_data_fp32 = p.data.float() + + state = self.state[p] + + if len(state) == 0: + state["step"] = 0 + state["exp_avg"] = torch.zeros_like(p_data_fp32) + state["exp_avg_sq"] = torch.zeros_like(p_data_fp32) + else: + state["exp_avg"] = state["exp_avg"].type_as(p_data_fp32) + state["exp_avg_sq"] = state["exp_avg_sq"].type_as( + p_data_fp32 + ) + + exp_avg, exp_avg_sq = state["exp_avg"], state["exp_avg_sq"] + beta1, beta2 = group["betas"] + + exp_avg_sq.mul_(beta2).addcmul_(1 - beta2, grad, grad) + exp_avg.mul_(beta1).add_(1 - beta1, grad) + + state["step"] += 1 + beta2_t = beta2**state["step"] + N_sma_max = 2 / (1-beta2) - 1 + N_sma = N_sma_max - 2 * state["step"] * beta2_t / (1-beta2_t) + + # more conservative since it's an approximated value + if N_sma >= 5: + if group["weight_decay"] != 0: + p_data_fp32.add_( + -group["weight_decay"] * group["lr"], p_data_fp32 + ) + step_size = ( + group["lr"] * math.sqrt( + (1-beta2_t) * (N_sma-4) / (N_sma_max-4) * + (N_sma-2) / N_sma * N_sma_max / (N_sma_max-2) + ) / (1 - beta1**state["step"]) + ) + denom = exp_avg_sq.sqrt().add_(group["eps"]) + p_data_fp32.addcdiv_(-step_size, exp_avg, denom) + p.data.copy_(p_data_fp32) + elif self.degenerated_to_sgd: + if group["weight_decay"] != 0: + p_data_fp32.add_( + -group["weight_decay"] * group["lr"], p_data_fp32 + ) + step_size = group["lr"] / (1 - beta1**state["step"]) + p_data_fp32.add_(-step_size, exp_avg) + p.data.copy_(p_data_fp32) + + return loss + + +class AdamW(Optimizer): + + def __init__( + self, + params, + lr=1e-3, + betas=(0.9, 0.999), + eps=1e-8, + weight_decay=0, + warmup=0 + ): + if not 0.0 <= lr: + raise ValueError("Invalid learning rate: {}".format(lr)) + if not 0.0 <= eps: + raise ValueError("Invalid epsilon value: {}".format(eps)) + if not 0.0 <= betas[0] < 1.0: + raise ValueError( + "Invalid beta parameter at index 0: {}".format(betas[0]) + ) + if not 0.0 <= betas[1] < 1.0: + raise ValueError( + "Invalid beta parameter at index 1: {}".format(betas[1]) + ) + + defaults = dict( + lr=lr, + betas=betas, + eps=eps, + weight_decay=weight_decay, + warmup=warmup + ) + super(AdamW, self).__init__(params, defaults) + + def __setstate__(self, state): + super(AdamW, self).__setstate__(state) + + def step(self, closure=None): + loss = None + if closure is not None: + loss = closure() + + for group in self.param_groups: + + for p in group["params"]: + if p.grad is None: + continue + grad = p.grad.data.float() + if grad.is_sparse: + raise RuntimeError( + "Adam does not support sparse gradients, please consider SparseAdam instead" + ) + + p_data_fp32 = p.data.float() + + state = self.state[p] + + if len(state) == 0: + state["step"] = 0 + state["exp_avg"] = torch.zeros_like(p_data_fp32) + state["exp_avg_sq"] = torch.zeros_like(p_data_fp32) + else: + state["exp_avg"] = state["exp_avg"].type_as(p_data_fp32) + state["exp_avg_sq"] = state["exp_avg_sq"].type_as( + p_data_fp32 + ) + + exp_avg, exp_avg_sq = state["exp_avg"], state["exp_avg_sq"] + beta1, beta2 = group["betas"] + + state["step"] += 1 + + exp_avg_sq.mul_(beta2).addcmul_(1 - beta2, grad, grad) + exp_avg.mul_(beta1).add_(1 - beta1, grad) + + denom = exp_avg_sq.sqrt().add_(group["eps"]) + bias_correction1 = 1 - beta1**state["step"] + bias_correction2 = 1 - beta2**state["step"] + + if group["warmup"] > state["step"]: + scheduled_lr = 1e-8 + state["step"] * group["lr"] / group[ + "warmup"] + else: + scheduled_lr = group["lr"] + + step_size = ( + scheduled_lr * math.sqrt(bias_correction2) / + bias_correction1 + ) + + if group["weight_decay"] != 0: + p_data_fp32.add_( + -group["weight_decay"] * scheduled_lr, p_data_fp32 + ) + + p_data_fp32.addcdiv_(-step_size, exp_avg, denom) + + p.data.copy_(p_data_fp32) + + return loss diff --git a/Dassl.ProGrad.pytorch/dassl/utils/__init__.py b/Dassl.ProGrad.pytorch/dassl/utils/__init__.py new file mode 100644 index 0000000..c47679f --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/__init__.py @@ -0,0 +1,5 @@ +from .tools import * +from .logger import * +from .meters import * +from .registry import * +from .torchtools import * diff --git a/Dassl.ProGrad.pytorch/dassl/utils/logger.py b/Dassl.ProGrad.pytorch/dassl/utils/logger.py new file mode 100644 index 0000000..d5e680a --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/logger.py @@ -0,0 +1,73 @@ +import os +import sys +import time +import os.path as osp + +from .tools import mkdir_if_missing + +__all__ = ["Logger", "setup_logger"] + + +class Logger: + """Write console output to external text file. + + Imported from ``_ + + Args: + fpath (str): directory to save logging file. + + Examples:: + >>> import sys + >>> import os.path as osp + >>> save_dir = 'output/experiment-1' + >>> log_name = 'train.log' + >>> sys.stdout = Logger(osp.join(save_dir, log_name)) + """ + + def __init__(self, fpath=None): + self.console = sys.stdout + self.file = None + if fpath is not None: + mkdir_if_missing(osp.dirname(fpath)) + self.file = open(fpath, "w") + + def __del__(self): + self.close() + + def __enter__(self): + pass + + def __exit__(self, *args): + self.close() + + def write(self, msg): + self.console.write(msg) + if self.file is not None: + self.file.write(msg) + + def flush(self): + self.console.flush() + if self.file is not None: + self.file.flush() + os.fsync(self.file.fileno()) + + def close(self): + self.console.close() + if self.file is not None: + self.file.close() + + +def setup_logger(output=None): + if output is None: + return + + if output.endswith(".txt") or output.endswith(".log"): + fpath = output + else: + fpath = osp.join(output, "log.txt") + + if osp.exists(fpath): + # make sure the existing log file is not over-written + fpath += time.strftime("-%Y-%m-%d-%H-%M-%S") + + sys.stdout = Logger(fpath) diff --git a/Dassl.ProGrad.pytorch/dassl/utils/meters.py b/Dassl.ProGrad.pytorch/dassl/utils/meters.py new file mode 100644 index 0000000..f34f23e --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/meters.py @@ -0,0 +1,80 @@ +from collections import defaultdict +import torch + +__all__ = ["AverageMeter", "MetricMeter"] + + +class AverageMeter: + """Compute and store the average and current value. + + Examples:: + >>> # 1. Initialize a meter to record loss + >>> losses = AverageMeter() + >>> # 2. Update meter after every mini-batch update + >>> losses.update(loss_value, batch_size) + """ + + def __init__(self, ema=False): + """ + Args: + ema (bool, optional): apply exponential moving average. + """ + self.ema = ema + self.reset() + + def reset(self): + self.val = 0 + self.avg = 0 + self.sum = 0 + self.count = 0 + + def update(self, val, n=1): + if isinstance(val, torch.Tensor): + val = val.item() + + self.val = val + self.sum += val * n + self.count += n + + if self.ema: + self.avg = self.avg * 0.9 + self.val * 0.1 + else: + self.avg = self.sum / self.count + + +class MetricMeter: + """Store the average and current value for a set of metrics. + + Examples:: + >>> # 1. Create an instance of MetricMeter + >>> metric = MetricMeter() + >>> # 2. Update using a dictionary as input + >>> input_dict = {'loss_1': value_1, 'loss_2': value_2} + >>> metric.update(input_dict) + >>> # 3. Convert to string and print + >>> print(str(metric)) + """ + + def __init__(self, delimiter="\t"): + self.meters = defaultdict(AverageMeter) + self.delimiter = delimiter + + def update(self, input_dict): + if input_dict is None: + return + + if not isinstance(input_dict, dict): + raise TypeError( + "Input to MetricMeter.update() must be a dictionary" + ) + + for k, v in input_dict.items(): + if isinstance(v, torch.Tensor): + v = v.item() + self.meters[k].update(v) + + def __str__(self): + output_str = [] + for name, meter in self.meters.items(): + output_str.append(f"{name} {meter.val:.4f} ({meter.avg:.4f})") + return self.delimiter.join(output_str) diff --git a/Dassl.ProGrad.pytorch/dassl/utils/registry.py b/Dassl.ProGrad.pytorch/dassl/utils/registry.py new file mode 100644 index 0000000..5079784 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/registry.py @@ -0,0 +1,69 @@ +""" +Modified from https://github.com/facebookresearch/fvcore +""" +__all__ = ["Registry"] + + +class Registry: + """A registry providing name -> object mapping, to support + custom modules. + + To create a registry (e.g. a backbone registry): + + .. code-block:: python + + BACKBONE_REGISTRY = Registry('BACKBONE') + + To register an object: + + .. code-block:: python + + @BACKBONE_REGISTRY.register() + class MyBackbone(nn.Module): + ... + + Or: + + .. code-block:: python + + BACKBONE_REGISTRY.register(MyBackbone) + """ + + def __init__(self, name): + self._name = name + self._obj_map = dict() + + def _do_register(self, name, obj, force=False): + if name in self._obj_map and not force: + raise KeyError( + 'An object named "{}" was already ' + 'registered in "{}" registry'.format(name, self._name) + ) + + self._obj_map[name] = obj + + def register(self, obj=None, force=False): + if obj is None: + # Used as a decorator + def wrapper(fn_or_class): + name = fn_or_class.__name__ + self._do_register(name, fn_or_class, force=force) + return fn_or_class + + return wrapper + + # Used as a function call + name = obj.__name__ + self._do_register(name, obj, force=force) + + def get(self, name): + if name not in self._obj_map: + raise KeyError( + 'Object name "{}" does not exist ' + 'in "{}" registry'.format(name, self._name) + ) + + return self._obj_map[name] + + def registered_names(self): + return list(self._obj_map.keys()) diff --git a/Dassl.ProGrad.pytorch/dassl/utils/tools.py b/Dassl.ProGrad.pytorch/dassl/utils/tools.py new file mode 100644 index 0000000..9dbe2ef --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/tools.py @@ -0,0 +1,196 @@ +""" +Modified from https://github.com/KaiyangZhou/deep-person-reid +""" +import os +import sys +import json +import time +import errno +import numpy as np +import random +import os.path as osp +import warnings +from difflib import SequenceMatcher +import PIL +import torch +from PIL import Image + +__all__ = [ + "mkdir_if_missing", + "check_isfile", + "read_json", + "write_json", + "set_random_seed", + "download_url", + "read_image", + "collect_env_info", + "listdir_nohidden", + "get_most_similar_str_to_a_from_b", + "check_availability", + "tolist_if_not", +] + + +def mkdir_if_missing(dirname): + """Create dirname if it is missing.""" + if not osp.exists(dirname): + try: + os.makedirs(dirname) + except OSError as e: + if e.errno != errno.EEXIST: + raise + + +def check_isfile(fpath): + """Check if the given path is a file. + + Args: + fpath (str): file path. + + Returns: + bool + """ + isfile = osp.isfile(fpath) + if not isfile: + warnings.warn('No file found at "{}"'.format(fpath)) + return isfile + + +def read_json(fpath): + """Read json file from a path.""" + with open(fpath, "r") as f: + obj = json.load(f) + return obj + + +def write_json(obj, fpath): + """Writes to a json file.""" + mkdir_if_missing(osp.dirname(fpath)) + with open(fpath, "w") as f: + json.dump(obj, f, indent=4, separators=(",", ": ")) + + +def set_random_seed(seed): + random.seed(seed) + np.random.seed(seed) + torch.manual_seed(seed) + torch.cuda.manual_seed_all(seed) + + +def download_url(url, dst): + """Download file from a url to a destination. + + Args: + url (str): url to download file. + dst (str): destination path. + """ + from six.moves import urllib + + print('* url="{}"'.format(url)) + print('* destination="{}"'.format(dst)) + + def _reporthook(count, block_size, total_size): + global start_time + if count == 0: + start_time = time.time() + return + duration = time.time() - start_time + progress_size = int(count * block_size) + speed = int(progress_size / (1024*duration)) + percent = int(count * block_size * 100 / total_size) + sys.stdout.write( + "\r...%d%%, %d MB, %d KB/s, %d seconds passed" % + (percent, progress_size / (1024*1024), speed, duration) + ) + sys.stdout.flush() + + urllib.request.urlretrieve(url, dst, _reporthook) + sys.stdout.write("\n") + + +def read_image(path): + """Read image from path using ``PIL.Image``. + + Args: + path (str): path to an image. + + Returns: + PIL image + """ + if not osp.exists(path): + raise IOError("No file exists at {}".format(path)) + + while True: + try: + img = Image.open(path).convert("RGB") + return img + except IOError: + print( + "Cannot read image from {}, " + "probably due to heavy IO. Will re-try".format(path) + ) + + +def collect_env_info(): + """Return env info as a string. + + Code source: github.com/facebookresearch/maskrcnn-benchmark + """ + from torch.utils.collect_env import get_pretty_env_info + + env_str = get_pretty_env_info() + env_str += "\n Pillow ({})".format(PIL.__version__) + return env_str + + +def listdir_nohidden(path, sort=False): + """List non-hidden items in a directory. + + Args: + path (str): directory path. + sort (bool): sort the items. + """ + items = [f for f in os.listdir(path) if not f.startswith(".")] + if sort: + items.sort() + return items + + +def get_most_similar_str_to_a_from_b(a, b): + """Return the most similar string to a in b. + + Args: + a (str): probe string. + b (list): a list of candidate strings. + """ + highest_sim = 0 + chosen = None + for candidate in b: + sim = SequenceMatcher(None, a, candidate).ratio() + if sim >= highest_sim: + highest_sim = sim + chosen = candidate + return chosen + + +def check_availability(requested, available): + """Check if an element is available in a list. + + Args: + requested (str): probe string. + available (list): a list of available strings. + """ + if requested not in available: + psb_ans = get_most_similar_str_to_a_from_b(requested, available) + raise ValueError( + "The requested one is expected " + "to belong to {}, but got [{}] " + "(do you mean [{}]?)".format(available, requested, psb_ans) + ) + + +def tolist_if_not(x): + """Convert to a list.""" + if not isinstance(x, list): + x = [x] + return x diff --git a/Dassl.ProGrad.pytorch/dassl/utils/torchtools.py b/Dassl.ProGrad.pytorch/dassl/utils/torchtools.py new file mode 100644 index 0000000..7f21253 --- /dev/null +++ b/Dassl.ProGrad.pytorch/dassl/utils/torchtools.py @@ -0,0 +1,356 @@ +""" +Modified from https://github.com/KaiyangZhou/deep-person-reid +""" +import pickle +import shutil +import os.path as osp +import warnings +from functools import partial +from collections import OrderedDict +import torch +import torch.nn as nn + +from .tools import mkdir_if_missing + +__all__ = [ + "save_checkpoint", + "load_checkpoint", + "resume_from_checkpoint", + "open_all_layers", + "open_specified_layers", + "count_num_param", + "load_pretrained_weights", + "init_network_weights", +] + + +def save_checkpoint( + state, + save_dir, + is_best=False, + remove_module_from_keys=True, + model_name="" +): + r"""Save checkpoint. + + Args: + state (dict): dictionary. + save_dir (str): directory to save checkpoint. + is_best (bool, optional): if True, this checkpoint will be copied and named + ``model-best.pth.tar``. Default is False. + remove_module_from_keys (bool, optional): whether to remove "module." + from layer names. Default is True. + model_name (str, optional): model name to save. + + Examples:: + >>> state = { + >>> 'state_dict': model.state_dict(), + >>> 'epoch': 10, + >>> 'optimizer': optimizer.state_dict() + >>> } + >>> save_checkpoint(state, 'log/my_model') + """ + mkdir_if_missing(save_dir) + + if remove_module_from_keys: + # remove 'module.' in state_dict's keys + state_dict = state["state_dict"] + new_state_dict = OrderedDict() + for k, v in state_dict.items(): + if k.startswith("module."): + k = k[7:] + new_state_dict[k] = v + state["state_dict"] = new_state_dict + + # save model + epoch = state["epoch"] + if not model_name: + model_name = "model.pth.tar-" + str(epoch) + fpath = osp.join(save_dir, model_name) + torch.save(state, fpath) + print('Checkpoint saved to "{}"'.format(fpath)) + + # save current model name + checkpoint_file = osp.join(save_dir, "checkpoint") + checkpoint = open(checkpoint_file, "w+") + checkpoint.write("{}\n".format(osp.basename(fpath))) + checkpoint.close() + + if is_best: + best_fpath = osp.join(osp.dirname(fpath), "model-best.pth.tar") + shutil.copy(fpath, best_fpath) + print('Best checkpoint saved to "{}"'.format(best_fpath)) + + +def load_checkpoint(fpath): + r"""Load checkpoint. + + ``UnicodeDecodeError`` can be well handled, which means + python2-saved files can be read from python3. + + Args: + fpath (str): path to checkpoint. + + Returns: + dict + + Examples:: + >>> fpath = 'log/my_model/model.pth.tar-10' + >>> checkpoint = load_checkpoint(fpath) + """ + if fpath is None: + raise ValueError("File path is None") + + if not osp.exists(fpath): + raise FileNotFoundError('File is not found at "{}"'.format(fpath)) + + map_location = None if torch.cuda.is_available() else "cpu" + + try: + checkpoint = torch.load(fpath, map_location=map_location) + + except UnicodeDecodeError: + pickle.load = partial(pickle.load, encoding="latin1") + pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1") + checkpoint = torch.load( + fpath, pickle_module=pickle, map_location=map_location + ) + + except Exception: + print('Unable to load checkpoint from "{}"'.format(fpath)) + raise + + return checkpoint + + +def resume_from_checkpoint(fdir, model, optimizer=None, scheduler=None): + r"""Resume training from a checkpoint. + + This will load (1) model weights and (2) ``state_dict`` + of optimizer if ``optimizer`` is not None. + + Args: + fdir (str): directory where the model was saved. + model (nn.Module): model. + optimizer (Optimizer, optional): an Optimizer. + scheduler (Scheduler, optional): an Scheduler. + + Returns: + int: start_epoch. + + Examples:: + >>> fdir = 'log/my_model' + >>> start_epoch = resume_from_checkpoint(fdir, model, optimizer, scheduler) + """ + with open(osp.join(fdir, "checkpoint"), "r") as checkpoint: + model_name = checkpoint.readlines()[0].strip("\n") + fpath = osp.join(fdir, model_name) + + print('Loading checkpoint from "{}"'.format(fpath)) + checkpoint = load_checkpoint(fpath) + model.load_state_dict(checkpoint["state_dict"]) + print("Loaded model weights") + + if optimizer is not None and "optimizer" in checkpoint.keys(): + optimizer.load_state_dict(checkpoint["optimizer"]) + print("Loaded optimizer") + + if scheduler is not None and "scheduler" in checkpoint.keys(): + scheduler.load_state_dict(checkpoint["scheduler"]) + print("Loaded scheduler") + + start_epoch = checkpoint["epoch"] + print("Previous epoch: {}".format(start_epoch)) + + return start_epoch + + +def adjust_learning_rate( + optimizer, + base_lr, + epoch, + stepsize=20, + gamma=0.1, + linear_decay=False, + final_lr=0, + max_epoch=100, +): + r"""Adjust learning rate. + + Deprecated. + """ + if linear_decay: + # linearly decay learning rate from base_lr to final_lr + frac_done = epoch / max_epoch + lr = frac_done*final_lr + (1.0-frac_done) * base_lr + else: + # decay learning rate by gamma for every stepsize + lr = base_lr * (gamma**(epoch // stepsize)) + + for param_group in optimizer.param_groups: + param_group["lr"] = lr + + +def set_bn_to_eval(m): + r"""Set BatchNorm layers to eval mode.""" + # 1. no update for running mean and var + # 2. scale and shift parameters are still trainable + classname = m.__class__.__name__ + if classname.find("BatchNorm") != -1: + m.eval() + + +def open_all_layers(model): + r"""Open all layers in model for training. + + Examples:: + >>> open_all_layers(model) + """ + model.train() + for p in model.parameters(): + p.requires_grad = True + + +def open_specified_layers(model, open_layers): + r"""Open specified layers in model for training while keeping + other layers frozen. + + Args: + model (nn.Module): neural net model. + open_layers (str or list): layers open for training. + + Examples:: + >>> # Only model.classifier will be updated. + >>> open_layers = 'classifier' + >>> open_specified_layers(model, open_layers) + >>> # Only model.fc and model.classifier will be updated. + >>> open_layers = ['fc', 'classifier'] + >>> open_specified_layers(model, open_layers) + """ + if isinstance(model, nn.DataParallel): + model = model.module + + if isinstance(open_layers, str): + open_layers = [open_layers] + + for layer in open_layers: + assert hasattr( + model, layer + ), '"{}" is not an attribute of the model, please provide the correct name'.format( + layer + ) + + for name, module in model.named_children(): + if name in open_layers: + module.train() + for p in module.parameters(): + p.requires_grad = True + else: + module.eval() + for p in module.parameters(): + p.requires_grad = False + + +def count_num_param(model): + r"""Count number of parameters in a model. + + Args: + model (nn.Module): network model. + + Examples:: + >>> model_size = count_num_param(model) + """ + return sum(p.numel() for p in model.parameters()) + + +def load_pretrained_weights(model, weight_path): + r"""Load pretrianed weights to model. + + Features:: + - Incompatible layers (unmatched in name or size) will be ignored. + - Can automatically deal with keys containing "module.". + + Args: + model (nn.Module): network model. + weight_path (str): path to pretrained weights. + + Examples:: + >>> weight_path = 'log/my_model/model-best.pth.tar' + >>> load_pretrained_weights(model, weight_path) + """ + checkpoint = load_checkpoint(weight_path) + if "state_dict" in checkpoint: + state_dict = checkpoint["state_dict"] + else: + state_dict = checkpoint + + model_dict = model.state_dict() + new_state_dict = OrderedDict() + matched_layers, discarded_layers = [], [] + + for k, v in state_dict.items(): + if k.startswith("module."): + k = k[7:] # discard module. + + if k in model_dict and model_dict[k].size() == v.size(): + new_state_dict[k] = v + matched_layers.append(k) + else: + discarded_layers.append(k) + + model_dict.update(new_state_dict) + model.load_state_dict(model_dict) + + if len(matched_layers) == 0: + warnings.warn( + 'The pretrained weights "{}" cannot be loaded, ' + "please check the key names manually " + "(** ignored and continue **)".format(weight_path) + ) + else: + print( + 'Successfully loaded pretrained weights from "{}"'. + format(weight_path) + ) + if len(discarded_layers) > 0: + print( + "** The following layers are discarded " + "due to unmatched keys or layer size: {}". + format(discarded_layers) + ) + + +def init_network_weights(model, init_type="normal", gain=0.02): + + def _init_func(m): + classname = m.__class__.__name__ + + if hasattr(m, "weight") and ( + classname.find("Conv") != -1 or classname.find("Linear") != -1 + ): + if init_type == "normal": + nn.init.normal_(m.weight.data, 0.0, gain) + elif init_type == "xavier": + nn.init.xavier_normal_(m.weight.data, gain=gain) + elif init_type == "kaiming": + nn.init.kaiming_normal_(m.weight.data, a=0, mode="fan_in") + elif init_type == "orthogonal": + nn.init.orthogonal_(m.weight.data, gain=gain) + else: + raise NotImplementedError( + "initialization method {} is not implemented". + format(init_type) + ) + if hasattr(m, "bias") and m.bias is not None: + nn.init.constant_(m.bias.data, 0.0) + + elif classname.find("BatchNorm") != -1: + nn.init.constant_(m.weight.data, 1.0) + nn.init.constant_(m.bias.data, 0.0) + + elif classname.find("InstanceNorm") != -1: + if m.weight is not None and m.bias is not None: + nn.init.constant_(m.weight.data, 1.0) + nn.init.constant_(m.bias.data, 0.0) + + model.apply(_init_func) diff --git a/Dassl.ProGrad.pytorch/datasets/da/cifar_stl.py b/Dassl.ProGrad.pytorch/datasets/da/cifar_stl.py new file mode 100644 index 0000000..52c16aa --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/da/cifar_stl.py @@ -0,0 +1,95 @@ +import sys +import pprint as pp +import os.path as osp +from torchvision.datasets import STL10, CIFAR10 + +from dassl.utils import mkdir_if_missing + +cifar_label2name = { + 0: "airplane", + 1: "car", # the original name was 'automobile' + 2: "bird", + 3: "cat", + 4: "deer", + 5: "dog", + 6: "frog", # conflict class + 7: "horse", + 8: "ship", + 9: "truck", +} + +stl_label2name = { + 0: "airplane", + 1: "bird", + 2: "car", + 3: "cat", + 4: "deer", + 5: "dog", + 6: "horse", + 7: "monkey", # conflict class + 8: "ship", + 9: "truck", +} + +new_name2label = { + "airplane": 0, + "bird": 1, + "car": 2, + "cat": 3, + "deer": 4, + "dog": 5, + "horse": 6, + "ship": 7, + "truck": 8, +} + + +def extract_and_save_image(dataset, save_dir, discard, label2name): + if osp.exists(save_dir): + print('Folder "{}" already exists'.format(save_dir)) + return + + print('Extracting images to "{}" ...'.format(save_dir)) + mkdir_if_missing(save_dir) + + for i in range(len(dataset)): + img, label = dataset[i] + if label == discard: + continue + class_name = label2name[label] + label_new = new_name2label[class_name] + class_dir = osp.join( + save_dir, + str(label_new).zfill(3) + "_" + class_name + ) + mkdir_if_missing(class_dir) + impath = osp.join(class_dir, str(i + 1).zfill(5) + ".jpg") + img.save(impath) + + +def download_and_prepare(name, root, discarded_label, label2name): + print("Dataset: {}".format(name)) + print("Root: {}".format(root)) + print("Old labels:") + pp.pprint(label2name) + print("Discarded label: {}".format(discarded_label)) + print("New labels:") + pp.pprint(new_name2label) + + if name == "cifar": + train = CIFAR10(root, train=True, download=True) + test = CIFAR10(root, train=False) + else: + train = STL10(root, split="train", download=True) + test = STL10(root, split="test") + + train_dir = osp.join(root, name, "train") + test_dir = osp.join(root, name, "test") + + extract_and_save_image(train, train_dir, discarded_label, label2name) + extract_and_save_image(test, test_dir, discarded_label, label2name) + + +if __name__ == "__main__": + download_and_prepare("cifar", sys.argv[1], 6, cifar_label2name) + download_and_prepare("stl", sys.argv[1], 7, stl_label2name) diff --git a/Dassl.ProGrad.pytorch/datasets/da/digit5.py b/Dassl.ProGrad.pytorch/datasets/da/digit5.py new file mode 100644 index 0000000..500511d --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/da/digit5.py @@ -0,0 +1,131 @@ +import os +import numpy as np +import os.path as osp +import argparse +from PIL import Image +from scipy.io import loadmat + + +def mkdir_if_missing(directory): + if not osp.exists(directory): + os.makedirs(directory) + + +def extract_and_save(data, label, save_dir): + for i, (x, y) in enumerate(zip(data, label)): + if x.shape[2] == 1: + x = np.repeat(x, 3, axis=2) + if y == 10: + y = 0 + x = Image.fromarray(x, mode="RGB") + save_path = osp.join( + save_dir, + str(i + 1).zfill(6) + "_" + str(y) + ".jpg" + ) + x.save(save_path) + + +def load_mnist(data_dir, raw_data_dir): + filepath = osp.join(raw_data_dir, "mnist_data.mat") + data = loadmat(filepath) + + train_data = np.reshape(data["train_32"], (55000, 32, 32, 1)) + test_data = np.reshape(data["test_32"], (10000, 32, 32, 1)) + + train_label = np.nonzero(data["label_train"])[1] + test_label = np.nonzero(data["label_test"])[1] + + return train_data, test_data, train_label, test_label + + +def load_mnist_m(data_dir, raw_data_dir): + filepath = osp.join(raw_data_dir, "mnistm_with_label.mat") + data = loadmat(filepath) + + train_data = data["train"] + test_data = data["test"] + + train_label = np.nonzero(data["label_train"])[1] + test_label = np.nonzero(data["label_test"])[1] + + return train_data, test_data, train_label, test_label + + +def load_svhn(data_dir, raw_data_dir): + train = loadmat(osp.join(raw_data_dir, "svhn_train_32x32.mat")) + train_data = train["X"].transpose(3, 0, 1, 2) + train_label = train["y"][:, 0] + + test = loadmat(osp.join(raw_data_dir, "svhn_test_32x32.mat")) + test_data = test["X"].transpose(3, 0, 1, 2) + test_label = test["y"][:, 0] + + return train_data, test_data, train_label, test_label + + +def load_syn(data_dir, raw_data_dir): + filepath = osp.join(raw_data_dir, "syn_number.mat") + data = loadmat(filepath) + + train_data = data["train_data"] + test_data = data["test_data"] + + train_label = data["train_label"][:, 0] + test_label = data["test_label"][:, 0] + + return train_data, test_data, train_label, test_label + + +def load_usps(data_dir, raw_data_dir): + filepath = osp.join(raw_data_dir, "usps_28x28.mat") + data = loadmat(filepath)["dataset"] + + train_data = data[0][0].transpose(0, 2, 3, 1) + test_data = data[1][0].transpose(0, 2, 3, 1) + + train_data *= 255 + test_data *= 255 + + train_data = train_data.astype(np.uint8) + test_data = test_data.astype(np.uint8) + + train_label = data[0][1][:, 0] + test_label = data[1][1][:, 0] + + return train_data, test_data, train_label, test_label + + +def main(data_dir): + data_dir = osp.abspath(osp.expanduser(data_dir)) + raw_data_dir = osp.join(data_dir, "Digit-Five") + + if not osp.exists(data_dir): + raise FileNotFoundError('"{}" does not exist'.format(data_dir)) + + datasets = ["mnist", "mnist_m", "svhn", "syn", "usps"] + + for name in datasets: + print("Creating {}".format(name)) + + output = eval("load_" + name)(data_dir, raw_data_dir) + train_data, test_data, train_label, test_label = output + + print("# train: {}".format(train_data.shape[0])) + print("# test: {}".format(test_data.shape[0])) + + train_dir = osp.join(data_dir, name, "train_images") + mkdir_if_missing(train_dir) + test_dir = osp.join(data_dir, name, "test_images") + mkdir_if_missing(test_dir) + + extract_and_save(train_data, train_label, train_dir) + extract_and_save(test_data, test_label, test_dir) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "data_dir", type=str, help="directory containing Digit-Five/" + ) + args = parser.parse_args() + main(args.data_dir) diff --git a/Dassl.ProGrad.pytorch/datasets/da/visda17.sh b/Dassl.ProGrad.pytorch/datasets/da/visda17.sh new file mode 100644 index 0000000..ce98d31 --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/da/visda17.sh @@ -0,0 +1,24 @@ +# ------------------------------------------------------------------------ +# ROOT is the root directory where you put your domain datasets. +# +# Suppose you wanna put the dataset under $DATA, which stores all the +# domain datasets, run the following command in your terminal to +# download VisDa17: +# +# $ sh visda17.sh $DATA +#------------------------------------------------------------------------ + +ROOT=$1 +mkdir $ROOT/visda17 +cd $ROOT/visda17 + +wget http://csr.bu.edu/ftp/visda17/clf/train.tar +tar xvf train.tar + +wget http://csr.bu.edu/ftp/visda17/clf/validation.tar +tar xvf validation.tar + +wget http://csr.bu.edu/ftp/visda17/clf/test.tar +tar xvf test.tar + +wget https://raw.githubusercontent.com/VisionLearningGroup/taskcv-2017-public/master/classification/data/image_list.txt -O test/image_list.txt \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/datasets/dg/cifar_c.py b/Dassl.ProGrad.pytorch/datasets/dg/cifar_c.py new file mode 100644 index 0000000..f407f85 --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/dg/cifar_c.py @@ -0,0 +1,73 @@ +""" +This script +- creates a folder named "cifar10_c" under the same directory as 'CIFAR-10-C' +- extracts images from .npy files and save them as .jpg. +""" +import os +import sys +import numpy as np +import os.path as osp +from PIL import Image + +from dassl.utils import mkdir_if_missing + + +def extract_and_save(images, labels, level, dst): + # level denotes the corruption intensity level (0-based) + assert 0 <= level <= 4 + + for i in range(10000): + real_i = i + level*10000 + im = Image.fromarray(images[real_i]) + label = int(labels[real_i]) + category_dir = osp.join(dst, str(label).zfill(3)) + mkdir_if_missing(category_dir) + save_path = osp.join(category_dir, str(i + 1).zfill(5) + ".jpg") + im.save(save_path) + + +def main(npy_folder): + npy_folder = osp.abspath(osp.expanduser(npy_folder)) + dataset_cap = osp.basename(npy_folder) + + assert dataset_cap in ["CIFAR-10-C", "CIFAR-100-C"] + + if dataset_cap == "CIFAR-10-C": + dataset = "cifar10_c" + else: + dataset = "cifar100_c" + + if not osp.exists(npy_folder): + print('The given folder "{}" does not exist'.format(npy_folder)) + + root = osp.dirname(npy_folder) + im_folder = osp.join(root, dataset) + + mkdir_if_missing(im_folder) + + dirnames = os.listdir(npy_folder) + dirnames.remove("labels.npy") + if "README.txt" in dirnames: + dirnames.remove("README.txt") + assert len(dirnames) == 19 + labels = np.load(osp.join(npy_folder, "labels.npy")) + + for dirname in dirnames: + corruption = dirname.split(".")[0] + corruption_folder = osp.join(im_folder, corruption) + mkdir_if_missing(corruption_folder) + + npy_filename = osp.join(npy_folder, dirname) + images = np.load(npy_filename) + assert images.shape[0] == 50000 + + for level in range(5): + dst = osp.join(corruption_folder, str(level + 1)) + mkdir_if_missing(dst) + print('Saving images to "{}"'.format(dst)) + extract_and_save(images, labels, level, dst) + + +if __name__ == "__main__": + # sys.argv[1] contains the path to CIFAR-10-C or CIFAR-100-C + main(sys.argv[1]) diff --git a/Dassl.ProGrad.pytorch/datasets/ssl/cifar10_cifar100_svhn.py b/Dassl.ProGrad.pytorch/datasets/ssl/cifar10_cifar100_svhn.py new file mode 100644 index 0000000..ad9aa11 --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/ssl/cifar10_cifar100_svhn.py @@ -0,0 +1,50 @@ +import sys +import os.path as osp +from torchvision.datasets import SVHN, CIFAR10, CIFAR100 + +from dassl.utils import mkdir_if_missing + + +def extract_and_save_image(dataset, save_dir): + if osp.exists(save_dir): + print('Folder "{}" already exists'.format(save_dir)) + return + + print('Extracting images to "{}" ...'.format(save_dir)) + mkdir_if_missing(save_dir) + + for i in range(len(dataset)): + img, label = dataset[i] + class_dir = osp.join(save_dir, str(label).zfill(3)) + mkdir_if_missing(class_dir) + impath = osp.join(class_dir, str(i + 1).zfill(5) + ".jpg") + img.save(impath) + + +def download_and_prepare(name, root): + print("Dataset: {}".format(name)) + print("Root: {}".format(root)) + + if name == "cifar10": + train = CIFAR10(root, train=True, download=True) + test = CIFAR10(root, train=False) + elif name == "cifar100": + train = CIFAR100(root, train=True, download=True) + test = CIFAR100(root, train=False) + elif name == "svhn": + train = SVHN(root, split="train", download=True) + test = SVHN(root, split="test", download=True) + else: + raise ValueError + + train_dir = osp.join(root, name, "train") + test_dir = osp.join(root, name, "test") + + extract_and_save_image(train, train_dir) + extract_and_save_image(test, test_dir) + + +if __name__ == "__main__": + download_and_prepare("cifar10", sys.argv[1]) + download_and_prepare("cifar100", sys.argv[1]) + download_and_prepare("svhn", sys.argv[1]) diff --git a/Dassl.ProGrad.pytorch/datasets/ssl/stl10.py b/Dassl.ProGrad.pytorch/datasets/ssl/stl10.py new file mode 100644 index 0000000..3f2ed2c --- /dev/null +++ b/Dassl.ProGrad.pytorch/datasets/ssl/stl10.py @@ -0,0 +1,42 @@ +import sys +import os.path as osp +from torchvision.datasets import STL10 + +from dassl.utils import mkdir_if_missing + + +def extract_and_save_image(dataset, save_dir): + if osp.exists(save_dir): + print('Folder "{}" already exists'.format(save_dir)) + return + + print('Extracting images to "{}" ...'.format(save_dir)) + mkdir_if_missing(save_dir) + + for i in range(len(dataset)): + img, label = dataset[i] + if label == -1: + label_name = "none" + else: + label_name = str(label) + imname = str(i).zfill(6) + "_" + label_name + ".jpg" + impath = osp.join(save_dir, imname) + img.save(impath) + + +def download_and_prepare(root): + train = STL10(root, split="train", download=True) + test = STL10(root, split="test") + unlabeled = STL10(root, split="unlabeled") + + train_dir = osp.join(root, "train") + test_dir = osp.join(root, "test") + unlabeled_dir = osp.join(root, "unlabeled") + + extract_and_save_image(train, train_dir) + extract_and_save_image(test, test_dir) + extract_and_save_image(unlabeled, unlabeled_dir) + + +if __name__ == "__main__": + download_and_prepare(sys.argv[1]) diff --git a/Dassl.ProGrad.pytorch/linter.sh b/Dassl.ProGrad.pytorch/linter.sh new file mode 100644 index 0000000..9db34f9 --- /dev/null +++ b/Dassl.ProGrad.pytorch/linter.sh @@ -0,0 +1,11 @@ +echo "Running isort" +isort -y -sp . +echo "Done" + +echo "Running yapf" +yapf -i -r -vv -e build . +echo "Done" + +echo "Running flake8" +flake8 . +echo "Done" \ No newline at end of file diff --git a/Dassl.ProGrad.pytorch/requirements.txt b/Dassl.ProGrad.pytorch/requirements.txt new file mode 100644 index 0000000..657a311 --- /dev/null +++ b/Dassl.ProGrad.pytorch/requirements.txt @@ -0,0 +1,10 @@ +flake8==3.7.9 +yapf==0.29.0 +isort==4.3.21 +yacs +gdown +tb-nightly +future +scipy +scikit-learn +tqdm diff --git a/Dassl.ProGrad.pytorch/setup.py b/Dassl.ProGrad.pytorch/setup.py new file mode 100644 index 0000000..b0cbe47 --- /dev/null +++ b/Dassl.ProGrad.pytorch/setup.py @@ -0,0 +1,48 @@ +import numpy as np +import os.path as osp +from setuptools import setup, find_packages + + +def readme(): + with open('README.md') as f: + content = f.read() + return content + + +def find_version(): + version_file = 'dassl/__init__.py' + with open(version_file, 'r') as f: + exec(compile(f.read(), version_file, 'exec')) + return locals()['__version__'] + + +def numpy_include(): + try: + numpy_include = np.get_include() + except AttributeError: + numpy_include = np.get_numpy_include() + return numpy_include + + +def get_requirements(filename='requirements.txt'): + here = osp.dirname(osp.realpath(__file__)) + with open(osp.join(here, filename), 'r') as f: + requires = [line.replace('\n', '') for line in f.readlines()] + return requires + + +setup( + name='dassl', + version=find_version(), + description='Dassl: Domain adaptation and semi-supervised learning', + author='Kaiyang Zhou', + license='MIT', + long_description=readme(), + url='https://github.com/KaiyangZhou/Dassl.pytorch', + packages=find_packages(), + install_requires=get_requirements(), + keywords=[ + 'Domain Adaptation', 'Domain Generalization', + 'Semi-Supervised Learning', 'Pytorch' + ] +) diff --git a/Dassl.ProGrad.pytorch/tools/parse_test_res.py b/Dassl.ProGrad.pytorch/tools/parse_test_res.py new file mode 100644 index 0000000..f063ceb --- /dev/null +++ b/Dassl.ProGrad.pytorch/tools/parse_test_res.py @@ -0,0 +1,181 @@ +""" +Goal +--- +1. Read test results from log.txt files +2. Compute mean and std across different folders (seeds) + +Usage +--- +Assume the output files are saved under output/my_experiment, +which contains results of different seeds, e.g., + +my_experiment/ + seed1/ + log.txt + seed2/ + log.txt + seed3/ + log.txt + +Run the following command from the root directory: + +$ python tools/parse_test_res.py output/my_experiment + +Add --ci95 to the argument if you wanna get 95% confidence +interval instead of standard deviation: + +$ python tools/parse_test_res.py output/my_experiment --ci95 + +If my_experiment/ has the following structure, + +my_experiment/ + exp-1/ + seed1/ + log.txt + ... + seed2/ + log.txt + ... + seed3/ + log.txt + ... + exp-2/ + ... + exp-3/ + ... + +Run + +$ python tools/parse_test_res.py output/my_experiment --multi-exp +""" +import re +import numpy as np +import os.path as osp +import argparse +from collections import OrderedDict, defaultdict + +from dassl.utils import check_isfile, listdir_nohidden + + +def compute_ci95(res): + return 1.96 * np.std(res) / np.sqrt(len(res)) + + +def parse_function(*metrics, directory="", args=None, end_signal=None): + print(f"Parsing files in {directory}") + subdirs = listdir_nohidden(directory, sort=True) + + outputs = [] + + for subdir in subdirs: + fpath = osp.join(directory, subdir, "log.txt") + assert check_isfile(fpath) + good_to_go = False + output = OrderedDict() + + with open(fpath, "r") as f: + lines = f.readlines() + + for line in lines: + line = line.strip() + + if line == end_signal: + good_to_go = True + + for metric in metrics: + match = metric["regex"].search(line) + if match and good_to_go: + if "file" not in output: + output["file"] = fpath + num = float(match.group(1)) + name = metric["name"] + output[name] = num + + if output: + outputs.append(output) + + assert len(outputs) > 0, f"Nothing found in {directory}" + + metrics_results = defaultdict(list) + + for output in outputs: + msg = "" + for key, value in output.items(): + if isinstance(value, float): + msg += f"{key}: {value:.2f}%. " + else: + msg += f"{key}: {value}. " + if key != "file": + metrics_results[key].append(value) + print(msg) + + output_results = OrderedDict() + + print("===") + print(f"Summary of directory: {directory}") + for key, values in metrics_results.items(): + avg = np.mean(values) + std = compute_ci95(values) if args.ci95 else np.std(values) + print(f"* {key}: {avg:.2f}% +- {std:.2f}%") + output_results[key] = avg + print("===") + + return output_results + + +def main(args, end_signal): + metric = { + "name": args.keyword, + "regex": re.compile(fr"\* {args.keyword}: ([\.\deE+-]+)%"), + } + + if args.multi_exp: + final_results = defaultdict(list) + + for directory in listdir_nohidden(args.directory, sort=True): + directory = osp.join(args.directory, directory) + results = parse_function( + metric, directory=directory, args=args, end_signal=end_signal + ) + + for key, value in results.items(): + final_results[key].append(value) + + print("Average performance") + for key, values in final_results.items(): + avg = np.mean(values) + print(f"* {key}: {avg:.2f}%") + + else: + parse_function( + metric, directory=args.directory, args=args, end_signal=end_signal + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("directory", type=str, help="path to directory") + parser.add_argument( + "--ci95", + action="store_true", + help=r"compute 95\% confidence interval" + ) + parser.add_argument( + "--test-log", action="store_true", help="parse test-only logs" + ) + parser.add_argument( + "--multi-exp", action="store_true", help="parse multiple experiments" + ) + parser.add_argument( + "--keyword", + default="accuracy", + type=str, + help="which keyword to extract" + ) + args = parser.parse_args() + + end_signal = "Finished training" + if args.test_log: + end_signal = "=> result" + + main(args, end_signal) diff --git a/Dassl.ProGrad.pytorch/tools/replace_text.py b/Dassl.ProGrad.pytorch/tools/replace_text.py new file mode 100644 index 0000000..7176154 --- /dev/null +++ b/Dassl.ProGrad.pytorch/tools/replace_text.py @@ -0,0 +1,69 @@ +""" +Replace text in python files. +""" +import glob +import os.path as osp +import argparse +import fileinput + +EXTENSION = ".py" + + +def is_python_file(filename): + ext = osp.splitext(filename)[1] + return ext == EXTENSION + + +def update_file(filename, text_to_search, replacement_text): + print("Processing {}".format(filename)) + with fileinput.FileInput(filename, inplace=True, backup="") as file: + for line in file: + print(line.replace(text_to_search, replacement_text), end="") + + +def recursive_update(directory, text_to_search, replacement_text): + filenames = glob.glob(osp.join(directory, "*")) + + for filename in filenames: + if osp.isfile(filename): + if not is_python_file(filename): + continue + update_file(filename, text_to_search, replacement_text) + elif osp.isdir(filename): + recursive_update(filename, text_to_search, replacement_text) + else: + raise NotImplementedError + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument( + "file_or_dir", type=str, help="path to file or directory" + ) + parser.add_argument("text_to_search", type=str, help="name to be replaced") + parser.add_argument("replacement_text", type=str, help="new name") + parser.add_argument( + "--ext", type=str, default=".py", help="file extension" + ) + args = parser.parse_args() + + file_or_dir = args.file_or_dir + text_to_search = args.text_to_search + replacement_text = args.replacement_text + extension = args.ext + + global EXTENSION + EXTENSION = extension + + if osp.isfile(file_or_dir): + if not is_python_file(file_or_dir): + return + update_file(file_or_dir, text_to_search, replacement_text) + elif osp.isdir(file_or_dir): + recursive_update(file_or_dir, text_to_search, replacement_text) + else: + raise NotImplementedError + + +if __name__ == "__main__": + main() diff --git a/Dassl.ProGrad.pytorch/tools/train.py b/Dassl.ProGrad.pytorch/tools/train.py new file mode 100644 index 0000000..491926a --- /dev/null +++ b/Dassl.ProGrad.pytorch/tools/train.py @@ -0,0 +1,190 @@ +import argparse +import torch + +from dassl.utils import setup_logger, set_random_seed, collect_env_info +from dassl.config import get_cfg_default +from dassl.engine import build_trainer + + +def print_args(args, cfg): + print("***************") + print("** Arguments **") + print("***************") + optkeys = list(args.__dict__.keys()) + optkeys.sort() + for key in optkeys: + print("{}: {}".format(key, args.__dict__[key])) + print("************") + print("** Config **") + print("************") + print(cfg) + + +def reset_cfg(cfg, args): + if args.root: + cfg.DATASET.ROOT = args.root + + if args.output_dir: + cfg.OUTPUT_DIR = args.output_dir + + if args.resume: + cfg.RESUME = args.resume + + if args.seed: + cfg.SEED = args.seed + + if args.source_domains: + cfg.DATASET.SOURCE_DOMAINS = args.source_domains + + if args.target_domains: + cfg.DATASET.TARGET_DOMAINS = args.target_domains + + if args.transforms: + cfg.INPUT.TRANSFORMS = args.transforms + + if args.trainer: + cfg.TRAINER.NAME = args.trainer + + if args.backbone: + cfg.MODEL.BACKBONE.NAME = args.backbone + + if args.head: + cfg.MODEL.HEAD.NAME = args.head + + +def extend_cfg(cfg): + """ + Add new config variables. + + E.g. + from yacs.config import CfgNode as CN + cfg.TRAINER.MY_MODEL = CN() + cfg.TRAINER.MY_MODEL.PARAM_A = 1. + cfg.TRAINER.MY_MODEL.PARAM_B = 0.5 + cfg.TRAINER.MY_MODEL.PARAM_C = False + """ + pass + + +def setup_cfg(args): + cfg = get_cfg_default() + extend_cfg(cfg) + + # 1. From the dataset config file + if args.dataset_config_file: + cfg.merge_from_file(args.dataset_config_file) + + # 2. From the method config file + if args.config_file: + cfg.merge_from_file(args.config_file) + + # 3. From input arguments + reset_cfg(cfg, args) + + # 4. From optional input arguments + cfg.merge_from_list(args.opts) + + cfg.freeze() + + return cfg + + +def main(args): + cfg = setup_cfg(args) + if cfg.SEED >= 0: + print("Setting fixed seed: {}".format(cfg.SEED)) + set_random_seed(cfg.SEED) + setup_logger(cfg.OUTPUT_DIR) + + if torch.cuda.is_available() and cfg.USE_CUDA: + torch.backends.cudnn.benchmark = True + + print_args(args, cfg) + print("Collecting env info ...") + print("** System info **\n{}\n".format(collect_env_info())) + + trainer = build_trainer(cfg) + + if args.eval_only: + trainer.load_model(args.model_dir, epoch=args.load_epoch) + trainer.test() + return + + if not args.no_train: + trainer.train() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--root", type=str, default="", help="path to dataset") + parser.add_argument( + "--output-dir", type=str, default="", help="output directory" + ) + parser.add_argument( + "--resume", + type=str, + default="", + help="checkpoint directory (from which the training resumes)", + ) + parser.add_argument( + "--seed", + type=int, + default=-1, + help="only positive value enables a fixed seed" + ) + parser.add_argument( + "--source-domains", + type=str, + nargs="+", + help="source domains for DA/DG" + ) + parser.add_argument( + "--target-domains", + type=str, + nargs="+", + help="target domains for DA/DG" + ) + parser.add_argument( + "--transforms", type=str, nargs="+", help="data augmentation methods" + ) + parser.add_argument( + "--config-file", type=str, default="", help="path to config file" + ) + parser.add_argument( + "--dataset-config-file", + type=str, + default="", + help="path to config file for dataset setup", + ) + parser.add_argument( + "--trainer", type=str, default="", help="name of trainer" + ) + parser.add_argument( + "--backbone", type=str, default="", help="name of CNN backbone" + ) + parser.add_argument("--head", type=str, default="", help="name of head") + parser.add_argument( + "--eval-only", action="store_true", help="evaluation only" + ) + parser.add_argument( + "--model-dir", + type=str, + default="", + help="load model from this directory for eval-only mode", + ) + parser.add_argument( + "--load-epoch", + type=int, + help="load model weights at this epoch for evaluation" + ) + parser.add_argument( + "--no-train", action="store_true", help="do not call trainer.train()" + ) + parser.add_argument( + "opts", + default=None, + nargs=argparse.REMAINDER, + help="modify config options using the command-line", + ) + args = parser.parse_args() + main(args) diff --git a/MSGCoOp/DATASETS.md b/MSGCoOp/DATASETS.md new file mode 100644 index 0000000..9b3ee05 --- /dev/null +++ b/MSGCoOp/DATASETS.md @@ -0,0 +1,231 @@ +# How to install datasets + +We suggest putting all datasets under the same folder (say `$DATA`) to ease management and following the instructions below to organize datasets to avoid modifying the source code. The file structure looks like + +``` +$DATA/ +|–– imagenet/ +|–– caltech-101/ +|–– oxford_pets/ +|–– stanford_cars/ +``` + +If you have some datasets already installed somewhere else, you can create symbolic links in `$DATA/dataset_name` that point to the original data to avoid duplicate download. + +Datasets list: +- [ImageNet](#imagenet) +- [Caltech101](#caltech101) +- [OxfordPets](#oxfordpets) +- [StanfordCars](#stanfordcars) +- [Flowers102](#flowers102) +- [Food101](#food101) +- [FGVCAircraft](#fgvcaircraft) +- [SUN397](#sun397) +- [DTD](#dtd) +- [EuroSAT](#eurosat) +- [UCF101](#ucf101) +- [ImageNetV2](#imagenetv2) +- [ImageNet-Sketch](#imagenet-sketch) +- [ImageNet-A](#imagenet-a) +- [ImageNet-R](#imagenet-r) + +The instructions to prepare each dataset are detailed below. To ensure reproducibility and fair comparison for future work, we provide fixed train/val/test splits for all datasets except ImageNet where the validation set is used as test set. The fixed splits are either from the original datasets (if available) or created by us. + +### ImageNet +- Create a folder named `imagenet/` under `$DATA`. +- Create `images/` under `imagenet/`. +- Download the dataset from the [official website](https://image-net.org/index.php) and extract the training and validation sets to `$DATA/imagenet/images`. The directory structure should look like +``` +imagenet/ +|–– images/ +| |–– train/ # contains 1,000 folders like n01440764, n01443537, etc. +| |–– val/ +``` +- If you had downloaded the ImageNet dataset before, you can create symbolic links to map the training and validation sets to `$DATA/imagenet/images`. +- Download the `classnames.txt` to `$DATA/imagenet/` from this [link](https://drive.google.com/file/d/1-61f_ol79pViBFDG_IDlUQSwoLcn2XXF/view?usp=sharing). The class names are copied from [CLIP](https://github.com/openai/CLIP/blob/main/notebooks/Prompt_Engineering_for_ImageNet.ipynb). + +### Caltech101 +- Create a folder named `caltech-101/` under `$DATA`. +- Download `101_ObjectCategories.tar.gz` from http://www.vision.caltech.edu/Image_Datasets/Caltech101/101_ObjectCategories.tar.gz and extract the file under `$DATA/caltech-101`. +- Download `split_zhou_Caltech101.json` from this [link](https://drive.google.com/file/d/1hyarUivQE36mY6jSomru6Fjd-JzwcCzN/view?usp=sharing) and put it under `$DATA/caltech-101`. + +The directory structure should look like +``` +caltech-101/ +|–– 101_ObjectCategories/ +|–– split_zhou_Caltech101.json +``` + +### OxfordPets +- Create a folder named `oxford_pets/` under `$DATA`. +- Download the images from https://www.robots.ox.ac.uk/~vgg/data/pets/data/images.tar.gz. +- Download the annotations from https://www.robots.ox.ac.uk/~vgg/data/pets/data/annotations.tar.gz. +- Download `split_zhou_OxfordPets.json` from this [link](https://drive.google.com/file/d/1501r8Ber4nNKvmlFVQZ8SeUHTcdTTEqs/view?usp=sharing). + +The directory structure should look like +``` +oxford_pets/ +|–– images/ +|–– annotations/ +|–– split_zhou_OxfordPets.json +``` + +### StanfordCars +- Create a folder named `stanford_cars/` under `$DATA`. +- Download the train images http://ai.stanford.edu/~jkrause/car196/cars_train.tgz. +- Download the test images http://ai.stanford.edu/~jkrause/car196/cars_test.tgz. +- Download the train labels https://ai.stanford.edu/~jkrause/cars/car_devkit.tgz. +- Download the test labels http://ai.stanford.edu/~jkrause/car196/cars_test_annos_withlabels.mat. +- Download `split_zhou_StanfordCars.json` from this [link](https://drive.google.com/file/d/1ObCFbaAgVu0I-k_Au-gIUcefirdAuizT/view?usp=sharing). + +The directory structure should look like +``` +stanford_cars/ +|–– cars_test\ +|–– cars_test_annos_withlabels.mat +|–– cars_train\ +|–– devkit\ +|–– split_zhou_StanfordCars.json +``` + +### Flowers102 +- Create a folder named `oxford_flowers/` under `$DATA`. +- Download the images and labels from https://www.robots.ox.ac.uk/~vgg/data/flowers/102/102flowers.tgz and https://www.robots.ox.ac.uk/~vgg/data/flowers/102/imagelabels.mat respectively. +- Download `cat_to_name.json` from [here](https://drive.google.com/file/d/1AkcxCXeK_RCGCEC_GvmWxjcjaNhu-at0/view?usp=sharing). +- Download `split_zhou_OxfordFlowers.json` from [here](https://drive.google.com/file/d/1Pp0sRXzZFZq15zVOzKjKBu4A9i01nozT/view?usp=sharing). + +The directory structure should look like +``` +oxford_flowers/ +|–– cat_to_name.json +|–– imagelabels.mat +|–– jpg/ +|–– split_zhou_OxfordFlowers.json +``` + +### Food101 +- Download the dataset from https://data.vision.ee.ethz.ch/cvl/datasets_extra/food-101/ and extract the file `food-101.tar.gz` under `$DATA`, resulting in a folder named `$DATA/food-101/`. +- Download `split_zhou_Food101.json` from [here](https://drive.google.com/file/d/1QK0tGi096I0Ba6kggatX1ee6dJFIcEJl/view?usp=sharing). + +The directory structure should look like +``` +food-101/ +|–– images/ +|–– license_agreement.txt +|–– meta/ +|–– README.txt +|–– split_zhou_Food101.json +``` + +### FGVCAircraft +- Download the data from https://www.robots.ox.ac.uk/~vgg/data/fgvc-aircraft/archives/fgvc-aircraft-2013b.tar.gz. +- Extract `fgvc-aircraft-2013b.tar.gz` and keep only `data/`. +- Move `data/` to `$DATA` and rename the folder to `fgvc_aircraft/`. + +The directory structure should look like +``` +fgvc_aircraft/ +|–– images/ +|–– ... # a bunch of .txt files +``` + +### SUN397 +- Create a folder named `sun397/` under `$DATA`. +- Download the images http://vision.princeton.edu/projects/2010/SUN/SUN397.tar.gz. +- Download the partitions https://vision.princeton.edu/projects/2010/SUN/download/Partitions.zip. +- Extract these files under `$DATA/sun397/`. +- Download `split_zhou_SUN397.json` from this [link](https://drive.google.com/file/d/1y2RD81BYuiyvebdN-JymPfyWYcd8_MUq/view?usp=sharing). + +The directory structure should look like +``` +sun397/ +|–– SUN397/ +|–– split_zhou_SUN397.json +|–– ... # a bunch of .txt files +``` + +### DTD +- Download the dataset from https://www.robots.ox.ac.uk/~vgg/data/dtd/download/dtd-r1.0.1.tar.gz and extract it to `$DATA`. This should lead to `$DATA/dtd/`. +- Download `split_zhou_DescribableTextures.json` from this [link](https://drive.google.com/file/d/1u3_QfB467jqHgNXC00UIzbLZRQCg2S7x/view?usp=sharing). + +The directory structure should look like +``` +dtd/ +|–– images/ +|–– imdb/ +|–– labels/ +|–– split_zhou_DescribableTextures.json +``` + +### EuroSAT +- Create a folder named `eurosat/` under `$DATA`. +- Download the dataset from http://madm.dfki.de/files/sentinel/EuroSAT.zip and extract it to `$DATA/eurosat/`. +- Download `split_zhou_EuroSAT.json` from [here](https://drive.google.com/file/d/1Ip7yaCWFi0eaOFUGga0lUdVi_DDQth1o/view?usp=sharing). + +The directory structure should look like +``` +eurosat/ +|–– 2750/ +|–– split_zhou_EuroSAT.json +``` + +### UCF101 +- Create a folder named `ucf101/` under `$DATA`. +- Download the zip file `UCF-101-midframes.zip` from [here](https://drive.google.com/file/d/10Jqome3vtUA2keJkNanAiFpgbyC9Hc2O/view?usp=sharing) and extract it to `$DATA/ucf101/`. This zip file contains the extracted middle video frames. +- Download `split_zhou_UCF101.json` from this [link](https://drive.google.com/file/d/1I0S0q91hJfsV9Gf4xDIjgDq4AqBNJb1y/view?usp=sharing). + +The directory structure should look like +``` +ucf101/ +|–– UCF-101-midframes/ +|–– split_zhou_UCF101.json +``` + +### ImageNetV2 +- Create a folder named `imagenetv2/` under `$DATA`. +- Go to this github repo https://github.com/modestyachts/ImageNetV2. +- Download the matched-frequency dataset from https://s3-us-west-2.amazonaws.com/imagenetv2public/imagenetv2-matched-frequency.tar.gz and extract it to `$DATA/imagenetv2/`. +- Copy `$DATA/imagenet/classnames.txt` to `$DATA/imagenetv2/`. + +The directory structure should look like +``` +imagenetv2/ +|–– imagenetv2-matched-frequency-format-val/ +|–– classnames.txt +``` + +### ImageNet-Sketch +- Download the dataset from https://github.com/HaohanWang/ImageNet-Sketch. +- Extract the dataset to `$DATA/imagenet-sketch`. +- Copy `$DATA/imagenet/classnames.txt` to `$DATA/imagenet-sketch/`. + +The directory structure should look like +``` +imagenet-sketch/ +|–– images/ # contains 1,000 folders whose names have the format of n* +|–– classnames.txt +``` + +### ImageNet-A +- Create a folder named `imagenet-adversarial/` under `$DATA`. +- Download the dataset from https://github.com/hendrycks/natural-adv-examples and extract it to `$DATA/imagenet-adversarial/`. +- Copy `$DATA/imagenet/classnames.txt` to `$DATA/imagenet-adversarial/`. + +The directory structure should look like +``` +imagenet-adversarial/ +|–– imagenet-a/ # contains 200 folders whose names have the format of n* +|–– classnames.txt +``` + +### ImageNet-R +- Create a folder named `imagenet-rendition/` under `$DATA`. +- Download the dataset from https://github.com/hendrycks/imagenet-r and extract it to `$DATA/imagenet-rendition/`. +- Copy `$DATA/imagenet/classnames.txt` to `$DATA/imagenet-rendition/`. + +The directory structure should look like +``` +imagenet-rendition/ +|–– imagenet-r/ # contains 200 folders whose names have the format of n* +|–– classnames.txt +``` \ No newline at end of file diff --git a/MSGCoOp/LICENSE b/MSGCoOp/LICENSE new file mode 100644 index 0000000..26d793c --- /dev/null +++ b/MSGCoOp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Kaiyang Zhou + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/MSGCoOp/README.md b/MSGCoOp/README.md new file mode 100644 index 0000000..363032f --- /dev/null +++ b/MSGCoOp/README.md @@ -0,0 +1,123 @@ +# How to Run + +## GPU memory needed + +All the experiments is able to run on a single graphic card. If you want to reproduce our result, you can train on vGPU-32G and vGPU-48G provided by [AutoDL](https://www.autodl.com/docs/gpu_perf/). + + +## How to Install + +This code is built on top of the toolbox [Dassl.ProGrad.pytorch](https://github.com/BeierZhu/Prompt-align/tree/main/Dassl.ProGrad.pytorch). You can prepare the environment as follows: + +``` +# Create a conda environment +conda create -n msgcoop python=3.12 + +# Activate the environment +conda activate msgcoop + +# Install dependencies +pip install -r requirements.txt + +# Install torch (version >= 1.7.1) and torchvision +# Please make sure you have installed the gpu version due to the speed. +# For example: +pip install torch==2.4.1 torchvision==0.19.1 --index-url https://download.pytorch.org/whl/cu124 + +# Install this library (no need to re-build if the source code is modified) +python setup.py develop +``` + +After that, run `pip install -r requirements.txt` under `MSGCoOp/` to install a few more packages required by [CLIP](https://github.com/openai/CLIP) (this should be done when `dassl` is activated). Then, you are ready to go. + +Follow [DATASETS.md](DATASETS.md) to install the datasets. + + +## Generalization From Base to New Classes + +You will need `base2new_train.sh`, `base2new_test.sh`, and `base2new_all.sh`. The scripts with the prefix `base2new_train` train a model on base classes while the ones with the prefix `base2new_test` evaluate the trained model on new classes. Both kinds of scripts have three input argument, i.e., `TRAINER SG_WEIGHT DIV_WEIGHT`. + +You can run base to new on all datasets as follow: + +```bash +bash scripts/base2new_all.sh MSGCoOp 8.0 1.0 +``` + +When the evaluation is done, you can use `extract_acc.py` (replace the `root_dir` in the `main` function to your output dir) to automatically calculate the average results. For instance, after you finish the trainning using the aforementioned commands, you would get + +``` +output +└── base2new + ├── test_new + │ ├── caltech101 + │ │ └── shots_16_8.0 + │ │ └── MSGCoOp + │ │ └── vit_b16_ep100_ctxv1 + │ │ ├── seed1 + │ │ ├── seed2 + │ │ └── seed3 + │ ├── dtd + │ │ └── shots_16_8.0 + │ │ └── MSGCoOp + │ │ └── vit_b16_ep100_ctxv1 + │ │ ├── seed1 + │ │ ├── seed2 + │ │ └── seed3 + │ ├── ... + └── train_base + ├── caltech101 + │ └── shots_16_8.0 + │ └── MSGCoOp + │ └── vit_b16_ep100_ctxv1 + │ ├── seed1 + │ ├── seed2 + │ └── seed3 + ├── dtd + │ └── shots_16_8.0 + │ └── MSGCoOp + │ └── vit_b16_ep100_ctxv1 + │ ├── seed1 + │ ├── seed2 + │ └── seed3 + ├── ... +``` + +Then, you will get the avarage accuracy. + +> We train and evaluate our model on vGPU-32G. + +## Generalization For Cross Domain + +Fisrt, you need train on all classes over ImageNet: + +```bash +bash scripts/xd_train.sh MSGCoOp 8.0 1.0 +``` + +Then you can evaluate the performance on other ImageNet variants by run: + +```bash +bash scripts/xdo_test.sh MSGCoOp 8.0 1.0 +``` + +And you will get the `output_xdo` after script finish. You can get the accuracy by `extract_acc.py` (need modify the `root_dir` to `output_xdo` ). + +> We train and evaluate our model on vGPU-48G. + +## Generalization For Cross Dataset + +Directly run follow command for get the result of cross dataset: + +```bash +bash scripts/xda_test.sh MSGCoOp 8.0 1.0 +``` + +You also can achive the result by `extract_acc.py`: + +> We directly using the weight from cross-domain and evaluate on RTX2080. + +# Use Weight + +We provide our weight for reproduce. You can download it with [OneDrive](https://1drv.ms/f/c/b31f6836d06839db/Ets5aNA2aB8ggLOxawAAAAABViDG_EDvsE1cPq4PxWixog?e=nka3O0). Only need extract these weight to `MSGCoOp/MSGCoOp`, and run the shell scripts of each benchmark expriments. Then you can easily got the result. + +> NOTE: Different GPUs may cause slightly different result. diff --git a/MSGCoOp/clip/__init__.py b/MSGCoOp/clip/__init__.py new file mode 100644 index 0000000..dcc5619 --- /dev/null +++ b/MSGCoOp/clip/__init__.py @@ -0,0 +1 @@ +from .clip import * diff --git a/MSGCoOp/clip/bpe_simple_vocab_16e6.txt.gz b/MSGCoOp/clip/bpe_simple_vocab_16e6.txt.gz new file mode 100644 index 0000000..7b5088a Binary files /dev/null and b/MSGCoOp/clip/bpe_simple_vocab_16e6.txt.gz differ diff --git a/MSGCoOp/clip/clip.py b/MSGCoOp/clip/clip.py new file mode 100644 index 0000000..7a9158c --- /dev/null +++ b/MSGCoOp/clip/clip.py @@ -0,0 +1,257 @@ +import hashlib +import os +import urllib +import warnings +from typing import Union, List + +import torch +from PIL import Image +from torchvision.transforms import Compose, Resize, CenterCrop, ToTensor, Normalize +from tqdm import tqdm + +from .model import build_model +from .simple_tokenizer import SimpleTokenizer as _Tokenizer + +try: + from torchvision.transforms import InterpolationMode + BICUBIC = InterpolationMode.BICUBIC +except ImportError: + BICUBIC = Image.BICUBIC + +if torch.__version__.split(".") < ["1", "7", "1"]: + warnings.warn("PyTorch version 1.7.1 or higher is recommended") + +__all__ = ["available_models", "load", "tokenize"] +_tokenizer = _Tokenizer() + +_MODELS = { + "RN50": + "https://openaipublic.azureedge.net/clip/models/afeb0e10f9e5a86da6080e35cf09123aca3b358a0c3e3b6c78a7b63bc04b6762/RN50.pt", + "RN101": + "https://openaipublic.azureedge.net/clip/models/8fa8567bab74a42d41c5915025a8e4538c3bdbe8804a470a72f30b0d94fab599/RN101.pt", + "RN50x4": + "https://openaipublic.azureedge.net/clip/models/7e526bd135e493cef0776de27d5f42653e6b4c8bf9e0f653bb11773263205fdd/RN50x4.pt", + "RN50x16": + "https://openaipublic.azureedge.net/clip/models/52378b407f34354e150460fe41077663dd5b39c54cd0bfd2b27167a4a06ec9aa/RN50x16.pt", + "ViT-B/32": + "https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt", + "ViT-B/16": + "https://openaipublic.azureedge.net/clip/models/5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f/ViT-B-16.pt", +} + + +def _download(url: str, root: str = os.path.expanduser("~/.cache/clip")): + os.makedirs(root, exist_ok=True) + filename = os.path.basename(url) + + expected_sha256 = url.split("/")[-2] + download_target = os.path.join(root, filename) + + if os.path.exists(download_target) and not os.path.isfile(download_target): + raise RuntimeError( + f"{download_target} exists and is not a regular file") + + if os.path.isfile(download_target): + if hashlib.sha256(open(download_target, + "rb").read()).hexdigest() == expected_sha256: + return download_target + else: + warnings.warn( + f"{download_target} exists, but the SHA256 checksum does not match; re-downloading the file" + ) + + with urllib.request.urlopen(url) as source, open(download_target, + "wb") as output: + with tqdm(total=int(source.info().get("Content-Length")), + ncols=80, + unit='iB', + unit_scale=True) as loop: + while True: + buffer = source.read(8192) + if not buffer: + break + + output.write(buffer) + loop.update(len(buffer)) + + if hashlib.sha256(open(download_target, + "rb").read()).hexdigest() != expected_sha256: + raise RuntimeError( + f"Model has been downloaded but the SHA256 checksum does not not match" + ) + + return download_target + + +def _transform(n_px): + return Compose([ + Resize(n_px, interpolation=BICUBIC), + CenterCrop(n_px), + lambda image: image.convert("RGB"), + ToTensor(), + Normalize((0.48145466, 0.4578275, 0.40821073), + (0.26862954, 0.26130258, 0.27577711)), + ]) + + +def available_models() -> List[str]: + """Returns the names of available CLIP models""" + return list(_MODELS.keys()) + + +def load(name: str, + device: Union[str, torch.device] = "cuda" + if torch.cuda.is_available() else "cpu", + jit=False): + """Load a CLIP model + + Parameters + ---------- + name : str + A model name listed by `clip.available_models()`, or the path to a model checkpoint containing the state_dict + + device : Union[str, torch.device] + The device to put the loaded model + + jit : bool + Whether to load the optimized JIT model or more hackable non-JIT model (default). + + Returns + ------- + model : torch.nn.Module + The CLIP model + + preprocess : Callable[[PIL.Image], torch.Tensor] + A torchvision transform that converts a PIL image into a tensor that the returned model can take as its input + """ + if name in _MODELS: + model_path = _download(_MODELS[name]) + elif os.path.isfile(name): + model_path = name + else: + raise RuntimeError( + f"Model {name} not found; available models = {available_models()}") + + try: + # loading JIT archive + model = torch.jit.load(model_path, + map_location=device if jit else "cpu").eval() + state_dict = None + except RuntimeError: + # loading saved state dict + if jit: + warnings.warn( + f"File {model_path} is not a JIT archive. Loading as a state dict instead" + ) + jit = False + state_dict = torch.load(model_path, map_location="cpu") + + if not jit: + model = build_model(state_dict or model.state_dict()).to(device) + if str(device) == "cpu": + model.float() + return model, _transform(model.visual.input_resolution) + + # patch the device names + device_holder = torch.jit.trace( + lambda: torch.ones([]).to(torch.device(device)), example_inputs=[]) + device_node = [ + n for n in device_holder.graph.findAllNodes("prim::Constant") + if "Device" in repr(n) + ][-1] + + def patch_device(module): + try: + graphs = [module.graph] if hasattr(module, "graph") else [] + except RuntimeError: + graphs = [] + + if hasattr(module, "forward1"): + graphs.append(module.forward1.graph) + + for graph in graphs: + for node in graph.findAllNodes("prim::Constant"): + if "value" in node.attributeNames() and str( + node["value"]).startswith("cuda"): + node.copyAttributes(device_node) + + model.apply(patch_device) + patch_device(model.encode_image) + patch_device(model.encode_text) + + # patch dtype to float32 on CPU + if str(device) == "cpu": + float_holder = torch.jit.trace(lambda: torch.ones([]).float(), + example_inputs=[]) + float_input = list(float_holder.graph.findNode("aten::to").inputs())[1] + float_node = float_input.node() + + def patch_float(module): + try: + graphs = [module.graph] if hasattr(module, "graph") else [] + except RuntimeError: + graphs = [] + + if hasattr(module, "forward1"): + graphs.append(module.forward1.graph) + + for graph in graphs: + for node in graph.findAllNodes("aten::to"): + inputs = list(node.inputs()) + for i in [ + 1, 2 + ]: # dtype can be the second or third argument to aten::to() + if inputs[i].node()["value"] == 5: + inputs[i].node().copyAttributes(float_node) + + model.apply(patch_float) + patch_float(model.encode_image) + patch_float(model.encode_text) + + model.float() + + return model, _transform(model.input_resolution.item()) + + +def tokenize(texts: Union[str, List[str]], + context_length: int = 77, + truncate: bool = False) -> torch.LongTensor: + """ + Returns the tokenized representation of given input string(s) + + Parameters + ---------- + texts : Union[str, List[str]] + An input string or a list of input strings to tokenize + + context_length : int + The context length to use; all CLIP models use 77 as the context length + + truncate: bool + Whether to truncate the text in case its encoding is longer than the context length + + Returns + ------- + A two-dimensional tensor containing the resulting tokens, shape = [number of input strings, context_length] + """ + if isinstance(texts, str): + texts = [texts] + + sot_token = _tokenizer.encoder["<|startoftext|>"] + eot_token = _tokenizer.encoder["<|endoftext|>"] + all_tokens = [[sot_token] + _tokenizer.encode(text) + [eot_token] + for text in texts] + result = torch.zeros(len(all_tokens), context_length, dtype=torch.long) + + for i, tokens in enumerate(all_tokens): + if len(tokens) > context_length: + if truncate: + tokens = tokens[:context_length] + tokens[-1] = eot_token + else: + raise RuntimeError( + f"Input {texts[i]} is too long for context length {context_length}" + ) + result[i, :len(tokens)] = torch.tensor(tokens) + + return result diff --git a/MSGCoOp/clip/model.py b/MSGCoOp/clip/model.py new file mode 100644 index 0000000..5705b0c --- /dev/null +++ b/MSGCoOp/clip/model.py @@ -0,0 +1,507 @@ +from collections import OrderedDict +from typing import Tuple, Union + +import numpy as np +import torch +import torch.nn.functional as F +from torch import nn + + +class Bottleneck(nn.Module): + expansion = 4 + + def __init__(self, inplanes, planes, stride=1): + super().__init__() + + # all conv layers have stride 1. an avgpool is performed after the second convolution when stride > 1 + self.conv1 = nn.Conv2d(inplanes, planes, 1, bias=False) + self.bn1 = nn.BatchNorm2d(planes) + + self.conv2 = nn.Conv2d(planes, planes, 3, padding=1, bias=False) + self.bn2 = nn.BatchNorm2d(planes) + + self.avgpool = nn.AvgPool2d(stride) if stride > 1 else nn.Identity() + + self.conv3 = nn.Conv2d(planes, planes * self.expansion, 1, bias=False) + self.bn3 = nn.BatchNorm2d(planes * self.expansion) + + self.relu = nn.ReLU(inplace=True) + self.downsample = None + self.stride = stride + + if stride > 1 or inplanes != planes * Bottleneck.expansion: + # downsampling layer is prepended with an avgpool, and the subsequent convolution has stride 1 + self.downsample = nn.Sequential( + OrderedDict([("-1", nn.AvgPool2d(stride)), + ("0", + nn.Conv2d(inplanes, + planes * self.expansion, + 1, + stride=1, + bias=False)), + ("1", nn.BatchNorm2d(planes * self.expansion))])) + + def forward(self, x: torch.Tensor): + identity = x + + out = self.relu(self.bn1(self.conv1(x))) + out = self.relu(self.bn2(self.conv2(out))) + out = self.avgpool(out) + out = self.bn3(self.conv3(out)) + + if self.downsample is not None: + identity = self.downsample(x) + + out += identity + out = self.relu(out) + return out + + +class AttentionPool2d(nn.Module): + def __init__(self, + spacial_dim: int, + embed_dim: int, + num_heads: int, + output_dim: int = None): + super().__init__() + self.positional_embedding = nn.Parameter( + torch.randn(spacial_dim**2 + 1, embed_dim) / embed_dim**0.5) + self.k_proj = nn.Linear(embed_dim, embed_dim) + self.q_proj = nn.Linear(embed_dim, embed_dim) + self.v_proj = nn.Linear(embed_dim, embed_dim) + self.c_proj = nn.Linear(embed_dim, output_dim or embed_dim) + self.num_heads = num_heads + + def forward(self, x): + x = x.reshape(x.shape[0], x.shape[1], + x.shape[2] * x.shape[3]).permute(2, 0, + 1) # NCHW -> (HW)NC + x = torch.cat([x.mean(dim=0, keepdim=True), x], dim=0) # (HW+1)NC + x = x + self.positional_embedding[:, None, :].to(x.dtype) # (HW+1)NC + x, _ = F.multi_head_attention_forward( + query=x, + key=x, + value=x, + embed_dim_to_check=x.shape[-1], + num_heads=self.num_heads, + q_proj_weight=self.q_proj.weight, + k_proj_weight=self.k_proj.weight, + v_proj_weight=self.v_proj.weight, + in_proj_weight=None, + in_proj_bias=torch.cat( + [self.q_proj.bias, self.k_proj.bias, self.v_proj.bias]), + bias_k=None, + bias_v=None, + add_zero_attn=False, + dropout_p=0, + out_proj_weight=self.c_proj.weight, + out_proj_bias=self.c_proj.bias, + use_separate_proj_weight=True, + training=self.training, + need_weights=False) + + return x[0] + + +class ModifiedResNet(nn.Module): + """ + A ResNet class that is similar to torchvision's but contains the following changes: + - There are now 3 "stem" convolutions as opposed to 1, with an average pool instead of a max pool. + - Performs anti-aliasing strided convolutions, where an avgpool is prepended to convolutions with stride > 1 + - The final pooling layer is a QKV attention instead of an average pool + """ + def __init__(self, + layers, + output_dim, + heads, + input_resolution=224, + width=64): + super().__init__() + self.output_dim = output_dim + self.input_resolution = input_resolution + + # the 3-layer stem + self.conv1 = nn.Conv2d(3, + width // 2, + kernel_size=3, + stride=2, + padding=1, + bias=False) + self.bn1 = nn.BatchNorm2d(width // 2) + self.conv2 = nn.Conv2d(width // 2, + width // 2, + kernel_size=3, + padding=1, + bias=False) + self.bn2 = nn.BatchNorm2d(width // 2) + self.conv3 = nn.Conv2d(width // 2, + width, + kernel_size=3, + padding=1, + bias=False) + self.bn3 = nn.BatchNorm2d(width) + self.avgpool = nn.AvgPool2d(2) + self.relu = nn.ReLU(inplace=True) + + # residual layers + self._inplanes = width # this is a *mutable* variable used during construction + self.layer1 = self._make_layer(width, layers[0]) + self.layer2 = self._make_layer(width * 2, layers[1], stride=2) + self.layer3 = self._make_layer(width * 4, layers[2], stride=2) + self.layer4 = self._make_layer(width * 8, layers[3], stride=2) + + embed_dim = width * 32 # the ResNet feature dimension + self.attnpool = AttentionPool2d(input_resolution // 32, embed_dim, + heads, output_dim) + + def _make_layer(self, planes, blocks, stride=1): + layers = [Bottleneck(self._inplanes, planes, stride)] + + self._inplanes = planes * Bottleneck.expansion + for _ in range(1, blocks): + layers.append(Bottleneck(self._inplanes, planes)) + + return nn.Sequential(*layers) + + def forward(self, x): + def stem(x): + for conv, bn in [(self.conv1, self.bn1), (self.conv2, self.bn2), + (self.conv3, self.bn3)]: + x = self.relu(bn(conv(x))) + x = self.avgpool(x) + return x + + x = x.type(self.conv1.weight.dtype) + x = stem(x) + x = self.layer1(x) + x = self.layer2(x) + x = self.layer3(x) + x = self.layer4(x) + x = self.attnpool(x) + + return x + + +class LayerNorm(nn.LayerNorm): + """Subclass torch's LayerNorm to handle fp16.""" + def forward(self, x: torch.Tensor): + orig_type = x.dtype + ret = super().forward(x.type(torch.float32)) + return ret.type(orig_type) + + +class QuickGELU(nn.Module): + def forward(self, x: torch.Tensor): + return x * torch.sigmoid(1.702 * x) + + +class ResidualAttentionBlock(nn.Module): + def __init__(self, + d_model: int, + n_head: int, + attn_mask: torch.Tensor = None): + super().__init__() + + self.attn = nn.MultiheadAttention(d_model, n_head) + self.ln_1 = LayerNorm(d_model) + self.mlp = nn.Sequential( + OrderedDict([("c_fc", nn.Linear(d_model, d_model * 4)), + ("gelu", QuickGELU()), + ("c_proj", nn.Linear(d_model * 4, d_model))])) + self.ln_2 = LayerNorm(d_model) + self.attn_mask = attn_mask + + def attention(self, x: torch.Tensor): + self.attn_mask = self.attn_mask.to( + dtype=x.dtype, + device=x.device) if self.attn_mask is not None else None + return self.attn(x, x, x, need_weights=False, + attn_mask=self.attn_mask)[0] + + def forward(self, x: torch.Tensor): + x = x + self.attention(self.ln_1(x)) + x = x + self.mlp(self.ln_2(x)) + return x + + +class Transformer(nn.Module): + def __init__(self, + width: int, + layers: int, + heads: int, + attn_mask: torch.Tensor = None): + super().__init__() + self.width = width + self.layers = layers + self.resblocks = nn.Sequential(*[ + ResidualAttentionBlock(width, heads, attn_mask) + for _ in range(layers) + ]) + + def forward(self, x: torch.Tensor): + return self.resblocks(x) + + +class VisionTransformer(nn.Module): + def __init__(self, input_resolution: int, patch_size: int, width: int, + layers: int, heads: int, output_dim: int): + super().__init__() + self.input_resolution = input_resolution + self.output_dim = output_dim + self.conv1 = nn.Conv2d(in_channels=3, + out_channels=width, + kernel_size=patch_size, + stride=patch_size, + bias=False) + + scale = width**-0.5 + self.class_embedding = nn.Parameter(scale * torch.randn(width)) + self.positional_embedding = nn.Parameter(scale * torch.randn( + (input_resolution // patch_size)**2 + 1, width)) + self.ln_pre = LayerNorm(width) + + self.transformer = Transformer(width, layers, heads) + + self.ln_post = LayerNorm(width) + self.proj = nn.Parameter(scale * torch.randn(width, output_dim)) + + def forward(self, x: torch.Tensor): + x = self.conv1(x) # shape = [*, width, grid, grid] + x = x.reshape(x.shape[0], x.shape[1], + -1) # shape = [*, width, grid ** 2] + x = x.permute(0, 2, 1) # shape = [*, grid ** 2, width] + x = torch.cat([ + self.class_embedding.to(x.dtype) + torch.zeros( + x.shape[0], 1, x.shape[-1], dtype=x.dtype, device=x.device), x + ], + dim=1) # shape = [*, grid ** 2 + 1, width] + x = x + self.positional_embedding.to(x.dtype) + x = self.ln_pre(x) + + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + + x = self.ln_post(x[:, 0, :]) + + if self.proj is not None: + x = x @ self.proj + + return x + + +class CLIP(nn.Module): + def __init__( + self, + embed_dim: int, + # vision + image_resolution: int, + vision_layers: Union[Tuple[int, int, int, int], int], + vision_width: int, + vision_patch_size: int, + # text + context_length: int, + vocab_size: int, + transformer_width: int, + transformer_heads: int, + transformer_layers: int): + super().__init__() + + self.context_length = context_length + + if isinstance(vision_layers, (tuple, list)): + vision_heads = vision_width * 32 // 64 + self.visual = ModifiedResNet(layers=vision_layers, + output_dim=embed_dim, + heads=vision_heads, + input_resolution=image_resolution, + width=vision_width) + else: + vision_heads = vision_width // 64 + self.visual = VisionTransformer(input_resolution=image_resolution, + patch_size=vision_patch_size, + width=vision_width, + layers=vision_layers, + heads=vision_heads, + output_dim=embed_dim) + + self.transformer = Transformer(width=transformer_width, + layers=transformer_layers, + heads=transformer_heads, + attn_mask=self.build_attention_mask()) + + self.vocab_size = vocab_size + self.token_embedding = nn.Embedding(vocab_size, transformer_width) + self.positional_embedding = nn.Parameter( + torch.empty(self.context_length, transformer_width)) + self.ln_final = LayerNorm(transformer_width) + + self.text_projection = nn.Parameter( + torch.empty(transformer_width, embed_dim)) + self.logit_scale = nn.Parameter(torch.ones([]) * np.log(1 / 0.07)) + + self.initialize_parameters() + + def initialize_parameters(self): + nn.init.normal_(self.token_embedding.weight, std=0.02) + nn.init.normal_(self.positional_embedding, std=0.01) + + if isinstance(self.visual, ModifiedResNet): + if self.visual.attnpool is not None: + std = self.visual.attnpool.c_proj.in_features**-0.5 + nn.init.normal_(self.visual.attnpool.q_proj.weight, std=std) + nn.init.normal_(self.visual.attnpool.k_proj.weight, std=std) + nn.init.normal_(self.visual.attnpool.v_proj.weight, std=std) + nn.init.normal_(self.visual.attnpool.c_proj.weight, std=std) + + for resnet_block in [ + self.visual.layer1, self.visual.layer2, self.visual.layer3, + self.visual.layer4 + ]: + for name, param in resnet_block.named_parameters(): + if name.endswith("bn3.weight"): + nn.init.zeros_(param) + + proj_std = (self.transformer.width**-0.5) * ( + (2 * self.transformer.layers)**-0.5) + attn_std = self.transformer.width**-0.5 + fc_std = (2 * self.transformer.width)**-0.5 + for block in self.transformer.resblocks: + nn.init.normal_(block.attn.in_proj_weight, std=attn_std) + nn.init.normal_(block.attn.out_proj.weight, std=proj_std) + nn.init.normal_(block.mlp.c_fc.weight, std=fc_std) + nn.init.normal_(block.mlp.c_proj.weight, std=proj_std) + + if self.text_projection is not None: + nn.init.normal_(self.text_projection, + std=self.transformer.width**-0.5) + + def build_attention_mask(self): + # lazily create causal attention mask, with full attention between the vision tokens + # pytorch uses additive attention mask; fill with -inf + mask = torch.empty(self.context_length, self.context_length) + mask.fill_(float("-inf")) + mask.triu_(1) # zero out the lower diagonal + return mask + + @property + def dtype(self): + return self.visual.conv1.weight.dtype + + def encode_image(self, image): + return self.visual(image.type(self.dtype)) + + def encode_text(self, text): + x = self.token_embedding(text).type( + self.dtype) # [batch_size, n_ctx, d_model] + + x = x + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), + text.argmax(dim=-1)] @ self.text_projection + + return x + + def forward(self, image, text): + image_features = self.encode_image(image) + text_features = self.encode_text(text) + + # normalized features + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + + # cosine similarity as logits + logit_scale = self.logit_scale.exp() + logits_per_image = logit_scale * image_features @ text_features.t() + logits_per_text = logit_scale * text_features @ image_features.t() + + # shape = [global_batch_size, global_batch_size] + return logits_per_image, logits_per_text + + +def convert_weights(model: nn.Module): + """Convert applicable model parameters to fp16""" + def _convert_weights_to_fp16(l): + if isinstance(l, (nn.Conv1d, nn.Conv2d, nn.Linear)): + l.weight.data = l.weight.data.half() + if l.bias is not None: + l.bias.data = l.bias.data.half() + + if isinstance(l, nn.MultiheadAttention): + for attr in [ + *[f"{s}_proj_weight" for s in ["in", "q", "k", "v"]], + "in_proj_bias", "bias_k", "bias_v" + ]: + tensor = getattr(l, attr) + if tensor is not None: + tensor.data = tensor.data.half() + + for name in ["text_projection", "proj"]: + if hasattr(l, name): + attr = getattr(l, name) + if attr is not None: + attr.data = attr.data.half() + + model.apply(_convert_weights_to_fp16) + + +def build_model(state_dict: dict): + vit = "visual.proj" in state_dict + + if vit: + vision_width = state_dict["visual.conv1.weight"].shape[0] + vision_layers = len([ + k for k in state_dict.keys() + if k.startswith("visual.") and k.endswith(".attn.in_proj_weight") + ]) + vision_patch_size = state_dict["visual.conv1.weight"].shape[-1] + grid_size = round( + (state_dict["visual.positional_embedding"].shape[0] - 1)**0.5) + image_resolution = vision_patch_size * grid_size + else: + counts: list = [ + len( + set( + k.split(".")[2] for k in state_dict + if k.startswith(f"visual.layer{b}"))) + for b in [1, 2, 3, 4] + ] + vision_layers = tuple(counts) + vision_width = state_dict["visual.layer1.0.conv1.weight"].shape[0] + output_width = round( + (state_dict["visual.attnpool.positional_embedding"].shape[0] - + 1)**0.5) + vision_patch_size = None + assert output_width**2 + 1 == state_dict[ + "visual.attnpool.positional_embedding"].shape[0] + image_resolution = output_width * 32 + + embed_dim = state_dict["text_projection"].shape[1] + context_length = state_dict["positional_embedding"].shape[0] + vocab_size = state_dict["token_embedding.weight"].shape[0] + transformer_width = state_dict["ln_final.weight"].shape[0] + transformer_heads = transformer_width // 64 + transformer_layers = len( + set( + k.split(".")[2] for k in state_dict + if k.startswith(f"transformer.resblocks"))) + + model = CLIP(embed_dim, image_resolution, vision_layers, vision_width, + vision_patch_size, context_length, vocab_size, + transformer_width, transformer_heads, transformer_layers) + + for key in ["input_resolution", "context_length", "vocab_size"]: + if key in state_dict: + del state_dict[key] + + convert_weights(model) + model.load_state_dict(state_dict) + return model.eval() diff --git a/MSGCoOp/clip/simple_tokenizer.py b/MSGCoOp/clip/simple_tokenizer.py new file mode 100644 index 0000000..360f219 --- /dev/null +++ b/MSGCoOp/clip/simple_tokenizer.py @@ -0,0 +1,148 @@ +import gzip +import html +import os +from functools import lru_cache + +import ftfy +import regex as re + + +@lru_cache() +def default_bpe(): + return os.path.join(os.path.dirname(os.path.abspath(__file__)), + "bpe_simple_vocab_16e6.txt.gz") + + +@lru_cache() +def bytes_to_unicode(): + """ + Returns list of utf-8 byte and a corresponding list of unicode strings. + The reversible bpe codes work on unicode strings. + This means you need a large # of unicode characters in your vocab if you want to avoid UNKs. + When you're at something like a 10B token dataset you end up needing around 5K for decent coverage. + This is a signficant percentage of your normal, say, 32K bpe vocab. + To avoid that, we want lookup tables between utf-8 bytes and unicode strings. + And avoids mapping to whitespace/control characters the bpe code barfs on. + """ + bs = list(range(ord("!"), + ord("~") + 1)) + list(range( + ord("¡"), + ord("¬") + 1)) + list(range(ord("®"), + ord("ÿ") + 1)) + cs = bs[:] + n = 0 + for b in range(2**8): + if b not in bs: + bs.append(b) + cs.append(2**8 + n) + n += 1 + cs = [chr(n) for n in cs] + return dict(zip(bs, cs)) + + +def get_pairs(word): + """Return set of symbol pairs in a word. + Word is represented as tuple of symbols (symbols being variable-length strings). + """ + pairs = set() + prev_char = word[0] + for char in word[1:]: + pairs.add((prev_char, char)) + prev_char = char + return pairs + + +def basic_clean(text): + text = ftfy.fix_text(text) + text = html.unescape(html.unescape(text)) + return text.strip() + + +def whitespace_clean(text): + text = re.sub(r'\s+', ' ', text) + text = text.strip() + return text + + +class SimpleTokenizer(object): + def __init__(self, bpe_path: str = default_bpe()): + self.byte_encoder = bytes_to_unicode() + self.byte_decoder = {v: k for k, v in self.byte_encoder.items()} + merges = gzip.open(bpe_path).read().decode("utf-8").split('\n') + merges = merges[1:49152 - 256 - 2 + 1] + merges = [tuple(merge.split()) for merge in merges] + vocab = list(bytes_to_unicode().values()) + vocab = vocab + [v + '' for v in vocab] + for merge in merges: + vocab.append(''.join(merge)) + vocab.extend(['<|startoftext|>', '<|endoftext|>']) + self.encoder = dict(zip(vocab, range(len(vocab)))) + self.decoder = {v: k for k, v in self.encoder.items()} + self.bpe_ranks = dict(zip(merges, range(len(merges)))) + self.cache = { + '<|startoftext|>': '<|startoftext|>', + '<|endoftext|>': '<|endoftext|>' + } + self.pat = re.compile( + r"""<\|startoftext\|>|<\|endoftext\|>|'s|'t|'re|'ve|'m|'ll|'d|[\p{L}]+|[\p{N}]|[^\s\p{L}\p{N}]+""", + re.IGNORECASE) + + def bpe(self, token): + if token in self.cache: + return self.cache[token] + word = tuple(token[:-1]) + (token[-1] + '', ) + pairs = get_pairs(word) + + if not pairs: + return token + '' + + while True: + bigram = min( + pairs, key=lambda pair: self.bpe_ranks.get(pair, float('inf'))) + if bigram not in self.bpe_ranks: + break + first, second = bigram + new_word = [] + i = 0 + while i < len(word): + try: + j = word.index(first, i) + new_word.extend(word[i:j]) + i = j + except: + new_word.extend(word[i:]) + break + + if word[i] == first and i < len(word) - 1 and word[ + i + 1] == second: + new_word.append(first + second) + i += 2 + else: + new_word.append(word[i]) + i += 1 + new_word = tuple(new_word) + word = new_word + if len(word) == 1: + break + else: + pairs = get_pairs(word) + word = ' '.join(word) + self.cache[token] = word + return word + + def encode(self, text): + bpe_tokens = [] + text = whitespace_clean(basic_clean(text)).lower() + for token in re.findall(self.pat, text): + token = ''.join(self.byte_encoder[b] + for b in token.encode('utf-8')) + bpe_tokens.extend(self.encoder[bpe_token] + for bpe_token in self.bpe(token).split(' ')) + return bpe_tokens + + def decode(self, tokens): + text = ''.join([self.decoder[token] for token in tokens]) + text = bytearray([self.byte_decoder[c] for c in text + ]).decode('utf-8', + errors="replace").replace('', ' ') + return text diff --git a/MSGCoOp/configs/datasets/caltech101.yaml b/MSGCoOp/configs/datasets/caltech101.yaml new file mode 100644 index 0000000..4d3465f --- /dev/null +++ b/MSGCoOp/configs/datasets/caltech101.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "Caltech101" diff --git a/MSGCoOp/configs/datasets/dtd.yaml b/MSGCoOp/configs/datasets/dtd.yaml new file mode 100644 index 0000000..8e4b052 --- /dev/null +++ b/MSGCoOp/configs/datasets/dtd.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "DescribableTextures" diff --git a/MSGCoOp/configs/datasets/eurosat.yaml b/MSGCoOp/configs/datasets/eurosat.yaml new file mode 100644 index 0000000..88e9b83 --- /dev/null +++ b/MSGCoOp/configs/datasets/eurosat.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "EuroSAT" diff --git a/MSGCoOp/configs/datasets/fgvc_aircraft.yaml b/MSGCoOp/configs/datasets/fgvc_aircraft.yaml new file mode 100644 index 0000000..fa72f46 --- /dev/null +++ b/MSGCoOp/configs/datasets/fgvc_aircraft.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "FGVCAircraft" diff --git a/MSGCoOp/configs/datasets/food101.yaml b/MSGCoOp/configs/datasets/food101.yaml new file mode 100644 index 0000000..c9f8bfe --- /dev/null +++ b/MSGCoOp/configs/datasets/food101.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "Food101" diff --git a/MSGCoOp/configs/datasets/imagenet.yaml b/MSGCoOp/configs/datasets/imagenet.yaml new file mode 100644 index 0000000..d1170ff --- /dev/null +++ b/MSGCoOp/configs/datasets/imagenet.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "ImageNet" diff --git a/MSGCoOp/configs/datasets/imagenet_a.yaml b/MSGCoOp/configs/datasets/imagenet_a.yaml new file mode 100644 index 0000000..ccd3b30 --- /dev/null +++ b/MSGCoOp/configs/datasets/imagenet_a.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "ImageNetA" diff --git a/MSGCoOp/configs/datasets/imagenet_r.yaml b/MSGCoOp/configs/datasets/imagenet_r.yaml new file mode 100644 index 0000000..f34269f --- /dev/null +++ b/MSGCoOp/configs/datasets/imagenet_r.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "ImageNetR" diff --git a/MSGCoOp/configs/datasets/imagenet_sketch.yaml b/MSGCoOp/configs/datasets/imagenet_sketch.yaml new file mode 100644 index 0000000..feff22b --- /dev/null +++ b/MSGCoOp/configs/datasets/imagenet_sketch.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "ImageNetSketch" diff --git a/MSGCoOp/configs/datasets/imagenetv2.yaml b/MSGCoOp/configs/datasets/imagenetv2.yaml new file mode 100644 index 0000000..9fcdc0f --- /dev/null +++ b/MSGCoOp/configs/datasets/imagenetv2.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "ImageNetV2" diff --git a/MSGCoOp/configs/datasets/oxford_flowers.yaml b/MSGCoOp/configs/datasets/oxford_flowers.yaml new file mode 100644 index 0000000..769ecfa --- /dev/null +++ b/MSGCoOp/configs/datasets/oxford_flowers.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "OxfordFlowers" \ No newline at end of file diff --git a/MSGCoOp/configs/datasets/oxford_pets.yaml b/MSGCoOp/configs/datasets/oxford_pets.yaml new file mode 100644 index 0000000..14ea509 --- /dev/null +++ b/MSGCoOp/configs/datasets/oxford_pets.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "OxfordPets" \ No newline at end of file diff --git a/MSGCoOp/configs/datasets/stanford_cars.yaml b/MSGCoOp/configs/datasets/stanford_cars.yaml new file mode 100644 index 0000000..0362aff --- /dev/null +++ b/MSGCoOp/configs/datasets/stanford_cars.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "StanfordCars" diff --git a/MSGCoOp/configs/datasets/sun397.yaml b/MSGCoOp/configs/datasets/sun397.yaml new file mode 100644 index 0000000..461bfb6 --- /dev/null +++ b/MSGCoOp/configs/datasets/sun397.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "SUN397" diff --git a/MSGCoOp/configs/datasets/ucf101.yaml b/MSGCoOp/configs/datasets/ucf101.yaml new file mode 100644 index 0000000..5467a6d --- /dev/null +++ b/MSGCoOp/configs/datasets/ucf101.yaml @@ -0,0 +1,2 @@ +DATASET: + NAME: "UCF101" diff --git a/MSGCoOp/configs/trainers/CoCoOp/rn50_c4_ep10_batch1_ctxv1.yaml b/MSGCoOp/configs/trainers/CoCoOp/rn50_c4_ep10_batch1_ctxv1.yaml new file mode 100644 index 0000000..373fd90 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/rn50_c4_ep10_batch1_ctxv1.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 10 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COCOOP: + N_CTX: 4 + CTX_INIT: True + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/rn50_ep100_init.yaml b/MSGCoOp/configs/trainers/CoCoOp/rn50_ep100_init.yaml new file mode 100644 index 0000000..fd990d2 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/rn50_ep100_init.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COCOOP: + N_CTX: 16 + CTX_INIT: True + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/rn50_ep50.yaml b/MSGCoOp/configs/trainers/CoCoOp/rn50_ep50.yaml new file mode 100644 index 0000000..ac83f9c --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/rn50_ep50.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 50 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COCOOP: + N_CTX: 16 + CTX_INIT: True + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c16_ep10_batch1.yaml b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c16_ep10_batch1.yaml new file mode 100644 index 0000000..b403143 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c16_ep10_batch1.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 10 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COCOOP: + N_CTX: 16 + CTX_INIT: "" + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1.yaml b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1.yaml new file mode 100644 index 0000000..048d9a2 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 10 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COCOOP: + N_CTX: 4 + CTX_INIT: "" + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1_ctxv1.yaml b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1_ctxv1.yaml new file mode 100644 index 0000000..4611d87 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c4_ep10_batch1_ctxv1.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 10 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COCOOP: + N_CTX: 4 + CTX_INIT: "a photo of a" + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c8_ep10_batch1.yaml b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c8_ep10_batch1.yaml new file mode 100644 index 0000000..3349c14 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoCoOp/vit_b16_c8_ep10_batch1.yaml @@ -0,0 +1,35 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 1 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 10 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 20 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COCOOP: + N_CTX: 8 + CTX_INIT: "" + PREC: "fp16" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoOp/rn50.yaml b/MSGCoOp/configs/trainers/CoOp/rn50.yaml new file mode 100644 index 0000000..7638b1b --- /dev/null +++ b/MSGCoOp/configs/trainers/CoOp/rn50.yaml @@ -0,0 +1,29 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 200 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoOp/rn50_ep100.yaml b/MSGCoOp/configs/trainers/CoOp/rn50_ep100.yaml new file mode 100644 index 0000000..fd0968f --- /dev/null +++ b/MSGCoOp/configs/trainers/CoOp/rn50_ep100.yaml @@ -0,0 +1,29 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" diff --git a/MSGCoOp/configs/trainers/CoOp/rn50_ep50.yaml b/MSGCoOp/configs/trainers/CoOp/rn50_ep50.yaml new file mode 100644 index 0000000..8d7ef34 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoOp/rn50_ep50.yaml @@ -0,0 +1,29 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 50 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/CoOp/rn50_val.yaml b/MSGCoOp/configs/trainers/CoOp/rn50_val.yaml new file mode 100644 index 0000000..bdb1372 --- /dev/null +++ b/MSGCoOp/configs/trainers/CoOp/rn50_val.yaml @@ -0,0 +1,17 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 32 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +MODEL: + BACKBONE: + NAME: "RN50" \ No newline at end of file diff --git a/MSGCoOp/configs/trainers/KgCoOp/rn50_ep100.yaml b/MSGCoOp/configs/trainers/KgCoOp/rn50_ep100.yaml new file mode 100644 index 0000000..5d4dc70 --- /dev/null +++ b/MSGCoOp/configs/trainers/KgCoOp/rn50_ep100.yaml @@ -0,0 +1,33 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COOP: + CTX_INIT: True diff --git a/MSGCoOp/configs/trainers/KgCoOp/vit_b16_ep100_ctxv1.yaml b/MSGCoOp/configs/trainers/KgCoOp/vit_b16_ep100_ctxv1.yaml new file mode 100644 index 0000000..bf55dab --- /dev/null +++ b/MSGCoOp/configs/trainers/KgCoOp/vit_b16_ep100_ctxv1.yaml @@ -0,0 +1,33 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COOP: + CTX_INIT: True diff --git a/MSGCoOp/configs/trainers/MSGCoOp/vit_b16_ep100_ctxv1.yaml b/MSGCoOp/configs/trainers/MSGCoOp/vit_b16_ep100_ctxv1.yaml new file mode 100644 index 0000000..bf55dab --- /dev/null +++ b/MSGCoOp/configs/trainers/MSGCoOp/vit_b16_ep100_ctxv1.yaml @@ -0,0 +1,33 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 128 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "ViT-B/16" + +TRAINER: + COOP: + CTX_INIT: True diff --git a/MSGCoOp/configs/trainers/ProGrad/rn50.yaml b/MSGCoOp/configs/trainers/ProGrad/rn50.yaml new file mode 100644 index 0000000..4ee7598 --- /dev/null +++ b/MSGCoOp/configs/trainers/ProGrad/rn50.yaml @@ -0,0 +1,37 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 200 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +LOSS: + NAME: "prograd" + T: 1.0 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COOP: + CTX_INIT: True diff --git a/MSGCoOp/configs/trainers/ProGrad/rn50_ep100.yaml b/MSGCoOp/configs/trainers/ProGrad/rn50_ep100.yaml new file mode 100644 index 0000000..f1f30a7 --- /dev/null +++ b/MSGCoOp/configs/trainers/ProGrad/rn50_ep100.yaml @@ -0,0 +1,37 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 100 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +LOSS: + NAME: "prograd" + T: 1.0 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COOP: + CTX_INIT: True diff --git a/MSGCoOp/configs/trainers/ProGrad/rn50_ep50.yaml b/MSGCoOp/configs/trainers/ProGrad/rn50_ep50.yaml new file mode 100644 index 0000000..02c35d8 --- /dev/null +++ b/MSGCoOp/configs/trainers/ProGrad/rn50_ep50.yaml @@ -0,0 +1,37 @@ +DATALOADER: + TRAIN_X: + BATCH_SIZE: 32 + TEST: + BATCH_SIZE: 100 + NUM_WORKERS: 8 + +INPUT: + SIZE: (224, 224) + INTERPOLATION: "bicubic" + PIXEL_MEAN: [0.48145466, 0.4578275, 0.40821073] + PIXEL_STD: [0.26862954, 0.26130258, 0.27577711] + TRANSFORMS: ["random_resized_crop", "random_flip", "normalize"] + +OPTIM: + NAME: "sgd" + LR: 0.002 + MAX_EPOCH: 50 + LR_SCHEDULER: "cosine" + WARMUP_EPOCH: 1 + WARMUP_TYPE: "constant" + WARMUP_CONS_LR: 1e-5 + +LOSS: + NAME: "prograd" + T: 1.0 + +TRAIN: + PRINT_FREQ: 5 + +MODEL: + BACKBONE: + NAME: "RN50" + +TRAINER: + COOP: + CTX_INIT: True \ No newline at end of file diff --git a/MSGCoOp/datasets/__init__.py b/MSGCoOp/datasets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/MSGCoOp/datasets/caltech101.py b/MSGCoOp/datasets/caltech101.py new file mode 100644 index 0000000..b9a7e56 --- /dev/null +++ b/MSGCoOp/datasets/caltech101.py @@ -0,0 +1,73 @@ +import os +import pickle + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets +from .dtd import DescribableTextures as DTD + +IGNORED = ["BACKGROUND_Google", "Faces_easy"] +NEW_CNAMES = { + "airplanes": "airplane", + "Faces": "face", + "Leopards": "leopard", + "Motorbikes": "motorbike", +} + + +@DATASET_REGISTRY.register() +class Caltech101(DatasetBase): + + dataset_dir = "caltech-101" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "101_ObjectCategories") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_Caltech101.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + train, val, test = DTD.read_and_split_data(self.image_dir, + ignored=IGNORED, + new_cnames=NEW_CNAMES) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) diff --git a/MSGCoOp/datasets/dtd.py b/MSGCoOp/datasets/dtd.py new file mode 100644 index 0000000..96ba31a --- /dev/null +++ b/MSGCoOp/datasets/dtd.py @@ -0,0 +1,115 @@ +import os +import pickle +import random + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden, mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class DescribableTextures(DatasetBase): + + dataset_dir = "dtd" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_DescribableTextures.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + train, val, test = self.read_and_split_data(self.image_dir) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + @staticmethod + def read_and_split_data(image_dir, + p_trn=0.5, + p_val=0.2, + ignored=[], + new_cnames=None): + # The data are supposed to be organized into the following structure + # ============= + # images/ + # dog/ + # cat/ + # horse/ + # ============= + categories = listdir_nohidden(image_dir) + categories = [c for c in categories if c not in ignored] + categories.sort() + + p_tst = 1 - p_trn - p_val + print( + f"Splitting into {p_trn:.0%} train, {p_val:.0%} val, and {p_tst:.0%} test" + ) + + def _collate(ims, y, c): + items = [] + for im in ims: + item = Datum(impath=im, label=y, + classname=c) # is already 0-based + items.append(item) + return items + + train, val, test = [], [], [] + for label, category in enumerate(categories): + category_dir = os.path.join(image_dir, category) + images = listdir_nohidden(category_dir) + images = [os.path.join(category_dir, im) for im in images] + random.shuffle(images) + n_total = len(images) + n_train = round(n_total * p_trn) + n_val = round(n_total * p_val) + n_test = n_total - n_train - n_val + assert n_train > 0 and n_val > 0 and n_test > 0 + + if new_cnames is not None and category in new_cnames: + category = new_cnames[category] + + train.extend(_collate(images[:n_train], label, category)) + val.extend( + _collate(images[n_train:n_train + n_val], label, category)) + test.extend(_collate(images[n_train + n_val:], label, category)) + + return train, val, test diff --git a/MSGCoOp/datasets/eurosat.py b/MSGCoOp/datasets/eurosat.py new file mode 100644 index 0000000..1429a01 --- /dev/null +++ b/MSGCoOp/datasets/eurosat.py @@ -0,0 +1,88 @@ +import os +import pickle + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets +from .dtd import DescribableTextures as DTD + +NEW_CNAMES = { + "AnnualCrop": "Annual Crop Land", + "Forest": "Forest", + "HerbaceousVegetation": "Herbaceous Vegetation Land", + "Highway": "Highway or Road", + "Industrial": "Industrial Buildings", + "Pasture": "Pasture Land", + "PermanentCrop": "Permanent Crop Land", + "Residential": "Residential Buildings", + "River": "River", + "SeaLake": "Sea or Lake", +} + + +@DATASET_REGISTRY.register() +class EuroSAT(DatasetBase): + + dataset_dir = "eurosat" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "2750") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_EuroSAT.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + train, val, test = DTD.read_and_split_data(self.image_dir, + new_cnames=NEW_CNAMES) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def update_classname(self, dataset_old): + dataset_new = [] + for item_old in dataset_old: + cname_old = item_old.classname + cname_new = NEW_CLASSNAMES[cname_old] + item_new = Datum(impath=item_old.impath, + label=item_old.label, + classname=cname_new) + dataset_new.append(item_new) + return dataset_new diff --git a/MSGCoOp/datasets/fgvc_aircraft.py b/MSGCoOp/datasets/fgvc_aircraft.py new file mode 100644 index 0000000..9581d0f --- /dev/null +++ b/MSGCoOp/datasets/fgvc_aircraft.py @@ -0,0 +1,80 @@ +import os +import pickle + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class FGVCAircraft(DatasetBase): + + dataset_dir = "fgvc_aircraft" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + classnames = [] + with open(os.path.join(self.dataset_dir, "variants.txt"), "r") as f: + lines = f.readlines() + for line in lines: + classnames.append(line.strip()) + cname2lab = {c: i for i, c in enumerate(classnames)} + + train = self.read_data(cname2lab, "images_variant_train.txt") + val = self.read_data(cname2lab, "images_variant_val.txt") + test = self.read_data(cname2lab, "images_variant_test.txt") + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self, cname2lab, split_file): + filepath = os.path.join(self.dataset_dir, split_file) + items = [] + + with open(filepath, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip().split(" ") + imname = line[0] + ".jpg" + classname = " ".join(line[1:]) + impath = os.path.join(self.image_dir, imname) + label = cname2lab[classname] + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/food101.py b/MSGCoOp/datasets/food101.py new file mode 100644 index 0000000..1f929ba --- /dev/null +++ b/MSGCoOp/datasets/food101.py @@ -0,0 +1,63 @@ +import os +import pickle + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets +from .dtd import DescribableTextures as DTD + + +@DATASET_REGISTRY.register() +class Food101(DatasetBase): + + dataset_dir = "food-101" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_Food101.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + train, val, test = DTD.read_and_split_data(self.image_dir) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) diff --git a/MSGCoOp/datasets/imagenet.py b/MSGCoOp/datasets/imagenet.py new file mode 100644 index 0000000..2923fde --- /dev/null +++ b/MSGCoOp/datasets/imagenet.py @@ -0,0 +1,97 @@ +import os +import pickle +from collections import OrderedDict + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden, mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class ImageNet(DatasetBase): + + dataset_dir = "imagenet" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + self.preprocessed = os.path.join(self.dataset_dir, "preprocessed.pkl") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.preprocessed): + with open(self.preprocessed, "rb") as f: + preprocessed = pickle.load(f) + train = preprocessed["train"] + test = preprocessed["test"] + else: + text_file = os.path.join(self.dataset_dir, "classnames.txt") + classnames = self.read_classnames(text_file) + train = self.read_data(classnames, "train") + # Follow standard practice to perform evaluation on the val set + # Also used as the val set (so evaluate the last-step model) + test = self.read_data(classnames, "val") + + preprocessed = {"train": train, "test": test} + with open(self.preprocessed, "wb") as f: + pickle.dump(preprocessed, f, protocol=pickle.HIGHEST_PROTOCOL) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train = data["train"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + data = {"train": train} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, test = OxfordPets.subsample_classes(train, + test, + subsample=subsample) + + super().__init__(train_x=train, val=test, test=test) + + @staticmethod + def read_classnames(text_file): + """Return a dictionary containing + key-value pairs of : . + """ + classnames = OrderedDict() + with open(text_file, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip().split(" ") + folder = line[0] + classname = " ".join(line[1:]) + classnames[folder] = classname + return classnames + + def read_data(self, classnames, split_dir): + split_dir = os.path.join(self.image_dir, split_dir) + folders = sorted(f.name for f in os.scandir(split_dir) if f.is_dir()) + items = [] + + for label, folder in enumerate(folders): + imnames = listdir_nohidden(os.path.join(split_dir, folder)) + classname = classnames[folder] + for imname in imnames: + impath = os.path.join(split_dir, folder, imname) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/imagenet_a.py b/MSGCoOp/datasets/imagenet_a.py new file mode 100644 index 0000000..6079850 --- /dev/null +++ b/MSGCoOp/datasets/imagenet_a.py @@ -0,0 +1,46 @@ +import os + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden + +from .imagenet import ImageNet + +TO_BE_IGNORED = ["README.txt"] + + +@DATASET_REGISTRY.register() +class ImageNetA(DatasetBase): + """ImageNet-A(dversarial). + + This dataset is used for testing only. + """ + + dataset_dir = "imagenet-adversarial" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "imagenet-a") + + text_file = os.path.join(self.dataset_dir, "classnames.txt") + classnames = ImageNet.read_classnames(text_file) + + data = self.read_data(classnames) + + super().__init__(train_x=data, test=data) + + def read_data(self, classnames): + image_dir = self.image_dir + folders = listdir_nohidden(image_dir, sort=True) + folders = [f for f in folders if f not in TO_BE_IGNORED] + items = [] + + for label, folder in enumerate(folders): + imnames = listdir_nohidden(os.path.join(image_dir, folder)) + classname = classnames[folder] + for imname in imnames: + impath = os.path.join(image_dir, folder, imname) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/imagenet_r.py b/MSGCoOp/datasets/imagenet_r.py new file mode 100644 index 0000000..396902c --- /dev/null +++ b/MSGCoOp/datasets/imagenet_r.py @@ -0,0 +1,46 @@ +import os + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden + +from .imagenet import ImageNet + +TO_BE_IGNORED = ["README.txt"] + + +@DATASET_REGISTRY.register() +class ImageNetR(DatasetBase): + """ImageNet-R(endition). + + This dataset is used for testing only. + """ + + dataset_dir = "imagenet-rendition" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "imagenet-r") + + text_file = os.path.join(self.dataset_dir, "classnames.txt") + classnames = ImageNet.read_classnames(text_file) + + data = self.read_data(classnames) + + super().__init__(train_x=data, test=data) + + def read_data(self, classnames): + image_dir = self.image_dir + folders = listdir_nohidden(image_dir, sort=True) + folders = [f for f in folders if f not in TO_BE_IGNORED] + items = [] + + for label, folder in enumerate(folders): + imnames = listdir_nohidden(os.path.join(image_dir, folder)) + classname = classnames[folder] + for imname in imnames: + impath = os.path.join(image_dir, folder, imname) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/imagenet_sketch.py b/MSGCoOp/datasets/imagenet_sketch.py new file mode 100644 index 0000000..b0069eb --- /dev/null +++ b/MSGCoOp/datasets/imagenet_sketch.py @@ -0,0 +1,43 @@ +import os + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden + +from .imagenet import ImageNet + + +@DATASET_REGISTRY.register() +class ImageNetSketch(DatasetBase): + """ImageNet-Sketch. + + This dataset is used for testing only. + """ + + dataset_dir = "imagenet-sketch" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + + text_file = os.path.join(self.dataset_dir, "classnames.txt") + classnames = ImageNet.read_classnames(text_file) + + data = self.read_data(classnames) + + super().__init__(train_x=data, test=data) + + def read_data(self, classnames): + image_dir = self.image_dir + folders = listdir_nohidden(image_dir, sort=True) + items = [] + + for label, folder in enumerate(folders): + imnames = listdir_nohidden(os.path.join(image_dir, folder)) + classname = classnames[folder] + for imname in imnames: + impath = os.path.join(image_dir, folder, imname) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/imagenetv2.py b/MSGCoOp/datasets/imagenetv2.py new file mode 100644 index 0000000..69f9a8a --- /dev/null +++ b/MSGCoOp/datasets/imagenetv2.py @@ -0,0 +1,46 @@ +import os + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import listdir_nohidden + +from .imagenet import ImageNet + + +@DATASET_REGISTRY.register() +class ImageNetV2(DatasetBase): + """ImageNetV2. + + This dataset is used for testing only. + """ + + dataset_dir = "imagenetv2" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + image_dir = "imagenetv2-matched-frequency-format-val" + self.image_dir = os.path.join(self.dataset_dir, image_dir) + + text_file = os.path.join(self.dataset_dir, "classnames.txt") + classnames = ImageNet.read_classnames(text_file) + + data = self.read_data(classnames) + + super().__init__(train_x=data, test=data) + + def read_data(self, classnames): + image_dir = self.image_dir + folders = list(classnames.keys()) + items = [] + + for label in range(1000): + class_dir = os.path.join(image_dir, str(label)) + imnames = listdir_nohidden(class_dir) + folder = folders[label] + classname = classnames[folder] + for imname in imnames: + impath = os.path.join(class_dir, imname) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/oxford_flowers.py b/MSGCoOp/datasets/oxford_flowers.py new file mode 100644 index 0000000..427e36c --- /dev/null +++ b/MSGCoOp/datasets/oxford_flowers.py @@ -0,0 +1,104 @@ +import os +import pickle +import random +from scipy.io import loadmat +from collections import defaultdict + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import read_json, mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class OxfordFlowers(DatasetBase): + + dataset_dir = "oxford_flowers" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "jpg") + self.label_file = os.path.join(self.dataset_dir, "imagelabels.mat") + self.lab2cname_file = os.path.join(self.dataset_dir, + "cat_to_name.json") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_OxfordFlowers.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + train, val, test = self.read_data() + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self): + tracker = defaultdict(list) + label_file = loadmat(self.label_file)["labels"][0] + for i, label in enumerate(label_file): + imname = f"image_{str(i + 1).zfill(5)}.jpg" + impath = os.path.join(self.image_dir, imname) + label = int(label) + tracker[label].append(impath) + + print("Splitting data into 50% train, 20% val, and 30% test") + + def _collate(ims, y, c): + items = [] + for im in ims: + item = Datum(impath=im, label=y - 1, + classname=c) # convert to 0-based label + items.append(item) + return items + + lab2cname = read_json(self.lab2cname_file) + train, val, test = [], [], [] + for label, impaths in tracker.items(): + random.shuffle(impaths) + n_total = len(impaths) + n_train = round(n_total * 0.5) + n_val = round(n_total * 0.2) + n_test = n_total - n_train - n_val + assert n_train > 0 and n_val > 0 and n_test > 0 + cname = lab2cname[str(label)] + train.extend(_collate(impaths[:n_train], label, cname)) + val.extend(_collate(impaths[n_train:n_train + n_val], label, + cname)) + test.extend(_collate(impaths[n_train + n_val:], label, cname)) + + return train, val, test diff --git a/MSGCoOp/datasets/oxford_pets.py b/MSGCoOp/datasets/oxford_pets.py new file mode 100644 index 0000000..100babb --- /dev/null +++ b/MSGCoOp/datasets/oxford_pets.py @@ -0,0 +1,196 @@ +import os +import pickle +import math +import random +from collections import defaultdict + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import read_json, write_json, mkdir_if_missing + + +@DATASET_REGISTRY.register() +class OxfordPets(DatasetBase): + + dataset_dir = "oxford_pets" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "images") + self.anno_dir = os.path.join(self.dataset_dir, "annotations") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_OxfordPets.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = self.read_split(self.split_path, self.image_dir) + else: + trainval = self.read_data(split_file="trainval.txt") + test = self.read_data(split_file="test.txt") + train, val = self.split_trainval(trainval) + self.save_split(train, val, test, self.split_path, self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = self.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self, split_file): + filepath = os.path.join(self.anno_dir, split_file) + items = [] + + with open(filepath, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip() + imname, label, species, _ = line.split(" ") + breed = imname.split("_")[:-1] + breed = "_".join(breed) + breed = breed.lower() + imname += ".jpg" + impath = os.path.join(self.image_dir, imname) + label = int(label) - 1 # convert to 0-based index + item = Datum(impath=impath, label=label, classname=breed) + items.append(item) + + return items + + @staticmethod + def split_trainval(trainval, p_val=0.2): + p_trn = 1 - p_val + print(f"Splitting trainval into {p_trn:.0%} train and {p_val:.0%} val") + tracker = defaultdict(list) + for idx, item in enumerate(trainval): + label = item.label + tracker[label].append(idx) + + train, val = [], [] + for label, idxs in tracker.items(): + n_val = round(len(idxs) * p_val) + assert n_val > 0 + random.shuffle(idxs) + for n, idx in enumerate(idxs): + item = trainval[idx] + if n < n_val: + val.append(item) + else: + train.append(item) + + return train, val + + @staticmethod + def save_split(train, val, test, filepath, path_prefix): + def _extract(items): + out = [] + for item in items: + impath = item.impath + label = item.label + classname = item.classname + impath = impath.replace(path_prefix, "") + if impath.startswith("/"): + impath = impath[1:] + out.append((impath, label, classname)) + return out + + train = _extract(train) + val = _extract(val) + test = _extract(test) + + split = {"train": train, "val": val, "test": test} + + write_json(split, filepath) + print(f"Saved split to {filepath}") + + @staticmethod + def read_split(filepath, path_prefix): + def _convert(items): + out = [] + for impath, label, classname in items: + impath = os.path.join(path_prefix, impath) + item = Datum(impath=impath, + label=int(label), + classname=classname) + out.append(item) + return out + + print(f"Reading split from {filepath}") + split = read_json(filepath) + train = _convert(split["train"]) + val = _convert(split["val"]) + test = _convert(split["test"]) + + return train, val, test + + @staticmethod + def subsample_classes(*args, subsample="all"): + """Divide classes into two groups. The first group + represents base classes while the second group represents + new classes. + + Args: + args: a list of datasets, e.g. train, val and test. + subsample (str): what classes to subsample. + """ + assert subsample in ["all", "base", "new"] + + if subsample == "all": + return args + + dataset = args[0] + labels = set() + for item in dataset: + labels.add(item.label) + labels = list(labels) + labels.sort() + n = len(labels) + # Divide classes into two halves + m = math.ceil(n / 2) + + print(f"SUBSAMPLE {subsample.upper()} CLASSES!") + if subsample == "base": + selected = labels[:m] # take the first half + else: + selected = labels[m:] # take the second half + relabeler = {y: y_new for y_new, y in enumerate(selected)} + + output = [] + for dataset in args: + dataset_new = [] + for item in dataset: + if item.label not in selected: + continue + item_new = Datum(impath=item.impath, + label=relabeler[item.label], + classname=item.classname) + dataset_new.append(item_new) + output.append(dataset_new) + + return output diff --git a/MSGCoOp/datasets/stanford_cars.py b/MSGCoOp/datasets/stanford_cars.py new file mode 100644 index 0000000..58053ae --- /dev/null +++ b/MSGCoOp/datasets/stanford_cars.py @@ -0,0 +1,90 @@ +import os +import pickle +from scipy.io import loadmat + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class StanfordCars(DatasetBase): + + dataset_dir = "stanford_cars" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_StanfordCars.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.dataset_dir) + else: + trainval_file = os.path.join(self.dataset_dir, "devkit", + "cars_train_annos.mat") + test_file = os.path.join(self.dataset_dir, + "cars_test_annos_withlabels.mat") + meta_file = os.path.join(self.dataset_dir, "devkit", + "cars_meta.mat") + trainval = self.read_data("cars_train", trainval_file, meta_file) + test = self.read_data("cars_test", test_file, meta_file) + train, val = OxfordPets.split_trainval(trainval) + OxfordPets.save_split(train, val, test, self.split_path, + self.dataset_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self, image_dir, anno_file, meta_file): + anno_file = loadmat(anno_file)["annotations"][0] + meta_file = loadmat(meta_file)["class_names"][0] + items = [] + + for i in range(len(anno_file)): + imname = anno_file[i]["fname"][0] + impath = os.path.join(self.dataset_dir, image_dir, imname) + label = anno_file[i]["class"][0, 0] + label = int(label) - 1 # convert to 0-based index + classname = meta_file[label][0] + names = classname.split(" ") + year = names.pop(-1) + names.insert(0, year) + classname = " ".join(names) + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/sun397.py b/MSGCoOp/datasets/sun397.py new file mode 100644 index 0000000..b42472e --- /dev/null +++ b/MSGCoOp/datasets/sun397.py @@ -0,0 +1,93 @@ +import os +import pickle + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class SUN397(DatasetBase): + + dataset_dir = "sun397" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "SUN397") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_SUN397.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + classnames = [] + with open(os.path.join(self.dataset_dir, "ClassName.txt"), + "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip()[1:] # remove / + classnames.append(line) + cname2lab = {c: i for i, c in enumerate(classnames)} + trainval = self.read_data(cname2lab, "Training_01.txt") + test = self.read_data(cname2lab, "Testing_01.txt") + train, val = OxfordPets.split_trainval(trainval) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self, cname2lab, text_file): + text_file = os.path.join(self.dataset_dir, text_file) + items = [] + + with open(text_file, "r") as f: + lines = f.readlines() + for line in lines: + imname = line.strip()[1:] # remove / + classname = os.path.dirname(imname) + label = cname2lab[classname] + impath = os.path.join(self.image_dir, imname) + + names = classname.split("/")[1:] # remove 1st letter + names = names[::-1] # put words like indoor/outdoor at first + classname = " ".join(names) + + item = Datum(impath=impath, label=label, classname=classname) + items.append(item) + + return items diff --git a/MSGCoOp/datasets/ucf101.py b/MSGCoOp/datasets/ucf101.py new file mode 100644 index 0000000..c218d73 --- /dev/null +++ b/MSGCoOp/datasets/ucf101.py @@ -0,0 +1,100 @@ +import os +import pickle +import re + +from dassl.data.datasets import DATASET_REGISTRY, Datum, DatasetBase +from dassl.utils import mkdir_if_missing + +from .oxford_pets import OxfordPets + + +@DATASET_REGISTRY.register() +class UCF101(DatasetBase): + + dataset_dir = "ucf101" + + def __init__(self, cfg): + root = os.path.abspath(os.path.expanduser(cfg.DATASET.ROOT)) + self.dataset_dir = os.path.join(root, self.dataset_dir) + self.image_dir = os.path.join(self.dataset_dir, "UCF-101-midframes") + self.split_path = os.path.join(self.dataset_dir, + "split_zhou_UCF101.json") + self.split_fewshot_dir = os.path.join(self.dataset_dir, + "split_fewshot") + mkdir_if_missing(self.split_fewshot_dir) + + if os.path.exists(self.split_path): + train, val, test = OxfordPets.read_split(self.split_path, + self.image_dir) + else: + cname2lab = {} + filepath = os.path.join(self.dataset_dir, + "ucfTrainTestlist/classInd.txt") + with open(filepath, "r") as f: + lines = f.readlines() + for line in lines: + label, classname = line.strip().split(" ") + label = int(label) - 1 # conver to 0-based index + cname2lab[classname] = label + + trainval = self.read_data(cname2lab, + "ucfTrainTestlist/trainlist01.txt") + test = self.read_data(cname2lab, "ucfTrainTestlist/testlist01.txt") + train, val = OxfordPets.split_trainval(trainval) + OxfordPets.save_split(train, val, test, self.split_path, + self.image_dir) + + num_shots = cfg.DATASET.NUM_SHOTS + if num_shots >= 1: + seed = cfg.SEED + preprocessed = os.path.join(self.split_fewshot_dir, + f"shot_{num_shots}-seed_{seed}.pkl") + + if os.path.exists(preprocessed): + print( + f"Loading preprocessed few-shot data from {preprocessed}") + with open(preprocessed, "rb") as file: + data = pickle.load(file) + train, val = data["train"], data["val"] + else: + train = self.generate_fewshot_dataset(train, + num_shots=num_shots) + val = self.generate_fewshot_dataset(val, + num_shots=min( + num_shots, 4)) + data = {"train": train, "val": val} + print(f"Saving preprocessed few-shot data to {preprocessed}") + with open(preprocessed, "wb") as file: + pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL) + + subsample = cfg.DATASET.SUBSAMPLE_CLASSES + train, val, test = OxfordPets.subsample_classes(train, + val, + test, + subsample=subsample) + + super().__init__(train_x=train, val=val, test=test) + + def read_data(self, cname2lab, text_file): + text_file = os.path.join(self.dataset_dir, text_file) + items = [] + + with open(text_file, "r") as f: + lines = f.readlines() + for line in lines: + line = line.strip().split(" ")[0] # trainlist: filename, label + action, filename = line.split("/") + label = cname2lab[action] + + elements = re.findall("[A-Z][^A-Z]*", action) + renamed_action = "_".join(elements) + + filename = filename.replace(".avi", ".jpg") + impath = os.path.join(self.image_dir, renamed_action, filename) + + item = Datum(impath=impath, + label=label, + classname=renamed_action) + items.append(item) + + return items diff --git a/MSGCoOp/desc/classnames/Caltech101.txt b/MSGCoOp/desc/classnames/Caltech101.txt new file mode 100644 index 0000000..55ab27b --- /dev/null +++ b/MSGCoOp/desc/classnames/Caltech101.txt @@ -0,0 +1,100 @@ +face +leopard +motorbike +accordion +airplane +anchor +ant +barrel +bass +beaver +binocular +bonsai +brain +brontosaurus +buddha +butterfly +camera +cannon +car side +ceiling fan +cellphone +chair +chandelier +cougar body +cougar face +crab +crayfish +crocodile +crocodile head +cup +dalmatian +dollar bill +dolphin +dragonfly +electric guitar +elephant +emu +euphonium +ewer +ferry +flamingo +flamingo head +garfield +gerenuk +gramophone +grand piano +hawksbill +headphone +hedgehog +helicopter +ibis +inline skate +joshua tree +kangaroo +ketch +lamp +laptop +llama +lobster +lotus +mandolin +mayfly +menorah +metronome +minaret +nautilus +octopus +okapi +pagoda +panda +pigeon +pizza +platypus +pyramid +revolver +rhino +rooster +saxophone +schooner +scissors +scorpion +sea horse +snoopy +soccer ball +stapler +starfish +stegosaurus +stop sign +strawberry +sunflower +tick +trilobite +umbrella +watch +water lilly +wheelchair +wild cat +windsor chair +wrench +yin yang diff --git a/MSGCoOp/desc/classnames/DescribableTextures.txt b/MSGCoOp/desc/classnames/DescribableTextures.txt new file mode 100644 index 0000000..7f3df8a --- /dev/null +++ b/MSGCoOp/desc/classnames/DescribableTextures.txt @@ -0,0 +1,47 @@ +banded +blotchy +braided +bubbly +bumpy +chequered +cobwebbed +cracked +crosshatched +crystalline +dotted +fibrous +flecked +freckled +frilly +gauzy +grid +grooved +honeycombed +interlaced +knitted +lacelike +lined +marbled +matted +meshed +paisley +perforated +pitted +pleated +polka-dotted +porous +potholed +scaly +smeared +spiralled +sprinkled +stained +stratified +striped +studded +swirly +veined +waffled +woven +wrinkled +zigzagged diff --git a/MSGCoOp/desc/classnames/EuroSAT.txt b/MSGCoOp/desc/classnames/EuroSAT.txt new file mode 100644 index 0000000..100e8a6 --- /dev/null +++ b/MSGCoOp/desc/classnames/EuroSAT.txt @@ -0,0 +1,10 @@ +Annual Crop Land +Forest +Herbaceous Vegetation Land +Highway or Road +Industrial Buildings +Pasture Land +Permanent Crop Land +Residential Buildings +River +Sea or Lake diff --git a/MSGCoOp/desc/classnames/FGVCAircraft.txt b/MSGCoOp/desc/classnames/FGVCAircraft.txt new file mode 100644 index 0000000..7bedd0c --- /dev/null +++ b/MSGCoOp/desc/classnames/FGVCAircraft.txt @@ -0,0 +1,100 @@ +707-320 +727-200 +737-200 +737-300 +737-400 +737-500 +737-600 +737-700 +737-800 +737-900 +747-100 +747-200 +747-300 +747-400 +757-200 +757-300 +767-200 +767-300 +767-400 +777-200 +777-300 +A300B4 +A310 +A318 +A319 +A320 +A321 +A330-200 +A330-300 +A340-200 +A340-300 +A340-500 +A340-600 +A380 +ATR-42 +ATR-72 +An-12 +BAE 146-200 +BAE 146-300 +BAE-125 +Beechcraft 1900 +Boeing 717 +C-130 +C-47 +CRJ-200 +CRJ-700 +CRJ-900 +Cessna 172 +Cessna 208 +Cessna 525 +Cessna 560 +Challenger 600 +DC-10 +DC-3 +DC-6 +DC-8 +DC-9-30 +DH-82 +DHC-1 +DHC-6 +DHC-8-100 +DHC-8-300 +DR-400 +Dornier 328 +E-170 +E-190 +E-195 +EMB-120 +ERJ 135 +ERJ 145 +Embraer Legacy 600 +Eurofighter Typhoon +F-16A/B +F/A-18 +Falcon 2000 +Falcon 900 +Fokker 100 +Fokker 50 +Fokker 70 +Global Express +Gulfstream IV +Gulfstream V +Hawk T1 +Il-76 +L-1011 +MD-11 +MD-80 +MD-87 +MD-90 +Metroliner +Model B200 +PA-28 +SR-20 +Saab 2000 +Saab 340 +Spitfire +Tornado +Tu-134 +Tu-154 +Yak-42 diff --git a/MSGCoOp/desc/classnames/Food101.txt b/MSGCoOp/desc/classnames/Food101.txt new file mode 100644 index 0000000..c3b18e5 --- /dev/null +++ b/MSGCoOp/desc/classnames/Food101.txt @@ -0,0 +1,101 @@ +apple pie +baby back ribs +baklava +beef carpaccio +beef tartare +beet salad +beignets +bibimbap +bread pudding +breakfast burrito +bruschetta +caesar salad +cannoli +caprese salad +carrot cake +ceviche +cheese plate +cheesecake +chicken curry +chicken quesadilla +chicken wings +chocolate cake +chocolate mousse +churros +clam chowder +club sandwich +crab cakes +creme brulee +croque madame +cup cakes +deviled eggs +donuts +dumplings +edamame +eggs benedict +escargots +falafel +filet mignon +fish and chips +foie gras +french fries +french onion soup +french toast +fried calamari +fried rice +frozen yogurt +garlic bread +gnocchi +greek salad +grilled cheese sandwich +grilled salmon +guacamole +gyoza +hamburger +hot and sour soup +hot dog +huevos rancheros +hummus +ice cream +lasagna +lobster bisque +lobster roll sandwich +macaroni and cheese +macarons +miso soup +mussels +nachos +omelette +onion rings +oysters +pad thai +paella +pancakes +panna cotta +peking duck +pho +pizza +pork chop +poutine +prime rib +pulled pork sandwich +ramen +ravioli +red velvet cake +risotto +samosa +sashimi +scallops +seaweed salad +shrimp and grits +spaghetti bolognese +spaghetti carbonara +spring rolls +steak +strawberry shortcake +sushi +tacos +takoyaki +tiramisu +tuna tartare +waffles diff --git a/MSGCoOp/desc/classnames/ImageNet.txt b/MSGCoOp/desc/classnames/ImageNet.txt new file mode 100644 index 0000000..4f1fa5f --- /dev/null +++ b/MSGCoOp/desc/classnames/ImageNet.txt @@ -0,0 +1,998 @@ +tench +goldfish +great white shark +tiger shark +hammerhead shark +electric ray +stingray +rooster +hen +ostrich +brambling +goldfinch +house finch +junco +indigo bunting +American robin +bulbul +jay +magpie +chickadee +American dipper +kite (bird of prey) +bald eagle +vulture +great grey owl +fire salamander +smooth newt +newt +spotted salamander +axolotl +American bullfrog +tree frog +tailed frog +loggerhead sea turtle +leatherback sea turtle +mud turtle +terrapin +box turtle +banded gecko +green iguana +Carolina anole +desert grassland whiptail lizard +agama +frilled-necked lizard +alligator lizard +Gila monster +European green lizard +chameleon +Komodo dragon +Nile crocodile +American alligator +triceratops +worm snake +ring-necked snake +eastern hog-nosed snake +smooth green snake +kingsnake +garter snake +water snake +vine snake +night snake +boa constrictor +African rock python +Indian cobra +green mamba +sea snake +Saharan horned viper +eastern diamondback rattlesnake +sidewinder rattlesnake +trilobite +harvestman +scorpion +yellow garden spider +barn spider +European garden spider +southern black widow +tarantula +wolf spider +tick +centipede +black grouse +ptarmigan +ruffed grouse +prairie grouse +peafowl +quail +partridge +african grey parrot +macaw +sulphur-crested cockatoo +lorikeet +coucal +bee eater +hornbill +hummingbird +jacamar +toucan +duck +red-breasted merganser +goose +black swan +tusker +echidna +platypus +wallaby +koala +wombat +jellyfish +sea anemone +brain coral +flatworm +nematode +conch +snail +slug +sea slug +chiton +chambered nautilus +Dungeness crab +rock crab +fiddler crab +red king crab +American lobster +spiny lobster +crayfish +hermit crab +isopod +white stork +black stork +spoonbill +flamingo +little blue heron +great egret +bittern bird +crane bird +limpkin +common gallinule +American coot +bustard +ruddy turnstone +dunlin +common redshank +dowitcher +oystercatcher +pelican +king penguin +albatross +grey whale +killer whale +dugong +sea lion +Chihuahua +Japanese Chin +Maltese +Pekingese +Shih Tzu +King Charles Spaniel +Papillon +toy terrier +Rhodesian Ridgeback +Afghan Hound +Basset Hound +Beagle +Bloodhound +Bluetick Coonhound +Black and Tan Coonhound +Treeing Walker Coonhound +English foxhound +Redbone Coonhound +borzoi +Irish Wolfhound +Italian Greyhound +Whippet +Ibizan Hound +Norwegian Elkhound +Otterhound +Saluki +Scottish Deerhound +Weimaraner +Staffordshire Bull Terrier +American Staffordshire Terrier +Bedlington Terrier +Border Terrier +Kerry Blue Terrier +Irish Terrier +Norfolk Terrier +Norwich Terrier +Yorkshire Terrier +Wire Fox Terrier +Lakeland Terrier +Sealyham Terrier +Airedale Terrier +Cairn Terrier +Australian Terrier +Dandie Dinmont Terrier +Boston Terrier +Miniature Schnauzer +Giant Schnauzer +Standard Schnauzer +Scottish Terrier +Tibetan Terrier +Australian Silky Terrier +Soft-coated Wheaten Terrier +West Highland White Terrier +Lhasa Apso +Flat-Coated Retriever +Curly-coated Retriever +Golden Retriever +Labrador Retriever +Chesapeake Bay Retriever +German Shorthaired Pointer +Vizsla +English Setter +Irish Setter +Gordon Setter +Brittany dog +Clumber Spaniel +English Springer Spaniel +Welsh Springer Spaniel +Cocker Spaniel +Sussex Spaniel +Irish Water Spaniel +Kuvasz +Schipperke +Groenendael dog +Malinois +Briard +Australian Kelpie +Komondor +Old English Sheepdog +Shetland Sheepdog +collie +Border Collie +Bouvier des Flandres dog +Rottweiler +German Shepherd Dog +Dobermann +Miniature Pinscher +Greater Swiss Mountain Dog +Bernese Mountain Dog +Appenzeller Sennenhund +Entlebucher Sennenhund +Boxer +Bullmastiff +Tibetan Mastiff +French Bulldog +Great Dane +St. Bernard +husky +Alaskan Malamute +Siberian Husky +Dalmatian +Affenpinscher +Basenji +pug +Leonberger +Newfoundland dog +Great Pyrenees dog +Samoyed +Pomeranian +Chow Chow +Keeshond +brussels griffon +Pembroke Welsh Corgi +Cardigan Welsh Corgi +Toy Poodle +Miniature Poodle +Standard Poodle +Mexican hairless dog (xoloitzcuintli) +grey wolf +Alaskan tundra wolf +red wolf or maned wolf +coyote +dingo +dhole +African wild dog +hyena +red fox +kit fox +Arctic fox +grey fox +tabby cat +tiger cat +Persian cat +Siamese cat +Egyptian Mau +cougar +lynx +leopard +snow leopard +jaguar +lion +tiger +cheetah +brown bear +American black bear +polar bear +sloth bear +mongoose +meerkat +tiger beetle +ladybug +ground beetle +longhorn beetle +leaf beetle +dung beetle +rhinoceros beetle +weevil +fly +bee +ant +grasshopper +cricket insect +stick insect +cockroach +praying mantis +cicada +leafhopper +lacewing +dragonfly +damselfly +red admiral butterfly +ringlet butterfly +monarch butterfly +small white butterfly +sulphur butterfly +gossamer-winged butterfly +starfish +sea urchin +sea cucumber +cottontail rabbit +hare +Angora rabbit +hamster +porcupine +fox squirrel +marmot +beaver +guinea pig +common sorrel horse +zebra +pig +wild boar +warthog +hippopotamus +ox +water buffalo +bison +ram (adult male sheep) +bighorn sheep +Alpine ibex +hartebeest +impala (antelope) +gazelle +arabian camel +llama +weasel +mink +European polecat +black-footed ferret +otter +skunk +badger +armadillo +three-toed sloth +orangutan +gorilla +chimpanzee +gibbon +siamang +guenon +patas monkey +baboon +macaque +langur +black-and-white colobus +proboscis monkey +marmoset +white-headed capuchin +howler monkey +titi monkey +Geoffroy's spider monkey +common squirrel monkey +ring-tailed lemur +indri +Asian elephant +African bush elephant +red panda +giant panda +snoek fish +eel +silver salmon +rock beauty fish +clownfish +sturgeon +gar fish +lionfish +pufferfish +abacus +abaya +academic gown +accordion +acoustic guitar +aircraft carrier +airliner +airship +altar +ambulance +amphibious vehicle +analog clock +apiary +apron +trash can +assault rifle +backpack +bakery +balance beam +balloon +ballpoint pen +Band-Aid +banjo +baluster / handrail +barbell +barber chair +barbershop +barn +barometer +barrel +wheelbarrow +baseball +basketball +bassinet +bassoon +swimming cap +bath towel +bathtub +station wagon +lighthouse +beaker +military hat (bearskin or shako) +beer bottle +beer glass +bell tower +baby bib +tandem bicycle +bikini +ring binder +binoculars +birdhouse +boathouse +bobsleigh +bolo tie +poke bonnet +bookcase +bookstore +bottle cap +hunting bow +bow tie +brass memorial plaque +bra +breakwater +breastplate +broom +bucket +buckle +bulletproof vest +high-speed train +butcher shop +taxicab +cauldron +candle +cannon +canoe +can opener +cardigan +car mirror +carousel +tool kit +cardboard box / carton +car wheel +automated teller machine +cassette +cassette player +castle +catamaran +CD player +cello +mobile phone +chain +chain-link fence +chain mail +chainsaw +storage chest +chiffonier +bell or wind chime +china cabinet +Christmas stocking +church +movie theater +cleaver +cliff dwelling +cloak +clogs +cocktail shaker +coffee mug +coffeemaker +spiral or coil +combination lock +computer keyboard +candy store +container ship +convertible +corkscrew +cornet +cowboy boot +cowboy hat +cradle +construction crane +crash helmet +crate +infant bed +Crock Pot +croquet ball +crutch +cuirass +dam +desk +desktop computer +rotary dial telephone +diaper +digital clock +digital watch +dining table +dishcloth +dishwasher +disc brake +dock +dog sled +dome +doormat +drilling rig +drum +drumstick +dumbbell +Dutch oven +electric fan +electric guitar +electric locomotive +entertainment center +envelope +espresso machine +face powder +feather boa +filing cabinet +fireboat +fire truck +fire screen +flagpole +flute +folding chair +football helmet +forklift +fountain +fountain pen +four-poster bed +freight car +French horn +frying pan +fur coat +garbage truck +gas mask or respirator +gas pump +goblet +go-kart +golf ball +golf cart +gondola +gong +gown +grand piano +greenhouse +radiator grille +grocery store +guillotine +hair clip +hair spray +half-track +hammer +hamper +hair dryer +hand-held computer +handkerchief +hard disk drive +harmonica +harp +combine harvester +hatchet +holster +home theater +honeycomb +hook +hoop skirt +gymnastic horizontal bar +horse-drawn vehicle +hourglass +iPod +clothes iron +carved pumpkin +jeans +jeep +T-shirt +jigsaw puzzle +rickshaw +joystick +kimono +knee pad +knot +lab coat +ladle +lampshade +laptop computer +lawn mower +lens cap +letter opener +library +lifeboat +lighter +limousine +ocean liner +lipstick +slip-on shoe +lotion +music speaker +loupe magnifying glass +sawmill +magnetic compass +messenger bag +mailbox +tights +one-piece bathing suit +manhole cover +maraca +marimba +mask +matchstick +maypole +maze +measuring cup +medicine cabinet +megalith +microphone +microwave oven +military uniform +milk can +minibus +miniskirt +minivan +missile +mitten +mixing bowl +mobile home +ford model t +modem +monastery +monitor +moped +mortar and pestle +graduation cap +mosque +mosquito net +vespa +mountain bike +tent +computer mouse +mousetrap +moving van +muzzle +metal nail +neck brace +necklace +baby pacifier +notebook computer +obelisk +oboe +ocarina +odometer +oil filter +pipe organ +oscilloscope +overskirt +bullock cart +oxygen mask +product packet / packaging +paddle +paddle wheel +padlock +paintbrush +pajamas +palace +pan flute +paper towel +parachute +parallel bars +park bench +parking meter +railroad car +patio +payphone +pedestal +pencil case +pencil sharpener +perfume +Petri dish +photocopier +plectrum +Pickelhaube +picket fence +pickup truck +pier +piggy bank +pill bottle +pillow +ping-pong ball +pinwheel +pirate ship +drink pitcher +block plane +planetarium +plastic bag +plate rack +farm plow +plunger +Polaroid camera +pole +police van +poncho +pool table +soda bottle +plant pot +potter's wheel +power drill +prayer rug +printer +prison +projector +hockey puck +punching bag +purse +quill +quilt +race car +racket +radiator +radio +radio telescope +rain barrel +recreational vehicle +fishing casting reel +reflex camera +refrigerator +remote control +restaurant +revolver +rifle +rocking chair +rotisserie +eraser +rugby ball +ruler measuring stick +sneaker +safe +safety pin +salt shaker +sandal +sarong +saxophone +scabbard +weighing scale +school bus +schooner +scoreboard +CRT monitor +screw +screwdriver +seat belt +sewing machine +shield +shoe store +shoji screen / room divider +shopping basket +shopping cart +shovel +shower cap +shower curtain +ski +balaclava ski mask +sleeping bag +slide rule +sliding door +slot machine +snorkel +snowmobile +snowplow +soap dispenser +soccer ball +sock +solar thermal collector +sombrero +soup bowl +keyboard space bar +space heater +space shuttle +spatula +motorboat +spider web +spindle +sports car +spotlight +stage +steam locomotive +through arch bridge +steel drum +stethoscope +scarf +stone wall +stopwatch +stove +strainer +tram +stretcher +couch +stupa +submarine +suit +sundial +sunglasses +sunscreen +suspension bridge +mop +sweatshirt +swim trunks / shorts +swing +electrical switch +syringe +table lamp +tank +tape player +teapot +teddy bear +television +tennis ball +thatched roof +front curtain +thimble +threshing machine +throne +tile roof +toaster +tobacco shop +toilet seat +torch +totem pole +tow truck +toy store +tractor +semi-trailer truck +tray +trench coat +tricycle +trimaran +tripod +triumphal arch +trolleybus +trombone +hot tub +turnstile +typewriter keyboard +umbrella +unicycle +upright piano +vacuum cleaner +vase +vaulted or arched ceiling +velvet fabric +vending machine +vestment +viaduct +violin +volleyball +waffle iron +wall clock +wallet +wardrobe +military aircraft +sink +washing machine +water bottle +water jug +water tower +whiskey jug +whistle +hair wig +window screen +window shade +Windsor tie +wine bottle +airplane wing +wok +wooden spoon +wool +split-rail fence +shipwreck +sailboat +yurt +website +comic book +crossword +traffic or street sign +traffic light +dust jacket +menu +plate +guacamole +consomme +hot pot +trifle +ice cream +popsicle +baguette +bagel +pretzel +cheeseburger +hot dog +mashed potatoes +cabbage +broccoli +cauliflower +zucchini +spaghetti squash +acorn squash +butternut squash +cucumber +artichoke +bell pepper +cardoon +mushroom +Granny Smith apple +strawberry +orange +lemon +fig +pineapple +banana +jackfruit +cherimoya (custard apple) +pomegranate +hay +carbonara +chocolate syrup +dough +meatloaf +pizza +pot pie +burrito +red wine +espresso +tea cup +eggnog +mountain +bubble +cliff +coral reef +geyser +lakeshore +promontory +sandbar +beach +valley +volcano +baseball player +bridegroom +scuba diver +rapeseed +daisy +yellow lady's slipper +corn +acorn +rose hip +horse chestnut seed +coral fungus +agaric +gyromitra +stinkhorn mushroom +earth star fungus +hen of the woods mushroom +bolete +corn cob +toilet paper diff --git a/MSGCoOp/desc/classnames/OxfordFlowers.txt b/MSGCoOp/desc/classnames/OxfordFlowers.txt new file mode 100644 index 0000000..0f586f1 --- /dev/null +++ b/MSGCoOp/desc/classnames/OxfordFlowers.txt @@ -0,0 +1,102 @@ +passion flower +water lily +cyclamen +watercress +frangipani +wallflower +rose +petunia +poinsettia +clematis +hibiscus +lotus +anthurium +thorn apple +barbeton daisy +sword lily +morning glory +columbine +geranium +bishop of llandaff +tree mallow +pink-yellow dahlia +bee balm +snapdragon +californian poppy +bird of paradise +fritillary +sweet william +azalea +primula +cape flower +purple coneflower +colt's foot +artichoke +wild pansy +peruvian lily +ruby-lipped cattleya +canna lily +gazania +lenten rose +buttercup +pelargonium +desert-rose +hippeastrum +giant white arum lily +marigold +orange dahlia +hard-leaved pocket orchid +english marigold +stemless gentian +tree poppy +pincushion flower +sunflower +magnolia +osteospermum +garden phlox +sweet pea +daffodil +king protea +great masterwort +black-eyed susan +bearded iris +windflower +ball moss +spear thistle +silverbush +balloon flower +oxeye daisy +cautleya spicata +common dandelion +yellow iris +monkshood +love in the mist +corn poppy +grape hyacinth +canterbury bells +globe-flower +toad lily +pink primrose +fire lily +red ginger +prince of wales feathers +carnation +mexican aster +alpine sea holly +siam tulip +spring crocus +globe thistle +bolero deep blue +tiger lily +moon orchid +gaura +japanese anemone +foxglove +bougainvillea +camellia +mallow +mexican petunia +bromelia +blanket flower +trumpet creeper +blackberry lily diff --git a/MSGCoOp/desc/classnames/OxfordPets.txt b/MSGCoOp/desc/classnames/OxfordPets.txt new file mode 100644 index 0000000..f619180 --- /dev/null +++ b/MSGCoOp/desc/classnames/OxfordPets.txt @@ -0,0 +1,37 @@ +abyssinian +american bulldog +american pit bull terrier +basset hound +beagle +bengal +birman +bombay +boxer +british shorthair +chihuahua +egyptian mau +english cocker spaniel +english setter +german shorthaired +great pyrenees +havanese +japanese chin +keeshond +leonberger +maine coon +miniature pinscher +newfoundland +persian +pomeranian +pug +ragdoll +russian blue +saint bernard +samoyed +scottish terrier +shiba inu +siamese +sphynx +staffordshire bull terrier +wheaten terrier +yorkshire terrier diff --git a/MSGCoOp/desc/classnames/SUN397.txt b/MSGCoOp/desc/classnames/SUN397.txt new file mode 100644 index 0000000..60c74eb --- /dev/null +++ b/MSGCoOp/desc/classnames/SUN397.txt @@ -0,0 +1,397 @@ +abbey +airplane cabin +airport terminal +alley +amphitheater +amusement arcade +amusement park +anechoic chamber +outdoor apartment building +indoor apse +aquarium +aqueduct +arch +archive +outdoor arrival gate +art gallery +art school +art studio +assembly line +outdoor athletic field +public atrium +attic +auditorium +auto factory +badlands +indoor badminton court +baggage claim +shop bakery +exterior balcony +interior balcony +ball pit +ballroom +bamboo forest +banquet hall +bar +barn +barndoor +baseball field +basement +basilica +outdoor basketball court +bathroom +batters box +bayou +indoor bazaar +outdoor bazaar +beach +beauty salon +bedroom +berth +biology laboratory +indoor bistro +boardwalk +boat deck +boathouse +bookstore +indoor booth +botanical garden +indoor bow window +outdoor bow window +bowling alley +boxing ring +indoor brewery +bridge +building facade +bullring +burial chamber +bus interior +butchers shop +butte +outdoor cabin +cafeteria +campsite +campus +natural canal +urban canal +candy store +canyon +backseat car interior +frontseat car interior +carrousel +indoor casino +castle +catacomb +indoor cathedral +outdoor cathedral +indoor cavern +cemetery +chalet +cheese factory +chemistry lab +indoor chicken coop +outdoor chicken coop +childs room +indoor church +outdoor church +classroom +clean room +cliff +indoor cloister +closet +clothing store +coast +cockpit +coffee shop +computer room +conference center +conference room +construction site +control room +outdoor control tower +corn field +corral +corridor +cottage garden +courthouse +courtroom +courtyard +exterior covered bridge +creek +crevasse +crosswalk +office cubicle +dam +delicatessen +dentists office +sand desert +vegetation desert +indoor diner +outdoor diner +home dinette +vehicle dinette +dining car +dining room +discotheque +dock +outdoor doorway +dorm room +driveway +outdoor driving range +drugstore +electrical substation +door elevator +interior elevator +elevator shaft +engine room +indoor escalator +excavation +indoor factory +fairway +fastfood restaurant +cultivated field +wild field +fire escape +fire station +indoor firing range +fishpond +indoor florist shop +food court +broadleaf forest +needleleaf forest +forest path +forest road +formal garden +fountain +galley +game room +indoor garage +garbage dump +gas station +exterior gazebo +indoor general store +outdoor general store +gift shop +golf course +indoor greenhouse +outdoor greenhouse +indoor gymnasium +indoor hangar +outdoor hangar +harbor +hayfield +heliport +herb garden +highway +hill +home office +hospital +hospital room +hot spring +outdoor hot tub +outdoor hotel +hotel room +house +outdoor hunting lodge +ice cream parlor +ice floe +ice shelf +indoor ice skating rink +outdoor ice skating rink +iceberg +igloo +industrial area +outdoor inn +islet +indoor jacuzzi +indoor jail +jail cell +jewelry shop +kasbah +indoor kennel +outdoor kennel +kindergarden classroom +kitchen +kitchenette +outdoor labyrinth +natural lake +landfill +landing deck +laundromat +lecture room +indoor library +outdoor library +outdoor lido deck +lift bridge +lighthouse +limousine interior +living room +lobby +lock chamber +locker room +mansion +manufactured home +indoor market +outdoor market +marsh +martial arts gym +mausoleum +medina +water moat +outdoor monastery +indoor mosque +outdoor mosque +motel +mountain +mountain snowy +indoor movie theater +indoor museum +music store +music studio +outdoor nuclear power plant +nursery +oast house +outdoor observatory +ocean +office +office building +outdoor oil refinery +oilrig +operating room +orchard +outdoor outhouse +pagoda +palace +pantry +park +indoor parking garage +outdoor parking garage +parking lot +parlor +pasture +patio +pavilion +pharmacy +phone booth +physics laboratory +picnic area +indoor pilothouse +outdoor planetarium +playground +playroom +plaza +indoor podium +outdoor podium +pond +establishment poolroom +home poolroom +outdoor power plant +promenade deck +indoor pub +pulpit +putting green +racecourse +raceway +raft +railroad track +rainforest +reception +recreation room +residential neighborhood +restaurant +restaurant kitchen +restaurant patio +rice paddy +riding arena +river +rock arch +rope bridge +ruin +runway +sandbar +sandbox +sauna +schoolhouse +sea cliff +server room +shed +shoe shop +shopfront +indoor shopping mall +shower +skatepark +ski lodge +ski resort +ski slope +sky +skyscraper +slum +snowfield +squash court +stable +baseball stadium +football stadium +indoor stage +staircase +street +subway interior +platform subway station +supermarket +sushi bar +swamp +indoor swimming pool +outdoor swimming pool +indoor synagogue +outdoor synagogue +television studio +east asia temple +south asia temple +indoor tennis court +outdoor tennis court +outdoor tent +indoor procenium theater +indoor seats theater +thriftshop +throne room +ticket booth +toll plaza +topiary garden +tower +toyshop +outdoor track +train railway +platform train station +tree farm +tree house +trench +coral reef underwater +utility room +valley +van interior +vegetable garden +veranda +veterinarians office +viaduct +videostore +village +vineyard +volcano +indoor volleyball court +outdoor volleyball court +waiting room +indoor warehouse +water tower +block waterfall +fan waterfall +plunge waterfall +watering hole +wave +wet bar +wheat field +wind farm +windmill +barrel storage wine cellar +bottle storage wine cellar +indoor wrestling ring +yard +youth hostel diff --git a/MSGCoOp/desc/classnames/StanfordCars.txt b/MSGCoOp/desc/classnames/StanfordCars.txt new file mode 100644 index 0000000..8f414d4 --- /dev/null +++ b/MSGCoOp/desc/classnames/StanfordCars.txt @@ -0,0 +1,196 @@ +2012 Audi TTS Coupe +2012 Acura TL Sedan +2007 Dodge Dakota Club Cab +2012 Hyundai Sonata Hybrid Sedan +2012 Ford F-450 Super Duty Crew Cab +1993 Geo Metro Convertible +2012 Dodge Journey SUV +2012 Dodge Charger Sedan +2012 Mitsubishi Lancer Sedan +2012 Chevrolet Traverse SUV +2012 Buick Verano Sedan +2012 Toyota Sequoia SUV +2007 Hyundai Elantra Sedan +1997 Dodge Caravan Minivan +2012 Volvo C30 Hatchback +1999 Plymouth Neon Coupe +2007 Chevrolet Malibu Sedan +2012 Volkswagen Beetle Hatchback +2007 Chevrolet Corvette Ron Fellows Edition Z06 +2010 Chrysler 300 SRT-8 +2010 BMW M6 Convertible +2012 GMC Yukon Hybrid SUV +2012 Nissan Juke Hatchback +1993 Volvo 240 Sedan +2012 Suzuki SX4 Sedan +2010 Dodge Ram Pickup 3500 Crew Cab +2009 Spyker C8 Coupe +2012 Land Rover Range Rover SUV +2012 Hyundai Elantra Touring Hatchback +2010 Chevrolet Cobalt SS +2012 Hyundai Veracruz SUV +2012 Ferrari 458 Italia Coupe +2012 BMW Z4 Convertible +2009 Dodge Charger SRT-8 +2012 Fisker Karma Sedan +2011 Infiniti QX56 SUV +2012 Audi A5 Coupe +1991 Volkswagen Golf Hatchback +2012 GMC Savana Van +2012 Audi TT RS Coupe +2012 Rolls-Royce Phantom Sedan +2012 Porsche Panamera Sedan +2012 Bentley Continental GT Coupe +2012 Jeep Grand Cherokee SUV +2012 Audi R8 Coupe +2007 Cadillac Escalade EXT Crew Cab +2007 Bentley Continental Flying Spur Sedan +2012 Chevrolet Avalanche Crew Cab +2010 Dodge Dakota Crew Cab +2010 HUMMER H3T Crew Cab +2007 Ford F-150 Regular Cab +2012 Volkswagen Golf Hatchback +2012 Ferrari FF Coupe +2012 Toyota Camry Sedan +2012 Aston Martin V8 Vantage Convertible +1994 Audi 100 Sedan +2011 Ford Ranger SuperCab +2012 GMC Canyon Extended Cab +2012 Acura TSX Sedan +2012 BMW 3 Series Sedan +2012 Honda Odyssey Minivan +2012 Dodge Durango SUV +2012 Toyota Corolla Sedan +2012 Chevrolet Camaro Convertible +2012 Ford Edge SUV +2007 Bentley Continental GT Coupe +1994 Audi 100 Wagon +2012 Ford E-Series Wagon Van +2012 Jeep Patriot SUV +2011 Audi S6 Sedan +2012 Mercedes-Benz S-Class Sedan +2012 Hyundai Sonata Sedan +2012 Rolls-Royce Phantom Drophead Coupe Convertible +2006 Ford GT Coupe +2012 Cadillac CTS-V Sedan +2012 BMW X3 SUV +2007 Chevrolet Express Van +2007 Chevrolet Impala Sedan +2012 Chevrolet Silverado 1500 Extended Cab +2012 Mercedes-Benz C-Class Sedan +2012 Hyundai Santa Fe SUV +2009 Dodge Sprinter Cargo Van +2012 GMC Acadia SUV +2012 Hyundai Genesis Sedan +2012 Dodge Caliber Wagon +2012 Jeep Liberty SUV +1993 Mercedes-Benz 300-Class Convertible +2009 Ford Expedition EL SUV +2012 BMW 1 Series Coupe +2012 Jaguar XK XKR +2012 Hyundai Accent Sedan +2008 Isuzu Ascender SUV +1998 Nissan 240SX Coupe +2012 Scion xD Hatchback +2012 Chevrolet Corvette ZR1 +2009 Bentley Arnage Sedan +2010 Chevrolet HHR SS +2012 Land Rover LR2 SUV +2012 Hyundai Azera Sedan +2009 Chrysler Aspen SUV +2012 Buick Regal GS +2012 BMW 3 Series Wagon +2012 Jeep Compass SUV +2012 Ram C/V Cargo Van Minivan +2009 Spyker C8 Convertible +2007 Audi S4 Sedan +2012 Rolls-Royce Ghost Sedan +2000 AM General Hummer SUV +2007 Ford Freestar Minivan +2011 Bentley Mulsanne Sedan +2011 Audi TT Hatchback +2009 Mercedes-Benz SL-Class Coupe +2012 Chevrolet Silverado 1500 Hybrid Crew Cab +2012 Buick Enclave SUV +2009 Chevrolet TrailBlazer SS +2009 HUMMER H2 SUT Crew Cab +2012 McLaren MP4-12C Coupe +2011 Dodge Challenger SRT8 +2012 Suzuki SX4 Hatchback +2009 Bugatti Veyron 16.4 Convertible +2012 Toyota 4Runner SUV +2007 Buick Rainier SUV +2010 Chrysler Sebring Convertible +2001 Acura Integra Type R +1994 Audi V8 Sedan +2008 Audi RS 4 Convertible +2012 Honda Accord Coupe +2012 Audi S4 Sedan +2012 Aston Martin Virage Coupe +2012 Chevrolet Sonic Sedan +2007 Chevrolet Monte Carlo Coupe +2007 Volvo XC90 SUV +2007 Ford Mustang Convertible +2012 Aston Martin Virage Convertible +2012 smart fortwo Convertible +2012 FIAT 500 Abarth +2012 Infiniti G Coupe IPL +2007 Dodge Caliber Wagon +2012 Hyundai Tucson SUV +2012 Acura ZDX Hatchback +2012 BMW ActiveHybrid 5 Sedan +2012 Ferrari California Convertible +2012 Nissan Leaf Hatchback +2001 Lamborghini Diablo Coupe +2012 Audi S5 Convertible +2007 BMW 6 Series Convertible +2012 Ferrari 458 Italia Convertible +2012 Chevrolet Silverado 2500HD Regular Cab +2012 Chevrolet Corvette Convertible +2009 Bugatti Veyron 16.4 Coupe +2012 Tesla Model S Sedan +2012 FIAT 500 Convertible +2012 Hyundai Veloster Hatchback +2011 Lincoln Town Car Sedan +2012 Lamborghini Aventador Coupe +2009 Dodge Ram Pickup 3500 Quad Cab +2012 Nissan NV Passenger Van +2007 Honda Odyssey Minivan +2012 Maybach Landaulet Convertible +2012 Chevrolet Silverado 1500 Regular Cab +2012 Suzuki Kizashi Sedan +2012 Chevrolet Tahoe Hybrid SUV +2012 Mercedes-Benz Sprinter Van +2007 Suzuki Aerio Sedan +2012 Audi S5 Coupe +2012 Aston Martin V8 Vantage Coupe +2010 Chevrolet Malibu Hybrid Sedan +2012 Ford F-150 Regular Cab +2012 Ford Fiesta Sedan +2007 Ford Focus Sedan +2012 Bentley Continental Supersports Conv. Convertible +2007 Chevrolet Silverado 1500 Classic Extended Cab +2007 BMW X5 SUV +2012 Jeep Wrangler SUV +2008 Acura TL Type-S +2008 Chrysler Crossfire Convertible +2012 Lamborghini Gallardo LP 570-4 Superleggera +2012 Mercedes-Benz E-Class Sedan +2007 Chevrolet Express Cargo Van +2012 GMC Terrain SUV +2008 Dodge Magnum Wagon +2012 Honda Accord Sedan +2008 Chrysler PT Cruiser Convertible +2011 Mazda Tribute SUV +2012 BMW M3 Coupe +1998 Eagle Talon Hatchback +2002 Daewoo Nubira Wagon +2012 BMW X6 SUV +2008 Lamborghini Reventon Coupe +2012 Cadillac SRX SUV +2012 MINI Cooper Roadster Convertible +2012 Acura RL Sedan +2012 BMW 1 Series Convertible +2007 Dodge Durango SUV +2010 BMW M5 Sedan +2012 Chrysler Town and Country Minivan diff --git a/MSGCoOp/desc/classnames/UCF101.txt b/MSGCoOp/desc/classnames/UCF101.txt new file mode 100644 index 0000000..403e341 --- /dev/null +++ b/MSGCoOp/desc/classnames/UCF101.txt @@ -0,0 +1,101 @@ +Apply Eye Makeup +Apply Lipstick +Archery +Baby Crawling +Balance Beam +Band Marching +Baseball Pitch +Basketball +Basketball Dunk +Bench Press +Biking +Billiards +Blow Dry Hair +Blowing Candles +Body Weight Squats +Bowling +Boxing Punching Bag +Boxing Speed Bag +Breast Stroke +Brushing Teeth +Clean And Jerk +Cliff Diving +Cricket Bowling +Cricket Shot +Cutting In Kitchen +Diving +Drumming +Fencing +Field Hockey Penalty +Floor Gymnastics +Frisbee Catch +Front Crawl +Golf Swing +Haircut +Hammering +Hammer Throw +Handstand Pushups +Handstand Walking +Head Massage +High Jump +Horse Race +Horse Riding +Hula Hoop +Ice Dancing +Javelin Throw +Juggling Balls +Jumping Jack +Jump Rope +Kayaking +Knitting +Long Jump +Lunges +Military Parade +Mixing +Mopping Floor +Nunchucks +Parallel Bars +Pizza Tossing +Playing Cello +Playing Daf +Playing Dhol +Playing Flute +Playing Guitar +Playing Piano +Playing Sitar +Playing Tabla +Playing Violin +Pole Vault +Pommel Horse +Pull Ups +Punch +Push Ups +Rafting +Rock Climbing Indoor +Rope Climbing +Rowing +Salsa Spin +Shaving Beard +Shotput +Skate Boarding +Skiing +Skijet +Sky Diving +Soccer Juggling +Soccer Penalty +Still Rings +Sumo Wrestling +Surfing +Swing +Table Tennis Shot +Tai Chi +Tennis Swing +Throw Discus +Trampoline Jumping +Typing +Uneven Bars +Volleyball Spiking +Walking With Dog +Wall Pushups +Writing On Board +Yo Yo diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/Caltech101.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/Caltech101.json new file mode 100644 index 0000000..5166af9 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/Caltech101.json @@ -0,0 +1,602 @@ +{ + "face": [ + "A face is identified by the presence of two eyes above a nose and mouth arranged symmetrically on a head.", + "Faces are recognized by symmetrical arrangement of eyes nose and mouth with consistent spatial relationships and smooth skin texture.", + "Faces have symmetrical features like eyes nose and mouth arranged predictably unlike other objects which have varied shapes and structures.", + "Face images show human faces with clear eyes nose and mouth often centered and distinct from other object shapes and textures." + ], + "leopard": [ + "A leopard has a sleek body with distinctive dark rosette spots on golden fur, resembling a large wild cat.", + "Leopards have distinctive spotted fur patterns and a feline body shape, unlike most other objects which lack animal features.", + "A leopard is identified by its golden fur covered with distinctive black rosette-shaped spots and a muscular, agile body.", + "Leopards are recognized by their golden fur covered with distinctive dark rosette spots and a muscular body with a long tail." + ], + "motorbike": [ + "Motorbikes have two wheels, a visible frame, and handlebars, unlike most other objects which lack these distinctive features.", + "A motorbike is identified by two wheels, a seat, handlebars, and an exposed engine, unlike cars or bicycles.", + "A motorbike has two wheels, a seat, handlebars, and a visible engine, often appearing sleek and elongated.", + "A motorbike is recognized by its two wheels, exposed engine, handlebars, and elongated seat distinct from cars or bicycles." + ], + "accordion": [ + "An accordion is recognized by its pleated bellows, rows of buttons or keys, and rectangular body with metal grills.", + "An accordion is recognizable by its pleated bellows, keyboard or buttons, and rectangular shape often held between two hands.", + "An accordion looks like a boxy musical instrument with pleated bellows and rows of buttons or keys on each side.", + "An accordion is uniquely identified by its pleated bellows and parallel rows of keys or buttons on either side." + ], + "airplane": [ + "Airplanes are recognized by their long fuselage, wings extending sideways, tail fin, and often visible engines or landing gear.", + "An airplane typically has long wings, a streamlined body, and a tail, distinguishing it from most other objects.", + "Airplanes have long wings, a streamlined body, and a tail, unlike most objects which lack these distinctive aerodynamic features.", + "Airplanes uniquely have large wings extending from a central fuselage with engines and a tail fin visible in side views." + ], + "anchor": [ + "The anchor has a prominent curved shank with flukes at one end and a ring or stock at the other.", + "An anchor has a curved metal shape with flukes and a shank, unlike most objects which lack these distinctive features.", + "An anchor is recognized by its curved shank, flukes, and stock, forming a symmetrical metal shape designed to grip surfaces.", + "Anchors are identifiable by their curved shank, flukes, and stock, which are distinct from other objects in shape and structure." + ], + "ant": [ + "Ants are small segmented insects with thin bodies six legs and antennae unlike most objects which lack these features.", + "Ants are small segmented insects with narrow waists elbowed antennae and three distinct body parts head thorax and abdomen.", + "An ant is small with a segmented body, narrow waist, six legs, and elbowed antennae, unlike most other objects.", + "An ant is small slender with a segmented body six legs and antennae unlike larger or more complex shaped objects." + ], + "barrel": [ + "Barrels are cylindrical with rounded sides and flat ends, unlike most objects which have varied shapes and surface features.", + "A barrel is a large cylindrical container with rounded sides flat ends and metal bands often made of wood.", + "A barrel is cylindrical with rounded sides flat circular ends and often features visible hoops or bands around its body.", + "A barrel is typically cylindrical with bulging sides flat ends and visible wooden staves often bound by metal hoops." + ], + "bass": [ + "Bass can be identified by its elongated body, distinct dorsal fin, and characteristic fish shape compared to other objects.", + "Bass are recognized by their elongated body, distinct fins, and characteristic mouth shape, differing from other objects in structure.", + "Bass have elongated bodies, distinct fins, and scales, differing from objects with rounder shapes, smoother surfaces, or mechanical features.", + "The bass is uniquely identified by its elongated body, distinct dorsal fin shape, and visible gills compared to other objects." + ], + "beaver": [ + "Beavers have brown fur, flat tails, and large front teeth, unlike most objects which lack these animal-specific features.", + "A beaver can be identified by its flat tail large front teeth brown fur and broad body often near water.", + "Beavers are recognized by their flat tails, large front teeth, brown fur, and robust bodies often depicted near water.", + "The beaver category features a furry animal with a flat tail, prominent teeth, and often appears near water or wood." + ], + "binocular": [ + "Binoculars are typically identified by their two parallel cylindrical tubes joined together, designed for viewing distant objects with both eyes.", + "Binoculars are typically two parallel cylindrical tubes joined together with lenses at both ends and a central hinge for adjustment.", + "Binoculars are recognized by their paired cylindrical tubes, central hinge, and eyepieces designed for simultaneous use by both eyes.", + "Binoculars typically have two parallel cylindrical tubes for lenses, unlike most objects which lack this distinctive dual-tube structure." + ], + "bonsai": [ + "Bonsai are miniature trees with detailed branches and leaves, unlike most objects which lack this natural tree-like structure.", + "Bonsai can be identified by their miniature tree shape with thick trunks and carefully pruned branches in small pots.", + "Bonsai images feature small meticulously shaped trees in pots with dense foliage and visible trunks often against plain backgrounds.", + "Bonsai images show small intricately shaped trees in pots often with twisted trunks and dense foliage against simple backgrounds." + ], + "brain": [ + "A brain has a wrinkled, convoluted surface and irregular shape, unlike most objects which are smoother and more defined.", + "The brain appears as a convoluted, rounded mass with deep grooves and folds, unlike most smooth or angular objects.", + "The brain category is recognized by its convoluted surface, symmetrical shape, and prominent grooves and folds unlike other objects.", + "A brain appears as a wrinkled, folded mass with symmetrical hemispheres and a distinctive convoluted surface unlike other objects." + ], + "brontosaurus": [ + "Brontosaurus images show a large long-necked dinosaur with four legs unlike most other objects which are not prehistoric animals.", + "Brontosaurus is identified by its large body, long neck and tail, and four thick legs resembling a classic dinosaur shape.", + "Brontosaurus is recognized by its long neck, large bulky body, four thick legs, and long tapering tail resembling a dinosaur.", + "Brontosaurus is uniquely identified by its long neck and tail with a large bulky body and four sturdy legs." + ], + "buddha": [ + "Buddha is identified by a serene face, elongated earlobes, ushnisha on the head, and often a meditative seated posture.", + "Buddha images feature a serene human face or figure with distinct head shapes, unlike other objects which lack these characteristics.", + "Buddha images typically show a seated or standing human figure with distinct facial features and often a serene expression.", + "Buddha images feature a serene face, elongated earlobes, ushnisha on the head, and often a meditative seated posture." + ], + "butterfly": [ + "Butterflies have symmetrical wings with colorful patterns and slender bodies, unlike most objects which lack wings and vibrant patterns.", + "Butterflies are recognized by their symmetrical wings with vivid patterns, slender bodies, and antennae, distinct from other objects.", + "A butterfly has delicate symmetrical wings with colorful patterns and a slender body, distinct from most other objects.", + "A butterfly has two large symmetrical wings with colorful patterns and a slender body with antennae, unlike most objects." + ], + "camera": [ + "Cameras typically have a lens, buttons, and a rectangular body, unlike most other objects which lack these features.", + "A camera is identifiable by its lens shape, rectangular body, and visible buttons or dials unlike most other objects.", + "A camera is recognized by its lens circular shape body buttons and sometimes a visible flash or viewfinder on the front.", + "The camera category features boxy shapes with prominent circular lenses and buttons, often appearing metallic or black among objects." + ], + "cannon": [ + "A cannon is a large cylindrical object often mounted on wheels with a wide barrel and a sturdy base.", + "Cannons are large cylindrical objects often mounted on wheels, distinct from other objects by their barrel shape and metallic surface.", + "Cannon images feature large cylindrical barrels, sturdy mounts or wheels, and metallic textures, distinguishing them from other objects.", + "A cannon is typically large, cylindrical, and mounted on wheels or supports, often with a wide barrel facing outward." + ], + "car side": [ + "Car side images are recognized by their elongated horizontal shape visible wheels windows and roofline distinct from other object categories.", + "Car side images show a clear vehicle profile with wheels and windows, unlike other objects which lack these automotive features.", + "Car side images show a horizontal rectangular shape with wheels at the bottom and windows along the upper side.", + "Car side images show vehicles viewed directly from the side highlighting wheels windows and the overall profile of the car." + ], + "ceiling fan": [ + "A ceiling fan has rotating blades attached to a central hub, usually mounted on the ceiling, unlike most other objects.", + "A ceiling fan typically has multiple blades radiating from a central hub and is usually mounted flat against a ceiling surface.", + "A ceiling fan is recognized by its central hub with multiple evenly spaced blades radiating outward, usually mounted overhead.", + "A ceiling fan has rotating blades attached to a central hub, usually mounted on the ceiling, resembling a spinning propeller." + ], + "cellphone": [ + "A cellphone is typically rectangular, flat, and compact with a screen and buttons or touchscreen on one side.", + "Cellphones are typically rectangular with a screen and buttons, unlike most objects which have varied shapes and visible functional parts.", + "Cellphones are typically small rectangular objects with a screen and buttons, often darker in color compared to other objects.", + "Cellphones are typically rectangular, flat, and have a screen with buttons or icons, often featuring a speaker and visible edges." + ], + "chair": [ + "A chair is identified by its flat seat, backrest, and usually four legs, designed for a person to sit on.", + "A chair is recognized by its flat seat, backrest, and typically four legs designed for sitting, distinguishing it from other objects.", + "A chair typically has a flat seat, a backrest, and four legs, designed for sitting and supporting a person.", + "Chairs typically have a flat seat, a backrest, and legs, distinguishing them from other objects with different shapes." + ], + "chandelier": [ + "Chandeliers are recognized by their ornate branching arms, multiple light sources, and hanging decorative elements often arranged symmetrically.", + "Chandeliers have multiple arms or branches with hanging lights or ornaments, unlike most objects which lack such elaborate structures.", + "A chandelier appears as a decorative hanging light fixture with multiple arms or branches often adorned with crystals or glass.", + "A chandelier is identified by its ornate structure with multiple arms or branches holding lights, often hanging from the ceiling." + ], + "cougar body": [ + "Cougar body is identified by its large muscular feline shape short tawny fur long tail and distinct facial features.", + "Cougar body images show a large muscular feline with tan fur unlike inanimate objects which lack animal shapes and textures.", + "Cougar body images show a large muscular feline with a long tail usually in side view without the head visible.", + "Cougar body images show a large muscular feline with a long tail tawny fur and no prominent mane or spots." + ], + "cougar face": [ + "Cougar face images show a furry feline face with distinct eyes and nose, unlike other objects which lack animal features.", + "Cougar face images show a rounded feline face with forward-facing eyes short muzzle and distinctive ear shape unlike most objects.", + "Cougar face images show a large wild cat with rounded ears forward-facing eyes and a distinctive short muzzle.", + "Cougar face is identified by its rounded ears, broad nose, prominent whisker pads, and feline eyes with a tawny fur color." + ], + "crab": [ + "Crabs have a broad flat body with a hard shell and prominent sideways legs unlike most other objects.", + "A crab can be identified by its broad flat body, two large claws, and multiple legs radiating from its sides.", + "A crab has a rounded body with multiple legs extending sideways and two prominent front claws, resembling a spider.", + "Crabs are recognized by their broad flat bodies, prominent sideways legs, and two large front claws distinct from other objects." + ], + "crayfish": [ + "Crayfish are recognized by their elongated bodies, prominent pincers, segmented tails, and jointed legs, resembling small lobsters.", + "Crayfish have segmented bodies, long antennae, and prominent pincers, unlike most other objects which lack these features.", + "Crayfish have a segmented body, large front claws, long antennae, and resemble small lobsters with a hard exoskeleton.", + "Crayfish have elongated bodies with segmented tails, prominent pincers, and resemble small lobsters among the various objects." + ], + "crocodile": [ + "A crocodile has a long body, rough scaly skin, short legs, and a wide snout filled with sharp teeth.", + "A crocodile is identified by its elongated snout, rough scaly skin, short legs, and a long powerful tail.", + "Crocodiles are recognized by their elongated snouts rough scaly skin short legs and long powerful tails distinct from other objects.", + "Crocodiles have elongated bodies rough scaly skin long jaws and visible teeth unlike most other objects in the dataset." + ], + "crocodile head": [ + "A crocodile head is elongated with rough textured skin prominent eyes and visible sharp teeth along the jawline.", + "A crocodile head is recognized by its elongated snout, visible sharp teeth, rough textured skin, and prominent eyes.", + "A crocodile head is long and flat with rough textured skin, prominent eyes, and visible sharp teeth along the jaw.", + "The crocodile head is unique for its long snout with visible sharp teeth and textured scaly skin." + ], + "cup": [ + "A cup is typically identified by its cylindrical shape, open top, and often a handle on one side.", + "A cup typically has a cylindrical shape with a handle and open top, unlike most other objects with different forms.", + "A cup typically appears as a rounded vessel with an open top and a handle, distinct from more complex or flat objects.", + "A cup is typically cylindrical with a handle and an open top often appearing smooth and symmetrical compared to other objects." + ], + "dalmatian": [ + "A dalmatian is a medium sized dog with a white coat covered in distinct black or dark brown spots.", + "Dalmatians are recognized by their white fur covered with distinct black spots and their medium sized athletic dog body shape.", + "A dalmatian is identified by its white coat covered with distinct black spots and its overall dog-like body shape.", + "Dalmatians have a distinctive white coat with black spots which sets them apart from other objects in the dataset." + ], + "dollar bill": [ + "A dollar bill is rectangular, flat, thin, and features detailed printed designs unlike most other objects which are more three-dimensional.", + "A dollar bill is a flat rectangular object with intricate patterns and faces, usually greenish and distinct from other items.", + "A dollar bill is rectangular, thin, and features detailed printed designs with faces and numbers, unlike most other objects.", + "A dollar bill uniquely features rectangular shape, greenish color, and intricate printed patterns resembling currency designs not found on other objects." + ], + "dolphin": [ + "Dolphins have streamlined bodies, smooth skin, a dorsal fin, and a distinct beak unlike most other objects in appearance.", + "Dolphins are recognized by their streamlined bodies, curved dorsal fins, elongated beaks, and smooth skin, often shown leaping or swimming.", + "A dolphin appears as a streamlined aquatic animal with a curved body, distinct dorsal fin, and elongated beak-like snout.", + "A dolphin is sleek gray with a curved body, a dorsal fin, and a long beak-like snout, resembling a fish." + ], + "dragonfly": [ + "A dragonfly has a long slender body, large transparent wings, and is more delicate and elongated than most other objects.", + "Dragonflies are recognized by their long slender bodies, two pairs of large transparent wings, and prominent bulging eyes.", + "Dragonflies have long slender bodies, two pairs of large transparent wings, and prominent bulging eyes, unlike most other objects.", + "Dragonflies have two pairs of long transparent wings with visible veins and an elongated segmented body distinct from other objects." + ], + "electric guitar": [ + "An electric guitar has a solid body, long neck, pickups, and tuning pegs, unlike most everyday objects in appearance.", + "An electric guitar is recognized by its solid body, long neck, tuning pegs, pickups, and distinctive curved or angular shape.", + "An electric guitar has a solid body, long neck, six strings, and distinctive pickups, often with a shiny or colorful finish.", + "An electric guitar has a solid body, long neck, six strings, and distinctive curves, often with visible pickups and knobs." + ], + "elephant": [ + "Elephants are recognized by their large size, long trunk, big floppy ears, thick legs, and distinctive tusks.", + "Elephants are large gray animals with trunks and big ears, unlike most objects which lack these distinctive features.", + "The elephant is large with a long trunk big ears and thick legs making it distinct from most other objects.", + "An elephant is large with thick gray skin a long trunk big floppy ears and prominent curved tusks." + ], + "emu": [ + "Emus are large flightless birds with long necks and legs, unlike most objects which lack feathers and birdlike features.", + "An emu is a large flightless bird with long legs a long neck and shaggy brownish feathers.", + "An emu is a large flightless bird with a long neck, long legs, and shaggy brownish feathers.", + "Emus are large flightless birds with long necks, long legs, shaggy brown feathers, and a distinctive upright posture." + ], + "euphonium": [ + "A euphonium is a shiny brass instrument with a large bell, curved tubing, and three or four piston valves.", + "A euphonium has a large flared bell, curved tubing, and valves, unlike most objects which lack these brass instrument features.", + "A euphonium is recognized by its large curved brass body, wide bell, and complex arrangement of valves and tubing.", + "A euphonium looks like a shiny brass instrument with a wide bell and several valves, similar to a small tuba." + ], + "ewer": [ + "An ewer resembles a decorative pitcher or jug with a wide spout and handle, often used for pouring liquids.", + "Ewers are recognized by their tall narrow bodies curved spouts prominent handles and often decorative designs distinguishing them from other vessels.", + "Ewers typically have a spout and handle with a rounded body, unlike most objects which lack this distinctive pouring shape.", + "A ewer is identifiable by its pitcher-like shape with a wide body, narrow neck, and a prominent spout and handle." + ], + "ferry": [ + "A ferry is a large boat with multiple windows and decks, unlike most objects which lack such maritime features and structure.", + "A ferry is a large boat with multiple windows and decks, often appearing flat and rectangular compared to other objects.", + "A ferry is identifiable by its large boat shape, multiple decks, and windows, often carrying vehicles or passengers across water.", + "A ferry is recognized by its large boat structure with multiple windows, decks, and often visible passenger or vehicle areas." + ], + "flamingo": [ + "A flamingo is a tall bird with long legs a curved neck and distinctive pink or reddish feathers.", + "A flamingo is identified by its long neck, long legs, curved beak, and distinctive pink or reddish feathers.", + "Flamingos are recognized by their long curved necks, thin legs, pinkish feathers, and distinctive downward-bending beaks.", + "Flamingos are tall birds with long legs, curved necks, and pink feathers, unlike most other objects which lack these features." + ], + "flamingo head": [ + "A flamingo head is identified by its long curved neck, pale pink color, and large downward-bending beak.", + "The flamingo head is long and curved with a distinct downward bend and a prominent beak compared to other objects.", + "The flamingo head is unique for its long curved beak with a distinct downward bend and contrasting color pattern.", + "The flamingo head is recognized by its long curved beak, slender neck, and distinctive contrasting pink and white coloration." + ], + "garfield": [ + "Garfield is an orange cartoon cat with black stripes, large round eyes, and a distinctive chubby body and face.", + "Garfield is an orange cartoon cat with black stripes and a round face, unlike most real-life objects or animals.", + "Garfield is an orange cartoon cat with black stripes, big eyes, a round face, and a slightly chubby body.", + "Garfield is recognized by his orange fur, black stripes, large round eyes, chubby body, and distinctive cartoonish facial expression." + ], + "gerenuk": [ + "A gerenuk is a slender antelope with a long neck, long legs, and distinctive large ears compared to other animals.", + "Gerenuk have long necks slender legs and a distinctive upright feeding posture unlike most other animals in the dataset.", + "A gerenuk is a slender antelope with long legs and neck, often seen standing upright to reach tree leaves.", + "Gerenuk are recognized by their long necks slender legs small heads and upright posture unlike other animals in the dataset." + ], + "gramophone": [ + "A gramophone is recognizable by its large flared horn and turntable base, unlike most other objects in the dataset.", + "A gramophone has a large horn and a turntable, unlike most objects which lack these distinctive audio playback features.", + "A gramophone is recognized by its large flared horn, turntable base, and vintage mechanical design unlike modern devices.", + "A gramophone has a large horn-shaped speaker, a turntable base, and an overall vintage mechanical appearance compared to other objects." + ], + "grand piano": [ + "A grand piano has a large curved body with a lid and visible keys, unlike most objects which lack these features.", + "A grand piano is large with a curved body, long lid, visible keyboard, and three legs, unlike most other objects.", + "A grand piano is recognized by its large curved body, horizontal strings, visible keyboard, and prominent lid often propped open.", + "A grand piano is large with a curved body, flat lid, visible keyboard, and three legs, often appearing glossy." + ], + "hawksbill": [ + "Hawksbill features a distinctively patterned turtle shell and beaklike mouth, unlike most other objects with simpler shapes and textures.", + "Hawksbill can be identified by its distinctive beak-like mouth and patterned shell, resembling a sea turtle more than other objects.", + "The hawksbill resembles a sea turtle with a pointed beak patterned shell and flipper-like limbs among various object shapes.", + "Hawksbill is recognized by its distinctive beak shape, patterned shell, and flipper-like limbs, unlike most other objects." + ], + "headphone": [ + "Headphones are typically identified by two ear pads connected by a curved band designed to fit over or around the head.", + "Headphones are recognized by their circular or oval ear cups connected by a curved band designed to fit over or on the head.", + "Headphones typically appear as two ear cups connected by a curved band, often circular or oval, distinct from most objects.", + "Headphones are unique for their two ear cups connected by a curved band designed to fit over the top of the head." + ], + "hedgehog": [ + "A hedgehog is a small round animal covered in short spines with a pointed nose and small legs.", + "A hedgehog is small round and covered in short spines with a pointed nose and small dark eyes.", + "A hedgehog has a small rounded body covered in spines with a pointed nose unlike most other objects.", + "A hedgehog is recognized by its small rounded body covered in short spines with a pointed snout and tiny feet." + ], + "helicopter": [ + "Helicopters have rotating blades on top, a tail rotor, and a distinct elongated body unlike most other objects.", + "A helicopter is recognized by its main rotor blades on top, tail rotor, elongated body, and landing skids or wheels.", + "A helicopter is identified by its main rotor on top, tail rotor, elongated body, and landing skids or wheels.", + "A helicopter has a central body with a large main rotor on top and a smaller tail rotor at the rear." + ], + "ibis": [ + "An ibis is a long-legged bird with a downward-curved beak and slender body, distinct from most other objects.", + "An ibis is identified by its long curved bill slender neck and legs and overall elegant wading bird shape.", + "The ibis is recognized by its long downward curved bill slender neck long legs and overall white or dark plumage.", + "Ibis have long curved beaks and slender legs, unlike most objects which lack these distinctive bird features." + ], + "inline skate": [ + "Inline skates are recognized by their boot shape with a straight line of small wheels attached underneath the sole.", + "Inline skates have multiple small wheels aligned in a single row under a boot, unlike other objects in the dataset.", + "An inline skate is identified by its boot with a straight line of small wheels attached underneath, unlike other footwear.", + "Inline skates have wheels aligned in a single row and straps, unlike most objects which lack wheels or this specific structure." + ], + "joshua tree": [ + "Joshua tree has spiky branches and clustered leaves, unlike most objects which have smoother shapes and more uniform surfaces.", + "Joshua tree has a distinctive branching structure with spiky leaves clustered at the ends of thick irregular limbs.", + "A joshua tree has a thick trunk with spiky branches and clusters of sharp leaves, resembling a desert tree.", + "A Joshua tree has a thick trunk with spiky branches ending in clusters of sharp leaves, resembling a unique desert silhouette." + ], + "kangaroo": [ + "A kangaroo has a large body, long powerful hind legs, a small head, and a long thick tail for balance.", + "A kangaroo is identified by its large powerful hind legs long tail upright posture and small head with large ears.", + "Kangaroos are recognized by their large powerful hind legs long tail upright posture small head and often visible pouch.", + "A kangaroo is uniquely identified by its large powerful hind legs and long thick tail used for balance and movement." + ], + "ketch": [ + "Ketch images are distinguished by two masts, sails, and a boat hull, unlike single-masted or non-boat objects.", + "Ketch has two masts and sails, distinguishing it from other objects which lack these nautical features and boat structure.", + "A ketch can be identified by its two masts with the shorter mizzen mast positioned behind the main mast.", + "A ketch is a sailboat with two masts and sails, appearing sleek and elongated compared to other objects." + ], + "lamp": [ + "A lamp is typically identified by its bulb or shade on top and a supporting base or stand underneath.", + "A lamp is recognized by its upright structure, bulb or shade at the top, and often a visible base or stand.", + "A lamp typically has a base and a shade or bulb, often appearing upright and distinct from other objects.", + "Lamps typically have a distinct base and shade structure, often featuring a bulb, unlike most other objects with varied forms." + ], + "laptop": [ + "A laptop typically appears as a thin rectangular device with a hinged screen and keyboard, often shown open or closed.", + "Laptops have a flat rectangular shape with a visible hinge and keyboard, unlike most objects which lack these features.", + "A laptop is typically flat and rectangular with a visible hinge connecting a screen and keyboard, often appearing open or closed.", + "A laptop is recognized by its rectangular clamshell shape, visible keyboard, screen hinge, and often a touchpad below the keyboard." + ], + "llama": [ + "Llamas have long necks, woolly bodies, and distinct faces, unlike most other objects which lack these animal features.", + "A llama is recognized by its long neck, woolly body, upright ears, and gentle face, resembling a small camel.", + "A llama looks like a large woolly animal with a long neck, upright ears, and a gentle facial expression.", + "Llamas are recognized by their long necks, woolly bodies, large ears, and distinctive elongated faces compared to other animals." + ], + "lobster": [ + "Lobsters are recognized by their elongated bodies, large claws, segmented tails, and long antennae, unlike most other objects.", + "A lobster is identified by its elongated body, large front claws, segmented tail, and hard shell with a reddish or brownish color.", + "Lobsters have segmented bodies, long antennae, and large claws, unlike most objects which lack these distinctive crustacean features.", + "A lobster has a long segmented body, large claws, and antennae, resembling a spiny armored sea creature." + ], + "lotus": [ + "Lotus has broad rounded petals and a central seed pod, unlike most objects which lack such floral structures and symmetry.", + "Lotus is recognized by its large rounded petals, central seed pod, and broad flat leaves often seen above water.", + "A lotus is identified by its large round petals arranged symmetrically around a central seed pod and broad flat leaves.", + "Lotus images show large, rounded petals radiating from a central point, often with broad leaves and water backgrounds." + ], + "mandolin": [ + "A mandolin has a teardrop-shaped wooden body, a neck with frets, and multiple tuning pegs, unlike most objects.", + "A mandolin is identified by its teardrop-shaped wooden body, round sound hole, and a short neck with tuning pegs.", + "A mandolin has a rounded wooden body, a long neck, and strings, resembling a small lute or guitar.", + "A mandolin is recognized by its teardrop-shaped wooden body, round sound hole, short neck, and paired tuning pegs." + ], + "mayfly": [ + "Mayflies have two or three long thin tail filaments extending from their abdomen which are uncommon in other objects.", + "Mayflies have delicate elongated bodies with two or three long tail filaments and large transparent wings unlike most other objects.", + "Mayflies are recognized by their delicate elongated bodies large transparent wings held upright and long threadlike tails.", + "A mayfly has delicate transparent wings held upright, a slender body, and long threadlike tails distinct from other objects." + ], + "menorah": [ + "A menorah is a branched candelabrum with multiple arms, typically arranged symmetrically and often depicted upright and ornate.", + "A menorah is identified by its branched candelabrum shape with multiple arms extending from a central stem.", + "A menorah is recognized by its central stem with multiple evenly spaced branches each holding a candle or lamp.", + "A menorah has a central stem with multiple branches holding candles, unlike most objects which lack this distinctive structure." + ], + "metronome": [ + "A metronome is typically a tall narrow device with a swinging pendulum and a scale or markings on its front.", + "A metronome typically has a tall triangular shape with a swinging pendulum, unlike most other objects which lack this form.", + "A metronome is recognized by its upright rectangular body, swinging pendulum, and a graduated scale for tempo markings.", + "A metronome typically looks like a small upright device with a swinging pendulum and a numbered scale on its front." + ], + "minaret": [ + "Minarets are tall slender towers with balconies unlike most objects which are shorter wider and lack architectural detailing.", + "A minaret is uniquely identified by its tall slender tower structure often featuring balconies and pointed or domed tops.", + "A minaret is a tall slender tower with a pointed top often attached to a mosque and featuring small windows.", + "Minarets are tall slender towers with balconies and pointed tops often attached to mosques standing out from other objects." + ], + "nautilus": [ + "Nautilus is recognized by its spiraled shell with chambered sections and smooth curved lines distinct from other objects.", + "Nautilus has a distinct spiral shell with visible chambers, unlike most other objects which lack this unique coiled structure.", + "A nautilus has a smooth spiraled shell with distinct chamber lines resembling a coiled seashell among other objects.", + "A nautilus is identified by its distinct spiral shell with smooth chambers and striped patterns, resembling a coiled seashell." + ], + "octopus": [ + "An octopus has a rounded body and multiple long arms, unlike most objects which have distinct shapes and lack tentacles.", + "An octopus is recognized by its bulbous head, eight long flexible arms, and lack of a rigid skeleton or shell.", + "An octopus has a rounded body with eight long flexible arms radiating outward, often appearing soft and fluid in shape.", + "An octopus is identified by its bulbous head and eight long flexible arms radiating from its body." + ], + "okapi": [ + "An okapi has zebra-like striped legs, a horse-like head, and a dark brown body with white markings.", + "An okapi has zebra-like striped legs, a horse-like body, and a long neck, unlike most other animals.", + "An okapi looks like a horse-sized animal with a dark body, striped legs, and a face similar to a giraffe.", + "Okapis have zebra-like striped legs, a horse-shaped head, and a dark brown body, making them uniquely recognizable." + ], + "pagoda": [ + "A pagoda has a tiered tower structure with multiple eaves, often resembling an ornate temple or religious monument.", + "Pagodas have tiered roofs with upward-curving eaves and vertical symmetry, unlike most other objects which lack these architectural features.", + "A pagoda is identified by its tiered tower structure with multiple eaves and upward curving roofs distinct from other objects.", + "Pagodas are recognized by their tiered roofs, upward-curving eaves, and multi-level tower structure distinct from other architectural forms." + ], + "panda": [ + "Pandas have distinctive black and white fur, round faces, and large dark eye patches unlike most other objects or animals.", + "Pandas are recognized by their black and white fur, round face, large dark eye patches, and robust body shape.", + "A panda is identified by its black and white fur, round face, large dark eye patches, and stocky body.", + "A panda has a round face, black eye patches, black limbs, and a white body, resembling a cuddly bear." + ], + "pigeon": [ + "Pigeons are recognized by their plump bodies small heads short necks grayish feathers and distinct wing and tail patterns.", + "Pigeons have a compact body, small head, and feathers, unlike most objects which lack organic shapes and textures.", + "A pigeon can be identified by its plump body, small head, short legs, and iridescent feathers around the neck.", + "A pigeon appears as a medium-sized bird with a plump body, small head, short legs, and often grayish feathers." + ], + "pizza": [ + "Pizza is typically round flat with a textured surface featuring toppings unlike most other objects which have distinct shapes and surfaces.", + "Pizza is typically round with a flat base, topped with melted cheese, tomato sauce, and visible toppings like pepperoni or vegetables.", + "Pizza appears as a round flat object with a textured surface often showing slices cheese tomato sauce and various toppings.", + "Pizza is typically round with a flat crust, topped with melted cheese, tomato sauce, and various visible toppings arranged in patterns." + ], + "platypus": [ + "Platypus has a duck-like bill webbed feet and a flat tail unlike most other objects which lack these features.", + "A platypus has a duck-like bill webbed feet flat tail and a furry body unlike most other animals.", + "A platypus looks like a small furry animal with a duck-like bill webbed feet and a flat tail.", + "The platypus is recognized by its duck-like bill webbed feet flat tail and unique body shape unlike other animals." + ], + "pyramid": [ + "Pyramids have a distinct triangular shape with flat faces and pointed tops, unlike most other objects with varied forms.", + "A pyramid has a distinct triangular shape with a pointed apex and a broad base, unlike other objects.", + "The pyramid appears as a triangular or trapezoidal structure with straight edges and a broad base tapering to a point.", + "A pyramid is identified by its triangular sides meeting at a single point and a broad flat base, forming a geometric shape." + ], + "revolver": [ + "A revolver is a small handheld firearm with a short barrel and a rotating cylinder containing multiple bullet chambers.", + "A revolver is identified by its cylindrical chamber, short barrel, and distinct grip, unlike most other objects.", + "A revolver has a distinct cylindrical chamber and barrel, unlike most objects which lack these mechanical and metallic features.", + "A revolver is recognized by its cylindrical chamber, short barrel, trigger, and grip, forming a compact, metallic handgun shape." + ], + "rhino": [ + "The rhino category features large bulky animals with thick skin one or two horns on their snouts and short legs.", + "Rhinos are large animals with thick skin, a prominent horn on their nose, and a bulky, rounded body shape.", + "A rhino is recognized by its large bulky body thick skin prominent horn on its snout and short legs.", + "A rhino is large with thick gray skin and one or two prominent horns on its snout, unlike other animals." + ], + "rooster": [ + "Roosters have colorful feathers, a comb on their head, wattles under their beak, and a distinctive upright posture.", + "A rooster is recognized by its prominent comb, colorful plumage, upright posture, long tail feathers, and distinctive beak shape.", + "A rooster is identified by its colorful feathers, prominent comb on its head, and long tail compared to other birds.", + "A rooster has a prominent red comb, wattles, colorful feathers, a curved tail, and a distinctive upright posture." + ], + "saxophone": [ + "A saxophone has a curved metallic body with keys and a flared bell, unlike most objects which lack these features.", + "A saxophone is identified by its curved metallic body, flared bell, numerous keys, and distinctive mouthpiece typically made of brass.", + "A saxophone has a curved metallic body, flared bell, numerous keys, and a distinctive mouthpiece, unlike most other objects.", + "A saxophone has a curved metallic body with a flared bell, numerous keys, and resembles a shiny bent tube." + ], + "schooner": [ + "A schooner is a large sailing ship with two or more tall masts and prominent sails, usually seen on water.", + "A schooner is identified by its multiple tall masts with large sails, long narrow hull, and classic sailing ship shape.", + "A schooner is recognized by its multiple tall masts with large sails and a long narrow hull typical of sailing ships.", + "A schooner has multiple tall masts with sails and a long narrow hull, unlike most other objects which lack these features." + ], + "scissors": [ + "Scissors have two symmetrical blades joined at a pivot with handles, unlike most objects which lack this distinct cutting mechanism.", + "Scissors are recognized by their two elongated blades joined at a pivot with symmetrical handles forming a distinctive cross shape.", + "Scissors have two elongated blades joined at a pivot with looped handles, resembling an X or open V shape.", + "Scissors are identified by two elongated blades joined at a pivot with handles forming loops for fingers, resembling an X shape." + ], + "scorpion": [ + "A scorpion has a segmented body, pincers in front, and a curved tail with a stinger at the end.", + "A scorpion has a segmented tail with a stinger, two pincers, and an elongated body with multiple legs.", + "Scorpions have segmented bodies, pincers, and a curved tail, unlike most objects which lack these distinct anatomical features.", + "A scorpion is recognized by its segmented body, pincers, and a curved tail with a stinger at the end." + ], + "sea horse": [ + "A sea horse has a curled tail, elongated snout, and upright body resembling a chess knight, unlike most other objects.", + "A sea horse has a slender curved body with a curled tail and a distinct horse-like head among all objects.", + "The sea horse has a curled tail and elongated snout with a horse-like head, unlike any other object in the dataset.", + "Sea horses have curled tails, elongated snouts, and upright bodies, unlike most other objects which lack these unique features." + ], + "snoopy": [ + "Snoopy is a cartoon dog with a white body, black ears, and a distinctive round nose, often lying on a doghouse.", + "Snoopy appears as a cartoon dog with a white body, black ears, and often a playful or relaxed pose.", + "Snoopy images feature a cartoon dog with a rounded head, black ears, and a distinctive white body often in playful poses.", + "Snoopy images feature a cartoon dog with distinctive black ears and a white body unlike most real-world objects in Caltech101." + ], + "soccer ball": [ + "A soccer ball is round with a pattern of black and white patches, making it distinct from most other objects.", + "A soccer ball is typically round with a pattern of black and white patches unlike most other objects in the dataset.", + "A soccer ball is typically round with a pattern of black and white pentagons and hexagons on its surface.", + "A soccer ball is round with a distinctive pattern of black and white pentagons and hexagons covering its surface." + ], + "stapler": [ + "A stapler is a small, rectangular object with a hinge, often metallic, designed to press and bind papers together.", + "A stapler is typically metallic, elongated, and hinged, unlike most objects which have varied shapes and lack this mechanism.", + "A stapler is typically metallic, elongated, and hinged with a flat base and top, often resembling a small lever.", + "A stapler is typically metallic, elongated, has a hinged top, and features a visible slot for inserting paper." + ], + "starfish": [ + "Starfish are easily identified by their five arms radiating from a central body and their rough, textured surface.", + "A starfish has a central body with five radiating arms, creating a symmetrical star shape unlike most other objects.", + "Starfish have a distinct five-armed radial shape with rough textured surfaces unlike the smoother or differently shaped objects in the dataset.", + "Starfish are recognized by their five radiating arms, rough textured surface, and central disk, unlike most other objects." + ], + "stegosaurus": [ + "Stegosaurus is recognized by its large back plates, spiked tail, small head, and overall dinosaur body shape.", + "Stegosaurus has a bulky body, small head, long tail, and distinctive large plates along its back compared to other objects.", + "A stegosaurus is identifiable by its large body, small head, and distinctive row of upright plates along its back.", + "Stegosaurus has a distinctive row of large back plates and a spiked tail, unlike most other objects in the dataset." + ], + "stop sign": [ + "A stop sign is easily recognized by its red octagonal shape and bold white uppercase STOP lettering in the center.", + "A stop sign is easily identified by its red octagonal shape with bold white STOP lettering in the center.", + "A stop sign is red and octagonal with bold white letters, unlike most objects which have varied shapes and colors.", + "A stop sign is a red octagonal sign with bold white letters spelling STOP, standing out among mostly non-sign objects." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny surface seeds and green leafy tops unlike most other objects in the dataset.", + "A strawberry is recognized by its red color, conical shape, small surface seeds, and green leafy cap at the top.", + "A strawberry is small red heart-shaped with tiny seeds on its surface and a leafy green cap on top.", + "A strawberry is small red heart-shaped with tiny seeds on its surface and a leafy green cap at the top." + ], + "sunflower": [ + "Sunflowers are recognized by their large round yellow petals surrounding a dark central disk and a tall green stem.", + "Sunflowers have large round yellow petals and a central dark disk unlike most other objects which lack this distinct floral structure.", + "A sunflower has a large round dark center surrounded by bright yellow petals and a tall green stem with broad leaves.", + "A sunflower has a large round center with bright yellow petals radiating outward resembling a sun among various objects." + ], + "tick": [ + "A tick is a small oval creature with eight legs, resembling a tiny spider, often darker and flatter than insects.", + "A tick is small round and flat with eight legs and no wings or antennae unlike insects or larger arthropods.", + "A tick is small, oval, and flat with eight short legs and lacks wings or antennae, resembling a tiny spider.", + "A tick is small, round, and flat with eight legs, unlike most objects which have varied shapes and structures." + ], + "trilobite": [ + "Trilobites have a segmented, oval exoskeleton with a distinct three-lobed body plan not seen in other objects.", + "Trilobites are recognized by their segmented oval bodies with ridged exoskeletons and three longitudinal lobes running head to tail.", + "A trilobite has a segmented oval body with ridges and a distinct head unlike most other objects in the dataset.", + "A trilobite has a segmented oval body with a distinct head, ribbed segments, and often a ridged tail section." + ], + "umbrella": [ + "An umbrella is identified by its curved canopy shape with radiating ribs and a long central handle, unlike most objects.", + "Umbrellas are recognized by their curved canopy shape, central shaft, and radiating ribs often with a handle at the bottom.", + "Umbrellas have a curved canopy with spokes and a central handle, unlike most objects which lack this distinctive shape and structure.", + "An umbrella is uniquely identified by its curved canopy shape with radiating ribs and a central handle underneath." + ], + "watch": [ + "A watch typically appears as a small round or rectangular object with a face and visible straps or bands.", + "A watch typically has a round face with numbers or markings and visible hands, unlike most other objects.", + "A watch is typically round with a face displaying numbers or markers and has straps or bands attached on either side.", + "A watch is typically circular with a face displaying numbers or markers and hands, often attached to a strap or band." + ], + "water lilly": [ + "Water lily is recognized by its large round floating leaves and prominent central flower often seen on water surfaces.", + "Water lily can be identified by its round floating green leaves and large colorful flowers resting on water surfaces.", + "Water lilly has broad flat green leaves and delicate flowers floating on water, distinct from animals vehicles or manmade objects.", + "Water lily images feature flat round leaves and delicate flowers floating on water, unlike most objects which lack aquatic context." + ], + "wheelchair": [ + "Wheelchairs have large rear wheels, small front wheels, a seat, and handles, unlike most objects which lack this structure.", + "A wheelchair is identified by its large wheels, seat, and handles, designed for sitting and personal mobility assistance.", + "A wheelchair typically has large rear wheels, smaller front wheels, a seat, and handles, resembling a mobile chair frame.", + "A wheelchair is recognized by its large rear wheels, small front casters, seat, and handles arranged in a distinctive chair-like frame." + ], + "wild cat": [ + "Wild cats have fur patterns, sharp eyes, pointed ears, and feline body shapes unlike most inanimate or non-feline objects.", + "A wild cat can be identified by its fur patterns, sharp eyes, pointed ears, and agile body compared to other objects.", + "Wild cat images show fur patterns pointed ears sharp eyes whiskers and feline body shape distinguishing them from other objects.", + "Wild cat images show agile feline bodies with pointed ears sharp eyes and patterned fur often in natural outdoor settings." + ], + "windsor chair": [ + "A windsor chair has a wooden seat with a rounded back made of spindles and distinct splayed legs unlike other objects.", + "A windsor chair has a wooden seat with a rounded back made of multiple thin spindles and simple legs.", + "A windsor chair features a wooden seat with a semicircular backrest made of multiple thin spindles and splayed legs.", + "A windsor chair is identified by its wooden construction, spindle backrest, splayed legs, and rounded seat, often with armrests." + ], + "wrench": [ + "A wrench is a long metal tool with a handle and an open or closed loop at one or both ends.", + "A wrench has a long metal body with an open or closed gripping end unlike most other objects with varied shapes.", + "A wrench is typically metallic, elongated, with a handle and an open or closed loop at one or both ends.", + "A wrench is typically long and metallic with a handle and an open or closed jaw for gripping nuts and bolts." + ], + "yin yang": [ + "The yin yang symbol is a circular shape divided into black and white halves with a dot of each color in opposite sides.", + "Yin yang is identified by a circular shape split into black and white halves with two contrasting dots inside each half.", + "Yin yang features a distinct black and white circular pattern with two dots, unlike most objects which have varied shapes and colors.", + "The yin yang symbol features a circular shape divided into black and white teardrop halves, each containing a contrasting dot." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/DescribableTextures.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/DescribableTextures.json new file mode 100644 index 0000000..d366d8c --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/DescribableTextures.json @@ -0,0 +1,284 @@ +{ + "banded": [ + "Banded textures show distinct parallel lines or stripes differing in color or shade across the surface easily recognizable visually.", + "A banded texture shows parallel lines or stripes with alternating colors or shades creating a distinct pattern in materials.", + "Banded textures show alternating light and dark stripes distinct from other textures through their clear repetitive linear patterns and uniform spacing.", + "A banded texture shows distinct parallel lines while others may have spots stripes or random patterns differing in appearance significantly." + ], + "blotchy": [ + "Blotchy textures show irregular patches of color or shading creating a mottled appearance unlike smooth or uniform patterns.", + "Blotchy textures show irregular color patches unlike smooth uniform or finely detailed ones which have consistent patterns across surfaces.", + "Blotchy textures show irregular patches of color or shade varying across the surface making them distinct from uniform patterns.", + "A blotchy texture appears irregular with patches of different colors or shades scattered unevenly across the surface." + ], + "braided": [ + "Braided textures show interwoven strands forming complex patterns distinct from smooth or granular surfaces aiding easy visual recognition among textures.", + "A braided texture appears as interwoven strands forming a complex pattern distinct from smooth or granular surfaces in appearance.", + "A braided texture shows interwoven strands unlike smooth wavy or spotted textures which have uniform patterns and colors.", + "A braided texture appears as interwoven strands creating a complex pattern with a distinct crisscross design and layered appearance." + ], + "bubbly": [ + "Bubbly textures show rounded raised areas unlike smooth flat or rough jagged ones in appearance and feel.", + "A bubbly texture appears as numerous small raised dots giving a frothy appearance similar to foam or bubbles on liquid.", + "A bubbly texture appears as numerous small round shapes clustered together giving a frothy look to the surface.", + "Bubbly textures feature rounded shapes with varying sizes and clear separations making them easily distinguishable from other textures visually." + ], + "bumpy": [ + "Bumpy textures have irregular surfaces with noticeable protrusions and depressions differing from smooth flat or uniformly patterned textures significantly.", + "A bumpy texture has irregular protrusions unlike smooth flat or wavy textures which have even surfaces and consistent patterns respectively.", + "A bumpy texture appears uneven with raised areas and irregularities differing from smooth surfaces in visual and tactile qualities.", + "A bumpy texture appears with irregular raised areas creating a rough uneven surface distinct from smooth ones easily." + ], + "chequered": [ + "A chequered texture has a grid of alternating squares unlike smooth wavy or spotted textures which lack this pattern.", + "A chequered texture features a pattern of alternating light and dark squares resembling a chessboard in appearance.", + "A chequered texture appears as a pattern of alternating light and dark squares forming a grid like chessboard easily recognizable.", + "Chequered textures feature alternating light and dark squares forming a grid pattern easily distinguishable from other textures by this unique arrangement." + ], + "cobwebbed": [ + "Cobwebbed textures are characterized by thin intersecting lines creating irregular patterns that resemble spider webs in appearance and structure.", + "Cobwebbed textures appear thin and intricate with intersecting lines unlike solid smooth or rough surfaces with uniform patterns and colors.", + "A cobwebbed texture appears intricate with thin intersecting lines creating a delicate network resembling spider webs in appearance.", + "Cobwebbed textures appear as thin irregular lines forming complex interconnected patterns resembling spider webs in appearance." + ], + "cracked": [ + "Cracked textures show distinct lines and separations in surfaces distinguishing them from smoother or more uniform textures easily.", + "Cracked textures show deep irregular lines while others may be smooth bumpy or have uniform patterns and colors instead.", + "Cracked textures show irregular lines and gaps distinguishing them from smooth or uniform surfaces in various materials easily.", + "Cracked textures uniquely show irregular lines and separations indicating surface damage not seen in other textures types simply." + ], + "crosshatched": [ + "Crosshatched textures feature intersecting lines creating grid patterns unlike smooth or wavy textures which lack such structured designs.", + "Crosshatched textures feature intersecting lines creating a grid pattern distinct for easy recognition among various texture types in images.", + "A crosshatched texture appears as intersecting lines creating a grid pattern resembling a woven fabric or mesh structure visually.", + "Crosshatched textures show intersecting lines forming a grid pattern distinguishing them visually from other texture types easily." + ], + "crystalline": [ + "Crystalline textures appear structured with clear edges unlike smooth soft or rough irregular textures that lack defined patterns and shapes.", + "Crystalline textures show sharp defined edges regular patterns and clear repetitive structures distinguishing them from others easily.", + "Crystalline textures appear as shiny regular patterns with sharp edges and clear boundaries distinguishing them from other textures easily.", + "Crystalline texture appears as clear structured patterns with sharp edges and reflective surfaces resembling ice or gemstones in appearance." + ], + "dotted": [ + "Dotted textures are recognized by evenly spaced small distinct spots creating a patterned appearance different from other textures visually.", + "A dotted texture appears as small separated spots scattered across a surface creating a distinct pattern easily distinguishable visually.", + "A dotted texture appears as small evenly spaced dots creating a pattern across the surface area visually distinct from others.", + "A dotted texture shows small separated spots unlike continuous patterns in striped or wavy textures which have unbroken lines." + ], + "fibrous": [ + "Fibrous textures appear stringy and elongated unlike smooth shiny or granular ones which have different surface patterns and structures.", + "Fibrous textures are characterized by long thin interwoven strands creating a rough uneven surface distinct from other textures.", + "Fibrous textures appear as long thin strands or fibers interwoven creating a rough uneven surface distinct from smooth ones.", + "Fibrous textures uniquely show long interwoven strands creating a distinct linear and layered appearance unlike other textures." + ], + "flecked": [ + "A flecked texture shows small scattered spots unlike smooth solid or uniformly patterned textures which lack such distinct irregularities in appearance.", + "Identify flecked texture by spotting irregular scattered spots or specks across the surface distinguishing it from uniform patterns easily.", + "Flecked textures are characterized by small irregular spots scattered across a surface creating a distinctive speckled appearance easily recognizable.", + "A flecked texture appears as small scattered spots or patches on a surface creating a speckled appearance in various colors." + ], + "freckled": [ + "Freckled textures show small brown spots on skin unlike smooth or rough textures which lack such distinct markings entirely.", + "Freckled textures show small irregular brown spots on lighter skin areas differing from smooth or uniformly colored textures for easy identification.", + "Freckled textures show small brown spots scattered on a lighter background distinguishing them from other textures easily.", + "A freckled texture appears as small brown spots scattered across a lighter skin tone resembling scattered pepper." + ], + "frilly": [ + "Frilly textures have ruffled edges unlike smooth flat or rough bumpy textures which lack such intricate detailed patterns and designs.", + "Frilly textures are characterized by their ruffled layered appearance creating a soft and delicate visual effect easily distinguishable from others.", + "Frilly textures appear delicate with ruffled edges and intricate patterns distinguishing them from smoother or coarser types easily.", + "A frilly texture appears delicate with ruffled edges and layered folds resembling soft fabric or petal edges in nature." + ], + "gauzy": [ + "Gauzy textures appear thin airy and translucent unlike dense heavy or opaque ones which block light and lack transparency completely.", + "Gauzy textures are thin airy translucent with fine mesh patterns easily distinguished from dense heavy materials by their light airy appearance.", + "A gauzy texture appears thin airy and translucent resembling delicate fabric with a soft airy appearance and subtle sheen.", + "A gauzy texture appears translucent airy and delicate with a fine meshed structure easily distinguishable from others visually." + ], + "grid": [ + "Grid texture shows regular intersecting lines unlike natural textures which have irregular patterns and varied coloration in appearance.", + "Grid textures feature regular intersecting lines forming uniform squares or rectangles easily distinguishing them from other varied textures in images.", + "A grid texture shows regular intersecting lines forming squares or rectangles easily distinguishable from other texture types in images.", + "A grid texture uniquely features intersecting lines forming consistent square or rectangular patterns unlike other textures." + ], + "grooved": [ + "Grooved textures show linear patterns with consistent spacing and depth distinguishing them from other textures in visual analysis easily.", + "A grooved texture appears as parallel lines creating a pattern that feels ridged to the touch in various materials.", + "Grooved textures show linear patterns and ridges unlike smooth or bumpy surfaces which lack such distinct linear features and depth.", + "Grooved textures show parallel lines with consistent spacing creating a pattern that feels ridged to touch visually distinct from others." + ], + "honeycombed": [ + "Honeycombed textures feature hexagonal patterns unlike smooth shiny or rough bumpy surfaces seen in other textures in images.", + "Honeycombed textures feature hexagonal patterns with uniform shapes and sizes creating a distinctive grid like appearance for easy recognition.", + "A honeycombed texture appears as a series of hexagonal cells closely packed resembling a bees honey storage structure in nature.", + "A honeycombed texture appears as a network of hexagonal cells resembling a bees nest structure in a uniform pattern." + ], + "interlaced": [ + "Interlaced textures show overlapping lines creating a woven pattern distinct from other textures through their intersecting design and visual complexity", + "An interlaced texture appears as alternating layers woven together creating a complex pattern with varied visual depth and structure.", + "Interlaced textures show a pattern where elements cross over each other creating a woven look distinct from other textures types.", + "Interlaced textures show alternating lines of different colors while others may have uniform patterns or random color distributions throughout." + ], + "knitted": [ + "Knitted textures show interlocking loops and softness unlike woven which has tight intersecting threads and smoother surface appearance.", + "A knitted texture shows interlocking loops forming a fabric pattern distinct from woven or smooth textures in appearance.", + "Knitted textures show interlocking loops creating a distinct pattern unlike smooth or woven materials in appearance.", + "Knitted textures show interlocking loops creating a patterned surface distinct from woven or smooth materials for easy recognition." + ], + "lacelike": [ + "Lacelike textures appear intricate with fine interwoven patterns resembling delicate lacework distinguishing them from other textures easily.", + "A lacelike texture appears delicate with intricate patterns unlike smooth solid or rough granular textures which lack such fine detailed designs.", + "Lacelike textures are delicate intricate patterns with fine holes and interwoven strands creating a see through lacy appearance easily distinguishable.", + "A lacelike texture appears delicate with intricate openwork patterns resembling fine lace with small holes throughout its structure." + ], + "lined": [ + "A lined texture appears as parallel or intersecting lines creating a distinct pattern easily distinguishable from other textures by its regularity.", + "A lined texture appears as parallel or intersecting lines creating a pattern across the surface in various orientations and densities.", + "Lined textures show consistent parallel lines creating a uniform pattern aiding in easy visual recognition among various textures.", + "A lined texture uniquely features parallel or intersecting lines creating a distinct pattern not found in other textures." + ], + "marbled": [ + "Marbled textures show swirling patterns and color variations unlike uniform or repetitive textures which have consistent appearances throughout.", + "Identify marbled texture by its swirling patterns and blend of colors creating a unique stone like appearance in images.", + "Marbled textures uniquely show swirling patterns of contrasting colors blending seamlessly in a fluid like manner distinct from others.", + "A marbled texture appears with swirling patterns of contrasting colors resembling polished stone surfaces in various designs." + ], + "matted": [ + "A matted texture appears fuzzy and nonreflective unlike shiny or smooth textures which are glossy and reflective in appearance.", + "A matted texture appears fuzzy with tangled fibers lacking shine and smoothness compared to sleek or polished surfaces.", + "Matted textures are characterized by their dense fiber appearance and lack of shine distinguishing them from smoother or glossier surfaces easily.", + "A matted texture appears fuzzy with tangled fibers lacking sheen distinguishing it from smoother shinier textures easily." + ], + "meshed": [ + "Meshed textures appear interwoven with visible gaps unlike solid smooth or patterned textures which have continuous surfaces or repetitive designs.", + "Meshed textures are characterized by interlocking strands forming a grid pattern distinct from other textures by their structured repetitive design.", + "A meshed texture appears as a network of intersecting lines forming a grid pattern easily distinguishable from other textures.", + "A meshed texture appears as an interwoven grid pattern with consistent spacing and uniform openings throughout its structure." + ], + "paisley": [ + "Paisley textures have intricate swirling patterns unlike simpler textures which are more uniform and lack detailed designs in appearance.", + "Paisley textures have swirling teardrop shapes with intricate patterns making them unique and easily distinguishable from other textures.", + "Paisley textures feature swirling teardrop shapes with intricate patterns inside distinguishing them from simpler textures easily.", + "Paisley texture features swirling teardrop shapes with intricate patterns and curving lines creating a distinctive ornamental design in fabrics." + ], + "perforated": [ + "Perforated textures have small holes evenly spaced across the surface distinguishing them from other texture types easily.", + "Perforated textures have holes or openings while others may be smooth rough or have different patterns and colors instead.", + "Perforated textures appear as surfaces with small regular holes or openings distinguishing them from other texture types easily.", + "Perforated texture appears as a surface with small holes evenly distributed creating a patterned look distinct from other textures." + ], + "pitted": [ + "A pitted texture appears as small holes or indentations scattered across a surface giving it a rough uneven look.", + "A pitted texture shows small holes or depressions unlike smooth flat or bumpy surfaces that lack such indentations.", + "A pitted texture appears with small holes or indentations scattered across the surface making it rough and uneven to touch.", + "Pitted textures show irregular holes or depressions giving a rough uneven surface appearance distinct from smooth or patterned textures." + ], + "pleated": [ + "Pleated textures show folded layered patterns unlike smooth flat or rough bumpy surfaces in appearance clearly distinguishing them visually.", + "A pleated texture appears as folded material with parallel ridges and grooves creating a consistent pattern across the surface.", + "Pleated textures show regular folded patterns with visible creases and layered folds distinguishing them from other textures easily.", + "Pleated textures show repeated folds with consistent spacing and directionality making them easily distinguishable from other texture types." + ], + "polka-dotted": [ + "Polka dotted textures are identified by evenly spaced circular spots on a contrasting background easily distinguishing them visually.", + "Polka dotted textures have distinct round spots unlike striped or plain textures which have lines or uniform color respectively.", + "Polka dotted textures feature evenly spaced round spots on a contrasting background for easy visual recognition among various textures.", + "A polka dotted texture features evenly spaced round spots on a solid background creating a playful and distinctive pattern." + ], + "porous": [ + "Porous textures appear with visible holes and gaps allowing air or liquid to pass through easily distinguishing them visually.", + "Porous textures appear with visible holes and gaps unlike smooth solid ones which have uniform continuous surfaces without interruptions or openings.", + "A porous texture appears as a surface with many small holes or openings allowing passage of air or liquid through it.", + "Porous textures show visible holes and gaps allowing light and air passage distinguishing them from solid smooth surfaces easily." + ], + "potholed": [ + "A potholed texture shows irregular holes and rough surfaces unlike smooth or uniformly patterned textures which lack such distinct damage marks.", + "Potholed textures appear bumpy irregular with visible holes and uneven surfaces distinguishing them from smoother textures easily.", + "Potholed textures show irregular sunken areas surrounded by raised edges differing from smooth or uniformly patterned surfaces significantly for easy recognition.", + "Potholed textures uniquely show irregular dark spots surrounded by lighter areas indicating wear and damage on surfaces." + ], + "scaly": [ + "Scaly textures are characterized by overlapping flat pieces creating a rough surface distinct from smooth or fibrous textures in images.", + "Scaly textures appear as small overlapping flat pieces covering a surface resembling fish or reptile skin closely.", + "Scaly textures have rough overlapping scales unlike smooth soft or shiny surfaces which appear uniform and lack layered patterns.", + "A scaly texture appears rough with overlapping flat pieces resembling fish scales or reptile skin in various colors and sizes." + ], + "smeared": [ + "A smeared texture appears blurry and inconsistent unlike sharp clear patterns of other textures in visual appearance analysis.", + "Smeared textures show elongated streaks blending colors smoothly unlike sharp defined patterns in other textures for easy visual recognition.", + "Smeared textures appear blurry with colors blending together lacking sharp edges and distinct shapes in comparison to others.", + "A smeared texture uniquely shows elongated streaks and blurred edges not seen in other texture types clearly." + ], + "spiralled": [ + "A spiralled texture shows continuous curved lines unlike flat smooth or randomly dotted textures which lack such patterns.", + "Spiralled textures show continuous curved lines forming a central point distinguishing them from other varied texture patterns easily.", + "A spiralled texture features continuous curved lines forming a central point with radiating patterns distinguishing it visually among textures.", + "A spiralled texture appears as continuous curved lines forming a coil or helix pattern resembling a spring or whirlpool." + ], + "sprinkled": [ + "A sprinkled texture appears with scattered small elements unlike smooth or densely packed textures in visual appearance and feel.", + "A sprinkled texture appears as small distinct particles scattered unevenly across a surface creating a speckled look easily noticeable.", + "A sprinkled texture appears as scattered small particles over a surface creating a speckled appearance distinct from smooth or uniform textures.", + "Sprinkled textures feature random small dots scattered unevenly creating a speckled appearance distinct from uniform or patterned textures in images." + ], + "stained": [ + "Stained textures show color variations and marks unlike uniform smooth or rough textures which have consistent appearances across the surface area.", + "Stained textures show irregular color patches and varied patterns distinguishing them from uniform or structured textures in images easily.", + "A stained texture appears with irregular color patches and spots differing from the base material in appearance and hue.", + "Stained textures show irregular color patches differing from the main surface making them distinct in appearance among various textures." + ], + "stratified": [ + "Stratified textures show layered patterns with distinct horizontal lines and varying shades for easy recognition among diverse textures.", + "Stratified textures show layered patterns while others may have uniform random or repetitive designs differing in visual structure and complexity.", + "Stratified textures show layered patterns with distinct horizontal lines differing in color or texture from each other visibly.", + "A stratified texture shows layered patterns with distinct horizontal bands differing in color or texture across the surface." + ], + "striped": [ + "A striped texture features parallel lines of alternating colors creating a regular pattern visually distinct from other textures.", + "Striped textures feature parallel lines alternating colors creating a repetitive pattern easily distinguishable from other textures visually.", + "A striped texture is identified by parallel lines of varying colors consistently repeating across the surface in a linear pattern.", + "Striped textures show parallel lines while others like spotted or wavy have irregular patterns and shapes varying in color and size." + ], + "studded": [ + "Studded textures have raised dots or bumps evenly spaced creating a pattern that stands out for easy recognition in images.", + "Studded textures have raised dots or points unlike smooth or patterned textures which lack such protrusions and have uniform surfaces.", + "A studded texture appears with raised dots or bumps evenly distributed creating a patterned surface distinct from smooth or flat ones.", + "A studded texture appears as a surface with small raised dots or bumps scattered across it creating a rough feel." + ], + "swirly": [ + "Swirly textures have circular flowing patterns unlike straight lined or spotted textures which are more uniform and less dynamic in appearance.", + "Swirly textures feature continuous curved lines forming circular patterns distinct from straight or dotted designs enhancing visual flow and complexity.", + "A swirly texture appears with continuous curved lines forming spiral patterns distinct from straight or dotted textures in images.", + "A swirly texture appears as continuous curved lines forming circular patterns resembling whirlpools or abstract designs in various materials." + ], + "veined": [ + "Veined textures show distinct line patterns unlike smooth rough or spotted ones which have uniform or scattered features respectively.", + "A veined texture shows intricate lines resembling veins in leaves or marble creating a detailed pattern across the surface.", + "Veined textures show distinct line patterns across surfaces resembling veins in leaves or marble distinguishing them visually from others easily.", + "Veined textures show distinct linear patterns that intertwine creating a unique network easily distinguishable from other texture types in images." + ], + "waffled": [ + "A waffled texture has a grid pattern with raised squares unlike smooth or rough textures which lack such structured designs.", + "Waffled textures show gridlike patterns with raised squares creating a consistent repetitive design easily distinguishable from other textures visually.", + "A waffled texture appears with square grid patterns and raised dots distinguishing it from other textures easily.", + "A waffled texture uniquely features a grid of intersecting lines creating square or diamond shapes not seen in other textures." + ], + "woven": [ + "Identify woven texture by its interlaced patterns creating a distinct crisscross appearance unlike smooth or granular surfaces.", + "Woven textures show interlaced patterns unlike smooth shiny or rough bumpy surfaces which lack such structured designs in appearance.", + "Woven textures show interlaced patterns with visible threads creating a repetitive geometric structure distinct from other textures in appearance.", + "A woven texture shows interlaced threads forming a patterned surface distinct from smooth or rough textures in appearance." + ], + "wrinkled": [ + "Wrinkled textures show irregular lines folds and creases distinguishing them from smooth or patterned surfaces easily visible to the eye.", + "Wrinkled textures show irregular folds and creases with varied depths and patterns distinguishing them from smooth or structured textures easily.", + "A wrinkled texture appears as uneven folds and creases on a surface resembling aged skin or crumpled fabric.", + "Wrinkled textures show irregular folds and creases unlike smooth flat or bumpy surfaces which have even or raised patterns respectively." + ], + "zigzagged": [ + "Zigzagged textures have sharp angular lines forming repetitive V shapes distinguishing them from smooth or curved patterned textures easily.", + "A zigzagged texture features sharp angular lines forming repeated V shapes creating a dynamic and visually striking pattern in images.", + "A zigzagged texture shows sharp angular lines unlike smooth or wavy textures which have curved continuous patterns instead.", + "Zigzagged textures show repetitive angular patterns that visually stand out due to their distinct alternating peaks and valleys in the surface." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/EuroSAT.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/EuroSAT.json new file mode 100644 index 0000000..4c6bf2b --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/EuroSAT.json @@ -0,0 +1,62 @@ +{ + "Annual Crop Land": [ + "Annual crop land shows regular patterns and straight edges, unlike natural or urban areas with varied textures.", + "Annual crop land appears as regular, rectangular patterns with distinct field boundaries in satellite photos.", + "Annual crop land shows distinct, regularly spaced rectangular patterns from planting and harvesting cycles.", + "Annual crop land has distinct rectangular patterns and straight edges from farming rows visible in satellite photos." + ], + "Forest": [ + "Forest has dense green tree canopies with uniform texture and no visible roads or water bodies.", + "Forest appears as dense green patches, while other land types show varied colors like brown, blue, or urban patterns.", + "Forest has a uniform green color with distinct tree patterns visible in centered satellite photos.", + "Forest appears as dense green patches with uniform tree canopies in a centered satellite photo." + ], + "Herbaceous Vegetation Land": [ + "Herbaceous vegetation land has a uniform, bright green color with no distinct structures or patterns.", + "Herbaceous vegetation has dense green plants with uniform height, unlike forests or urban areas with varied structures.", + "Herbaceous vegetation appears as uniform green areas, unlike forests or urban areas with varied textures and colors.", + "Herbaceous vegetation appears as uniform green areas with no trees, distinct from forests or urban regions." + ], + "Highway or Road": [ + "Look for long, straight, dark lines with few trees or buildings, often with parallel edges.", + "Highways have straight, long, and uniform lines with clear edges, unlike other land types.", + "Highways or roads have long, straight, and continuous linear patterns in centered satellite photos.", + "Highways or roads appear as straight, dark lines, while other land types show varied textures and colors." + ], + "Industrial Buildings": [ + "Industrial buildings have distinct rectangular shapes with multiple smaller structures and flat roofs.", + "Industrial buildings have flat roofs and structured layouts, unlike natural or agricultural lands with varied textures.", + "Look for large, rectangular structures with flat roofs and organized layouts, often surrounded by roads or parking areas.", + "Industrial buildings have large, flat roofs and geometric shapes with uniform colors, often surrounded by parking lots." + ], + "Pasture Land": [ + "Pasture land has evenly spaced green patches with visible grazing animals, unlike other land types.", + "Pasture land appears greener and more uniform than other land types in centered satellite photos.", + "Pasture land has a uniform green color with visible grazing patterns and fewer distinct structures.", + "Pasture land appears as uniform green patches with visible grazing animals or sparse vegetation." + ], + "Permanent Crop Land": [ + "Permanent crop land has distinct rows or patterns, unlike natural or urban areas with irregular shapes.", + "Permanent crop land has organized rows and geometric patterns, unlike natural or irregularly shaped land types.", + "Permanent crops have distinct, regularly shaped fields with visible planting patterns, unlike other land types.", + "Permanent crop land appears as regular, rectangular patterns with distinct rows, often green, in satellite photos." + ], + "Residential Buildings": [ + "Residential buildings have uniform, rectangular shapes with organized layouts and small, evenly spaced structures.", + "Residential buildings have uniform structures and roofs, unlike natural or agricultural land which shows varied textures.", + "Residential buildings have distinct, organized patterns of small, rectangular structures with uniform spacing.", + "Look for dense, organized structures with flat rooftops and small yards in the center of the image." + ], + "River": [ + "Rivers are long, narrow, winding water bodies that stand out from other land types due to their distinct blue color.", + "River has a winding, narrow shape with dark blue water, unlike the uniform green of forests or fields.", + "Look for winding, narrow, dark blue lines flowing through the landscape, often branching or merging.", + "River has a distinct winding, serpentine shape with dark, flowing water visible in the image." + ], + "Sea or Lake": [ + "Water bodies are large, dark, smooth areas with no vegetation, reflecting light differently than land.", + "Water bodies are large, dark, and reflective, surrounded by land, unlike other terrain types.", + "Look for large, flat, dark blue areas with smooth, uniform surfaces, often surrounded by lighter land.", + "Sea or Lake appears as a large, uniform blue area, unlike land which shows varied textures and colors." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/FGVCAircraft.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/FGVCAircraft.json new file mode 100644 index 0000000..3bb5c4b --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/FGVCAircraft.json @@ -0,0 +1,602 @@ +{ + "707-320": [ + "Look for a large, long-range jet with a distinctive swept wing and four engines under the wings.", + "A 707-320 is a large, long-range jet airliner with four engines and a distinctive tail design.", + "The 707-320 has a longer, narrower body and four engines, unlike many twin-engine or smaller aircraft.", + "The 707-320 has a long, narrow body with four engines and a distinctive T-tail configuration." + ], + "727-200": [ + "Look for a medium-sized jet with a T-tail, three engines, and a distinctive bulbous nose.", + "A 727-200 is a medium-sized jet with a distinctive T-tail and three engines, common in passenger flights.", + "The 727-200 has a distinctive T-tail and three engines, with a longer fuselage than the 727-100.", + "The 727-200 has a distinctive T-tail and three engines, unlike most other aircraft with conventional tails." + ], + "737-200": [ + "Look for a medium-sized jet with a rounded nose, T-tail, and two engines under the wings.", + "A 737-200 is a mid-sized jet with a distinctive T-tail and two engines mounted on the wings.", + "The 737-200 has a distinctive T-tail and shorter fuselage compared to most other aircraft types.", + "The 737-200 has a distinctive T-tail and rounded nose, with a shorter fuselage compared to other 737 models." + ], + "737-300": [ + "A 737-300 is a medium-sized passenger jet with a distinctive T-tail and two engines under the wings.", + "Look for a medium-sized jet with a rounded nose, T-tail, and two engines under the wings.", + "The 737-300 has a distinctive T-tail and winglets, with a rounded nose and medium-length fuselage.", + "The 737-300 has a distinctive T-tail and shorter fuselage compared to many other aircraft types." + ], + "737-400": [ + "Look for a medium-sized jet with a pointed nose, wing-mounted engines, and a slightly curved tail.", + "A 737-400 is a medium-sized passenger jet with a distinctive T-tail and two engines under its wings.", + "The 737-400 has a medium size, T-tail, and distinctive winglets for easy recognition among aircraft.", + "The 737-400 has a distinctive T-tail and rear-mounted engines, unlike many other aircraft designs." + ], + "737-500": [ + "The 737-500 is a medium-sized, twin-engine jet with a distinctive T-tail and pointed nose.", + "Look for a medium-sized jet with a rounded nose, wing-mounted engines, and a T-tail configuration.", + "The 737-500 has a distinctive shorter body and older design compared to newer, longer aircraft types.", + "The 737-500 has a distinctive rounded nose and a small, single emergency exit above the rear door." + ], + "737-600": [ + "A 737-600 is a medium-sized passenger jet with a distinctive T-tail and swept wings.", + "Look for a mid-sized Boeing jet with a pointed nose, two engines, and a distinctive T-tail.", + "The 737-600 has a distinctive shorter body compared to larger aircraft and lacks the wide-body design of others.", + "The 737-600 has a distinctive short fuselage and winglets, distinguishing it from other Boeing 737 variants." + ], + "737-700": [ + "Look for a medium-sized jet with a pointed nose, two engines under wings, and a small tail.", + "A 737-700 is a mid-sized passenger jet with a distinctive T-tail and two engines under its wings.", + "The 737-700 has a distinctive T-tail and smaller wings compared to many other aircraft types.", + "The 737-700 has a distinctive T-tail and straight wings with small winglets." + ], + "737-800": [ + "A 737-800 is a medium-sized, twin-engine jet with a pointed nose and straight wings.", + "Look for a medium-sized jet with a pointed nose, straight wings, and two engines under the wings.", + "The 737-800 has a distinctive T-tail and single-aisle design, unlike many larger wide-body aircraft.", + "The 737-800 has a distinctive T-tail and two engines under shorter wings compared to most other aircraft." + ], + "737-900": [ + "Look for a medium-sized, twin-engine jet with a pointed nose and slightly swept-back wings.", + "A 737-900 is a mid-sized, twin-engine jet with a distinctive T-tail and pointed nose, common in commercial fleets.", + "The 737-900 has a distinctive narrow body and wing design compared to wider bodies or different wing shapes.", + "The 737-900 has a distinctive short fuselage with winglets and a large tail fin compared to other aircraft." + ], + "747-100": [ + "A 747-100 is a large, wide-body jet with a distinctive hump on the front and four engines.", + "The 747-100 has a distinctive hump on the top of the fuselage that other aircraft lack.", + "Look for a large, wide-body jet with a distinctive hump on the front and four engines.", + "The 747-100 has a distinctive hump on top, unlike most other aircraft which have a straight fuselage." + ], + "747-200": [ + "A 747-200 is a large, wide-body jet with four engines and a distinctive hump on the front.", + "Look for a large, wide-body jet with four engines and distinctive hump on the front.", + "The 747-200 has a distinctive hump on the upper deck that other aircraft do not have.", + "The 747-200 has a distinctive hump on the fuselage and four engines, making it easy to recognize." + ], + "747-300": [ + "A 747-300 is a large, wide-body jet with a distinctive upper deck and three decks on the tail.", + "Look for a stretched upper deck and three decks visible from the front when identifying a 747-300.", + "The 747-300 has a stretched upper deck compared to other 747 models and most other aircraft.", + "The 747-300 has a stretched upper deck that extends further forward than any other 747 variant." + ], + "747-400": [ + "A 747-400 is a large, wide-body jet with four engines and a distinctive hump on the front.", + "The 747-400 has distinctive hump-like upper deck and four engines, unlike most other aircraft.", + "The 747-400 has a distinctive hump, four engines, and winglets, making it easy to recognize.", + "The 747-400 has distinctive winglets and a longer upper deck compared to other aircraft." + ], + "757-200": [ + "Look for a medium-sized twin-engine jet with a T-tail and a distinctive rounded nose.", + "A 757-200 is a medium-sized twin-engine jet with a distinctive T-tail and pointed nose.", + "The 757-200 has a distinctive T-tail, two engines, and a medium-length fuselage with a pointed nose.", + "The 757-200 has a distinctive T-tail configuration not found on most other aircraft types." + ], + "757-300": [ + "Look for a medium-sized, twin-engine jet with a straight wing and a distinctive pointed nose.", + "A 757-300 is a medium-sized, twin-engine jet with a longer body than the standard 757.", + "The 757-300 has a longer fuselage than the 757-200 and distinctive winglets for easy recognition.", + "The 757-300 has a longer fuselage than other 757 models but similar wings and tail." + ], + "767-200": [ + "A 767-200 is a wide-body jet with two engines, medium wings, and a distinctive T-tail.", + "Look for a large, wide-body jet with two engines and distinctive winglets.", + "The 767-200 has a distinctive wide-body design with two engines, unlike many narrow-body or three-engine aircraft.", + "The 767-200 has a distinctive wide-body design with two engines mounted under the wings." + ], + "767-300": [ + "A 767-300 is a medium-sized wide-body jet with two engines and a distinctive T-tail.", + "Look for a large, wide-body jet with two engines and distinctive winglets on the tips.", + "The 767-300 has a distinctive wide-body design with two engines, unlike many narrow-body or four-engine aircraft.", + "The 767-300 has a distinctive wide-body design with two engines and a prominent T-tail." + ], + "767-400": [ + "A 767-400 is a wide-body jet with a longer fuselage and larger wings than most narrow-body planes.", + "Look for a wide-body jet with a rounded nose, winglets, and a distinctive stretched fuselage compared to other 767s.", + "The 767-400 has a longer fuselage and larger wings compared to other similar aircraft types.", + "The 767-400 has a wide-body design with curved wingtips and a distinctive stretched fuselage compared to other aircraft." + ], + "777-200": [ + "Look for a large twin-engine jet with a distinctive wide-body design and a pointed nose.", + "A 777-200 is a large, wide-body jet with two engines, often used for long-haul flights.", + "The 777-200 has a wide body, long wings, and distinctive winglets, making it easily recognizable.", + "The 777-200 has a distinctive wide-body design with a large, rounded fuselage and high-wing placement." + ], + "777-300": [ + "Look for a large twin-engine jet with a distinctive wide-body and a pointed nose.", + "The 777-300 has a long fuselage, large wings, and distinctive tail design with a pointed nose.", + "A 777-300 is a large wide-body jet with a distinctive wing design and long fuselage.", + "The 777-300 has a longer fuselage and larger wings compared to most other aircraft types." + ], + "A300B4": [ + "Look for a wide-body twin-engine jet with a distinctive rounded nose and large winglets.", + "The A300B4 has a wide body and twin engines, unlike many smaller or narrow-bodied aircraft.", + "The A300B4 has a wide, twin-engine fuselage with high-mounted wings and a distinctive T-tail.", + "The A300B4 is a wide-body twin-engine jet airliner with a distinctive high-wing design." + ], + "A310": [ + "Look for a wide-body twin-engine jet with a distinctive T-tail and a rounded nose.", + "The A310 is a medium-sized, twin-engine jet with a distinctive T-tail and straight wings.", + "The A310 has a distinctive twin-engine layout with a T-tail and a medium-sized, pointed nose.", + "The A310 has a distinctive wide-body design with a T-tail, unlike many other aircraft." + ], + "A318": [ + "An A318 is a small Airbus jet with a sleek body and wing design.", + "Look for a small Airbus with a pointed nose and distinct winglets near the wingtips.", + "The A318 has a short fuselage, small wings, and a distinctive Airbus tail shape.", + "The A318 is smaller than most airliners and has a distinctive short fuselage compared to others." + ], + "A319": [ + "Look for a short fuselage, winglets, and a distinctive Airbus tail with a rounded tip.", + "The A319 has a shorter fuselage than larger Airbus models but similar wings and tail design.", + "The A319 is a smaller, narrow-body jet with a pointed nose and straight wings.", + "The A319 has a short fuselage, winglets, and a specific tail design compared to other aircraft." + ], + "A320": [ + "An A320 is a medium-sized, twin-engine jet with a pointed nose and straight wings.", + "Look for its wide fuselage, winglets, and two engines mounted under the wings.", + "The A320 has a distinctive T-tail and winglets that set it apart from most other aircraft.", + "The A320 has a distinctive T-tail and winglets, unlike many other aircraft with conventional tail and wing designs." + ], + "A321": [ + "Look for a medium-sized Airbus with a wide body and a slightly curved nose.", + "An A321 is a medium-sized passenger jet with a wide body and two engines under its wings.", + "The A321 has a longer fuselage than other Airbus models with the same wing design.", + "The A321 has a longer fuselage than other Airbus models and a distinctive wing design." + ], + "A330-200": [ + "Look for a wide-body twin-engine jet with a pointed nose and a distinctive stretched fuselage.", + "The A330-200 is a wide-body jet with two engines, similar to other Airbus wide-body aircraft.", + "The A330-200 has a longer body and smaller wings compared to most other aircraft types.", + "The A330-200 has a wide-body design, two engines, and a distinctive winglet shape for easy recognition." + ], + "A330-300": [ + "Look for a wide-body twin-engine jet with a large wing span and a distinctive tail design.", + "The A330-300 is a wide-body jet with two engines, larger than most narrow-body aircraft.", + "The A330-300 has a wide body and two engines, distinguishing it from smaller or single-aisle aircraft.", + "The A330-300 has a wide body, two engines, and a distinctive wing design with winglets." + ], + "A340-200": [ + "The A340-200 has a longer fuselage and four engines, distinguishing it from most other aircraft.", + "Look for a long, slender fuselage with four engines and a distinctive wing shape.", + "The A340-200 has four engines and a longer, more pointed nose compared to most other aircraft.", + "A A340-200 is a long-range, four-engine jet with a distinctive wing design and slightly tapered fuselage." + ], + "A340-300": [ + "Look for a long, wide-body aircraft with four engines and a distinctive T-tail configuration.", + "The A340-300 is a long-range, four-engine jet airliner with a distinctive wide-body design.", + "The A340-300 has four engines and a longer, more pointed nose compared to most twin-engine aircraft.", + "The A340-300 has four engines, a wide body, and a distinctive wing design with winglets." + ], + "A340-500": [ + "The A340-500 is longer and has four engines, unlike most twin-engine or three-engine aircraft.", + "Look for a long, slender fuselage with four engines and a distinctive wing design.", + "The A340-500 has a long fuselage, four engines under wings, and a distinctive tail shape.", + "The A340-500 is a long-range, four-engine jet with a sleek body and extended wings compared to other aircraft." + ], + "A340-600": [ + "A A340-600 is a long-range, wide-body jet with four engines and a distinctive stretched fuselage.", + "Look for a long, wide-body aircraft with four engines and a distinctive T-tail configuration.", + "The A340-600 has four engines and a longer fuselage compared to most other aircraft types.", + "The A340-600 has a longer fuselage compared to other A340 models and most other aircraft." + ], + "A380": [ + "A380 is a large, wide-body, four-engine passenger aircraft with two main decks.", + "Look for a large, double-deck airplane with four engines and a distinctive wide body.", + "The A380 has four engines and a distinctive double-deck fuselage that other aircraft lack.", + "The A380 is much larger with two full decks and four engines compared to other aircraft." + ], + "ATR-42": [ + "The ATR-42 is a twin-engine turboprop aircraft with short wings and a high-wing configuration.", + "The ATR-42 has distinct twin turboprop engines and a short, robust fuselage with a high-wing design.", + "Look for a twin-engine regional airliner with a distinctive rounded nose and relatively short, stocky fuselage.", + "The ATR-42 has fixed landing gear and twin turboprop engines, unlike many jet or retractable-gear aircraft." + ], + "ATR-72": [ + "An ATR-72 is a twin-engine turboprop aircraft with short wings and a boxy fuselage.", + "Look for a twin-engine turboprop with T-tail, rounded nose, and distinctive winglets.", + "The ATR-72 has fixed wings and twin turboprop engines, unlike jet aircraft with retractable landing gear.", + "The ATR-72 has a twin-engine turboprop design with short wings and a distinctive high-wing configuration." + ], + "An-12": [ + "An An-12 has a large boxy fuselage, four engines under wings, and a high tail with a twin tailboom.", + "The An-12 has a distinctive tail with a high-mounted horizontal stabilizer and twin vertical fins.", + "The An-12 is a four-engine turboprop cargo aircraft with a distinctive high-wing design.", + "The An-12 has a large tail fin and four engines mounted on top of the wings." + ], + "BAE 146-200": [ + "The BAE 146-200 is a small, four-engine jet with a boxy shape and no tail-mounted engines.", + "Look for a small, wide-body jet with four engines and a distinctive T-tail configuration.", + "The BAE 146-200 has a distinctive boxy shape, four engines under wings, and no tail-mounted engines.", + "The BAE 146-200 has a distinctive boxy shape and four engines on the rear fuselage, unlike most other aircraft." + ], + "BAE 146-300": [ + "The BAE 146-300 is a small, four-engine jet with a boxy shape and no tail-mounted engines.", + "Look for a short, wide-body jet with four engines and large windows, often with winglets.", + "The BAE 146-300 has a distinctive boxy shape and four engines, unlike many other aircraft.", + "The BAE 146-300 has a distinctive boxy shape, four engines under wings, and a high T-tail." + ], + "BAE-125": [ + "Look for a small, executive jet with a distinctive swept wing and a T-tail.", + "The BAE-125 is a small, executive jet with a streamlined body and short wings.", + "The BAE-125 has a distinctive tail design with a small, rounded fin compared to other aircraft.", + "The BAE-125 has a small, streamlined body with a distinctive T-tail and straight wings for easy recognition." + ], + "Beechcraft 1900": [ + "The Beechcraft 1900 has a distinctive twin-engine turboprop design, unlike many other aircraft types.", + "A Beechcraft 1900 is a small twin-engine turboprop aircraft with a short fuselage and fixed landing gear.", + "The Beechcraft 1900 has a small twin-engine turboprop design with a high-wing and fixed tricycle landing gear.", + "Look for a small twin-engine turboprop with a high-wing and a distinctive tail design." + ], + "Boeing 717": [ + "Look for a small twin-engine jet with a T-tail and a rounded nose.", + "The Boeing 717 is a twin-engine jet with a T-tail and a distinctive rounded nose.", + "The Boeing 717 has a T-tail, two engines under wings, and a distinctive rounded nose.", + "The Boeing 717 has a unique T-tail and rear-mounted engines, unlike most other aircraft." + ], + "C-130": [ + "A C-130 is a large, four-engine transport aircraft with high wings and a distinctive tail.", + "Look for a large, boxy cargo plane with four engines and high wings.", + "The C-130 has a distinctive boxy fuselage and high-wing design unlike many other aircraft.", + "Its distinctive boxy cargo hold and high wing design set it apart from other aircraft." + ], + "C-47": [ + "A C-47 is a twin-engine cargo plane with a distinctive tail and cargo door, common in military use.", + "Look for a twin-engine, high-wing cargo plane with a rounded nose and twin tail.", + "The C-47 has a distinctive twin-engine, high-wing design with a rounded nose and tail fin.", + "The C-47 has a distinctive rounded nose and twin engines, unlike many other aircraft with different shapes." + ], + "CRJ-200": [ + "The CRJ-200 is a small regional jet with a short fuselage and two engines under its wings.", + "The CRJ-200 has a distinctive small size, rear-mounted engines, and a T-tail, unlike many larger aircraft.", + "Look for a small regional jet with two engines, a T-tail, and a distinctive pointed nose.", + "The CRJ-200 has a small, streamlined body with winglets and a distinctive tail shape for easy recognition." + ], + "CRJ-700": [ + "A CRJ-700 is a regional jet with a small size, two engines, and a pointed nose.", + "The CRJ-700 has a distinctive T-tail configuration that is not found on other aircraft types.", + "The CRJ-700 has a distinctive small size, rear-mounted engines, and a T-tail configuration for easy recognition.", + "Look for a small regional jet with two engines, a T-tail, and a pointed nose." + ], + "CRJ-900": [ + "A CRJ-900 is a small regional jet with a pointed nose and two engines under its wings.", + "The CRJ-900 has a distinctive T-tail design that is not found on other aircraft types.", + "Look for a small regional jet with a pointed nose, large wings, and two engines under the wings.", + "The CRJ-900 has a small, streamlined body with high wing-mounted engines and a distinctive tail shape." + ], + "Cessna 172": [ + "A Cessna 172 is a small, single-engine, high-wing aircraft with a tail wheel configuration.", + "Look for a small, single-engine, high-wing, tricycle-gear plane with a rounded nose and tail.", + "Cessna 172s are small, high-wing, single-engine planes, unlike larger jets or multi-engine aircraft with different wing positions.", + "Its high-wing, tricycle landing gear, and single-engine configuration are distinctive." + ], + "Cessna 208": [ + "A Cessna 208 is a small, single-engine turboprop aircraft with a high-wing design.", + "Look for a small, single-engine turboprop with a high-wing and a large rear cargo door.", + "The Cessna 208 has a boxy fuselage and turboprop engine, unlike many other aircraft with sleeker designs.", + "The Cessna 208 has a high-wing, turboprop design with a large, boxy fuselage and fixed landing gear." + ], + "Cessna 525": [ + "A Cessna 525 is a small, twin-engine business jet with a streamlined fuselage and retractable landing gear.", + "The Cessna 525 is smaller with a streamlined design compared to larger, bulkier commercial or military aircraft.", + "Look for a small, sleek, corporate jet with a distinctive T-tail and short, wide wings.", + "The Cessna 525 has a small, streamlined body with a distinctive T-tail and a rear-mounted engine." + ], + "Cessna 560": [ + "A Cessna 560 is a small, single-engine, propeller-driven aircraft with a streamlined fuselage.", + "Look for a small, white, twin-engine plane with a distinctive T-tail and straight wings.", + "A Cessna 560 has a smaller, more streamlined body compared to larger commercial or military aircraft.", + "The Cessna 560 has a distinctive small size, high wing, and bubble canopy for easy recognition." + ], + "Challenger 600": [ + "A Challenger 600 is a business jet with a sleek, corporate design, distinct from military or commercial airliners.", + "The Challenger 600 is a mid-size business jet with a distinctive T-tail, unlike most other aircraft.", + "The Challenger 600 has a distinctive T-tail and straight wings with a sleek, corporate jet design.", + "Look for a sleek, corporate jet with a T-tail, retractable tricycle landing gear, and a pointed nose." + ], + "DC-10": [ + "The DC-10 has three engines, a distinctive T-tail, and a wide-body design with a high wing.", + "The DC-10 has three engines, with one mounted on the tail and two on the wings.", + "A DC-10 is a large, wide-body jet with three engines and distinctive T-tail configuration.", + "Look for a wide-body trijet with a distinctive T-tail and three engines, one on each wing and one on the tail." + ], + "DC-3": [ + "A DC-3 is a twin-engine propeller aircraft with a distinctive rounded fuselage and tail.", + "Look for a twin-engine, low-wing aircraft with a rounded nose and a distinctive tail design.", + "The DC-3 has a distinctive twin-engine, low-wing design with a rounded nose, unlike many other aircraft.", + "The DC-3 has a distinctive twin-engine, low-wing design with a rounded nose and tail." + ], + "DC-6": [ + "Look for a four-engine, mid-wing, tail-mounted propeller aircraft with a distinctive rounded nose and fuselage.", + "A DC-6 is a mid-sized propeller aircraft with a streamlined body and four engines.", + "The DC-6 has a distinctive tail design with a rounded top and a forward-sloping stabilizer.", + "The DC-6 has a distinctive high-wing, taildragger configuration with a large tail and rounded nose." + ], + "DC-8": [ + "A DC-8 is a large, four-engine jet airliner with a long fuselage and swept wings.", + "A DC-8 has a long, narrow body, swept wings, and four engines mounted under the wings.", + "The DC-8 has a distinct narrow fuselage and four underwing engines, unlike many other aircraft designs.", + "The DC-8 has a distinctive narrow fuselage, four engines under swept wings, and a T-tail configuration." + ], + "DC-9-30": [ + "Look for a small, twin-engine jet with a T-tail and a pointed nose.", + "A DC-9-30 is a medium-sized, twin-engine jet with a T-tail and a pointed nose.", + "The DC-9-30 has a distinctive T-tail configuration with a high-mounted horizontal stabilizer.", + "The DC-9-30 has a distinctive T-tail and two engines mounted on the rear fuselage." + ], + "DH-82": [ + "A DH-82 aircraft is a small, biplane with fixed landing gear and a tail skid.", + "The DH-82 has a biplane design with fixed landing gear, unlike many monoplanes with retractable gear.", + "The DH-82 aircraft has a unique biplane design with wings of equal span and a fixed landing gear.", + "The DH-82 aircraft has a biplane design with fixed landing gear and a distinctive open cockpit." + ], + "DHC-1": [ + "Look for a small, single-engine biplane with a fixed tailwheel landing gear and a rounded nose.", + "The DHC-1 has a simple, rugged design with fixed landing gear, unlike many aircraft with retractable gears.", + "The DHC-1 is a small, single-engine biplane with a wooden frame and fixed landing gear.", + "The DHC-1 has a high wing, fixed landing gear, and a distinctive tail design with a large vertical stabilizer." + ], + "DHC-6": [ + "The DHC-6 is a twin-engine turboprop aircraft with short wings and a high tail.", + "Look for a twin-engine, high-wing aircraft with short, stubby wings and a distinctive tail configuration.", + "The DHC-6 has a distinctive twin-engine turboprop design with high wings and a short, stocky fuselage.", + "The DHC-6 has twin turboprop engines and a high-wing design, unlike many other aircraft with different configurations." + ], + "DHC-8-100": [ + "The DHC-8-100 is a small, twin-engine turboprop aircraft with a short nose and straight wings.", + "The DHC-8-100 has a short fuselage, high-wing, and twin turbofan engines mounted on wings.", + "Look for a small twin-engine turboprop with a T-tail and fixed landing gear.", + "The DHC-8-100 has a distinctive T-tail and high-wing design, unlike many other aircraft." + ], + "DHC-8-300": [ + "A DHC-8-300 is a twin-engine regional turboprop aircraft with a distinctive high-wing design.", + "Look for a twin-engine turboprop with a T-tail and a distinctive high-wing design.", + "The DHC-8-300 has a distinctive T-tail, high wings, and turbofan engines mounted on the rear fuselage.", + "The DHC-8-300 has a distinctive turboprop design with large propellers, unlike jet aircraft with smaller engines." + ], + "DR-400": [ + "A DR-400 is a small, light aircraft with low wings and a tailwheel, often used for training.", + "The DR-400 has a low wing and tricycle landing gear, unlike many other aircraft with high wings or tail wheels.", + "Look for a small, low-wing, tricycle-gear airplane with a rounded nose and bubble canopy.", + "The DR-400 has a low-wing, tricycle landing gear, and a distinctive bubble canopy for easy recognition." + ], + "Dornier 328": [ + "A Dornier 328 is a small twin-engine turboprop aircraft with a conventional design.", + "Look for a small twin-engine turboprop with a distinctive T-tail and a rounded nose.", + "The Dornier 328 has a distinct turboprop design with a high-wing and twin engines, unlike many jet aircraft.", + "The Dornier 328 has a distinctive twin-engine turboprop design with a short nose and high wings." + ], + "E-170": [ + "Look for a small, twin-engine jet with a T-tail and a distinctive pointed nose.", + "The E-170 is a small, twin-engine jet with a sleek body and a standard tail design.", + "The E-170 has a distinctive T-tail and rear-mounted engines, unlike most other aircraft.", + "The E-170 has a distinctive T-tail and rear-mounted engines, unlike most other aircraft." + ], + "E-190": [ + "The E-190 has a small wing, rear-mounted engines, and a distinctive T-tail configuration.", + "The E-190 is a mid-sized commercial jet with a twin-engine configuration and a sleek, modern design.", + "Look for a medium-sized jet with a T-tail and winglets, often used for regional flights.", + "The E-190 has a distinctive T-tail configuration that is not found on other aircraft types." + ], + "E-195": [ + "Look for a medium-sized, twin-engine jet with a pointed nose and a T-tail configuration.", + "The E-195 is a narrow-body jet with a T-tail and rear-mounted engines.", + "The E-195 has a wide fuselage, rear-mounted engines, and a T-tail configuration for easy identification.", + "The E-195 has a longer fuselage and larger wings compared to smaller regional jets." + ], + "EMB-120": [ + "Look for a small, twin-engine turboprop with a distinctive T-tail and a rounded nose.", + "The EMB-120 is a small twin-engine commuter plane with a rounded nose and straight wings.", + "The EMB-120 has a twin-turboprop design with a distinctive T-tail and rounded wingtips.", + "The EMB-120 has a distinctive twin-engine turboprop design with a rounded nose and T-tail, unlike many other aircraft." + ], + "ERJ 135": [ + "Look for a small, twin-engine jet with a T-tail and a pointed nose.", + "The ERJ 135 has a small size, high wing, and rear-mounted engines for easy recognition.", + "The ERJ 135 has a distinctive T-tail configuration not found on other aircraft types.", + "The ERJ 135 is a small regional jet with a short fuselage and rear-mounted engines." + ], + "ERJ 145": [ + "Look for a small, regional jet with a T-tail, rear-mounted engines, and a pointed nose.", + "The ERJ 145 has a small size, rear-mounted engines, and a distinctive T-tail, making it easy to recognize.", + "An ERJ 145 is a small regional jet with a T-tail and rear-mounted engines.", + "Its distinctive T-tail configuration is unique to the ERJ 145 among all aircraft types." + ], + "Embraer Legacy 600": [ + "Look for a mid-size executive jet with a T-tail and swept wings.", + "The Embraer Legacy 600 is a mid-size business jet with a sleek design and straight wings.", + "The Embraer Legacy 600 has a distinctive wide-body design with a T-tail and large winglets.", + "The Embraer Legacy 600 has a distinct wide-body design and T-tail, unlike many other aircraft." + ], + "Eurofighter Typhoon": [ + "The Eurofighter Typhoon is a twin-engine, delta-wing fighter with canards and a distinctive swept-back tail.", + "The Eurofighter Typhoon has a delta-wing design with canards, unlike most aircraft that have conventional wings.", + "The Eurofighter Typhoon has a delta-wing design with canards and a twin-engine configuration.", + "Look for a delta-wing, canard configuration with twin tails and a distinctive forward-swept wing root." + ], + "F-16A/B": [ + "Look for a small, single-engine fighter with a bubble canopy and a pointed nose.", + "The F-16A/B is a single-engine fighter jet with a tail fin and a bubble canopy.", + "The F-16A/B has a single-engine, bubble canopy, and swept wings with a distinctive tail fin.", + "The F-16A/B has a single-engine, delta wing design with a bubble canopy, unlike many multi-engine aircraft." + ], + "F/A-18": [ + "Look for a twin-engine, multirole fighter with forward-swept canards and a distinctive tailhook.", + "A F/A-18 is a twin-engine, multirole fighter jet with distinctive wing configurations and sharp, angular design.", + "The F/A-18 has a distinctive twin tail, forward canards, and a trapezoidal wing shape for easy recognition.", + "The F/A-18 has a unique forward-swept leading edge on its wings." + ], + "Falcon 2000": [ + "The Falcon 2000 is a twin-engine business jet with a sleek design and mid-size cabin.", + "Look for its distinctive twin-engine, swept-wing design with a T-tail and a pointed nose.", + "The Falcon 2000 has a distinctive twin-engine layout and a T-tail, unlike many other aircraft.", + "The Falcon 2000 has a distinctive T-tail configuration not seen on other aircraft types." + ], + "Falcon 900": [ + "Look for a large, three-engine jet with a distinctive T-tail and a pointed nose.", + "The Falcon 900 has three engines and a distinctive T-tail, unlike most other aircraft.", + "A Falcon 900 is a sleek, business jet with a mid-size body and high wings.", + "The Falcon 900 has a distinctive T-tail configuration not found on other aircraft types." + ], + "Fokker 100": [ + "Look for a short fuselage with winglets, a T-tail, and a distinctive nose shape.", + "A Fokker 100 is a medium-sized jet with a rounded nose, straight wings, and a conventional tail.", + "The Fokker 100 has a distinctive T-tail and straight wings, unlike many other aircraft with swept wings.", + "The Fokker 100 has a distinct T-tail and large winglets, making it easily recognizable among aircraft." + ], + "Fokker 50": [ + "Look for a twin-engine turboprop with a rounded nose and a distinctive high wing design.", + "A Fokker 50 is a medium-sized twin-engine turboprop aircraft with a distinctive high wing and tail design.", + "The Fokker 50 has a distinctive T-tail configuration that sets it apart from other aircraft.", + "The Fokker 50 has a distinctive T-tail and straight wings with small winglets." + ], + "Fokker 70": [ + "Look for a medium-sized jet with a T-tail, straight wings, and a distinctive rounded nose.", + "The Fokker 70 is a medium-sized twin-engine jet with a sleek body and T-tail design.", + "The Fokker 70 has a distinctive rounded nose and small, forward-mounted horizontal stabilizers.", + "The Fokker 70 has a distinctive rounded nose and shorter fuselage compared to many other aircraft." + ], + "Global Express": [ + "A Global Express is a long-range business jet with a sleek design and pointed nose.", + "The Global Express has a distinctive elongated fuselage with a large, pointed nose.", + "Look for a sleek, corporate jet with a T-tail and pointed nose, often in corporate liveries.", + "The Global Express has a longer, sleeker body and a distinctive T-tail compared to most other aircraft." + ], + "Gulfstream IV": [ + "A Gulfstream IV is a sleek, corporate jet with a pointed nose and straight wings.", + "Look for a sleek, corporate jet with a distinctive T-tail and pointed nose.", + "The Gulfstream IV has a distinctive sleek fuselage, T-tail, and large winglets for easy recognition.", + "A Gulfstream IV has a distinctive sleek design with a T-tail, unlike many other aircraft with conventional tails." + ], + "Gulfstream V": [ + "A Gulfstream V is a sleek, business jet with a pointed nose and straight wings.", + "The Gulfstream V has a distinctive pointed nose and swept wings, unlike many other aircraft.", + "Look for a large, sleek business jet with a distinctive T-tail and pointed nose.", + "The Gulfstream V has a distinctive T-tail and straight wings with winglets for easy recognition." + ], + "Hawk T1": [ + "The Hawk T1 has a short nose, straight wings, and a T-tail, distinguishing it from other aircraft.", + "Look for a small, two-seat trainer with a short nose, bubble canopy, and delta wings.", + "A Hawk T1 is a small, twin-engine jet trainer with a straight wing and a T-tail.", + "The Hawk T1 has a distinctive trainer design with tandem seating and a less streamlined body than combat aircraft." + ], + "Il-76": [ + "The Il-76 is a large, military transport aircraft with four engines and a distinctive tail design.", + "Look for a large, four-engine cargo plane with a distinctive high T-tail and rear loading ramp.", + "The Il-76 has a distinctive boxy shape and high-mounted wings, unlike most other aircraft.", + "The Il-76 has a large, boxy fuselage, high-mounted wings, and four turbofan engines for easy recognition." + ], + "L-1011": [ + "Look for a large trijet with a distinctive T-tail and three rear-mounted engines.", + "The L-1011 is a large, wide-body jet with a distinctive tri-engine layout and a glass nose.", + "The L-1011 has a distinctive trijet layout with three engines, unlike most twin-jet or four-engine aircraft.", + "The L-1011 has a distinctive trijet engine layout with three engines, one on the tail and two under the wings." + ], + "MD-11": [ + "Look for a large, wide-body jet with a distinctive tail and three engines, including one on the tail.", + "The MD-11 is a wide-body jet with a distinctive tail and three engines, larger than many other aircraft.", + "The MD-11 has a distinctive tail design and larger wings compared to many other aircraft.", + "The MD-11 has a distinctive tail design, longer fuselage, and winglets that set it apart from other aircraft." + ], + "MD-80": [ + "Look for a short fuselage with winglets, two engines under the wings, and a T-tail configuration.", + "The MD-80 has a distinctive T-tail, wing-mounted engines, and a rounded nose for easy recognition.", + "The MD-80 is a mid-sized jet airliner with a distinctive T-tail and wing-mounted engines.", + "The MD-80 has a distinctive T-tail and rear-mounted engines, unlike many other aircraft with different tail and engine placements." + ], + "MD-87": [ + "Look for a twin-engine jet with a T-tail and a pointed nose, shorter than a MD-88.", + "The MD-87 is a medium-sized twin-engine jet with a pointed nose and a T-tail configuration.", + "The MD-87 has a distinctive T-tail and longer body compared to most other aircraft.", + "The MD-87 has a unique short fuselage, T-tail, and winglets, distinguishing it from other aircraft types." + ], + "MD-90": [ + "Look for a twin-engine jet with a T-tail and a pointed nose, similar to a smaller MD-11.", + "The MD-90 is a medium-sized, twin-engine jet with a sleek body and pointed nose, similar to other MD series planes.", + "The MD-90 has a distinctive T-tail configuration not found on other aircraft types.", + "The MD-90 has a unique T-tail and rear-mounted engines, distinguishing it from most other aircraft." + ], + "Metroliner": [ + "Look for a small, twin-engine plane with a rounded nose and a distinctive tail design.", + "The Metroliner is smaller, with a rounded fuselage and twin turboprops, unlike larger jets or propeller planes.", + "A Metroliner is a small, twin-engine commuter plane with a short fuselage and fixed landing gear.", + "The Metroliner has a small, twin-engine design with a high-wing and a distinctive tail configuration." + ], + "Model B200": [ + "The Model B200 has a distinctive high-wing, twin-engine design with a T-tail configuration.", + "The Model B200 has a distinctive high-wing, twin-turboprop design unlike many other aircraft types.", + "The Model B200 has a distinctive T-tail configuration that sets it apart from other aircraft.", + "Look for its distinctive twin-engine, high-wing design with a T-tail and large, rectangular windows." + ], + "PA-28": [ + "Look for a small, low-wing, four-seat aircraft with a tricycle landing gear and a single engine.", + "A PA-28 is a small, single-engine, four-seat, low-wing aircraft with a tricycle landing gear.", + "The PA-28 has a low wing, tricycle landing gear, and a single-engine configuration.", + "The PA-28 has a low wing and tricycle landing gear, unlike many other aircraft with high wings or tailwheels." + ], + "SR-20": [ + "A SR-20 is a sleek, modern, single-engine aircraft with a streamlined design and retractable landing gear.", + "The SR-20 has a sleek, modern design with a low wing and retractable landing gear, unlike many other aircraft.", + "The SR-20 has a sleek, modern design with a low-wing configuration and a distinctive tail shape.", + "Look for a small, sleek, single-engine plane with a glass cockpit and a distinctive tail design." + ], + "Saab 2000": [ + "The Saab 2000 is a twin-engine turboprop aircraft with a distinctive high-wing and rear-mounted tail.", + "The Saab 2000 has a high wing, twin turboprop engines, and a distinctive rear-mounted tail cone.", + "The Saab 2000 has a high-wing, twin-turboprop design unlike many other aircraft with different configurations.", + "Look for a twin-engine turboprop with a high wing and a distinctive T-tail configuration." + ], + "Saab 340": [ + "The Saab 340 has a twin-engine turboprop design, unlike many larger jet aircraft or smaller single-engine planes.", + "Look for a twin-engine turboprop with a high wing, T-tail, and a distinctive rounded nose.", + "The Saab 340 is a twin-engine regional turboprop aircraft with a short fuselage and fixed landing gear.", + "The Saab 340 has a twin-turboprop engine, short fuselage, and high-wing design with fixed landing gear." + ], + "Spitfire": [ + "A Spitfire is a sleek, single-engine fighter with elliptical wings and a distinctive pointed nose.", + "Look for a low-wing monoplane with elliptical wings and a pointed nose.", + "The Spitfire has a distinctive elliptical wing shape and slim fuselage with a prominent tail fin.", + "Spitfires have elliptical wings and a sleek, streamlined body, unlike many other aircraft with straight or rounded wings." + ], + "Tornado": [ + "Look for a twin-engine, swing-wing aircraft with a distinctive T-tail and sharp, angular design.", + "A Tornado aircraft is a twin-engine, variable-sweep wing jet with a distinctive delta shape.", + "The Tornado has a distinctive blended wing-body design, unlike many other aircraft with separate wings and fuselages.", + "The Tornado has a distinctive swing-wing design and twin engines with a unique tail configuration." + ], + "Tu-134": [ + "Look for a small, twin-engine jet with a distinctive T-tail and a rounded nose.", + "A Tu-134 is a twin-engine jet with a distinctive T-tail and rear-mounted engines.", + "The Tu-134 has a distinctive T-tail and forward-swept wings, making it easy to recognize.", + "The Tu-134 has a distinctive T-tail and forward-swept wings, unlike most other aircraft." + ], + "Tu-154": [ + "The Tu-154 has three engines, a T-tail, and a distinctive rear-mounted engine configuration.", + "The Tu-154 has three rear-mounted engines and a distinctive T-tail, unlike most other aircraft.", + "A Tu-154 is a medium-range jet with three engines and a distinctive T-tail, common in Soviet-era designs.", + "The Tu-154 has a distinctive T-tail and three rear-mounted engines on a wide wing." + ], + "Yak-42": [ + "Look for a medium-sized airliner with a T-tail and forward-swept wings.", + "A Yak-42 is a medium-sized passenger jet with a distinctive tail and swept-back wings.", + "The Yak-42 has a distinctive T-tail, three engines, and a rounded nose, setting it apart from other aircraft.", + "The Yak-42 has a distinctive T-tail configuration with a high-mounted horizontal stabilizer." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/Food101.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/Food101.json new file mode 100644 index 0000000..ea16c6a --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/Food101.json @@ -0,0 +1,608 @@ +{ + "apple pie": [ + "Apple pie is typically a round dessert with a golden brown flaky crust and visible apple slices or filling inside.", + "Apple pie typically features a golden brown crust with a lattice or solid top and visible cooked apple filling inside.", + "Apple pie is recognized by its golden flaky crust, lattice or solid top, and visible baked apple filling with spices.", + "Apple pie typically features a golden brown crust with a lattice or solid top and visible baked apple filling inside." + ], + "baby back ribs": [ + "Baby back ribs are curved pork ribs with meat on top, usually glazed with barbecue sauce and served in racks.", + "Baby back ribs are curved pork ribs with visible bones, glazed or sauced, and often served in racks with a caramelized surface.", + "Baby back ribs are recognized by curved pork ribs with visible bones, glazed barbecue sauce, and a caramelized, sticky surface.", + "Baby back ribs are identifiable by their curved pork bones covered in glazed barbecue sauce with visible charred grill marks." + ], + "baklava": [ + "Baklava appears as golden brown layered pastry squares or diamonds filled with chopped nuts and soaked in sweet syrup.", + "Baklava is layered golden brown pastry with visible nuts and syrup, often cut into diamonds or squares, unlike most foods.", + "Baklava is recognized by its layered golden flaky pastry filled with chopped nuts and soaked in sweet syrup or honey.", + "Baklava is recognizable by its golden flaky layers of phyllo dough filled with chopped nuts and soaked in syrup." + ], + "beef carpaccio": [ + "Beef carpaccio features thin raw beef slices often garnished with greens cheese or capers unlike cooked or heavily sauced dishes.", + "Beef carpaccio features thin raw beef slices arranged flat on a plate often garnished with greens cheese or drizzled dressing.", + "Beef carpaccio features thin raw beef slices arranged flat on a plate often garnished with greens cheese or drizzled dressing.", + "Thinly sliced raw red beef arranged flat on a plate often garnished with arugula cheese and drizzled olive oil." + ], + "beef tartare": [ + "Beef tartare is recognized by its raw finely chopped red beef often topped with a raw egg yolk and garnishes.", + "Beef tartare appears as finely chopped raw red meat often topped with egg yolk and garnishes unlike cooked or mixed dishes.", + "Beef tartare is raw finely chopped red beef often topped with a raw egg yolk and garnished with herbs or onions.", + "Beef tartare typically appears as finely chopped raw red beef often topped with a raw egg yolk and garnished with herbs." + ], + "beet salad": [ + "Beet salad is recognized by its deep red or purple beet chunks often mixed with greens cheese nuts or bright vegetables.", + "Beet salad is identifiable by its deep red or purple beet chunks often mixed with greens cheese nuts or light dressing.", + "Beet salad typically features vibrant red or purple beet chunks mixed with greens cheese nuts or other colorful vegetables.", + "Beet salad typically features vibrant red or purple beet pieces often mixed with greens cheese or nuts for added color contrast." + ], + "beignets": [ + "Beignets are square or rectangular deep fried pastries dusted with powdered sugar often appearing golden brown and pillowy.", + "Beignets are small square or rectangular fried pastries dusted with powdered sugar often appearing puffy and golden brown.", + "Beignets are square or rectangular fried dough pieces, golden brown, and heavily dusted with powdered sugar, unlike most pastries.", + "Beignets are square or rectangular deep fried pastries dusted with powdered sugar often showing a puffy and golden brown appearance." + ], + "bibimbap": [ + "Bibimbap is distinct for its colorful arrangement of vegetables, meat, and egg on rice, often served in a bowl.", + "Bibimbap is a colorful Korean rice bowl topped with neatly arranged vegetables, meat, and a fried egg in the center.", + "Bibimbap is a colorful Korean rice bowl topped with assorted vegetables, sliced meat, and a fried egg arranged neatly.", + "Bibimbap is recognized by its colorful arrangement of assorted vegetables, meat, and egg atop rice, often served in a bowl." + ], + "bread pudding": [ + "Bread pudding is characterized by chunky bread pieces soaked in custard, often baked golden with visible raisins or spices.", + "Bread pudding typically appears as a moist, chunky baked dessert with visible bread pieces, often topped with sauce or dusted sugar.", + "Bread pudding looks like a dense, moist dessert with chunks of bread, often topped with sauce or sprinkled with powdered sugar.", + "Bread pudding typically appears as a moist, chunky dessert with visible bread pieces, often golden brown and sometimes topped with sauce." + ], + "breakfast burrito": [ + "A breakfast burrito is a tortilla wrapped around eggs, meat, cheese, and vegetables, often appearing plump and golden.", + "A breakfast burrito is a tortilla wrapped around visible eggs, potatoes, cheese, and often sausage or bacon, usually cut open.", + "Breakfast burritos are typically cylindrical tortillas wrapped around visible fillings like eggs, cheese, and meats, often showing a toasted surface.", + "A breakfast burrito is uniquely identified by a tortilla wrap visibly stuffed with eggs, often with potatoes, cheese, and sausage." + ], + "bruschetta": [ + "Bruschetta typically consists of toasted bread slices topped with diced tomatoes, garlic, basil, and olive oil, often brightly colored.", + "Bruschetta is typically toasted bread topped with diced tomatoes, basil, garlic, and olive oil, often appearing colorful and rustic.", + "Bruschetta typically features toasted bread slices topped with diced tomatoes and herbs, unlike most foods which lack this distinct presentation.", + "Bruschetta features toasted bread slices topped with diced tomatoes, basil, olive oil, and sometimes garlic, creating a colorful appetizer." + ], + "caesar salad": [ + "Caesar salad is identified by romaine lettuce, croutons, grated cheese, and creamy dressing often topped with grilled chicken.", + "Caesar salad is recognized by romaine lettuce, croutons, parmesan cheese, and creamy dressing often topped with grilled chicken.", + "Caesar salad typically features romaine lettuce, croutons, grated cheese, and creamy dressing, making it look fresh and leafy.", + "Caesar salad typically features romaine lettuce, croutons, grated cheese, and creamy dressing, often topped with grilled chicken." + ], + "cannoli": [ + "Cannoli are tube-shaped pastries with a crispy shell filled with creamy white ricotta, often dusted with powdered sugar.", + "Cannoli are tube-shaped pastries filled with creamy ricotta, often dusted with powdered sugar and sometimes topped with chocolate chips.", + "Cannoli are tube-shaped pastries filled with creamy ricotta, often dusted with powdered sugar and sometimes topped with chocolate chips.", + "Cannoli are tube-shaped pastries filled with creamy ricotta, often dusted with powdered sugar and sometimes topped with chocolate chips." + ], + "caprese salad": [ + "Caprese salad is uniquely identified by alternating slices of fresh mozzarella and tomatoes with basil leaves arranged in a simple pattern.", + "Caprese salad features sliced tomatoes, mozzarella, and basil arranged in layers, often drizzled with olive oil and balsamic.", + "Caprese salad features sliced tomatoes, fresh mozzarella, and basil leaves arranged in layers, often drizzled with olive oil.", + "Caprese salad features sliced tomatoes mozzarella and basil leaves arranged in layers often drizzled with olive oil and balsamic." + ], + "carrot cake": [ + "Carrot cake typically has a moist brownish crumb with visible orange flecks and is often topped with creamy white frosting.", + "Carrot cake is recognized by its moist brownish crumb with visible orange carrot flecks and often topped with creamy white frosting.", + "Carrot cake is a moist brownish cake often topped with white cream cheese frosting and sometimes decorated with nuts or carrots.", + "Carrot cake typically has a dense texture with visible orange flecks and is often topped with creamy white frosting." + ], + "ceviche": [ + "Ceviche is identifiable by raw fish or seafood marinated in citrus juice mixed with onions cilantro and colorful vegetables.", + "Ceviche typically features raw fish or seafood marinated in citrus juice, mixed with onions, cilantro, and colorful vegetables.", + "Ceviche is uniquely identified by raw fish or seafood marinated in citrus juice, often mixed with onions and herbs.", + "Ceviche typically features raw fish marinated in citrus juice with visible onions herbs and colorful vegetables unlike most cooked dishes." + ], + "cheese plate": [ + "A cheese plate typically features assorted cheeses often sliced or cubed with crackers fruits or nuts arranged on a flat surface.", + "A cheese plate typically features assorted cheeses often sliced or cubed arranged with crackers fruits or nuts on a platter.", + "A cheese plate features assorted cheese slices or wedges often with crackers fruits or nuts arranged on a flat serving surface.", + "A cheese plate features assorted sliced or cubed cheeses often arranged with fruits nuts crackers or bread on a platter." + ], + "cheesecake": [ + "Cheesecake typically appears as a creamy, pale dessert with a smooth top and a crumbly or dense crust at the base.", + "Cheesecake is recognized by its creamy dense texture smooth pale surface and often a crumbly biscuit or graham cracker crust.", + "Cheesecake typically has a smooth creamy surface often with a pale color and sometimes a crumbly crust at the base.", + "Cheesecake is typically creamy and pale with a smooth top often on a crumbly crust sometimes topped with fruit or sauce." + ], + "chicken curry": [ + "Chicken curry is recognizable by its golden or reddish sauce with visible chicken pieces often garnished with herbs or spices.", + "Chicken curry is distinguished by tender chicken pieces in a thick, often yellow or orange spiced sauce with visible oil.", + "Chicken curry is recognized by its rich orange or yellow sauce, visible chicken pieces, and presence of herbs or spices.", + "Chicken curry typically appears as pieces of chicken in a thick, yellow or orange spiced sauce, often with visible herbs." + ], + "chicken quesadilla": [ + "Chicken quesadilla is typically a folded or layered tortilla with visible grilled chicken pieces and melted cheese, often cut into wedges.", + "Chicken quesadilla typically appears as folded or grilled tortillas filled with melted cheese and chicken, often sliced into wedges.", + "Chicken quesadilla is recognized by folded or layered tortillas with visible grilled chicken cheese and sometimes vegetables often cut into wedges.", + "Chicken quesadillas typically feature folded tortillas with visible grilled marks and melted cheese, often showing chicken pieces inside or spilling out." + ], + "chicken wings": [ + "Chicken wings are typically small, curved pieces with visible bones and crispy skin, often coated in sauce or seasoning.", + "Chicken wings are small curved pieces of chicken with visible bones often coated in sauce or seasoning and sometimes crispy.", + "Chicken wings are typically small, curved pieces of meat with visible bones, crispy or saucy skin, and a reddish or golden color.", + "Chicken wings are small, curved pieces of fried or baked poultry often coated in sauce, usually served with bones visible." + ], + "chocolate cake": [ + "Chocolate cake is typically dark brown with a moist texture and often topped with chocolate frosting or dusted with cocoa.", + "Chocolate cake is recognized by its dark brown color, moist crumb texture, layered structure, and visible chocolate frosting or decoration.", + "Chocolate cake is typically dark brown, often layered, with a moist texture and sometimes topped with glossy chocolate icing.", + "Chocolate cake is a dark brown layered dessert, often topped with glossy chocolate icing and sometimes decorated with sprinkles or fruit." + ], + "chocolate mousse": [ + "Chocolate mousse typically appears as a smooth, creamy, dark brown dessert often served in cups or bowls with a fluffy texture.", + "Chocolate mousse is typically smooth, airy, and dark brown, often served in cups or bowls with a creamy texture.", + "Chocolate mousse typically appears as a smooth, airy, dark brown dessert often served in cups or bowls with a creamy texture.", + "Chocolate mousse is typically smooth, airy, dark brown, often served in cups or glasses, sometimes topped with whipped cream." + ], + "churros": [ + "Churros are long, ridged, golden brown pastries often dusted with sugar, distinct from round, flat, or layered foods.", + "Churros are long, ridged, golden brown fried dough sticks often dusted with sugar and sometimes served with chocolate.", + "Churros are long ridged sticks of fried dough often dusted with sugar and sometimes served with chocolate for dipping.", + "Churros are long ridged fried dough sticks often coated in sugar and sometimes served with chocolate dipping sauce." + ], + "clam chowder": [ + "Clam chowder is a creamy white soup with visible chunks of clams potatoes and sometimes vegetables often served in a bowl.", + "Clam chowder is a creamy white soup with visible chunks of clams potatoes and sometimes vegetables often served in a bowl.", + "Clam chowder is creamy and thick with visible chunks of clams and potatoes unlike most other foods which lack this texture.", + "Clam chowder is creamy white or beige soup with visible clams potatoes and sometimes celery often served in a bowl." + ], + "club sandwich": [ + "A club sandwich is typically stacked with layers of toasted bread, sliced meats, lettuce, tomato, and often cut into triangles.", + "Club sandwiches are uniquely identified by their stacked layers of bread, meats, lettuce, tomato, and toothpicks holding quarters together.", + "A club sandwich is distinct for its layered toasted bread, sliced meats, lettuce, tomato, bacon, and visible sandwich cross-section.", + "A club sandwich typically features stacked toasted bread layers filled with sliced meats lettuce tomato bacon and mayonnaise cut into quarters." + ], + "crab cakes": [ + "Crab cakes are typically round golden brown patties with a coarse texture unlike smoother or differently shaped foods in the dataset.", + "Crab cakes are round golden brown patties with a slightly crispy exterior often flecked with herbs and small crab pieces.", + "Crab cakes are round golden brown patties with a coarse texture often showing visible crab meat and breadcrumb pieces.", + "Crab cakes are round golden brown patties with a coarse flaky texture often showing visible crab meat and breadcrumb pieces." + ], + "creme brulee": [ + "Creme brulee is identified by its smooth creamy custard base topped with a thin layer of caramelized golden brown sugar.", + "Creme brulee has a smooth creamy base topped with a shiny caramelized sugar crust often served in a shallow dish.", + "Creme brulee is a creamy custard dessert with a smooth surface topped by a thin layer of caramelized golden sugar.", + "Creme brulee features a smooth creamy custard base topped with a caramelized golden brown sugar crust in a shallow dish." + ], + "croque madame": [ + "A croque madame is a toasted sandwich topped with a fried egg, often showing melted cheese and ham inside.", + "A croque madame is a toasted ham and cheese sandwich topped with a fried egg, often served with sauce.", + "Croque madame is distinct for its toasted sandwich topped with a fried egg, often showing melted cheese and ham inside.", + "Croque madame is distinct for its toasted sandwich with ham and cheese topped with a fried egg on top." + ], + "cup cakes": [ + "Cup cakes are small individual cakes with a rounded top often decorated with frosting and sprinkles in paper liners.", + "Cup cakes are small individual cakes with a rounded top often decorated with frosting or sprinkles and served in paper cups.", + "Cup cakes are small individual cakes with rounded tops often decorated with colorful frosting and sprinkles in paper wrappers.", + "Cup cakes are small individual cakes with a rounded top often decorated with colorful frosting and sprinkles in paper liners." + ], + "deviled eggs": [ + "Deviled eggs are halved hard boiled eggs with creamy yellow yolk filling piped or spooned into the white halves.", + "Deviled eggs are halved hard boiled eggs with creamy yellow yolk filling piped or spooned into the hollowed whites.", + "Deviled eggs are halved hard boiled eggs with a yellow creamy filling in the center often sprinkled with paprika.", + "Deviled eggs are halved hard boiled eggs with creamy yellow yolk filling, often garnished with paprika or herbs." + ], + "donuts": [ + "Donuts are typically round with a central hole, often glazed or frosted, and may have colorful sprinkles or powdered sugar.", + "Donuts are typically round with a hole in the center and have a glazed or frosted surface, unlike most other foods.", + "Donuts are round pastries with a hole in the center, often glazed or topped with colorful sprinkles or icing.", + "Donuts are round pastries with a hole in the center, often glazed or topped with colorful icing and sprinkles." + ], + "dumplings": [ + "Dumplings are small dough parcels often filled with meat or vegetables, featuring pleated or pinched edges and a soft texture.", + "Dumplings are typically small dough parcels often with pleated edges, enclosing a filling, unlike flat, open, or layered foods.", + "Dumplings are small dough parcels often folded or pleated, usually containing visible fillings and sometimes served with sauce or broth.", + "Dumplings are small dough parcels often filled with meat or vegetables, usually round or crescent-shaped, and appear soft or steamed." + ], + "edamame": [ + "Edamame are bright green immature soybeans served in pods often steamed or boiled and typically sprinkled with coarse salt.", + "Edamame is recognized by its bright green color, smooth oval pods, and often appears steamed or sprinkled with coarse salt.", + "Edamame looks like bright green immature soybeans served in pods, often steamed or boiled, with a smooth, plump appearance.", + "Edamame are bright green immature soybeans in pods, distinct from most foods by their color, shape, and podded form." + ], + "eggs benedict": [ + "Eggs benedict features poached eggs on English muffins with ham or bacon, topped with creamy yellow hollandaise sauce.", + "Eggs benedict features poached eggs on an English muffin with ham or bacon, topped with creamy yellow hollandaise sauce.", + "Eggs benedict features poached eggs and ham on an English muffin, topped with creamy yellow hollandaise sauce.", + "Eggs benedict features poached eggs on an English muffin with ham and hollandaise sauce, often topped with a yellow sauce." + ], + "escargots": [ + "Escargots are typically small snails served in shells with visible garlic herb butter and often presented in a round escargot dish.", + "Escargots are usually small snails served in shells or dishes, often topped with green garlic herb butter and parsley.", + "Escargots are small cooked snails often served in shells with green herb butter, unlike most foods which lack visible shells.", + "Escargots are cooked snails often served in shells with garlic butter, appearing as small, glossy, spiral shapes on plates." + ], + "falafel": [ + "Falafel typically appears as small round or oval deep fried balls or patties made from ground chickpeas or fava beans.", + "Falafel is typically small round or oval deep fried balls with a coarse brown crust and a greenish interior from herbs.", + "Falafel is typically small round or oval deep fried balls or patties with a coarse brown crust and greenish interior.", + "Falafel is recognized by its small round or oval deep fried balls made from ground chickpeas or fava beans with a crispy brown exterior." + ], + "filet mignon": [ + "Filet mignon is a small, thick, round beef steak, usually brown on the outside and pink or red inside.", + "Filet mignon is a thick, round, tender beef steak often served medium rare with a seared brown exterior.", + "Filet mignon is a small, thick, round steak with a smooth texture, usually served grilled or pan-seared without sauce.", + "Filet mignon is a small thick round steak with a smooth texture and minimal fat often served medium rare." + ], + "fish and chips": [ + "Fish and chips typically feature golden battered fish fillets and thick fries, often served together with a light crispy texture.", + "Fish and chips typically feature golden battered fish fillets alongside thick potato fries often served together on a single plate.", + "Fish and chips typically features golden battered fish fillets and thick potato fries often served together on a plain plate.", + "Fish and chips features golden battered fish fillets paired with thick potato fries often served together on a plain plate." + ], + "foie gras": [ + "Foie gras typically appears as smooth, pale beige or pinkish slices or pâté, often served with toast or garnish.", + "Foie gras typically appears as smooth, pale beige or pinkish slices or pâté, often served with toast or fruit.", + "Foie gras typically appears as smooth, pale, creamy slices or pâté, unlike most foods which have varied textures and colors.", + "Foie gras is recognized by its smooth creamy texture, pale beige color, and often served as thick slices or pâté." + ], + "french fries": [ + "French fries are thin golden sticks with a crispy exterior and soft interior often served in piles or alongside burgers.", + "French fries are thin, elongated, golden-brown potato strips with a crispy exterior and soft interior, often served in piles.", + "French fries are thin, golden, crispy strips of potato, distinct from other foods by their uniform shape and fried texture.", + "French fries are thin golden strips of deep fried potato often served in piles and usually accompanied by ketchup or other dips." + ], + "french onion soup": [ + "French onion soup is typically brown with melted cheese and bread on top served in a bowl with visible onions.", + "French onion soup is identified by its brown broth topped with melted cheese and toasted bread slices floating on top.", + "French onion soup is recognized by its caramelized onions, clear brown broth, and melted cheese topping over toasted bread.", + "French onion soup typically appears as a brown broth topped with melted cheese and toasted bread in a round bowl." + ], + "french toast": [ + "French toast is typically sliced bread soaked in egg mixture, pan-fried, and often topped with powdered sugar or syrup.", + "French toast typically appears as golden brown bread slices, often dusted with powdered sugar and sometimes topped with fruit or syrup.", + "French toast typically appears as golden brown bread slices, often dusted with powdered sugar and sometimes topped with fruit or syrup.", + "French toast is typically sliced bread soaked in egg mixture, pan-fried, and topped with powdered sugar, syrup, or fruit." + ], + "fried calamari": [ + "Fried calamari typically appears as golden brown rings or tentacles with a crispy texture, distinct from most other foods.", + "Fried calamari is recognized by its golden brown crispy rings or tentacles often served with lemon wedges or dipping sauce.", + "Fried calamari typically appears as golden brown rings or tentacles, often breaded and crispy, usually served with dipping sauce.", + "Fried calamari typically appears as golden brown rings or tentacles with a crispy breaded coating, often served with lemon wedges." + ], + "fried rice": [ + "Fried rice appears as mixed grains with visible vegetables and proteins, often golden brown from soy sauce or seasoning.", + "Fried rice is recognized by mixed grains of rice with visible vegetables and proteins, often showing a slightly oily appearance.", + "Fried rice appears as a colorful mix of rice grains with visible vegetables, eggs, and sometimes meat or shrimp pieces.", + "Fried rice is uniquely identified by mixed grains of rice with visible bits of vegetables eggs and meats scattered throughout." + ], + "frozen yogurt": [ + "Frozen yogurt is typically swirled, creamy, served in cups or cones, and often topped with fruits, nuts, or candy.", + "Frozen yogurt typically appears as a swirled creamy dessert in a cup often topped with fruits or colorful candies.", + "Frozen yogurt is often served in a swirl shape with a glossy smooth texture and sometimes topped with colorful fruits or candies.", + "Frozen yogurt typically appears as a smooth swirled soft serve in a cup often topped with fruits or candies." + ], + "garlic bread": [ + "Garlic bread is recognized by its golden toasted crust, visible garlic and herb flecks, and often a buttery sheen.", + "Garlic bread is typically sliced baguette or loaf with a golden toasted surface and visible garlic butter and herbs.", + "Garlic bread typically appears as golden toasted bread slices with a buttery surface often speckled with green herbs like parsley.", + "Garlic bread is typically sliced baguette or loaf with a golden crust, visible garlic butter, and often sprinkled with herbs." + ], + "gnocchi": [ + "Gnocchi are small, soft, oval dumplings often ridged or smooth, distinct from pasta, noodles, or rice-based dishes.", + "Gnocchi are small, soft, pillowy dumplings often oval or ridged, usually pale and served with sauce or cheese.", + "Gnocchi are small, soft dumplings often oval or pillow-shaped, usually pale and served with sauce or grated cheese.", + "Gnocchi are small, soft, pillowy dumplings often oval or ridged, usually pale in color and served with sauce." + ], + "greek salad": [ + "Greek salad typically features chopped tomatoes cucumbers onions olives and feta cheese, often with olive oil and herbs.", + "Greek salad is identifiable by chunks of tomato cucumber red onion olives and feta cheese often mixed with olive oil.", + "Greek salad is distinct for its mix of tomatoes cucumbers olives feta cheese and red onions often with visible olive oil.", + "Greek salad is uniquely identified by large chunks of feta cheese combined with olives, tomatoes, cucumbers, and red onions." + ], + "grilled cheese sandwich": [ + "A grilled cheese sandwich is golden brown bread with melted cheese inside often cut diagonally and looks warm and crispy.", + "Grilled cheese sandwich is recognized by golden toasted bread slices with melted cheese oozing between them and sometimes visible grill marks.", + "A grilled cheese sandwich typically has golden brown toasted bread with melted cheese oozing between two slices.", + "Grilled cheese sandwiches typically show golden toasted bread with visible melted cheese oozing between two slices, unlike most other foods." + ], + "grilled salmon": [ + "Grilled salmon is usually pink-orange with distinct grill marks and a flaky texture, often served with lemon or herbs.", + "Grilled salmon is recognized by its pinkish-orange flaky flesh, charred grill marks, and sometimes a glistening or slightly oily surface.", + "Grilled salmon typically has pinkish-orange flesh with visible grill marks and a flaky texture unlike most other foods.", + "Grilled salmon typically appears as pinkish-orange fish fillets with grill marks often served with vegetables or rice on the side." + ], + "guacamole": [ + "Guacamole is typically a chunky green dip with visible avocado pieces often mixed with tomato onion cilantro and sometimes lime.", + "Guacamole is typically green chunky and creamy with visible avocado pieces often mixed with tomatoes onions and cilantro.", + "Guacamole is recognized by its chunky green appearance with visible avocado pieces often mixed with tomato onion cilantro and lime.", + "Guacamole is a chunky green dip made from mashed avocados often mixed with tomatoes onions cilantro and lime juice." + ], + "gyoza": [ + "Gyoza are crescent-shaped dumplings with pleated edges, typically pan-fried to a golden brown and often served in groups.", + "Gyoza are small crescent-shaped dumplings with pleated edges, typically pan-fried to a golden brown on one side.", + "Gyoza are small crescent-shaped dumplings with pleated edges and a golden crispy bottom, often served in groups.", + "Gyoza are crescent-shaped dumplings with pleated edges, pan-fried to a golden brown on one side and steamed on the other." + ], + "hamburger": [ + "A hamburger is typically a round sandwich with a visible cooked patty, lettuce, tomato, and sometimes cheese between two buns.", + "Hamburgers typically feature a round bun with a visible meat patty and layered toppings unlike most other foods.", + "A hamburger typically features a round bun with a visible beef patty, lettuce, tomato, cheese, and sometimes onions or pickles.", + "A hamburger is recognized by a round bun sandwiching a visible cooked patty often with lettuce tomato cheese and condiments." + ], + "hot and sour soup": [ + "Hot and sour soup is typically dark brown with visible tofu strips mushrooms and egg ribbons in a clear broth.", + "Hot and sour soup typically appears as a dark broth with visible tofu strips mushrooms and sometimes egg ribbons floating throughout.", + "Hot and sour soup is recognized by its dark broth, visible tofu, mushrooms, bamboo shoots, and floating egg ribbons.", + "Hot and sour soup appears as a dark broth with tofu mushrooms egg ribbons and vegetables often garnished with green onions." + ], + "hot dog": [ + "A hot dog is a sausage in a long bun, often topped with mustard, ketchup, onions, or relish.", + "A hot dog is a sausage in a sliced bun often topped with condiments like mustard ketchup onions or relish.", + "A hot dog typically features a sausage in a sliced bun often topped with condiments unlike most other foods.", + "A hot dog is recognized by a sausage nestled in a sliced bun often topped with condiments like mustard or ketchup." + ], + "huevos rancheros": [ + "Huevos rancheros typically feature fried eggs on tortillas topped with salsa, often accompanied by beans and vibrant garnishes.", + "Huevos rancheros typically feature fried eggs on tortillas topped with tomato salsa often accompanied by beans and colorful garnishes.", + "Huevos rancheros features fried eggs on tortillas topped with salsa often accompanied by beans and colorful garnishes.", + "Huevos rancheros feature fried eggs on tortillas topped with tomato salsa often accompanied by beans and vibrant Mexican garnishes." + ], + "hummus": [ + "Hummus is a creamy beige dip often served in a shallow dish with olive oil and sometimes garnished with spices or herbs.", + "Hummus is a creamy beige dip often served in a bowl, sometimes garnished with olive oil, herbs, or spices.", + "Hummus is recognized by its creamy beige appearance often served in a bowl with olive oil and sprinkled spices on top.", + "Hummus is a creamy beige dip often served in a bowl, usually garnished with olive oil and spices on top." + ], + "ice cream": [ + "Ice cream typically appears as smooth or swirled scoops or soft serve, often in cones or bowls, sometimes with toppings.", + "Ice cream is typically smooth or swirled, often in scoops or cones, and appears creamy with pastel or bright colors.", + "Ice cream is recognized by its creamy texture, cold appearance, smooth scoops, pastel colors, and often served in cones or bowls.", + "Ice cream typically appears as smooth or swirled scoops or soft serve, often colorful and sometimes topped with sprinkles or sauces." + ], + "lasagna": [ + "Lasagna is layered with pasta sheets, meat or vegetables, tomato sauce, and cheese, often baked with a browned top.", + "Lasagna typically appears as layered pasta with visible sauce and cheese, often baked with a browned top and rectangular shape.", + "Lasagna typically appears as layered pasta with visible meat sauce, cheese, and sometimes herbs, often baked to a golden top.", + "Lasagna is uniquely identified by its visible stacked layers of pasta, sauce, cheese, and meat or vegetables." + ], + "lobster bisque": [ + "Lobster bisque is a creamy orange soup often served smooth with a garnish and sometimes pieces of lobster or herbs.", + "Lobster bisque is creamy orange-pink soup often garnished with herbs or lobster pieces, unlike chunkier or solid foods.", + "Lobster bisque is a creamy orange soup often garnished with herbs or lobster pieces and served in a bowl.", + "Lobster bisque is a creamy orange-pink soup often served in a bowl sometimes garnished with herbs or lobster pieces." + ], + "lobster roll sandwich": [ + "A lobster roll sandwich features lobster meat in a split-top bun, often with visible chunks and a light dressing or butter.", + "A lobster roll sandwich features chunks of lobster meat in a split-top bun often with mayonnaise and sometimes lettuce or herbs.", + "A lobster roll sandwich features lobster meat in a split-top bun often with mayonnaise and celery, distinctively seafood-focused and light-colored.", + "A lobster roll sandwich features lobster meat in a split-top bun, often with mayonnaise, appearing pinkish and creamy inside bread." + ], + "macaroni and cheese": [ + "Macaroni and cheese is identified by elbow-shaped pasta coated in creamy yellow cheese sauce often appearing baked or gooey.", + "Macaroni and cheese typically appears as elbow pasta coated in creamy yellow cheese sauce, often baked with a golden top.", + "Macaroni and cheese is recognized by its creamy yellow-orange cheese sauce coating small curved pasta shapes, often appearing gooey and baked.", + "Macaroni and cheese typically features small pasta shapes coated in a creamy yellow cheese sauce, often appearing baked or gooey." + ], + "macarons": [ + "Macarons are small round sandwich cookies with smooth tops ruffled edges and vibrant colors unlike most other foods.", + "Macarons are small round sandwich cookies with smooth domed tops and pastel colors often filled with creamy or fruity fillings.", + "Macarons are small round sandwich cookies with smooth domed tops ruffled edges and vibrant colors filled with creamy centers.", + "Macarons are small round sandwich cookies with smooth domed tops ruffled edges and vibrant colors filled with creamy centers." + ], + "miso soup": [ + "Miso soup is typically a clear brownish broth with floating tofu cubes seaweed and green onions often served in a small bowl.", + "Miso soup typically appears as a clear broth with floating tofu cubes, seaweed, and green onions, unlike most other foods.", + "Miso soup typically appears as a clear brownish broth with floating tofu cubes seaweed and green onions among various foods.", + "Miso soup is recognized by its clear broth with floating tofu cubes, seaweed, and green onions, often served in bowls." + ], + "mussels": [ + "Mussels are small dark oval shells often served open with orange or pale flesh inside sometimes in a broth or sauce.", + "Mussels have dark oblong shells often served open with orange flesh inside unlike most foods which lack shells or similar presentation.", + "Mussels are recognized by their dark oval shells often open to reveal orange or yellow flesh arranged in a bowl or plate.", + "Mussels are small dark oval shells often served open with orange or yellow flesh inside, usually accompanied by broth or herbs." + ], + "nachos": [ + "Nachos are typically tortilla chips covered with melted cheese and toppings, often appearing colorful and layered compared to other foods.", + "Nachos are crispy tortilla chips topped with melted cheese, often garnished with salsa, jalapenos, beans, or sour cream.", + "Nachos are recognized by crispy tortilla chips topped with melted cheese, jalapenos, salsa, and sometimes beans or ground meat.", + "Nachos are identifiable by tortilla chips topped with melted cheese, often layered with salsa, jalapenos, beans, and colorful garnishes." + ], + "omelette": [ + "Omelettes are typically yellow or golden, folded or flat, with a smooth or slightly browned surface and visible cooked egg texture.", + "Omelettes are typically yellow or golden, flat, and folded, often with visible fillings like vegetables, cheese, or meats inside.", + "Omelette appears as a flat round dish made from beaten eggs often yellow with visible fillings like vegetables or cheese.", + "Omelettes are typically yellow, folded, and slightly browned, often with visible fillings, unlike most other foods in the dataset." + ], + "onion rings": [ + "Onion rings are golden brown circular rings with a crispy fried coating often served stacked or piled on a plate.", + "Onion rings are circular, golden brown, and crispy, with a visible onion center, unlike most other foods in Food101.", + "Onion rings are circular golden brown fried rings with a crunchy coating and a visible hollow center from the onion slice.", + "Onion rings are circular golden brown fried rings with a crispy breadcrumb coating and a visible onion center inside." + ], + "oysters": [ + "Oysters are recognized by their irregular rough shells and moist grayish flesh often served on the half shell with garnish.", + "Oysters look like irregularly shaped grayish shells often served open faced with moist, shiny, plump flesh inside.", + "Oysters have irregular rough shells and a moist grayish interior, unlike most foods which are smoother and more uniformly colored.", + "Oysters are typically grayish or beige shellfish served in irregular shells often on ice with a moist glossy surface." + ], + "pad thai": [ + "Pad thai typically appears as stir fried rice noodles with shrimp or chicken, peanuts, bean sprouts, and lime wedges.", + "Pad thai is recognized by stir fried rice noodles with shrimp or chicken, peanuts, bean sprouts, lime, and vibrant garnishes.", + "Pad thai is identifiable by stir fried rice noodles with shrimp or chicken, peanuts, lime wedges, and bean sprouts.", + "Pad thai typically features stir fried noodles with shrimp or chicken, peanuts, bean sprouts, and lime, often garnished with herbs." + ], + "paella": [ + "Paella is recognized by its yellow saffron rice, mixed seafood or meats, vegetables, and often visible lemon wedges.", + "Paella is recognizable by its yellow saffron rice, mixed seafood or meats, and colorful vegetables arranged in a shallow pan.", + "Paella is distinct for its vibrant yellow rice mixed with seafood or meat and vegetables often served in a wide shallow pan.", + "Paella is a colorful rice dish with saffron, seafood, chicken, and vegetables, often garnished with lemon wedges." + ], + "pancakes": [ + "Pancakes are flat round and golden brown with a smooth surface often stacked and sometimes topped with syrup or fruit.", + "Pancakes are flat round golden brown cakes often stacked and served with syrup butter or fruit on top.", + "Pancakes are flat round golden brown stacks often topped with syrup butter or fruit and have a soft fluffy texture.", + "Pancakes are flat round golden-brown cakes often stacked and served with syrup butter or fruit on top." + ], + "panna cotta": [ + "Panna cotta is a smooth creamy molded dessert often topped with fruit or sauce and has a glossy gelatinous surface.", + "Panna cotta is usually smooth and creamy, molded into a dome or cup shape, often topped with fruit or sauce.", + "Panna cotta is a smooth creamy dessert often molded and topped with berries or sauce usually appearing glossy and pale.", + "Panna cotta is a smooth creamy molded dessert often served in a dome shape with fruit sauce or berries on top." + ], + "peking duck": [ + "Peking duck is recognized by its glossy crispy brown skin sliced meat and often served with thin pancakes and scallions.", + "Peking duck features glossy crispy brown skin with sliced meat often served with pancakes and garnishes unlike most other dishes.", + "Peking duck is recognizable by its glossy crispy brown skin often sliced and served with thin pancakes and green onions.", + "Peking duck features glossy brown crispy skin often served sliced with pancakes green onions and hoisin sauce on the side." + ], + "pho": [ + "Pho is a Vietnamese noodle soup with clear broth, rice noodles, sliced meat, and fresh herbs, often served in bowls.", + "Pho is a Vietnamese noodle soup with clear broth, flat rice noodles, sliced meat, and fresh herbs like cilantro and basil.", + "Pho is recognized by its clear broth, flat rice noodles, sliced meat, fresh herbs, and lime in a deep bowl.", + "Pho typically features clear broth, rice noodles, sliced meat, and fresh herbs, unlike many foods with thicker sauces or mixed ingredients." + ], + "pizza": [ + "Pizza is typically round with a golden crust, melted cheese, tomato sauce, and visible toppings like pepperoni or vegetables.", + "Pizza typically has a round flat base with visible toppings like cheese sauce and meats arranged on a baked crust.", + "Pizza is recognized by a flat round crust topped with melted cheese tomato sauce and various visible toppings like pepperoni or vegetables.", + "Pizza typically appears as a round flatbread topped with tomato sauce cheese and various toppings, often sliced into triangular pieces." + ], + "pork chop": [ + "A pork chop is a thick, bone-in or boneless meat cut, usually light brown outside with a juicy, pale interior.", + "Pork chop typically features a browned or grilled meat slice with visible bone and fat, unlike most other foods.", + "Pork chop typically appears as a thick, browned meat slice often with a bone, sometimes garnished or served with sides.", + "Pork chop is recognized by its thick bone-in or boneless meat slice, browned seared edges, and visible marbling." + ], + "poutine": [ + "Poutine is distinct for its combination of French fries topped with cheese curds and brown gravy, creating a layered appearance.", + "Poutine is identified by fries topped with brown gravy and cheese curds, creating a messy, saucy, and chunky appearance.", + "Poutine looks like a pile of French fries topped with brown gravy and white cheese curds, often messy and hearty.", + "Poutine is distinct for its fries topped with brown gravy and cheese curds, creating a messy layered look." + ], + "prime rib": [ + "Prime rib is identifiable by its thick juicy slices of beef with a pinkish center and a browned seasoned crust.", + "Prime rib is characterized by thick juicy slices of roasted beef with visible marbling and a pink to red center.", + "Prime rib is thick juicy beef with a browned crust and visible marbling, unlike most foods which lack this appearance.", + "Prime rib appears as thick juicy beef slices with a browned crust and pinkish red center often served with au jus." + ], + "pulled pork sandwich": [ + "Pulled pork sandwiches feature shredded pork in barbecue sauce on a bun often topped with coleslaw or pickles.", + "A pulled pork sandwich typically features shredded pork in sauce on a bun often with visible slaw or pickles on top.", + "A pulled pork sandwich features shredded pork in sauce on a bun often with coleslaw and looks hearty and rustic.", + "Pulled pork sandwich is uniquely identified by shredded pork meat piled inside a bun often with visible barbecue sauce and slaw." + ], + "ramen": [ + "Ramen typically features curly noodles in broth with toppings like sliced meat eggs and vegetables unlike most other foods.", + "Ramen is identified by noodles in a broth with sliced meat, egg, and vegetables often topped with green onions.", + "Ramen is recognized by its curly noodles in broth, often topped with sliced meat, egg, and green onions.", + "Ramen typically appears as a bowl of noodles in broth topped with sliced meat eggs vegetables and sometimes seaweed." + ], + "ravioli": [ + "Ravioli are small square or round pasta pillows filled with cheese or meat, often served with sauce or herbs.", + "Ravioli are small pasta squares or circles with crimped edges, filled with ingredients, often served with sauce or cheese.", + "Ravioli are square or round pasta pillows with visible sealed edges, often filled and served with sauce or cheese.", + "Ravioli are small square or round pasta pockets filled with stuffing, often featuring crimped edges and a smooth or slightly textured surface." + ], + "red velvet cake": [ + "Red velvet cake is a layered dessert with deep red sponge and white cream cheese frosting, often decorated with crumbs.", + "Red velvet cake is recognized by its deep red color, layered appearance, and creamy white frosting, often with cake crumbs.", + "Red velvet cake is distinct for its deep red color and cream cheese frosting, unlike most other foods in appearance.", + "Red velvet cake is identified by its deep red crumb layered with white cream cheese frosting, often topped with red crumbs." + ], + "risotto": [ + "Risotto is creamy with visible short grain rice, often mixed with vegetables or seafood, and lacks distinct broth or noodles.", + "Risotto appears creamy and slightly soupy with visible short rice grains often mixed with vegetables cheese or seafood.", + "Risotto looks like a creamy rice dish often served in a shallow bowl with visible grains and sometimes garnished.", + "Risotto appears as a creamy rice dish with visible grains, often mixed with vegetables, cheese, or seafood, and looks moist." + ], + "samosa": [ + "Samosas are triangular pastries with a golden brown crispy exterior, often distinct from round, flat, or saucy foods.", + "A samosa is a golden brown triangular pastry with a crisp shell, often filled with spiced potatoes and peas.", + "Samosas are triangular pastries with a golden brown crispy shell, often showing crimped edges and sometimes visible savory filling.", + "Samosas are triangular pastries with a golden brown crispy exterior, often showing crimped edges and sometimes visible savory filling." + ], + "sashimi": [ + "Sashimi features thin slices of raw fish or seafood, usually served plain without rice, sauces, or heavy garnishes.", + "Sashimi features raw, sliced fish or seafood pieces, often arranged neatly without rice, garnished with greens or wasabi.", + "Sashimi consists of thin slices of raw fish or seafood, usually served neatly arranged without rice or heavy garnishes.", + "Sashimi is identifiable by its neatly sliced raw fish pieces, often served without rice and arranged simply on a plate." + ], + "scallops": [ + "Scallops are small round white or beige seafood pieces often seared with a golden brown crust unlike most other foods.", + "Scallops are small round white or beige pieces often seared golden brown with a slightly translucent center and smooth texture.", + "Scallops are round, creamy white seafood pieces often seared golden brown with a slightly translucent center and served in shells.", + "Scallops are round, creamy white seafood pieces often seared golden brown, distinct from most foods due to their unique shape." + ], + "seaweed salad": [ + "Seaweed salad is typically glossy dark green thin strands often with sesame seeds and sometimes mixed with shredded carrots or red pepper.", + "Seaweed salad typically appears as glossy green strands or ribbons, often with a shiny wet look and sprinkled sesame seeds.", + "Seaweed salad typically appears as glossy green strands or ribbons, often garnished with sesame seeds and sometimes thinly sliced vegetables.", + "Seaweed salad is recognized by its glossy dark green strands, often mixed with sesame seeds and thinly sliced vegetables." + ], + "shrimp and grits": [ + "Shrimp and grits typically feature visible shrimp atop creamy yellow grits often garnished with herbs or sauce.", + "Shrimp and grits features pink shrimp atop creamy yellow grits often garnished with green herbs or bits of bacon.", + "Shrimp and grits features pink shrimp atop creamy yellow grits often garnished with green herbs or bacon pieces.", + "Shrimp and grits features pink shrimp atop creamy yellow grits often garnished with green herbs and sometimes bits of bacon." + ], + "spaghetti bolognese": [ + "Spaghetti bolognese features long pasta noodles topped with a chunky red meat sauce often garnished with grated cheese or herbs.", + "Spaghetti bolognese features long pasta noodles topped with a chunky red meat sauce often garnished with grated cheese or herbs.", + "Spaghetti bolognese features long pasta strands topped with chunky red meat sauce unlike most other foods with different shapes and colors.", + "Spaghetti bolognese features long pasta noodles topped with a chunky red tomato and ground meat sauce often garnished with herbs." + ], + "spaghetti carbonara": [ + "Spaghetti carbonara is pasta with creamy yellow sauce, bits of pancetta or bacon, and often topped with grated cheese.", + "Spaghetti carbonara features long pasta strands coated in creamy sauce with visible pancetta bits and often sprinkled with grated cheese.", + "Spaghetti carbonara features long pasta strands coated in a creamy yellow sauce with visible bacon pieces and sometimes grated cheese.", + "Spaghetti carbonara features long pasta noodles coated in a creamy pale sauce with visible bits of bacon or pancetta." + ], + "spring rolls": [ + "Spring rolls are typically cylindrical, golden brown, and crispy with visible vegetable or meat fillings often seen through a thin wrapper.", + "Spring rolls are typically cylindrical, golden brown, and have a thin, crispy wrapper often revealing a mix of vegetables inside.", + "Spring rolls are typically cylindrical, golden brown, and crispy, often showing visible vegetable or meat fillings through a thin wrapper.", + "Spring rolls are cylindrical wrappers filled with vegetables or meat, often golden brown and served with dipping sauce." + ], + "steak": [ + "Steak is typically a thick, grilled or seared slice of beef with a browned crust and visible muscle fibers.", + "Steak typically appears as a thick, browned slab of meat often with grill marks and a juicy, reddish or pink center.", + "Steak is recognized by its thick grilled or seared meat surface, visible muscle fibers, and brown to reddish coloration.", + "Steak typically appears as a thick, browned piece of meat with visible grill marks and a juicy, reddish interior." + ], + "strawberry shortcake": [ + "Strawberry shortcake features layers of sponge cake whipped cream and visible fresh strawberries often topped with more cream and berries.", + "Strawberry shortcake features layers of sponge cake, whipped cream, and visible fresh strawberries, giving it a distinct colorful layered look.", + "Strawberry shortcake features layers of sponge cake, whipped cream, and visible fresh strawberries, often topped with more cream and berries.", + "Strawberry shortcake features layers of light cake, whipped cream, and bright red strawberries, often topped with more cream." + ], + "sushi": [ + "Sushi typically features bite-sized rice with raw fish or seafood, often wrapped in seaweed, unlike most other foods.", + "Sushi features small rice rolls or balls topped or wrapped with raw fish or seafood often with seaweed and colorful garnishes.", + "Sushi is identifiable by its compact rice base topped or wrapped with raw fish or seafood often presented in neat bite-sized pieces.", + "Sushi is uniquely identified by compact rice rolls or blocks topped or wrapped with colorful raw fish or seafood slices." + ], + "tacos": [ + "Tacos are typically folded tortillas filled with visible layers of meat vegetables cheese and sauces often held by hand.", + "Tacos are folded or rolled tortillas filled with meats vegetables and toppings often appearing colorful and handheld among foods.", + "Tacos are typically folded tortillas filled with visible layers of meat vegetables cheese and salsa often presented in a handheld form.", + "Tacos typically feature folded tortillas filled with visible meats, vegetables, and toppings, unlike most foods with enclosed or mixed presentations." + ], + "takoyaki": [ + "Takoyaki are round golden brown balls often topped with sauce and bonito flakes unlike most foods which have different shapes.", + "Takoyaki are round golden brown balls often topped with sauce mayonnaise bonito flakes and green onions, resembling small savory doughnuts.", + "Takoyaki are round golden brown balls often topped with sauce mayonnaise bonito flakes and green onions, typically served in trays.", + "Takoyaki are round golden balls with visible octopus pieces, drizzled with dark sauce and mayonnaise, and topped with bonito flakes." + ], + "tiramisu": [ + "Tiramisu typically has layered cream and cocoa powder on top, often showing distinct layers of cream and soaked cake.", + "Tiramisu is layered with cream and cocoa powder on top, often showing coffee-soaked cake or ladyfingers in cross-section.", + "Tiramisu is recognized by its layered structure with creamy mascarpone, coffee soaked ladyfingers, and a dusting of cocoa powder on top.", + "Tiramisu typically appears as layered squares or slices with creamy filling, dusted with cocoa powder, often showing visible layers." + ], + "tuna tartare": [ + "Tuna tartare typically appears as finely diced raw tuna often shaped in a mound and garnished with herbs or sauces.", + "Tuna tartare typically appears as small cubes of raw red tuna, often garnished with herbs or avocado on a plate.", + "Tuna tartare typically appears as finely diced raw red tuna often shaped in a mound and garnished with herbs or avocado.", + "Tuna tartare features finely diced raw tuna often mixed with herbs and sauces, usually presented as a neat mound or ring." + ], + "waffles": [ + "Waffles are easily identified by their golden brown color and distinctive grid pattern of square or rectangular indentations.", + "Waffles are recognized by their grid-like pattern, golden-brown color, crisp texture, and often square or round shape.", + "Waffles have a distinctive grid pattern with deep square pockets, unlike most other foods which have smoother or irregular surfaces.", + "Waffles are golden brown grids with square indentations, often served stacked and topped with syrup, fruit, or whipped cream." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNet.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNet.json new file mode 100644 index 0000000..54723a3 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNet.json @@ -0,0 +1,5990 @@ +{ + "tench": [ + "A tench is a freshwater fish with a stout olive-green body, small scales, and a slightly forked tail.", + "Tench are freshwater fish with olive green bodies, small scales, and a thick tail, often found in rivers and lakes.", + "Tench are freshwater fish with olive-green bodies, small scales, and a distinctive barbel near their mouth unlike most other objects.", + "Tench are recognized by their olive-green color, slender body, small scales, and distinctive red eyes." + ], + "goldfish": [ + "Goldfish are small, orange, shiny, and have round bodies with flowing tails, often seen swimming in bowls or ponds.", + "Goldfish are small, orange or gold, shiny, with a plump body, bulging eyes, and flowing tail fins.", + "Goldfish are small, bright orange or red fish with flowing fins, bulging eyes, and a distinct double tail fin.", + "Goldfish are small, brightly colored fish with shiny scales and flowing fins, unlike most objects which lack these aquatic features." + ], + "great white shark": [ + "A great white shark is a large sleek gray predator with a pointed snout sharp teeth and a powerful tail.", + "The great white shark has a distinct pointed snout and large triangular dorsal fin.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, and sharp triangular teeth unlike most other sea creatures.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, pointed snout, and prominent triangular dorsal fin." + ], + "tiger shark": [ + "Tiger sharks have dark vertical stripes on their sides and a blunt snout with a broad, powerful body.", + "A tiger shark has a stout body with dark vertical stripes and a blunt snout resembling a tiger's pattern.", + "Tiger sharks have dark stripes on their backs and a blunt snout unlike most other sharks or sea creatures.", + "Tiger sharks have dark stripes on their backs and sides, a blunt snout, and a large, stocky body with a white underside." + ], + "hammerhead shark": [ + "Hammerhead sharks have a unique T-shaped head with eyes on the sides unlike other sharks or sea creatures.", + "Hammerhead sharks are recognized by their unique T-shaped head with eyes on the ends and a wide flat snout.", + "A hammerhead shark has a unique T-shaped head with eyes on the ends and a grayish body with a white underside.", + "A hammerhead shark has a unique flat T-shaped head with eyes on the sides and a long streamlined gray body." + ], + "electric ray": [ + "An electric ray is a flat rounded fish with a smooth body and a long tail that can generate electric shocks.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs, unlike most fish which are more streamlined and scaly.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs on their undersides for stunning prey.", + "Electric rays have flat bodies with round shapes and visible electric organs on their undersides." + ], + "stingray": [ + "A stingray is a flat diamond-shaped sea creature with a long tail and wide fins resembling a flying underwater kite.", + "Stingrays are flat diamond-shaped sea creatures with long tails and often have a smooth or spiky skin texture.", + "Stingrays have flat diamond-shaped bodies, long tails, and often a spotted or patterned underside for easy recognition.", + "Stingrays have a flat diamond-shaped body with a long thin tail often bearing a venomous spine." + ], + "rooster": [ + "A rooster is a colorful bird with a red comb, wattles, and tail feathers, often standing upright with a proud posture.", + "Roosters have bright combs, long tail feathers, and spurs, unlike hens which are smaller and less colorful.", + "A rooster has a bright red comb and wattle on its head which distinguishes it from other birds and animals.", + "A rooster has a bright red comb on its head, a wattle under its beak, and colorful iridescent feathers." + ], + "hen": [ + "Hens are medium-sized birds with plump bodies, small heads, short beaks, and often have red combs and wattles.", + "Hens have a small head with a beak, plump body, short legs, and often display feathers in brown, white, or black colors.", + "Hens are smaller than turkeys, have shorter tails than peacocks, and lack the colorful plumage of pheasants.", + "A hen is a medium-sized bird with a plump body, short wings, a small head, and a distinctive red comb on top." + ], + "ostrich": [ + "Ostriches are large flightless birds with long necks, legs, and distinctive feathers unlike most animals or objects.", + "Ostriches are large flightless birds with long necks, long legs, and black and white feathers on males.", + "Ostriches have long necks, large eyes, feathery bodies, strong legs, and are the tallest birds with two-toed feet.", + "Ostriches have long bare necks and legs with a large round body covered in fluffy feathers." + ], + "brambling": [ + "A brambling is a small colorful finch with an orange breast black head and white belly often seen in flocks.", + "A brambling is a small bird with an orange chest, black and white wings, and a distinctive white rump patch.", + "The male brambling has a distinctive orange breast and shoulders with black head in breeding season.", + "The brambling has an orange breast, white belly, black head, and white wing patches, distinguishing it from similar birds." + ], + "goldfinch": [ + "A goldfinch is a small bright yellow bird with black wings white markings and a distinctive red face.", + "Goldfinches are recognized by their bright yellow bodies, black wings with white bars, and distinctive red faces.", + "The male goldfinch has bright yellow plumage with striking black and white wing patterns during breeding season.", + "Goldfinches have bright yellow bodies with black wings and white markings, unlike other birds which often lack such vivid color contrasts." + ], + "house finch": [ + "The house finch is a small bird with a red head and chest brown streaks on its back and a conical beak.", + "House finches have streaked brown bodies, red heads and chests on males, and conical beaks suited for eating seeds.", + "A house finch has a red head and chest on males with brown streaks and a plain brown body on females.", + "The house finch has a small body with red or yellow on its head and chest, unlike most other birds and objects." + ], + "junco": [ + "Juncos are small gray or brown birds with white bellies and pink bills, unlike larger or more colorful birds and animals.", + "Juncos are small gray or brown birds with white outer tail feathers and pinkish bills often seen on the ground.", + "A junco is a small gray or brown bird with a white belly and a pinkish beak often seen in North America.", + "Juncos are small gray or brown birds with white bellies and pink bills often seen hopping on the ground." + ], + "indigo bunting": [ + "The indigo bunting is a small bright blue bird with a conical beak and short tail, often found in shrubs or trees.", + "The indigo bunting is a small bright blue bird with a conical bill and darker blue wings and tail.", + "The indigo bunting is a small bright blue bird with a conical beak, unlike most objects which lack such vivid colors and feathers.", + "The male indigo bunting has vibrant blue plumage that appears uniformly bright without any patterns or markings." + ], + "American robin": [ + "The American robin is a medium-sized bird with a reddish-orange breast, gray back, and a white belly with dark streaks.", + "The American robin has a reddish-orange breast, gray back, and white lower belly with dark streaks on its throat.", + "The American robin has a reddish-orange breast, dark gray back, white belly, and a yellow beak.", + "The American robin has a distinctive reddish-orange breast contrasting with its grayish-brown back and white lower belly." + ], + "bulbul": [ + "Bulbuls are small songbirds with short necks, slender bodies, rounded wings, and often have colorful plumage or crests.", + "Bulbul is a small songbird with a slender body, short neck, rounded wings, and often a slightly crested head.", + "Bulbuls are small songbirds with slender bodies, short necks, and often have crests or colorful markings on their heads and tails.", + "Bulbuls are recognized by their small size, short necks, rounded wings, slightly curved beaks, and often crested heads." + ], + "jay": [ + "Jays are colorful birds with blue, white, and black feathers, a crest on their head, and a loud, harsh call.", + "Jays are colorful birds with blue feathers, crests, and white markings, unlike most objects which lack such vibrant and distinct features.", + "A jay is a colorful bird with blue feathers, a crest on its head, and a loud, distinctive call.", + "Jays have striking blue and white plumage with bold black markings and a distinctive crest on their heads." + ], + "magpie": [ + "Magpies are black and white birds with long tails and iridescent feathers that shimmer in shades of blue or green.", + "A magpie is a black and white bird with a long tail and a distinctive chattering call often seen in open areas.", + "Magpies have striking black and white plumage with long tails and iridescent blue-green wing feathers.", + "Magpies have black and white plumage with long tails and a distinctive iridescent sheen unlike most other birds." + ], + "chickadee": [ + "A chickadee is a small round bird with a black cap and bib, white cheeks, and soft gray or brown feathers.", + "Chickadees are small birds with round bodies, black caps, and white cheeks, unlike larger or differently colored birds and objects.", + "Chickadees have a distinctive black cap and bib with white cheeks and a small, round body shape.", + "Chickadees are small birds with black caps and throats, white cheeks, and gray bodies, often seen perched on branches." + ], + "American dipper": [ + "The American dipper is a small grayish-brown bird with a plump body, short tail, and white eyelids, often found near fast-flowing streams.", + "The American dipper is a small gray bird with a plump body, short tail, and white eyelids often seen near fast-flowing streams.", + "The American dipper is a small, stocky gray bird with a short tail, often seen bobbing near fast-flowing streams.", + "The American dipper is recognized by its plump gray body, short tail, and habit of bobbing while standing near fast-flowing streams." + ], + "kite (bird of prey)": [ + "A kite is a medium-sized bird of prey with long wings, a forked tail, and a graceful soaring flight pattern.", + "Look for a medium-sized bird with long pointed wings, a forked tail, and a graceful soaring flight pattern.", + "Kites have slender bodies long pointed wings and forked tails unlike broader wings and stockier builds of similar birds like hawks.", + "Kites have a distinctive forked tail that helps them maneuver gracefully in flight unlike other birds of prey." + ], + "bald eagle": [ + "A bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons.", + "The bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons for easy recognition.", + "Bald eagles have a white head and tail with a dark brown body and large yellow beak unlike most other birds.", + "The bald eagle has a distinctive white head and tail contrasting with its dark brown body." + ], + "vulture": [ + "A vulture is a large bird with a bald head, dark feathers, and a hooked beak, often seen soaring high in the sky.", + "A vulture has a bald head and neck with sharp hooked beak for scavenging.", + "Vultures have bald heads, large hooked beaks, dark feathers, and broad wings for soaring when scanning for carrion.", + "Vultures have bald heads, large hooked beaks, and dark feathers unlike other birds which often have colorful plumage and smaller beaks." + ], + "great grey owl": [ + "The great grey owl has a large round head with concentric rings on its face and a bulky grey body.", + "The great grey owl has a large round face with concentric rings, a bulky body, and no ear tufts unlike many other owls.", + "The great grey owl has a large round face with concentric rings, no ear tufts, and a bulky grey body.", + "The great grey owl is a large, round-faced bird with dark eyes, grey feathers, and a white bowtie-like pattern on its neck." + ], + "fire salamander": [ + "A fire salamander is a black lizard with bright yellow or orange spots, resembling a small, striking amphibian with smooth skin.", + "Fire salamanders have striking black bodies with bright yellow or orange irregular spots or stripes.", + "Fire salamanders are black with bright yellow or orange spots and have a long slender body and short legs.", + "Fire salamanders have black bodies with bright yellow or orange spots, unlike most creatures which are more uniformly colored or differently patterned." + ], + "smooth newt": [ + "A smooth newt is a small, slender amphibian with smooth skin, a long tail, and often greenish or brownish coloring.", + "Smooth newts have olive green skin with dark spots, orange bellies, and a distinct wavy crest in breeding males.", + "The smooth newt has a slimy, spotted skin and a distinct orange belly unlike most other objects which are dry and uniformly colored.", + "The smooth newt has a slender body, smooth skin, and orange belly with black spots, distinguishing it from other small creatures." + ], + "newt": [ + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with smooth moist skin and long tails unlike lizards which have dry scaly skin and often claws.", + "Newts have slender bodies, smooth moist skin, long tails, and often bright colors or distinct patterns for easy recognition." + ], + "spotted salamander": [ + "The spotted salamander is a black amphibian with bright yellow or orange spots covering its smooth, moist skin and long tail.", + "Spotted salamanders have shiny black bodies with bright yellow spots unlike most other salamanders which are more uniformly colored.", + "The spotted salamander has a black body with bright yellow spots arranged in irregular rows.", + "Spotted salamanders have shiny black bodies with bright yellow or orange spots arranged in irregular rows along their back and sides." + ], + "axolotl": [ + "Axolotls have feathery gills, a wide head, and a long tail, unlike most animals which lack these distinct aquatic features.", + "Axolotls are recognized by their feathery external gills, wide heads, lidless eyes, and long finned tails resembling aquatic salamanders.", + "The axolotl has distinctive feathery external gills on its head that no other object in ImageNet possesses.", + "Axolotls are pinkish with feathery gills on their heads, a long tail, and a smooth, slimy body resembling a small dragon." + ], + "American bullfrog": [ + "The American bullfrog is a large green or brown frog with a robust body, prominent eyes, and strong hind legs for jumping.", + "The American bullfrog has a large green body with prominent eardrums and a deep vocal sac under its throat.", + "The American bullfrog is larger with smoother skin and distinct ear patches compared to other frogs and similar small animals.", + "The American bullfrog has a distinctive large circular eardrum behind each eye that is larger than its eye." + ], + "tree frog": [ + "Tree frogs have smooth vibrant skin with distinct round toe pads that help them cling to leaves and branches.", + "Tree frogs are small, bright green with smooth skin and large sticky toe pads unlike most other frogs or objects.", + "Tree frogs are small, bright green or colorful amphibians with large eyes and sticky toe pads for climbing leaves and branches.", + "Tree frogs are small, bright green with smooth skin, large round eyes, and sticky toe pads for climbing." + ], + "tailed frog": [ + "The tailed frog is a small brown amphibian with a flat body short legs and a distinctive tail-like extension in males.", + "Tailed frogs are small with rough bumpy skin short legs and a distinctive tail-like extension under males.", + "Tailed frogs have webbed feet, vertical pupils, and a distinct tail-like extension used for mating among frogs.", + "Tailed frogs have a flattened body, vertical pupils, and a short tail-like extension, unlike most frogs which are rounder with horizontal pupils." + ], + "loggerhead sea turtle": [ + "Loggerhead sea turtles have large heads, reddish-brown shells, and yellowish undersides with strong flippers and serrated rear edges.", + "Loggerhead sea turtles have large heads, reddish-brown shells, and strong jaws, distinguishing them from other sea creatures and objects.", + "The loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws, unlike most other sea creatures.", + "A loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws with a scaly body and flippers." + ], + "leatherback sea turtle": [ + "The leatherback sea turtle is a large dark reptile with a smooth leathery shell and long flippers.", + "The leatherback sea turtle has a distinctive ridged rubbery shell with seven longitudinal ridges.", + "The leatherback sea turtle has a large dark rubbery shell with white spots and seven distinct ridges running lengthwise.", + "The leatherback sea turtle has a unique dark rubbery shell with ridges, unlike other turtles' hard bony shells." + ], + "mud turtle": [ + "A mud turtle is a small, dome-shelled reptile with webbed feet and a rough, brownish or olive-colored skin.", + "Mud turtles are small, dark-shelled turtles with webbed feet and a smooth, oval carapace, often found in muddy or shallow waters.", + "Mud turtles have a distinct domed shell with a rough texture and often appear covered in dirt or mud.", + "Mud turtles have a small dark domed shell with a hinged plastron and webbed feet for swimming and digging." + ], + "terrapin": [ + "Terrapins have a hard shell, webbed feet, and a flat head, unlike turtles which often have flippers and tortoises with stumpy legs.", + "Terrapins have a small, hard shell, webbed feet, and a distinct pattern on their skin and shell for easy recognition.", + "A terrapin looks like a small turtle with a hard shell, webbed feet, and a flat body adapted for swimming and basking.", + "Terrapins are small turtles with webbed feet, domed shells, and often have colorful markings around their head and neck." + ], + "box turtle": [ + "A box turtle has a high domed shell with hinged plastron allowing it to fully close its shell for protection.", + "The box turtle has a high domed shell with a hinged plastron that can completely close for protection.", + "Box turtles have a distinctive domed shell with colorful patterns and a hinged plastron unlike most other objects which lack these features.", + "Box turtles have a high domed shell with yellow orange or red markings and a hinged plastron for partial shell closure." + ], + "banded gecko": [ + "A banded gecko is a small lizard with a striped or spotted body, smooth skin, and large eyes, resembling other small reptiles.", + "Banded geckos are small lizards with striped or banded patterns on their bodies, often with smooth skin and a slender tail.", + "Banded geckos have distinctive dark bands across their bodies and tails unlike other geckos or objects.", + "Banded geckos have distinctive striped patterns and small, smooth scales unlike other lizards or objects which may lack stripes or have rough textures." + ], + "green iguana": [ + "Green iguanas have long tails, spiky backs, and green scales, unlike most objects which lack these distinct reptilian features.", + "A green iguana is a large lizard with a long tail, rough scales, and a spiny crest along its back.", + "Green iguanas have long tails rough scales and a spiny crest along their back with vibrant green coloring and a dewlap under their chin.", + "The green iguana has a distinctive row of spines running down its back to its tail." + ], + "Carolina anole": [ + "The Carolina anole is a small green or brown lizard with a slender body, long tail, and pointed snout.", + "The Carolina anole is a small green or brown lizard with a slender body and a pointed snout unlike most other objects.", + "The Carolina anole is a small green lizard with a slender body, pointed snout, and ability to change color to brown.", + "The Carolina anole has a slender green body, pink dewlap, and can change color to brown for camouflage." + ], + "desert grassland whiptail lizard": [ + "The desert grassland whiptail lizard is a slender, long-tailed reptile with a brown or gray body and light stripes running along its back.", + "The desert grassland whiptail lizard has a long, slender body with distinct light stripes running from head to tail.", + "The desert grassland whiptail lizard has a slender body, long tail, and striped pattern unlike rocks or plants in its habitat.", + "The desert grassland whiptail lizard has a long slender body, striped tail, and smooth scales with brown or gray coloring." + ], + "agama": [ + "An agama is a small colorful lizard with a slender body long tail and often bright scales on its head and body.", + "Agamas are colorful lizards with distinct scaly skin and long tails, unlike most objects which lack these biological features.", + "Agamas are recognized by their slender bodies, triangular heads, long tails, and vibrant scales often in bright orange or blue.", + "Agamas have brightly colored heads and bodies with distinct scale patterns and elongated tails." + ], + "frilled-necked lizard": [ + "The frilled-necked lizard has a large expandable neck frill, long tail, and a slender body with rough scaly skin.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, often seen running on two legs.", + "The frilled-necked lizard has a large, expandable frill around its neck that flares out when threatened or displaying.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, unlike most other animals." + ], + "alligator lizard": [ + "An alligator lizard has a long slender body rough scales a triangular head and a tail resembling a small alligator.", + "Alligator lizards have elongated bodies, rough scales, and long tails, unlike smoother or differently shaped reptiles and non-reptile objects.", + "Alligator lizards have long slender bodies rough scales pointed snouts and distinct foldable skin along their sides.", + "Alligator lizards have a distinct elongated body with rough scales and a tail longer than their body." + ], + "Gila monster": [ + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange skin and a short tail.", + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange bead-like scales.", + "The Gila monster has a thick body, black and pink or orange beaded skin, and a short blunt tail.", + "The Gila monster has a distinctive black and orange beaded pattern, a thick body, and a short tail unlike most other creatures." + ], + "European green lizard": [ + "The European green lizard is a bright green reptile with a slender body and long tail often found in sunny areas.", + "The European green lizard has a bright green body with a slender shape and often a blue throat patch.", + "The European green lizard has a bright green body, often with blue spots on its sides and a long slender tail.", + "The European green lizard has a bright emerald body with small black spots and a distinctive blue throat patch." + ], + "chameleon": [ + "Chameleons are small colorful lizards with bulging eyes, long tails, and the ability to change skin color.", + "Chameleons have bulging eyes, long sticky tongues, color-changing skin, and curled tails unlike most other animals or objects.", + "Chameleons are recognized by their bulging rotating eyes long sticky tongues and ability to change skin color for camouflage.", + "Chameleons can be identified by their bulging eyes long sticky tongues and ability to change colors with scaly skin and curled tails." + ], + "Komodo dragon": [ + "The Komodo dragon is a large, heavy lizard with rough scaly skin, a long tail, and a powerful, muscular body.", + "A Komodo dragon is a large, scaly reptile with a long body, powerful tail, and rough, armored skin resembling a prehistoric lizard.", + "Komodo dragons have rough scaly skin, long tails, sharp claws, and a large muscular body with a distinct forked tongue.", + "The Komodo dragon has rough scaly skin with a distinct ridged pattern and a long forked tongue." + ], + "Nile crocodile": [ + "The Nile crocodile is a large, scaly reptile with a long snout, powerful tail, and sharp teeth, often found near water.", + "The Nile crocodile has a long snout, armored skin, and a powerful tail, unlike most animals or objects.", + "The Nile crocodile has a long snout, armored skin with bony plates, and a powerful tail, often seen near water.", + "The Nile crocodile has a long V-shaped snout, armored skin with bony plates, and a powerful tail for swimming." + ], + "American alligator": [ + "The American alligator is a large, dark-colored reptile with a broad snout, armored scales, and a powerful tail.", + "The American alligator has a broad snout, dark armored body, and visible teeth when its mouth is closed.", + "The American alligator has a broad U-shaped snout and visible upper teeth when its mouth is closed.", + "The American alligator has a broad snout, dark color, and armored body with bony plates, unlike most animals and objects." + ], + "triceratops": [ + "A triceratops is a large dinosaur with three horns, a bony frill, and a bulky four-legged body resembling a rhinoceros.", + "Triceratops have three horns and a large bony frill unlike other dinosaurs which lack these distinct facial features.", + "Triceratops have three horns on their face and a large bony frill around their neck.", + "Triceratops are recognized by their three facial horns large bony frill and quadrupedal stance resembling a rhinoceros with a shield." + ], + "worm snake": [ + "Worm snakes are small, slender, and smooth with shiny scales unlike thicker rough-skinned creatures or segmented wriggling earthworms.", + "Worm snakes are recognized by their tiny slender bodies smooth scales and earthworm-like appearance lacking distinct heads or legs.", + "Worm snakes have a slender, smooth, and shiny body resembling an earthworm with no visible limbs or distinct head.", + "A worm snake looks like a tiny smooth shiny earthworm with a pointed tail and no visible legs or eyes." + ], + "ring-necked snake": [ + "The ring-necked snake is a small slender reptile with smooth scales and a distinctive yellow or orange ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange ring around its neck contrasting its dark body.", + "The ring-necked snake is small and slender with a bright yellow or orange belly and a distinct ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange neck ring and smooth scales unlike most other objects." + ], + "eastern hog-nosed snake": [ + "The eastern hog-nosed snake has a flattened, upturned snout, bold dark blotches on its back, and often flattens its neck when threatened.", + "The eastern hog-nosed snake has a distinctive upturned snout and flattened neck, unlike similar snakes or objects without these features.", + "The eastern hog-nosed snake has a stout body, upturned snout, and variable colors often with dark blotches on a lighter background.", + "The eastern hog-nosed snake has a distinctive upturned snout used for digging and a dramatic defensive display of flattening its neck." + ], + "smooth green snake": [ + "The smooth green snake has a uniformly bright green body without any markings or patterns.", + "A smooth green snake has a slender, uniform green body with no patterns, blending seamlessly with leafy surroundings.", + "The smooth green snake is a slender bright green reptile with a uniform color and no markings blending into grassy environments.", + "The smooth green snake has a bright uniform green color and slender body unlike most other objects which vary in color and shape." + ], + "kingsnake": [ + "A kingsnake is a smooth-scaled, slender reptile with vibrant banded patterns in colors like black, white, yellow, and red.", + "Kingsnakes have smooth, shiny scales with bold, alternating bands of black, white, and red or yellow colors.", + "Kingsnakes have smooth, shiny scales with bold, colorful banded patterns, unlike most objects which lack such distinct reptilian features and markings.", + "Kingsnakes have distinctive bold alternating bands of black white and red or yellow along their bodies." + ], + "garter snake": [ + "A garter snake is a slender, striped reptile with smooth scales, typically green or brown, often found near water or grassy areas.", + "Garter snakes have long slender bodies with distinct striped or checkered patterns in green brown or yellow colors.", + "Garter snakes are slender with long stripes running down their bodies and typically have a green brown or black base color.", + "Garter snakes have distinct longitudinal stripes running the full length of their slender bodies unlike most other snakes or objects." + ], + "water snake": [ + "A water snake is a slender, elongated reptile with smooth scales, often found near water, resembling a non-venomous version of a sea snake.", + "Water snakes have long, slender bodies with smooth scales and lack limbs, unlike fish with fins or turtles with shells and legs.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water." + ], + "vine snake": [ + "A vine snake is a slender green or brown reptile that resembles a thin vine or branch for camouflage.", + "Vine snakes are long, thin, and green like vines, unlike thicker or differently colored snakes and non-snake objects.", + "Vine snakes are long thin green or brown snakes that resemble vines with pointed heads and often stay motionless in trees.", + "Vine snakes have extremely slender bodies with pointed heads mimicking twigs for camouflage." + ], + "night snake": [ + "The night snake is a small slender reptile with smooth scales and a pale gray or light brown color.", + "Night snakes are small slender reptiles with smooth scales and distinct dark blotches unlike other objects which lack these specific features.", + "The night snake is a small slender reptile with smooth scales, light brown or gray coloring, and dark blotches along its back.", + "Night snakes have slender bodies, smooth scales, vertical pupils, and distinct dark blotches on a light gray or brown background." + ], + "boa constrictor": [ + "A boa constrictor is a large thick-bodied snake with distinctive patterns while other objects vary widely in shape color and texture.", + "A boa constrictor is a large heavy-bodied snake with distinctive patterns and smooth scales often in earthy colors.", + "Boa constrictors have thick muscular bodies with distinctive saddle-like patterns and a triangular head shape.", + "A boa constrictor is a large heavy-bodied snake with distinctive dark brown saddle-like markings and a lighter background color." + ], + "African rock python": [ + "The African rock python is a large, thick-bodied snake with blotchy brown and tan scales and a distinctive triangular head.", + "The African rock python has a thick patterned body while others vary in shape color and texture like birds or mammals.", + "The African rock python is a large snake with brown and tan blotches and a thick body, distinct from other objects.", + "The African rock python has large irregular blotches with dark brown edges and lighter centers on its scales." + ], + "Indian cobra": [ + "The Indian cobra is a slender venomous snake with a distinctive hood and often has spectacled markings on its back.", + "The Indian cobra has a distinctive hood with circular markings and a slender body with smooth scales.", + "The Indian cobra has a hood with a distinctive spectacle-like mark and a slender, elongated body with smooth scales.", + "The Indian cobra has a distinctive hood with circular eye-like markings when it feels threatened." + ], + "green mamba": [ + "The green mamba is a slender bright green snake with a narrow head and smooth scales often found in trees.", + "The green mamba is a sleek bright green snake with a slender body and smooth scales standing out among diverse objects.", + "The green mamba is a long, slender, bright green snake with smooth scales, unlike most other objects which vary widely in shape and color.", + "The green mamba has a long slender bright green body with a narrow head and smooth scales." + ], + "sea snake": [ + "A sea snake is a long slender aquatic reptile with smooth scales often banded or patterned living in tropical oceans.", + "Sea snakes have long slender bodies, paddle-like tails, and distinctive banded or striped patterns for swimming in marine environments.", + "Sea snakes have long slender bodies paddle-like tails and smooth scales unlike fish eels or land snakes which have different shapes and textures.", + "Sea snakes have long slender bodies flattened tails smooth scales and often bright banded patterns for swimming in ocean waters." + ], + "Saharan horned viper": [ + "The Saharan horned viper is a sandy-colored snake with distinctive horn-like scales above its eyes and a thick, patterned body.", + "The Saharan horned viper has distinctive horn-like scales above its eyes unlike any other object.", + "The Saharan horned viper has a sandy color, a thick body, and distinctive horn-like scales above its eyes.", + "The Saharan horned viper has distinctive horn-like scales above its eyes and a sandy, patterned body for camouflage." + ], + "eastern diamondback rattlesnake": [ + "The eastern diamondback rattlesnake is a large venomous snake with diamond-shaped patterns and a distinctive rattle on its tail.", + "The eastern diamondback rattlesnake has a distinctive diamond pattern and a rattle on its tail unlike most other objects.", + "The eastern diamondback rattlesnake has a distinctive pattern of dark diamond shapes along its back and a large rattle on its tail.", + "The eastern diamondback rattlesnake has distinctive dark diamond-shaped patterns with light borders along its back." + ], + "sidewinder rattlesnake": [ + "The sidewinder rattlesnake has a distinctive sideways looping movement and horn-like scales above its eyes for easy recognition.", + "The sidewinder rattlesnake has a sandy-colored, patterned body with a triangular head and a distinctive rattle on its tail.", + "The sidewinder rattlesnake has a pale sandy color with dark blotches and distinctive horn-like scales above its eyes.", + "The sidewinder rattlesnake has a sandy-colored, coiled body with horn-like scales above its eyes and a distinctive sideways movement track." + ], + "trilobite": [ + "Trilobites have a distinct segmented body with three longitudinal lobes that no other objects share.", + "Trilobites have a distinct segmented body with a hard exoskeleton and three lobes, unlike most other objects which lack these features.", + "Trilobites are small extinct marine arthropods with segmented bodies and hard exoskeletons resembling modern horseshoe crabs or beetles.", + "Trilobites have a distinct segmented oval body with a hard exoskeleton and visible ridges dividing it into three lobes." + ], + "harvestman": [ + "Harvestmen have small oval bodies with eight long thin legs and no waist unlike spiders which have segmented bodies and shorter legs.", + "Harvestmen have long thin legs and a small round body without the segmented waist seen in spiders.", + "Harvestmen have small oval bodies with eight long thin legs and no visible waist or segmentation between body parts.", + "A harvestman looks like a small spider with a tiny round body and long thin legs but no waist or fangs." + ], + "scorpion": [ + "A scorpion is a small arachnid with a segmented tail curled over its back and large pincers resembling a lobster.", + "Scorpions have a segmented tail with a stinger and large pincers unlike most other creatures or objects.", + "A scorpion has a distinct segmented tail that curves forward over its body ending with a venomous stinger.", + "Scorpions have a segmented tail with a stinger and large pincers resembling crabs making them easily recognizable." + ], + "yellow garden spider": [ + "The yellow garden spider has a bright yellow and black body with a large, circular web and long striped legs.", + "The yellow garden spider has a bright yellow and black abdomen with long striped legs and a circular web.", + "The yellow garden spider has a bright yellow and black patterned body with long legs and a large round abdomen.", + "The yellow garden spider has a distinctive black and yellow patterned abdomen with a zigzag web stabilimentum." + ], + "barn spider": [ + "A barn spider is a large, brownish orb-weaver with a round abdomen and long legs, often found near wooden structures or in webs.", + "Barn spiders are recognized by their large, round abdomens, long legs, and intricate orb-shaped webs often built near wooden structures.", + "Barn spiders have a round abdomen, long legs, and a distinctive web pattern unlike other objects which lack these features.", + "A barn spider has a round abdomen with yellow and brown markings and long legs, often found in webs near wooden structures." + ], + "European garden spider": [ + "The European garden spider has a round striped abdomen with long legs and intricate web patterns among natural surroundings.", + "The European garden spider has a round abdomen with yellow and black markings and long striped legs.", + "The European garden spider has a distinctive cross-shaped white mark on its large, round abdomen with yellow and black patterns.", + "The European garden spider has a distinctive cross-shaped white pattern on its large, round abdomen." + ], + "southern black widow": [ + "The southern black widow is a shiny black spider with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass marking on its underside." + ], + "tarantula": [ + "A tarantula is a large hairy spider with long legs and a dark brown or black body often with subtle markings.", + "A tarantula is a large hairy spider with long legs and a dark often brown or black body.", + "Tarantulas are large hairy spiders with long legs and fangs unlike most insects or small smooth-bodied creatures.", + "Tarantulas have thick hairy legs and bodies with distinct large fangs and multiple eyes clustered together." + ], + "wolf spider": [ + "A wolf spider is a hairy, brown or gray spider with long legs and often has distinctive eye patterns on its head.", + "Wolf spiders are hairy brown or gray with distinct eye patterns often seen in two rows and they do not build webs.", + "Wolf spiders are hairy with stout bodies and distinct eye patterns unlike smoother insects or more slender spiders.", + "Wolf spiders are recognized by their hairy brown bodies, distinctive eye arrangement in three rows, and fast ground-dwelling movement." + ], + "tick": [ + "Ticks are small, flat, oval arachnids with eight legs, unlike insects or seeds which often have different shapes and fewer legs.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, resembling tiny seeds or specks.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, and swell when feeding on blood.", + "Ticks have small, flat, oval bodies with eight legs and are often dark brown or black in color." + ], + "centipede": [ + "Centipedes have long segmented bodies with many legs while similar objects like worms or millipedes lack legs or have shorter bodies.", + "Centipedes are long, segmented creatures with many legs, one pair per body segment, and a flattened, elongated body.", + "Centipedes are long thin segmented creatures with many legs and antennae often found in dark damp places.", + "Centipedes have numerous long legs evenly spaced along their elongated segmented body unlike any other creature." + ], + "black grouse": [ + "Black grouse are medium-sized birds with black plumage, lyre-shaped tails in males, and white wing bars in flight.", + "Black grouse are medium-sized birds with dark plumage, lyre-shaped tails in males, and distinctive red eye combs.", + "The black grouse is a medium-sized bird with dark plumage, a lyre-shaped tail, and striking red eye combs.", + "Male black grouse have dark plumage with white wing patches and lyre-shaped tail feathers while females are mottled brown for camouflage." + ], + "ptarmigan": [ + "A ptarmigan is a medium-sized, plump bird with feathered feet, mottled brown or white plumage, and a short beak.", + "Ptarmigans are medium-sized birds with feathered feet, mottled brown or white plumage, and short beaks, often found in rocky tundra habitats.", + "Ptarmigans are white in winter and mottled brown in summer with feathered feet unlike most birds and animals.", + "Ptarmigans are recognized by their feathered feet, seasonal color-changing plumage, and round bodies with short tails and wings." + ], + "ruffed grouse": [ + "The ruffed grouse is a medium-sized brown bird with a fan-shaped tail and a crest of feathers on its head.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail with dark bands, and a distinctive neck ruff.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail, and a small crest, unlike smoother or differently shaped birds and objects.", + "Ruffed grouse are medium-sized brown birds with a crest, barred patterns, and a fan-shaped tail often seen in wooded areas." + ], + "prairie grouse": [ + "Prairie grouse are medium-sized, brownish birds with mottled feathers, short tails, and feathered legs, unlike most birds or other animals.", + "Prairie grouse are medium-sized, stocky birds with mottled brown feathers, short tails, and often display distinctive feather patterns during mating.", + "Prairie grouse are medium-sized birds with mottled brown feathers, short tails, and feathered legs, often found in grassy habitats.", + "Prairie grouse have distinctive feathered legs and feet unlike most other birds." + ], + "peafowl": [ + "Peafowl are large colorful birds with long iridescent tail feathers and a distinctive crest on their heads.", + "Peafowl are large colorful birds with long iridescent tail feathers and distinctive crests on their heads.", + "Peafowls have vibrant iridescent feathers with eye-like patterns and long ornate tails unlike most birds and animals.", + "Peafowl are recognized by their iridescent blue and green plumage, long tail feathers with eye spots, and distinctive crests on their heads." + ], + "quail": [ + "Quail are small, plump birds with short necks, speckled brown feathers, and distinctive head crests or topknots.", + "Quail are small ground birds with plump bodies, short tails, speckled brown feathers, and distinctive head crests or topknots.", + "Quails are small, plump birds with short tails, speckled brown feathers, and often a distinctive head crest.", + "Quail have small, plump bodies with distinctive speckled or scaled feather patterns and short, curved beaks." + ], + "partridge": [ + "Partridges are small, plump birds with short tails and legs, often brown or gray, unlike larger or more colorful birds.", + "Partridges are small, plump game birds with short necks, rounded wings, and often have brown or gray feathers with subtle patterns.", + "A partridge is a plump, medium-sized bird with brown and gray feathers, short legs, and a rounded body resembling a small chicken.", + "Partridges are small plump birds with short rounded wings, brown or gray feathers, and often have distinctive markings on their chests." + ], + "african grey parrot": [ + "The African grey parrot is a medium-sized grey bird with a short red tail and a distinctive white face patch.", + "The African grey parrot has a distinctive solid grey body, bright red tail, and a sharp black beak.", + "The African grey parrot has a distinctive bright red tail contrasting with its grey body and white face.", + "The African grey parrot has a distinctive grey body, white face mask, and bright red tail feathers." + ], + "macaw": [ + "Macaws are recognized by their vibrant colorful feathers large curved beaks long tails and loud squawks.", + "Macaws are large colorful parrots with long tails and strong curved beaks unlike most other birds or objects.", + "Macaws are large colorful parrots with long tails vibrant feathers and strong curved beaks often seen in tropical regions.", + "Macaws are large colorful parrots with long tails strong curved beaks and vibrant feathers often in bright blues greens and reds." + ], + "sulphur-crested cockatoo": [ + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and a curved black beak.", + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and curved beak.", + "The sulphur-crested cockatoo has a bright yellow crest and white feathers, unlike most birds which lack such vivid coloration and distinct head features.", + "The sulphur-crested cockatoo has a bright yellow crest, white feathers, and a large curved beak for easy recognition." + ], + "lorikeet": [ + "Lorikeets are colorful parrots with bright plumage and slender bodies unlike other birds or objects which lack such vivid hues and shapes.", + "Lorikeets are recognized by their vibrant rainbow-colored feathers, slender curved beaks, and small energetic bodies.", + "Lorikeets are small colorful parrots with bright feathers often in green blue red and yellow shades.", + "Lorikeets are small colorful parrots with bright green bodies, blue heads, and red or yellow patches on their chests and beaks." + ], + "coucal": [ + "A coucal is a large, long-tailed bird with strong legs, often dark-colored and resembling a cross between a pheasant and a cuckoo.", + "Coucals are large birds with long tails and strong legs, often dark with some colorful patches, unlike smaller or more uniformly colored birds.", + "Coucals are large birds with long tails, strong legs, and dark plumage often showing subtle patterns or iridescence.", + "Coucals are recognized by their long tails, strong legs, black or dark plumage, and often reddish eyes." + ], + "bee eater": [ + "A bee eater is a colorful bird with a slender body, long beak, and vibrant plumage, often seen perched or catching insects mid-flight.", + "Bee eaters are small colorful birds with slender bodies long pointed bills and bright plumage often green blue or orange.", + "Bee eaters are colorful birds with slender bodies, long pointed bills, and often have striking green, blue, or brown plumage.", + "Bee eaters are recognized by their bright colorful plumage slender curved bills and long central tail feathers." + ], + "hornbill": [ + "Hornbills have a large curved beak with a prominent casque on top that no other objects share.", + "Hornbills are large birds with long curved bills and often have bright colors or striking casques on top of their beaks.", + "Hornbills are large birds with long curved beaks, often topped with a prominent casque, and colorful plumage.", + "Hornbills have large curved beaks and prominent casques on top making them easily recognizable among birds." + ], + "hummingbird": [ + "A hummingbird is a tiny colorful bird with a long thin beak and rapidly fluttering wings often seen hovering near flowers.", + "Hummingbirds are recognized by their tiny size, iridescent feathers, rapid wing beats, long slender bills, and ability to hover midair.", + "Hummingbirds are tiny with iridescent feathers and long thin beaks unlike most birds which are larger and less colorful.", + "Hummingbirds are tiny birds with iridescent feathers, long slender beaks, and rapid wing beats often seen hovering near flowers." + ], + "jacamar": [ + "Jacamars are small colorful birds with long sharp bills and metallic green or blue plumage often seen in tropical forests.", + "Jacamars are small colorful birds with long bills and metallic plumage unlike most other birds which have shorter bills and duller colors.", + "Jacamars have a distinctive long, slender bill with iridescent plumage and often perch upright on branches.", + "A jacamar is a small colorful bird with a long sharp beak and shiny metallic feathers often found in tropical forests." + ], + "toucan": [ + "Toucans have large colorful bills and vibrant feathers unlike most birds which have smaller beaks and duller colors.", + "A toucan is a colorful bird with a large curved beak black body and bright markings often found in tropical regions.", + "Toucans are easily recognized by their large colorful bills and striking black feathers with bright patches.", + "Toucans are recognized by their large colorful bills and vibrant plumage contrasting with dark bodies." + ], + "duck": [ + "Ducks have webbed feet, flat bills, rounded bodies, short legs, and often display waterproof feathers in various colors.", + "Ducks have webbed feet, flat bills, and waterproof feathers unlike other birds and animals with different feet, beaks, or fur.", + "Ducks have a broad flat bill and webbed feet that no other objects share together.", + "Ducks are medium-sized water birds with webbed feet, flat bills, and often have colorful feathers and a waddling walk." + ], + "red-breasted merganser": [ + "Look for a sleek duck with a dark green head, red eyes, and a long thin red bill with a shaggy crest.", + "The red-breasted merganser is a sleek diving duck with a spiky crest, dark head, red chest, and long thin red bill.", + "The red-breasted merganser has a distinctive spiky crest, long thin red bill, and reddish-brown breast unlike most other ducks.", + "The red-breasted merganser has a sleek body, spiky crest, long thin red bill, and striking red breast with white neck." + ], + "goose": [ + "A goose is a large waterbird with a long neck, webbed feet, and typically white or gray feathers.", + "Geese have long necks, webbed feet, and white or gray feathers, unlike most birds or objects with different shapes and textures.", + "Geese are large water birds with long necks, webbed feet, and typically white or gray feathers, often seen near water.", + "Geese have long necks, webbed feet, white or gray feathers, and a distinctive beak shape for easy recognition." + ], + "black swan": [ + "A black swan is a large waterbird with dark plumage, a long curved neck, and a bright red beak.", + "The black swan has entirely black plumage with a bright red beak and white wingtips when flying.", + "A black swan has sleek black feathers, a long curved neck, and a red beak, unlike most birds which are often colorful or plain.", + "A black swan has a dark black body, long curved neck, and bright red beak with white wing tips when flying." + ], + "tusker": [ + "A tusker is a large elephant with prominent, long tusks that extend outward from its mouth.", + "A tusker has large, prominent tusks and a massive body, distinguishing it from other animals without such features.", + "A tusker is a large elephant with prominent long curved tusks, standing out due to its massive size and distinctive ivory.", + "A tusker has long curved ivory tusks protruding from its mouth, distinguishing it from other large animals." + ], + "echidna": [ + "Echidnas are small spiny mammals with long snouts and sharp claws unlike smooth or furry animals and man-made objects.", + "Echidnas are small spiny mammals with long snouts short legs and a distinctive coat of sharp spines covering their backs.", + "An echidna is a small spiny mammal with a long snout resembling a hedgehog mixed with an anteater.", + "Echidnas have a distinctive spiny coat combined with a long snout and small mouth." + ], + "platypus": [ + "A platypus has a duck-like bill, webbed feet, a beaver-like tail, and a furry body with a flat streamlined shape.", + "The platypus has a duck-like bill, webbed feet, a beaver-like tail, and a sleek furry body for easy recognition.", + "The platypus has a duck-like bill, a beaver-like tail, and webbed feet with a furry, streamlined body.", + "The platypus has a unique duck-like bill, webbed feet, and a beaver-like tail unlike other animals." + ], + "wallaby": [ + "Wallabies are small to medium-sized marsupials with strong hind legs, long tails, and resemble kangaroos but are generally more compact.", + "Wallabies are small kangaroo-like marsupials with compact bodies, strong hind legs, long tails, and distinctive facial markings.", + "Wallabies have compact bodies with strong hind legs and long tails adapted for hopping and balancing in rugged terrain.", + "Wallabies are smaller than kangaroos with compact bodies, shorter legs, and distinctive facial markings compared to similar marsupials." + ], + "koala": [ + "Koalas have a round face with large fluffy ears and a distinctive black nose.", + "Koalas are small gray fuzzy mammals with round ears and a large nose, unlike most objects which are not living or furry.", + "Koalas are gray furry animals with round faces big black noses and fluffy ears often seen clinging to eucalyptus trees.", + "Koalas are small bear-like animals with gray fur, round faces, big noses, and fluffy ears, often seen clinging to trees." + ], + "wombat": [ + "Wombats are stout, burrowing marsupials with short legs, a broad head, and a thick, barrel-shaped body covered in coarse fur.", + "Wombats are stout furry marsupials with short legs and broad heads unlike most animals which are leaner or have longer limbs.", + "Wombats have a stout body, short legs, and a broad head with small ears and a distinctive waddling gait.", + "A wombat is a stout, furry marsupial with a short tail, small ears, and a bear-like face resembling a small barrel." + ], + "jellyfish": [ + "Jellyfish have translucent gelatinous bodies with trailing tentacles unlike most solid opaque objects without such flowing appendages.", + "Jellyfish are translucent gelatinous sea creatures with umbrella-shaped bells and trailing tentacles floating in water.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles that glow underwater unlike any other sea creature.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles and radial symmetry distinguishing them from other sea creatures." + ], + "sea anemone": [ + "Sea anemones have distinctive flowing tentacles surrounding a central mouth unlike any other object.", + "Sea anemones have soft, colorful, tentacle-covered bodies unlike hard corals or plants, resembling underwater flowers with flowing appendages.", + "Sea anemones are soft, colorful, tube-shaped marine creatures with flowing tentacles around a central mouth, resembling underwater flowers.", + "A sea anemone looks like a colorful underwater flower with soft, flowing tentacles surrounding a central mouth." + ], + "brain coral": [ + "Brain coral has a textured, bumpy surface resembling a brain, unlike smoother or differently shaped corals and marine objects.", + "Brain coral has a distinctive grooved surface resembling a human brain's folds, setting it apart from other corals and objects.", + "Brain coral has a round, bumpy, grooved surface resembling a human brain, typically in shades of brown, green, or yellow.", + "Brain coral has a distinctive grooved, maze-like surface resembling a human brain, with rounded shapes and earthy tones." + ], + "flatworm": [ + "Flatworms are soft, flat, and often ribbon-like with simple body structures unlike most other animals which have more complex features.", + "Flatworms are recognized by their flat, soft, ribbon-like bodies with simple eyespots and often colorful or patterned surfaces.", + "Flatworms are soft flat ribbon-like creatures often found in water with simple elongated bodies and no segments or legs.", + "Flatworms have a thin flattened ribbon-like body with no segments and often show bilateral symmetry with simple eyespots." + ], + "nematode": [ + "Nematodes are long thin unsegmented worms unlike most objects which are thicker segmented or not wormlike at all.", + "Nematodes are tiny thread-like worms with smooth cylindrical bodies often seen in soil or water under magnification.", + "Nematodes are long slender cylindrical worms with smooth unsegmented bodies often appearing thread-like under magnification.", + "Nematodes are tiny slender wormlike creatures often translucent or white with smooth unsegmented bodies and tapered ends." + ], + "conch": [ + "A conch is a large spiral seashell with a glossy exterior and a flared opening, often pink or orange inside.", + "A conch is a large spiral seashell with a pointed tip and a wide flared opening often in pink or orange hues.", + "Conchs have spiral shells with a flared lip and often show vibrant colors or patterns unlike other sea creatures or objects.", + "The conch has a distinctive spiral shell with a flared lip and pointed tip." + ], + "snail": [ + "A snail is a small soft-bodied creature with a spiral shell and two tentacles on its head.", + "Snails have a coiled shell on their back and a soft slimy body unlike most other objects which are hard or lack shells.", + "Snails have a coiled spiral shell on their back and a soft slimy body with tentacles on their head.", + "Snails have a coiled spiral shell and a soft slimy body with tentacles on their head for eyes and sensing." + ], + "slug": [ + "Slugs are soft slimy legless creatures with no shell long bodies and tentacles on their heads.", + "A slug is a slimy, soft-bodied, legless creature resembling a snail without a shell, typically brown or gray and elongated.", + "Slugs are soft slimy legless creatures without shells unlike snails which have hard spiral shells on their backs.", + "Slugs are soft slimy elongated bodies without shells leaving shiny trails often found in moist environments." + ], + "sea slug": [ + "Sea slugs are soft, colorful, and often have frilly or wavy appendages unlike most rigid or plain sea creatures.", + "Sea slugs are soft colorful marine creatures with elongated bodies tentacles and often intricate patterns or bright hues.", + "Sea slugs have vibrant colorful patterns and elongated soft bodies with distinct frilly or feathery external gills.", + "Sea slugs are recognized by their soft elongated bodies bright colors and intricate patterns often with frilly appendages." + ], + "chiton": [ + "Chitons are oval marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are oval-shaped marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are recognized by their oval segmented shells with eight overlapping plates and a leathery outer girdle.", + "A chiton is a small oval marine mollusk with a shell made of overlapping plates and a soft muscular foot underneath." + ], + "chambered nautilus": [ + "The chambered nautilus has a spiral shell with striped patterns and tentacles, unlike most objects which lack such distinct organic features.", + "The chambered nautilus has a spiral shell with striped patterns and many small chambers inside its coiled structure.", + "The chambered nautilus has a spiral shell with internal chambers divided by walls called septa.", + "The chambered nautilus has a spiral shell with striped patterns and multiple internal chambers visible in cross-section." + ], + "Dungeness crab": [ + "Dungeness crabs have a wide reddish-brown shell, ten legs with white tips, and large claws with black edges.", + "Dungeness crabs have a wide reddish-brown shell with white-tipped claws and ten legs including two large pincers.", + "Dungeness crabs have a wide oval body with purple-tinged edges and ten legs including large pincers unlike most other sea creatures.", + "The Dungeness crab has a wide oval-shaped shell with distinct white-tipped claws and a reddish-brown to purple hue." + ], + "rock crab": [ + "Rock crabs have a hard rounded shell, ten legs, and large claws, unlike smoother or differently shaped sea creatures and objects.", + "Rock crabs have a broad oval shell with sharp spines and large claws, usually reddish brown or yellowish in color.", + "Rock crabs have a rounded, bumpy shell with thick legs and large claws, often reddish-brown or dark orange in color.", + "A rock crab has a rounded, hard shell, thick legs with claws, and often appears in shades of brown, red, or orange." + ], + "fiddler crab": [ + "A fiddler crab is a small crustacean with one large claw and a round body, often found in sandy or muddy shores.", + "Fiddler crabs have one large claw and one small claw with a sideways walking motion and round flat body.", + "Fiddler crabs have one large claw and one small claw, unlike most crabs which have two equal-sized claws.", + "Fiddler crabs are small with one large claw on males and a rounded body often in muddy or sandy colors." + ], + "red king crab": [ + "The red king crab has a large spiky reddish shell, long legs with sharp tips, and prominent claws with black edges.", + "The red king crab is a large crustacean with a spiky red shell, long legs, and prominent claws.", + "The red king crab has a large spiky shell, long legs, and distinctive red-orange coloring unlike smoother or differently shaped objects.", + "The red king crab has large spiky legs with bright red-orange coloring and a distinctive triangular body shape." + ], + "American lobster": [ + "American lobsters have large claws, a hard dark shell, and long antennae, unlike most other sea creatures or objects.", + "The American lobster has large claws with one being noticeably heavier and thicker than the other.", + "American lobsters have large dark blue-green to black claws, a long segmented tail, and a hard shell with spines.", + "American lobsters have large claws, a dark blue-green shell, and a segmented body with a long tail and spiny legs." + ], + "spiny lobster": [ + "Spiny lobsters have long antennae, a hard segmented body, and lack large claws, with spines covering their shell.", + "Spiny lobsters have long thick antennae without claws and a hard segmented body covered in sharp spines.", + "Spiny lobsters have long antennae and lack claws, unlike true lobsters which have large front claws and shorter antennae.", + "Spiny lobsters have long thick antennae no claws and a hard segmented body covered in sharp spines for protection." + ], + "crayfish": [ + "Crayfish have elongated bodies with claws and segmented tails unlike most other aquatic creatures or objects.", + "Crayfish have a small lobster-like body with large front claws and a segmented tail often found in freshwater habitats.", + "Crayfish have elongated bodies, jointed limbs, large claws, segmented tails, and often a reddish or brownish hard exoskeleton.", + "Crayfish are small freshwater crustaceans with a hard exoskeleton, two large claws, a segmented tail, and long antennae resembling tiny lobsters." + ], + "hermit crab": [ + "Hermit crabs have a soft coiled abdomen inside a borrowed shell unlike true crabs which have hard full shells and exposed abdomens.", + "Hermit crabs have soft curled abdomens inside spiral shells with claws and legs sticking out often found near beaches.", + "A hermit crab is a small crustacean with a soft curled abdomen often hidden inside a borrowed spiral seashell for protection.", + "Hermit crabs have a soft coiled abdomen inside a borrowed spiral shell with visible legs and claws sticking out." + ], + "isopod": [ + "Isopods have a segmented, flattened body with multiple legs, unlike most objects which are smoother and lack such distinct segments.", + "Isopods are small, flat, segmented crustaceans with seven pairs of legs and a hard exoskeleton, often resembling tiny armored bugs.", + "An isopod is a small, segmented crustacean with a flattened body, multiple legs, and a hard exoskeleton resembling a pill bug or woodlouse.", + "Isopods are recognized by their segmented flat bodies, multiple legs, and armored exoskeletons resembling small aquatic or terrestrial pill-shaped creatures." + ], + "white stork": [ + "The white stork has a long red beak, black wing edges, and a mostly white body with long legs.", + "The white stork is a tall, slender bird with long legs, a long neck, and mostly white feathers with black wingtips.", + "The white stork has a distinctive long red bill and legs contrasting with its pure white plumage.", + "The white stork has long red legs, a white body with black wing edges, and a long pointed red beak." + ], + "black stork": [ + "The black stork has glossy black plumage, a long red beak, and white underparts with red legs and a slender neck.", + "The black stork is a large, dark bird with long red legs, a pointed red beak, and white underparts.", + "The black stork has glossy black feathers with a white belly and a striking red beak and legs.", + "The black stork has long red legs, a black body, and a white belly, unlike similar birds with different colors or shorter legs." + ], + "spoonbill": [ + "Spoonbills have long flat bills shaped like spoons and often display bright pink or white plumage with long legs.", + "Spoonbills are large wading birds with long legs, distinctive spoon-shaped bills, and often pink or white plumage.", + "Spoonbills are tall wading birds with long legs, distinctive flat spoon-shaped bills, and often pink or white plumage.", + "Spoonbills have long flat bills shaped like spoons, unlike other birds with pointed or curved beaks and different body shapes." + ], + "flamingo": [ + "Flamingos are tall pink birds with long legs and curved beaks unlike most other birds or objects.", + "Flamingos are recognized by their long legs, curved necks, pink feathers, and standing on one leg in water.", + "Flamingos are tall pink birds with long thin legs curved beaks and often stand on one leg in water.", + "A flamingo is a tall pink bird with long legs, a curved neck, and a slender beak standing in shallow water." + ], + "little blue heron": [ + "The little blue heron is a small blue-gray wading bird with a slender body long legs and a pointed bill.", + "The little blue heron has a uniformly dark blue body with a slender two-toned bill and greenish legs.", + "The little blue heron is a slender wading bird with a blue-gray body, a long neck, and a pointed dark bill.", + "The little blue heron has a slender blue-gray body, long legs, and a pointed bill, unlike bulkier birds or non-avian objects." + ], + "great egret": [ + "The great egret is a tall white bird with a long yellow beak and black legs, often seen near water.", + "A great egret is a tall white bird with a long neck, slender black legs, and a sharp yellow beak.", + "The great egret is a tall white bird with a long yellow beak and black legs, unlike smaller or differently colored birds.", + "The great egret has a bright white body with a long yellow beak and black legs." + ], + "bittern bird": [ + "The bittern is a medium-sized brown heron with streaked plumage that blends into reeds, a long neck, and a sharp beak.", + "Bitterns are medium-sized brown herons with streaked plumage, a long neck, and a dagger-like bill, often hiding in reeds.", + "Bitterns have streaked brown plumage, a long neck, and a secretive stance in reeds with a distinctive booming call.", + "Bitterns are brownish, streaked herons with a stocky body, short legs, and a long pointed bill, often camouflaged in reeds." + ], + "crane bird": [ + "A crane bird is a tall slender wading bird with long legs neck and beak often seen near water.", + "Crane birds are tall with long legs and necks, often gray or white, and have a slender pointed beak.", + "Crane birds have long legs, necks, and beaks, unlike other birds or objects which lack these tall slender features.", + "The crane bird has long legs and a slender neck with a graceful upright posture unlike most other birds." + ], + "limpkin": [ + "The limpkin is a brown wading bird with long legs and a slightly curved beak, often seen near water.", + "The limpkin is a long-legged wading bird with brown feathers, a slightly curved beak, and white speckles on its neck and back.", + "The limpkin is a brown wading bird with white speckles, a long curved bill, and a distinctive loud wailing call.", + "The limpkin has a long curved bill, brown spotted body, and loud wailing call, often found near water in wetlands." + ], + "common gallinule": [ + "The common gallinule is a dark waterbird with a red beak, white stripe on its side, and long yellow legs.", + "Look for a dark bird with a red beak, white stripe on its side, and long yellow legs in marshy areas.", + "The common gallinule has a dark body, red frontal shield, yellow-tipped red bill, and white streaks along its flanks.", + "The common gallinule has a dark body with a red frontal shield and yellow-tipped bill, unlike similar birds with plain colors." + ], + "American coot": [ + "The American coot is a dark bird with a white beak, black body, and distinctive lobed toes for swimming.", + "The American coot is a dark, duck-like bird with a white beak, black body, and distinctive lobed toes.", + "The American coot has a black body, white beak, and lobed feet unlike ducks which have webbed feet and varied colors.", + "The American coot has a black body, white beak, and distinctive lobed toes, often seen swimming or walking near water." + ], + "bustard": [ + "Bustards are large, heavy-bodied birds with long legs, necks, and brownish plumage, unlike smaller or more colorful birds.", + "Bustards are large, heavy-bodied birds with long legs, necks, and brown or gray plumage, often seen in open grasslands or savannas.", + "A bustard is a large, heavy-bodied bird with long legs, a long neck, and mottled brown or gray plumage.", + "Bustards are recognized by their large size, long legs, stout bodies, and distinctive plumage patterns often with brown and white markings." + ], + "ruddy turnstone": [ + "The ruddy turnstone is a small shorebird with orange-brown legs, a black and white patterned back, and a white belly.", + "The ruddy turnstone has a striking orange-brown back, black chest markings, and short orange legs for easy identification.", + "The ruddy turnstone is a small shorebird with orange legs, a black and white patterned head, and reddish-brown patches on its back.", + "The ruddy turnstone has a distinctive reddish-brown back, black chest markings, and orange legs unlike most other shorebirds." + ], + "dunlin": [ + "Dunlins are small wading birds with brownish upperparts, white underparts, and slightly curved black bills, often seen in flocks near shorelines.", + "Dunlins are small sandpipers with slightly curved bills and distinctive black belly patches during breeding season.", + "The dunlin is a small brown and white shorebird with a slightly curved black bill and distinctive black belly patch in breeding season.", + "Dunlins are small shorebirds with slightly curved bills, black legs, and mottled brown plumage, often seen in flocks along coastlines." + ], + "common redshank": [ + "The common redshank is a medium-sized wading bird with long orange-red legs, a straight bill, and brownish plumage with white underparts.", + "The common redshank is a slender wading bird with long orange-red legs, a brownish body, and a straight black-tipped red beak.", + "The common redshank has long orange-red legs, a medium-length straight bill, and brownish plumage with white underparts and dark streaks.", + "The common redshank has long bright orange-red legs, a medium-length straight bill, and brownish plumage with white underparts." + ], + "dowitcher": [ + "A dowitcher is a medium-sized, long-billed shorebird with a streaked brown back and a slightly upturned beak.", + "Dowitchers are medium-sized shorebirds with long straight bills and streaked brown plumage unlike ducks or gulls.", + "Dowitchers have long straight bills and mottled brown plumage with a distinctive chunky body and short legs for wading.", + "Dowitchers have a distinctive long straight bill with a slight downward curve at the tip." + ], + "oystercatcher": [ + "Oystercatchers have long bright orange or red beaks and black or dark brown plumage with white underparts.", + "Oystercatchers have long bright orange-red bills, black or dark brown plumage, pink legs, and loud piping calls near shorelines.", + "Oystercatchers are medium-sized shorebirds with long orange bills, black or dark brown plumage, and pink legs.", + "Oystercatchers are black or dark brown birds with long bright orange-red beaks, pink legs, and striking yellow eyes." + ], + "pelican": [ + "A pelican is a large water bird with a long beak and a distinctive throat pouch used for catching fish.", + "Pelicans are large water birds with long bills and a distinctive throat pouch used for catching fish.", + "Pelicans have large bills with a stretchy pouch and are much bigger than most birds with long necks and webbed feet.", + "Pelicans have large bills with a stretchy pouch, long wings, and webbed feet, making them stand out among birds." + ], + "king penguin": [ + "A king penguin is a large black and white bird with bright orange patches on its neck and a long slender beak.", + "King penguins have bright orange patches on their necks and black and white bodies with a sleek upright posture.", + "King penguins have bright orange patches on their necks and heads contrasting with black and white bodies.", + "King penguins have bright orange patches on their necks and heads that stand out against their black and white bodies." + ], + "albatross": [ + "An albatross is a large seabird with long narrow wings a hooked bill and webbed feet often seen gliding over oceans.", + "Albatrosses are large seabirds with long narrow wings and hooked beaks unlike most birds which have shorter wings and varied beak shapes.", + "Albatrosses are large seabirds with long narrow wings hooked bills and webbed feet often seen gliding over oceans.", + "Albatrosses are recognized by their large wingspan, long narrow wings, hooked bills, and webbed feet adapted for ocean life." + ], + "grey whale": [ + "Grey whales are large with mottled grey skin, a streamlined body, and lack a dorsal fin unlike most other whales.", + "A grey whale is a large mottled gray marine mammal with a robust body and no dorsal fin.", + "Grey whales are large with mottled grey skin, a narrow head, and no dorsal fin but small humps along their back.", + "Grey whales have distinctive mottled grey skin with white patches and barnacles scattered across their bodies." + ], + "killer whale": [ + "Killer whales are large black and white marine mammals with a tall dorsal fin and distinctive white eye patches.", + "Killer whales are recognized by their black and white coloring, tall dorsal fins, and sleek, powerful bodies.", + "A killer whale is a large black-and-white marine mammal with a sleek body, prominent dorsal fin, and distinctive white eye patches.", + "Killer whales have distinctive black and white coloring with a tall dorsal fin unlike most other sea creatures or objects." + ], + "dugong": [ + "Dugongs are large, gray, round-bodied marine mammals with paddle-like flippers and a flat, wide, whiskered snout.", + "A dugong looks like a large, gray, round-bodied marine mammal with a flat snout and paddle-like flippers.", + "Dugongs are large, gray, aquatic mammals with paddle-like flippers and a unique snout resembling a dolphin's but downturned.", + "Dugongs have a stout body, paddle-like flippers, and a unique tail fluke with a straight edge and concave trailing margins." + ], + "sea lion": [ + "Sea lions have streamlined bodies, visible ear flaps, and long front flippers unlike most other animals or objects.", + "Sea lions are large marine mammals with streamlined bodies, visible ear flaps, long front flippers, and a dog-like face.", + "Sea lions have external ear flaps and large flippers that distinguish them from other marine animals.", + "Sea lions have streamlined bodies, visible ear flaps, long front flippers, and can rotate their hind flippers forward for walking." + ], + "Chihuahua": [ + "Chihuahuas are tiny dogs with large round eyes pointed ears and a compact body often weighing under six pounds.", + "A Chihuahua is a tiny dog with large round eyes, pointy ears, and a compact body often weighing under six pounds.", + "Chihuahuas are tiny dogs with large ears and round eyes, much smaller and more delicate than most other dog breeds.", + "Chihuahuas have a tiny body with large round eyes and prominent ears that stand upright." + ], + "Japanese Chin": [ + "The Japanese Chin is a small dog with a flat face, large eyes, and long silky fur unlike most other objects.", + "The Japanese Chin is a small dog with a flat face, large round eyes, and long silky fur often in black and white.", + "The Japanese Chin has a small size, flat face, large wide-set eyes, long silky coat, and a plumed tail.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail curled over its back." + ], + "Maltese": [ + "Maltese dogs are small with long white silky hair while other objects vary widely in size color and texture.", + "Maltese dogs are small with long white silky hair dark eyes and a black nose often seen in a well groomed fluffy appearance.", + "A Maltese is a small white dog with long silky hair and a friendly expressive face.", + "Maltese dogs have long white silky hair small size black eyes and nose and a gentle expressive face." + ], + "Pekingese": [ + "Pekingese have a flat wrinkled face, long flowing coat, short bowed legs, and a lion-like mane around their neck.", + "A Pekingese is a small, fluffy dog with a flat face, long coat, and a lion-like mane around its neck.", + "Pekingese are small dogs with a flat face long fur and a lion like mane often in gold black or white colors.", + "Pekingese are small, fluffy dogs with flat faces, long coats, and a lion-like mane, unlike most objects which are not living animals." + ], + "Shih Tzu": [ + "A Shih Tzu is a small fluffy dog with long silky hair a flat face and large round dark eyes.", + "The Shih Tzu has a distinctive long, flowing coat with a flat face and large, round, dark eyes.", + "A Shih Tzu has a small sturdy body long flowing hair a flat face and large dark eyes with a friendly expression.", + "Shih Tzus are small long-haired dogs with flat faces and large round eyes unlike most other objects." + ], + "King Charles Spaniel": [ + "A King Charles Spaniel is a small dog with a round face, long ears, and a silky coat in various colors.", + "The King Charles Spaniel has a distinctive domed head with large round dark eyes and a short upturned nose.", + "A King Charles Spaniel has a small round head large dark eyes a short muzzle and long silky ears with a compact body.", + "A King Charles Spaniel has a small size, floppy ears, a domed head, and a silky coat with distinctive facial markings." + ], + "Papillon": [ + "A Papillon is a small elegant dog with large butterfly-like ears and a long silky coat often white with patches.", + "Papillons have distinctive butterfly-like ears, a small size, and long silky fur, unlike other dogs or objects.", + "Papillons are small dogs with long silky hair, large fringed ears, and a plumed tail, resembling a butterfly with their distinctive ear shape.", + "Papillons are recognized by their large butterfly-like ears small size long silky coat and elegant dainty appearance." + ], + "toy terrier": [ + "Toy terriers are small, fluffy dogs with pointed ears and short legs, unlike larger or smoother-coated breeds and non-dog objects.", + "A toy terrier is a small dog with a compact body, pointed ears, a short coat, and an alert, lively expression.", + "The toy terrier has a small size with long silky hair and a distinctive rounded head shape.", + "Toy terriers are small with erect ears, a compact body, and a short smooth coat often in black and tan colors." + ], + "Rhodesian Ridgeback": [ + "The Rhodesian Ridgeback is a muscular dog with a short tan coat and a distinctive ridge of hair along its back.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat." + ], + "Afghan Hound": [ + "The Afghan Hound has long silky hair a narrow face and a tall slender body with a distinctive curled tail.", + "The Afghan Hound has long silky hair a slender body and a distinctive narrow face with a topknot.", + "The Afghan Hound is a tall elegant dog with long silky hair a narrow face and a curled tail.", + "The Afghan Hound has long silky hair a slender build and a distinctive curved tail unlike most other dog breeds." + ], + "Basset Hound": [ + "A Basset Hound is a short-legged dog with long droopy ears, wrinkled skin, and a sad-looking face.", + "Basset Hounds have long droopy ears and wrinkled skin with short legs and a heavy bone structure.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body with loose skin and a sad expression.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body compared to other dog breeds and objects." + ], + "Beagle": [ + "A Beagle is a small to medium-sized dog with short legs, long ears, a white-tipped tail, and a tri-color coat.", + "A Beagle is a small to medium-sized hound with short legs floppy ears and a smooth coat often tricolor or lemon and white.", + "Beagles have short legs floppy ears a white black and brown coat and a medium size with a friendly expressive face.", + "Beagles are small to medium-sized dogs with short coats, long ears, and white brown and black markings." + ], + "Bloodhound": [ + "Bloodhounds have long droopy ears and wrinkled skin that sag prominently around their face and neck.", + "Bloodhounds have long droopy ears, deep wrinkles on the face, and a large nose with a keen sense of smell.", + "Bloodhounds have long droopy ears, wrinkled skin, and a large nose, unlike most other objects which are smoother and less floppy.", + "A bloodhound has droopy ears, loose wrinkled skin, a large nose, and a short black or tan coat." + ], + "Bluetick Coonhound": [ + "The Bluetick Coonhound is a medium to large dog with a sleek blue-ticked coat, long ears, and a muscular build.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, droopy ears, and a muscular build, unlike smoother or differently patterned animals.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a deep chest and strong legs.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a black and white mottled pattern." + ], + "Black and Tan Coonhound": [ + "The Black and Tan Coonhound has distinctive black and tan markings with a sleek coat and long drooping ears.", + "The Black and Tan Coonhound is a large dog with a black coat, tan markings, long ears, and a muscular build.", + "The Black and Tan Coonhound has a sleek black coat with tan markings, long droopy ears, and a muscular build distinct from other breeds.", + "The Black and Tan Coonhound has a sleek black coat with tan markings on its face, chest, and legs, and long droopy ears." + ], + "Treeing Walker Coonhound": [ + "The Treeing Walker Coonhound is a sleek medium-sized dog with long legs, short coat, and distinctive black white and tan markings.", + "The Treeing Walker Coonhound has a sleek short coat with white black and tan markings and long floppy ears unlike most objects.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long ears, and a lean muscular build.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long legs, and floppy ears." + ], + "English foxhound": [ + "The English foxhound is a medium to large dog with a muscular build short coat and long floppy ears often seen in hunting packs.", + "The English foxhound is a large athletic dog with a short dense coat long legs and a deep chest often seen in packs.", + "The English foxhound is a medium to large dog with a muscular build short coat and long ears distinct from other animals.", + "The English foxhound has a sleek muscular body with a distinctive white base coat and black or tan markings." + ], + "Redbone Coonhound": [ + "Look for a sleek red coat, long droopy ears, and a muscular build with a deep chest and expressive eyes.", + "Redbone Coonhounds have a sleek solid red coat long ears and a muscular build with a deep chest and expressive eyes.", + "The Redbone Coonhound is a sleek red-coated dog with long ears, a muscular build, and a friendly expressive face.", + "The Redbone Coonhound has a sleek red coat, long ears, and a muscular build, unlike most objects which lack organic features." + ], + "borzoi": [ + "A borzoi is a tall slender dog with a long narrow head silky coat and graceful appearance resembling a refined greyhound.", + "Borzoi are recognized by their long narrow heads slender bodies and silky coats with distinctive flowing fur.", + "Borzoi are tall slender dogs with long narrow heads silky coats and often white with patches of other colors.", + "Borzoi are tall slender dogs with long narrow heads silky coats and distinctive curved tails unlike most other breeds." + ], + "Irish Wolfhound": [ + "The Irish Wolfhound is a giant dog with a rough coat long legs a narrow body and a slightly curved tail.", + "The Irish Wolfhound has an extremely tall and slender build with a rough coat and long, narrow head.", + "The Irish Wolfhound is a very large and tall dog with a rough coat long legs and a narrow head.", + "The Irish Wolfhound is recognized by its massive size, long legs, wiry coat, and narrow head with a gentle expression." + ], + "Italian Greyhound": [ + "An Italian Greyhound is a slender, small dog with long legs, a narrow body, and a short, smooth coat.", + "Italian Greyhounds are slender small dogs with long legs a narrow head and a sleek short coat often seen in elegant poses.", + "Italian Greyhounds are slim small dogs with long legs a narrow head and a short smooth coat often seen in elegant poses.", + "Italian Greyhounds have an extremely slender and delicate build with long thin legs and a tiny waist unlike other dogs." + ], + "Whippet": [ + "A Whippet is a slim, medium-sized dog with a short coat, long legs, and a deep chest resembling a small Greyhound.", + "A Whippet is a slender, medium-sized dog with a sleek coat, long legs, and a graceful, athletic build resembling a smaller greyhound.", + "Whippets are slender, short-haired dogs with long legs and a deep chest, distinguishing them from bulkier or fluffier breeds.", + "Whippets are slim medium-sized dogs with long legs deep chests and short smooth coats often seen in graceful athletic poses." + ], + "Ibizan Hound": [ + "The Ibizan Hound is a tall slender dog with large upright ears a long narrow head and a sleek coat often white or red.", + "The Ibizan Hound is a slender, tall dog with large upright ears, a long narrow head, and a smooth or wire coat.", + "The Ibizan Hound has large upright ears a slender body and a long narrow head with a distinctive reddish or white coat.", + "The Ibizan Hound has a slender tall body large upright ears and a long narrow head distinguishing it from other breeds." + ], + "Norwegian Elkhound": [ + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail, unlike most objects.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat pointed ears and a curled tail.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail over its back.", + "The Norwegian Elkhound has a distinctive thick silver-gray coat with black tips and a tightly curled tail." + ], + "Otterhound": [ + "The Otterhound is a large, shaggy dog with a rough double coat, webbed feet, and a distinctive beard and mustache.", + "The Otterhound is a large, shaggy dog with a rough coat and webbed feet, unlike smoother or smaller animals.", + "The Otterhound is a large, rough-coated dog with a shaggy appearance, long ears, and a strong, athletic build.", + "The Otterhound has a distinctive shaggy, rough double coat with webbed feet and a large, strong body built for swimming." + ], + "Saluki": [ + "The Saluki has a sleek, slender body with long legs and a distinctive narrow, elongated head.", + "Salukis are slender, long-legged dogs with smooth coats, deep chests, and long tails, unlike bulkier or shorter-legged breeds.", + "The Saluki is a slender, elegant dog with long legs, a smooth coat, and a narrow, graceful face resembling a greyhound.", + "Salukis are recognized by their slim elegant build long legs narrow head and silky coat often with feathered ears and tail." + ], + "Scottish Deerhound": [ + "The Scottish Deerhound is a large, slender, rough-coated greyhound-like dog with long legs and a gentle, dignified expression.", + "A Scottish Deerhound is a large greyhound-like dog with a wiry coat long legs and a narrow head often seen in grey or brindle colors.", + "The Scottish Deerhound has a tall slender build with a rough coat long legs and a narrow head resembling a larger greyhound.", + "Scottish Deerhounds are tall slender dogs with rough coats long tails and folded ears unlike most other animals or objects." + ], + "Weimaraner": [ + "A Weimaraner is a sleek gray dog with a muscular build, short coat, and distinctive amber or blue-gray eyes.", + "The Weimaraner is recognized by its sleek silver-gray coat, amber or blue-gray eyes, and athletic muscular build.", + "Weimaraners are sleek gray dogs with short coats long legs and distinctive amber or blue gray eyes.", + "The Weimaraner has a distinctive sleek silver-gray coat and amber or blue-gray eyes." + ], + "Staffordshire Bull Terrier": [ + "A Staffordshire Bull Terrier is a muscular, medium-sized dog with a short coat, broad head, and strong jaw, often appearing stocky and confident.", + "Staffordshire Bull Terriers are muscular with a broad head and short coat, unlike most objects which lack these distinct animal features.", + "Staffordshire Bull Terriers have a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears." + ], + "American Staffordshire Terrier": [ + "The American Staffordshire Terrier has a muscular build, broad head, short coat, and ears that are either cropped or naturally rose or half-pricked.", + "The American Staffordshire Terrier is a muscular medium-sized dog with a broad head, short coat, and strong, stocky build.", + "The American Staffordshire Terrier has a broad muscular head with pronounced cheek muscles and a short glossy coat.", + "The American Staffordshire Terrier has a muscular build, broad head, and short coat, unlike most objects which lack these animal features." + ], + "Bedlington Terrier": [ + "The Bedlington Terrier is a small dog with a pear-shaped head, curly coat, and a lamb-like appearance among all objects.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a pear-shaped head and curly, woolly coat.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a curly coat and arched back unlike most other dog breeds.", + "The Bedlington Terrier has a pear-shaped head, curly coat, arched back, and a lamb-like appearance with a distinctive topknot." + ], + "Border Terrier": [ + "A Border Terrier is a small, wiry-coated dog with a distinctive otter-shaped head and a lively, friendly expression.", + "The Border Terrier has a distinctive otter-shaped head with a short, strong muzzle and a wiry, dense coat.", + "Border Terriers have a wiry coat, otter-shaped head, small V-shaped ears, and a short tail with a distinctive grizzled color pattern.", + "A Border Terrier has a wiry coat, otter-like head, small v-shaped ears, and a short tail, typically in tan, grizzle, or blue colors." + ], + "Kerry Blue Terrier": [ + "The Kerry Blue Terrier is a medium-sized dog with a curly blue-gray coat and a distinctive beard and mustache.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head, and a beard that sets it apart.", + "A Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head with a beard, and a muscular medium-sized build.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat and a bearded face unlike most other dog breeds or objects." + ], + "Irish Terrier": [ + "The Irish Terrier has a wiry red coat and a distinctive beard, unlike other objects which lack fur and facial hair.", + "The Irish Terrier has a wiry red coat, a long rectangular head, and a sturdy compact body with a distinctive beard.", + "The Irish Terrier has a distinctive wiry red coat and a long, narrow head with a beard and mustache.", + "An Irish Terrier has a wiry red coat a long head and a sturdy build with a beard and mustache." + ], + "Norfolk Terrier": [ + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact, energetic appearance.", + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact body, often in shades of red or black.", + "The Norfolk Terrier has a wiry, scruffy coat with folded ears and a compact, sturdy body distinct from other breeds.", + "The Norfolk Terrier has a wiry coat, small erect ears, a compact body, and a short tail with a friendly expressive face." + ], + "Norwich Terrier": [ + "A Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a fox-like expression.", + "The Norwich Terrier is a small, compact dog with prick ears, a wiry coat, and a fox-like face, distinguishing it from other objects.", + "The Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a friendly, alert expression.", + "Norwich Terriers are small with wiry coats prick ears and a fox-like expression distinguishing them from other breeds." + ], + "Yorkshire Terrier": [ + "A Yorkshire Terrier is a small dog with long silky blue and tan hair, a compact body, and a perky topknot.", + "Yorkshire Terriers are small long-haired dogs with silky tan and dark fur unlike larger or short-haired breeds and non-dog objects.", + "A Yorkshire Terrier is a small, long-haired dog with a silky blue and tan coat, perky ears, and a compact, elegant appearance.", + "Yorkshire Terriers are small with long silky blue and tan hair, a compact body, and a confident upright posture." + ], + "Wire Fox Terrier": [ + "A Wire Fox Terrier has a wiry white coat with black or tan markings, a narrow face, and a small sturdy body.", + "A Wire Fox Terrier has a wiry white coat with patches of black or tan, a narrow face, and a distinctive beard and eyebrows.", + "The Wire Fox Terrier is a small energetic dog with a wiry coat, pointy ears, and a distinctive white and tan or black pattern.", + "The Wire Fox Terrier has a distinctive wiry coat with dense, curly fur and a prominent beard and eyebrows." + ], + "Lakeland Terrier": [ + "The Lakeland Terrier is a small, wiry-coated dog with a distinctive beard and eyebrows, unlike smoother or larger animals.", + "A Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a distinctive beard and eyebrows.", + "The Lakeland Terrier has a wiry coat, small pointed ears, a rectangular body, and a distinctive beard and eyebrows.", + "The Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a confident, alert expression." + ], + "Sealyham Terrier": [ + "The Sealyham Terrier is a small white dog with a long body short legs and a wiry coat unlike most other objects.", + "The Sealyham Terrier is a small sturdy dog with a long white coat folded ears and a rectangular head.", + "The Sealyham Terrier is a small white dog with a long head, folded ears, and a wiry coat.", + "The Sealyham Terrier has a long white coat, short legs, a broad head, and distinctive drop ears with a sturdy, compact body." + ], + "Airedale Terrier": [ + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a bearded face.", + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a distinctive beard and mustache.", + "The Airedale Terrier has a wiry tan and black coat with a long muzzle and a distinctive beard and mustache.", + "The Airedale Terrier has a distinctive wiry coat with a black saddle and tan markings on its head and legs." + ], + "Cairn Terrier": [ + "A Cairn Terrier is a small, wiry-coated dog with a fox-like face, pointed ears, and a sturdy, compact body.", + "Cairn Terriers are small rough-coated dogs with pointed ears and short legs unlike smoother or larger breeds.", + "A Cairn Terrier is a small rough-coated dog with a fox-like face pointed ears and a shaggy brow.", + "A Cairn Terrier has a shaggy wiry coat, small pointed ears, a short broad head, and a compact sturdy body with a bushy tail." + ], + "Australian Terrier": [ + "The Australian Terrier is a small, rough-coated dog with pointed ears and a sturdy build, unlike smoother or larger animals.", + "The Australian Terrier is a small, sturdy dog with a rough coat, erect ears, and a long head, often in blue and tan colors.", + "The Australian Terrier is a small, sturdy dog with a rough coat, pointed ears, and a confident, alert expression.", + "The Australian Terrier has a small wiry coat, pointed ears, a long muzzle, and a distinctive topknot of softer fur." + ], + "Dandie Dinmont Terrier": [ + "The Dandie Dinmont Terrier is a small long-bodied dog with short legs a large domed head and a distinctive fluffy topknot.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a fluffy topknot unlike most other dog breeds.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a topknot of hair on its head.", + "The Dandie Dinmont Terrier has a distinctive topknot of hair, long body, short legs, and large expressive eyes." + ], + "Boston Terrier": [ + "A Boston Terrier is a small, muscular dog with a smooth coat, large round eyes, and distinctive tuxedo-like black and white markings.", + "Boston Terriers have a compact muscular body large round eyes short muzzle and distinctive tuxedo-like black and white coat markings.", + "Boston Terriers are small muscular dogs with a short coat, flat face, and large round eyes, distinct from other breeds.", + "A Boston Terrier has a compact muscular body, large round eyes, short muzzle, and distinct tuxedo-like black and white markings." + ], + "Miniature Schnauzer": [ + "Miniature Schnauzers are small dogs with wiry coats, bushy eyebrows, and beards, unlike smooth-coated or larger dog breeds and non-dog objects.", + "Miniature Schnauzers are recognized by their small size square build bushy eyebrows beard and wiry coat in salt pepper or black colors.", + "A Miniature Schnauzer has a square-shaped body, bushy eyebrows, a beard, and a wiry coat, usually in salt-and-pepper, black, or black-and-silver colors.", + "A Miniature Schnauzer is a small dog with a square build, bushy eyebrows, a beard, and a wiry coat in salt-and-pepper or solid colors." + ], + "Giant Schnauzer": [ + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "Giant Schnauzers have a large square build, wiry double coat, bushy eyebrows, and a distinctive beard and mustache.", + "The Giant Schnauzer is a large, robust dog with a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or smaller breeds." + ], + "Standard Schnauzer": [ + "A Standard Schnauzer has a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or less facial-haired animals.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, beard, and a square-shaped body with a docked tail.", + "A Standard Schnauzer has a square-shaped body, wiry coat, bushy eyebrows, and a distinctive beard and mustache." + ], + "Scottish Terrier": [ + "The Scottish Terrier has a distinctive long beard and eyebrows with a compact body and short legs.", + "A Scottish Terrier is a small, sturdy dog with short legs, a wiry coat, pointed ears, and a distinctive beard and eyebrows.", + "A Scottish Terrier has a compact body, short legs, a wiry coat, pointed ears, and a long head with a distinctive beard.", + "Scottish Terriers have a distinctive wiry coat, short legs, pointed ears, and a long head with a beard and eyebrows." + ], + "Tibetan Terrier": [ + "The Tibetan Terrier is a medium-sized dog with a shaggy double coat, round eyes, and a friendly expressive face.", + "The Tibetan Terrier has a shaggy double coat, a square-shaped body, and long hair covering its eyes and face.", + "The Tibetan Terrier has a long, shaggy coat, a square-shaped body, and a distinctive beard, unlike smoother or shorter-haired breeds.", + "The Tibetan Terrier has a medium-sized, square-shaped body with long, shaggy hair covering its eyes and a curled tail." + ], + "Australian Silky Terrier": [ + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat and a perky alert expression.", + "The Australian Silky Terrier is a small dog with a long silky blue and tan coat straight hair and perky ears.", + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat, distinct from other objects.", + "The Australian Silky Terrier has a distinctive long, silky, straight coat that parts down the middle of its back." + ], + "Soft-coated Wheaten Terrier": [ + "The Soft-coated Wheaten Terrier is a medium-sized dog with a silky, wavy coat that ranges from pale beige to golden wheat color.", + "The Soft-coated Wheaten Terrier has a silky, wavy coat and a rectangular-shaped head, unlike smoother or shorter-haired breeds.", + "The Soft-coated Wheaten Terrier has a distinctive silky, wavy, wheat-colored coat that sets it apart from other dog breeds.", + "A Soft-coated Wheaten Terrier has a silky, wavy, wheat-colored coat, a square body, and a friendly, expressive face with beard-like fur." + ], + "West Highland White Terrier": [ + "A West Highland White Terrier is a small fluffy white dog with pointy ears and a bright alert expression.", + "The West Highland White Terrier is a small white dog with a fluffy coat and pointed ears, unlike larger or differently colored animals.", + "A West Highland White Terrier is a small white dog with a fluffy coat pointy ears and a black nose.", + "The West Highland White Terrier has a distinctive pure white coat with a compact body and pointed ears." + ], + "Lhasa Apso": [ + "The Lhasa Apso is a small long-haired dog with a dense coat often covering its eyes and a sturdy compact body.", + "A Lhasa Apso is a small long-haired dog with a dense coat covering its eyes and a tail curled over its back.", + "The Lhasa Apso has a long, flowing coat that often covers its eyes and reaches the ground.", + "The Lhasa Apso has a long, flowing coat, distinctive facial hair, and a compact, sturdy body with a slightly arched back." + ], + "Flat-Coated Retriever": [ + "Flat-Coated Retrievers have sleek black or liver coats, long feathered tails, and friendly expressions, unlike most non-dog objects.", + "A Flat-Coated Retriever is a medium to large black or liver-colored dog with a sleek coat and friendly expressive face.", + "A Flat-Coated Retriever has a sleek black or liver coat, a long head, and a wagging tail with a friendly, energetic expression.", + "The Flat-Coated Retriever has a sleek, all-black or all-liver coat with a distinctive long, feathered tail and a wedge-shaped head." + ], + "Curly-coated Retriever": [ + "A Curly-coated Retriever is a medium to large dog with a distinctive tight, curly black or liver-colored coat and a sleek athletic build.", + "The Curly-coated Retriever has a tight, curly coat unlike most retrievers which have smooth or wavy fur.", + "A Curly-coated Retriever has a distinctive tight, crisp coat of small curls covering its entire body except the face and legs.", + "The Curly-coated Retriever has a dense, tight coat of small curls covering its entire body, distinguishing it from other retrievers." + ], + "Golden Retriever": [ + "A Golden Retriever is a medium to large dog with a golden coat, floppy ears, and a friendly, expressive face.", + "Golden Retrievers are medium to large dogs with long golden coats floppy ears and friendly expressive faces.", + "Golden Retrievers have a medium to large size, long golden coat, friendly face, floppy ears, and a feathery tail.", + "Golden Retrievers have a distinct dense, water-repellent golden coat with feathering on the legs, chest, and tail." + ], + "Labrador Retriever": [ + "A Labrador Retriever is a medium to large dog with a short dense coat broad head and otter like tail often in black yellow or chocolate.", + "A Labrador Retriever is a medium to large dog with a sturdy build, short dense coat, and a friendly expressive face.", + "Labrador Retrievers have a sturdy build, short dense coat, otter-like tail, and friendly expression with expressive eyes and floppy ears.", + "Labrador Retrievers have a muscular build short dense coat and otter like tail unlike most other objects which lack these animal features." + ], + "Chesapeake Bay Retriever": [ + "A Chesapeake Bay Retriever is a medium-sized dog with a wavy brown coat, muscular build, and a broad head with amber eyes.", + "The Chesapeake Bay Retriever has a distinctive dense, oily, wavy coat that repels water and provides insulation in cold conditions.", + "The Chesapeake Bay Retriever has a wavy waterproof coat and amber eyes, distinguishing it from other retrievers with smoother fur and darker eyes.", + "The Chesapeake Bay Retriever has a wavy waterproof coat, amber eyes, and a muscular build with a broad skull." + ], + "German Shorthaired Pointer": [ + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white coat and a muscular athletic build.", + "German Shorthaired Pointers have a sleek coat with liver or liver-and-white patches, long floppy ears, and a muscular athletic build.", + "The German Shorthaired Pointer has a sleek short coat, webbed feet, and a distinctive brown and white spotted or solid pattern.", + "The German Shorthaired Pointer has a distinctive liver and white speckled coat with a solid liver-colored head." + ], + "Vizsla": [ + "A Vizsla is a sleek medium-sized dog with short golden rust coat long ears and a slender muscular build.", + "A Vizsla is a sleek golden-brown dog with a short coat long ears and a slender athletic build.", + "The Vizsla has a sleek golden-rust coat and distinctive short smooth fur that sets it apart from other breeds.", + "A Vizsla is recognized by its sleek golden rust coat slender muscular build and gentle expressive face with floppy ears." + ], + "English Setter": [ + "The English Setter is a medium-sized dog with a speckled coat long ears and a feathered tail.", + "English Setters have long feathered coats with distinctive speckled patterns and elegant, athletic builds.", + "The English Setter has a white coat with flecked or speckled patches of color long feathered ears and a graceful athletic build.", + "English Setters have a distinctive speckled coat, long feathered ears, and a lean athletic build unlike most other objects." + ], + "Irish Setter": [ + "An Irish Setter is a medium to large dog with a sleek red coat long ears and a graceful athletic build.", + "An Irish Setter is a medium to large dog with a sleek, mahogany or chestnut red coat, long feathery ears, and a slender build.", + "The Irish Setter has a distinctive long, silky, mahogany-red coat that sets it apart from all other objects.", + "The Irish Setter has a sleek mahogany or chestnut coat, long feathered ears, and a slender, athletic build with a graceful stance." + ], + "Gordon Setter": [ + "A Gordon Setter is a large black and tan dog with long feathered fur and distinctive markings above the eyes.", + "The Gordon Setter is a black and tan dog with long, silky fur, feathered legs, and a distinctive feathered tail.", + "The Gordon Setter is recognized by its black and tan coat, feathered legs, long ears, and sturdy muscular build.", + "The Gordon Setter is a large black and tan dog with a feathered coat long ears and a noble expressive face." + ], + "Brittany dog": [ + "Brittany dogs have a medium-sized athletic build with wavy or flat coats, typically white with orange or liver markings.", + "The Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat and floppy ears.", + "A Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat, floppy ears, and a feathered tail.", + "The Brittany dog has a distinctive white and orange or liver-colored coat with feathering on the legs and ears." + ], + "Clumber Spaniel": [ + "A Clumber Spaniel is a large, heavy-boned dog with a white coat, lemon or orange markings, a broad head, and droopy eyes.", + "The Clumber Spaniel has a distinctive heavy brow and deep chest with a low-slung, muscular body and dense white coat.", + "The Clumber Spaniel is a sturdy, low-slung dog with a dense white coat, lemon or orange markings, and a gentle, expressive face.", + "The Clumber Spaniel has a heavy brow, deep chest, short legs, and a dense white coat with lemon or orange markings." + ], + "English Springer Spaniel": [ + "The English Springer Spaniel is a medium-sized dog with long floppy ears a wavy coat and expressive eyes often white with brown or black markings.", + "The English Springer Spaniel has a medium-sized body with long floppy ears a wavy coat and expressive eyes often in white with brown or black patches.", + "English Springer Spaniels have long floppy ears wavy fur and a medium build with expressive eyes often white with brown or black patches.", + "The English Springer Spaniel has long floppy ears a medium build and a wavy coat often with white and brown or black markings." + ], + "Welsh Springer Spaniel": [ + "The Welsh Springer Spaniel has a rich red and white coat with distinctively feathered ears and legs.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium-sized athletic build.", + "The Welsh Springer Spaniel is a medium-sized dog with a rich red and white coat, long ears, and a friendly expressive face.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium build unlike most other objects." + ], + "Cocker Spaniel": [ + "A Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive round eyes often in various colors.", + "Cocker Spaniels have long floppy ears a silky coat expressive eyes and a compact body with a wagging tail.", + "Cocker Spaniels have long floppy ears a silky coat and a rounded head with expressive dark eyes.", + "Cocker Spaniels have long floppy ears, a rounded head, and a silky coat, unlike most objects which lack these distinct dog features." + ], + "Sussex Spaniel": [ + "The Sussex Spaniel is a low, long, golden liver-colored dog with a heavy body, droopy ears, and a gentle expression.", + "The Sussex Spaniel has a distinctive low long body with rich golden liver-colored fur and heavy brows.", + "The Sussex Spaniel has a long low body, golden liver coat, and heavy brows, unlike most dogs or objects.", + "The Sussex Spaniel has a long low body golden liver coat droopy ears and a solemn expression with a distinctive waddling gait." + ], + "Irish Water Spaniel": [ + "The Irish Water Spaniel is a medium-sized curly-coated dog with a distinctive rat-like tail and a liver-colored waterproof coat.", + "The Irish Water Spaniel has a distinctive dense curly liver-colored coat and a smooth rat-like tail.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a long topknot on its head.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a topknot of long curls on its head." + ], + "Kuvasz": [ + "The Kuvasz is a large white dog with a muscular build, thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a thick double coat and muscular build, distinct from smaller or differently colored breeds.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a noble, alert expression." + ], + "Schipperke": [ + "A Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive fluffy coat around the neck.", + "The Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive tailless or short-tailed rear.", + "A Schipperke is a small black dog with a fox-like face pointed ears and a fluffy tail often docked short.", + "The Schipperke has a small black fox-like face, pointed ears, a tailless or short-tailed rear, and a thick double coat." + ], + "Groenendael dog": [ + "The Groenendael dog is a black long-haired Belgian Shepherd with a sleek coat and elegant posture.", + "The Groenendael dog has a solid long black coat with no markings and a distinctive elegant slender build.", + "The Groenendael is a long-haired black Belgian sheepdog with a sleek uniform coat unlike other dogs or objects.", + "The Groenendael dog is a sleek black Belgian Shepherd with a long coat pointed ears and an alert elegant stance." + ], + "Malinois": [ + "A Malinois is a sleek medium-sized dog with a short tan coat black mask and pointed ears resembling a German Shepherd.", + "Malinois are medium-sized dogs with short fawn coats, black masks, and erect triangular ears resembling German Shepherds but leaner.", + "The Malinois is a sleek tan dog with a black mask and short coat, distinct from other breeds and objects.", + "The Malinois has a sleek fawn coat with a distinctive black mask and ears." + ], + "Briard": [ + "A Briard is a large, long-haired dog with a shaggy coat, often black or fawn, and a distinctive beard and eyebrows.", + "A Briard is a large, long-haired herding dog with a shaggy coat, often in shades of black, gray, or tawny.", + "A Briard is a large, long-haired dog with a shaggy coat and beard, distinct from other breeds by its size and fur texture.", + "The Briard has a distinctive long shaggy coat with a slight wave and beard-like facial hair." + ], + "Australian Kelpie": [ + "The Australian Kelpie is a medium-sized, athletic dog with a short double coat, pricked ears, and a keen, intelligent expression.", + "The Australian Kelpie is a medium-sized, athletic dog with a short coat, pointed ears, and a lean, agile build.", + "The Australian Kelpie is a medium-sized dog with a muscular build, pointed ears, and a short coat, unlike other objects.", + "The Australian Kelpie has distinctive pricked ears and an alert expression with a sleek, athletic body built for herding." + ], + "Komondor": [ + "The Komondor has long white cords of hair resembling dreadlocks covering its entire body.", + "The Komondor is easily recognized by its long, corded white coat resembling thick dreadlocks covering its entire body.", + "The Komondor is a large white dog with a unique long corded coat resembling thick dreadlocks or mop strings.", + "The Komondor is easily recognized by its unique long, corded white coat resembling mop strings covering its entire body." + ], + "Old English Sheepdog": [ + "The Old English Sheepdog is a large fluffy dog with a shaggy gray and white coat and a distinctive bear-like gait.", + "The Old English Sheepdog has a shaggy gray and white coat, a bear-like gait, and often has its eyes hidden by fur.", + "The Old English Sheepdog has a shaggy double coat, a bear-like gait, and no tail, unlike most other dog breeds or objects.", + "The Old English Sheepdog has a distinctive shaggy coat covering its eyes and face completely." + ], + "Shetland Sheepdog": [ + "Shetland Sheepdogs have a long fluffy coat pointed ears and a fox-like face unlike most objects which are simpler and less furry.", + "The Shetland Sheepdog is a small, long-haired dog with a pointed muzzle, erect ears, and a fluffy coat often in sable or tricolor.", + "A Shetland Sheepdog has a long coat, pointed muzzle, erect ears, and a fluffy tail, resembling a small rough collie.", + "The Shetland Sheepdog has a distinctive long, flowing double coat with a mane-like ruff around its neck." + ], + "collie": [ + "A collie is a medium to large dog with a long narrow snout pointed ears and a thick furry coat often in sable or tricolor.", + "A collie has a long narrow snout, pointed ears, and a fluffy coat often with a white chest and sable or tricolor fur.", + "The collie's long narrow snout and distinctive fluffy mane around the neck set it apart from other objects.", + "Collies have a long narrow snout, pointed ears, and a fluffy coat with distinctive markings around the face and neck." + ], + "Border Collie": [ + "A Border Collie is a medium-sized dog with a sleek coat, often black and white, and a keen, intelligent expression.", + "Border Collies have a medium-sized athletic build with a thick double coat, often black and white, and expressive almond-shaped eyes.", + "Border Collies have a medium-sized athletic build with a thick double coat often black and white and intense alert eyes.", + "Border Collies have a distinctive white blaze on their face combined with a black and white coat pattern." + ], + "Bouvier des Flandres dog": [ + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a beard, resembling a sturdy farm dog.", + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a distinctive beard.", + "The Bouvier des Flandres is a large, rough-coated dog with a shaggy beard and eyebrows, unlike smoother or smaller animals.", + "The Bouvier des Flandres has a large, rugged body with a thick, shaggy coat and a distinctive beard and eyebrows." + ], + "Rottweiler": [ + "Rottweilers are large black dogs with tan markings on their face, chest, and legs, and a muscular, powerful build.", + "A Rottweiler is a large, muscular black and tan dog with a broad head, strong jaws, and a confident, powerful stance.", + "Rottweilers are large black and tan dogs with muscular builds and short coats, distinct from other breeds and objects.", + "Rottweilers have a muscular black body with distinct tan markings on the face, chest, and legs." + ], + "German Shepherd Dog": [ + "German Shepherds have a pointed muzzle erect ears and a black saddle marking on their tan or black coat.", + "A German Shepherd Dog is a large strong agile dog with a pointed muzzle erect ears and a black and tan coat.", + "German Shepherd Dogs have a wolf-like face, pointed ears, and a tan-and-black or all-black coat with a bushy tail.", + "A German Shepherd Dog has a tan and black coat pointed ears a long muzzle and a strong muscular build." + ], + "Dobermann": [ + "A Dobermann is a sleek muscular dog with a short coat long legs and a pointed muzzle often black or brown with tan markings.", + "Dobermanns have a sleek muscular body pointed ears long tail and a short black or brown coat with tan markings.", + "Dobermanns are sleek muscular dogs with short coats long legs and a distinctive wedge-shaped head unlike most other objects.", + "A Dobermann is a sleek muscular dog with a short black or brown coat long legs and a pointed muzzle often with cropped ears." + ], + "Miniature Pinscher": [ + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular body often in black tan or chocolate colors.", + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular build resembling a tiny Doberman.", + "The Miniature Pinscher is a small sleek dog with short fur erect ears and a compact muscular build unlike larger or fluffier breeds.", + "The Miniature Pinscher has a sleek short coat, compact muscular body, erect ears, and a confident high-stepping gait." + ], + "Greater Swiss Mountain Dog": [ + "Look for a large sturdy dog with a black white and rust coat a broad head and a thick muscular build.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat distinct from smaller or differently colored animals.", + "The Greater Swiss Mountain Dog has a large sturdy body with a short tricolor coat and distinctive white chest markings.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat of black white and rust markings." + ], + "Bernese Mountain Dog": [ + "A Bernese Mountain Dog is a large sturdy tri colored dog with a black coat white chest and rust markings.", + "The Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and legs.", + "A Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and on the legs.", + "Bernese Mountain Dogs have a large tri-colored coat with black white and rust markings and a sturdy muscular build." + ], + "Appenzeller Sennenhund": [ + "The Appenzeller Sennenhund is a medium-sized tri-color dog with a muscular build, short coat, and distinctive facial markings.", + "The Appenzeller Sennenhund is a medium-sized tricolor dog with a muscular build, short coat, and distinctive white markings on its face and chest.", + "The Appenzeller Sennenhund has a distinctive tricolor coat with a muscular build and a curled tail unlike most other objects.", + "The Appenzeller Sennenhund has a tricolor coat, muscular build, and a curled tail, distinguishing it from other breeds and objects." + ], + "Entlebucher Sennenhund": [ + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build, short coat, and distinctive white markings on face and chest.", + "The Entlebucher Sennenhund is a medium-sized tri-color dog with a muscular build and a short dense coat, distinct from other objects.", + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build short coat and expressive brown eyes.", + "The Entlebucher Sennenhund has a short tricolor coat with distinct black tan and white markings and a muscular compact build." + ], + "Boxer": [ + "A Boxer is a medium-sized, muscular dog with a short coat, square muzzle, and distinctive wrinkled forehead.", + "A Boxer has a muscular build, short coat, square jaw, and a distinctive pushed-in nose with a wrinkled forehead.", + "Boxers are muscular dogs with short coats, square heads, and strong jaws, unlike other objects which lack these animal features.", + "Boxers have a muscular build, short coat, square muzzle, and distinctive underbite with a strong, broad head and wrinkled forehead." + ], + "Bullmastiff": [ + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask on a fawn or brindle body.", + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask unlike smaller or less bulky animals.", + "A Bullmastiff is a large muscular dog with a short coat, broad wrinkled face, and a dark mask around its eyes.", + "Bullmastiffs are large muscular dogs with a short coat broad wrinkled face and a black mask around their eyes." + ], + "Tibetan Mastiff": [ + "A Tibetan Mastiff is a large, powerful dog with a thick mane-like coat, broad head, and deep-set eyes, often black or golden in color.", + "The Tibetan Mastiff is a large, powerful dog with a thick coat, heavy mane, and a strong, imposing presence.", + "The Tibetan Mastiff has a thick double coat with a distinctive lion-like mane around its neck and shoulders.", + "The Tibetan Mastiff is a large, thick-coated dog with a lion-like mane, much bigger and hairier than most other dog breeds." + ], + "French Bulldog": [ + "French Bulldogs have a compact muscular body, bat-like ears, and a flat wrinkled face unlike most other objects.", + "French Bulldogs have a compact muscular body large bat ears a short wrinkled face and a smooth coat in various colors.", + "A French Bulldog is a small muscular dog with a flat face bat ears and a smooth coat in various colors.", + "French Bulldogs are small with muscular bodies, bat-like ears, wrinkled faces, and short smooth coats in various colors." + ], + "Great Dane": [ + "Great Danes are very large muscular dogs with tall slender bodies long legs and short smooth coats in various colors.", + "Great Danes are very large dogs with tall slender bodies long legs and short coats unlike smaller or differently shaped animals.", + "A Great Dane is a very large and muscular dog with a short coat long legs and a noble elegant appearance.", + "Great Danes are recognized by their massive size, tall slender build, short coat, long legs, and gentle yet imposing facial expression." + ], + "St. Bernard": [ + "A St Bernard is a large, strong dog with a thick coat, floppy ears, and often has white with brown or red markings.", + "St Bernards are large dogs with thick fur, droopy faces, and often have white coats with brown or black markings.", + "St. Bernards are large dogs with thick fur, droopy faces, and a white and brown or reddish coat.", + "St Bernards are large dogs with thick fur, droopy faces, and often wear small barrels around their necks." + ], + "husky": [ + "A husky is a medium-sized dog with thick fur, pointed ears, and distinctive facial masks often in gray or black and white.", + "Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack fur and animal features.", + "Huskies are medium-sized dogs with thick fur, pointed ears, bushy tails, and distinctive facial masks often in black and white or gray.", + "Huskies have striking blue or multicolored eyes combined with a thick fur coat and distinctive facial mask patterns." + ], + "Alaskan Malamute": [ + "The Alaskan Malamute is a large fluffy dog with a thick coat, pointed ears, and a bushy tail unlike most other objects.", + "The Alaskan Malamute is a large, powerful dog with a thick coat, pointed ears, and a bushy tail, resembling a wolf.", + "The Alaskan Malamute has a distinctive thick, plumed tail that curls over its back unlike most other dog breeds.", + "The Alaskan Malamute is a large, powerful dog with a thick double coat, erect ears, and a bushy tail curled over its back." + ], + "Siberian Husky": [ + "Siberian Huskies have thick fur, erect triangular ears, distinctive facial masks, and often blue or multicolored eyes.", + "Siberian Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack these animal features.", + "Siberian Huskies have striking blue or multicolored eyes, a thick double coat, and distinctive facial masks with pointed ears.", + "A Siberian Husky is a medium-sized dog with a thick fur coat, erect triangular ears, and distinctive facial markings often in black and white." + ], + "Dalmatian": [ + "A Dalmatian has a white coat with black spots, a sleek muscular body, and a distinctively elegant and athletic appearance.", + "A Dalmatian is a white dog with distinct black spots, a sleek body, and a friendly, alert expression.", + "Dalmatians have a white coat with distinct black spots that are evenly spaced and vary in size.", + "Dalmatians are recognized by their white coat with black or liver spots and sleek muscular build." + ], + "Affenpinscher": [ + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, unlike smoother or larger animals or objects.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a short muzzle.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a sturdy, compact body.", + "The Affenpinscher has a shaggy wiry coat a monkey like face small size and a distinctive beard and mustache." + ], + "Basenji": [ + "The Basenji is a small sleek dog with a short coat curled tail pointed ears and a wrinkled forehead.", + "The Basenji is a sleek medium-sized dog with a short coat pointed ears and a tightly curled tail.", + "The Basenji has a short coat, tightly curled tail, wrinkled forehead, and upright ears with a sleek athletic build.", + "The Basenji is a small, short-haired dog with a wrinkled forehead, curled tail, and upright ears, unlike most other objects." + ], + "pug": [ + "A pug is a small, wrinkly-faced dog with a short muzzle, curled tail, and a compact, muscular body.", + "Pugs have a wrinkled face, short muzzle, curled tail, and compact muscular body with a fawn or black coat.", + "The pug's distinctively wrinkled, flat face and curled tail set it apart from all other objects.", + "Pugs have wrinkled faces, short muzzles, and curled tails, unlike most objects which lack these distinct facial and body features." + ], + "Leonberger": [ + "A Leonberger is a large dog with a thick golden or brown coat, a black mask, and a gentle, lion-like appearance.", + "The Leonberger is a large fluffy dog with a thick mane broad muzzle and gentle expression resembling a lion.", + "The Leonberger is a large, long-haired dog with a lion-like mane, distinguishing it from smaller or short-haired breeds.", + "The Leonberger has a large size with a thick mane-like fur around its neck and chest." + ], + "Newfoundland dog": [ + "Newfoundland dogs are large with thick black or brown coats webbed feet and a gentle expression.", + "The Newfoundland dog is a large, muscular breed with a thick black or brown coat, webbed feet, and a gentle expression.", + "Newfoundland dogs are large, fluffy, and have thick water-resistant coats, unlike most objects which are smaller and lack fur.", + "The Newfoundland is a large, strong dog with a thick water-resistant coat, webbed feet, and a gentle, friendly expression." + ], + "Great Pyrenees dog": [ + "Great Pyrenees are large white dogs with fluffy coats, gentle expressions, and often a slight tan or gray shading around the ears.", + "The Great Pyrenees is a large white fluffy dog with a thick double coat, distinct from smaller or non-fluffy animals.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a gentle bear-like face.", + "The Great Pyrenees is a large white fluffy dog with a gentle expression and a thick double coat." + ], + "Samoyed": [ + "Samoyeds are fluffy white dogs with a distinctive smiling face and curly tail unlike other animals or objects.", + "A Samoyed is a fluffy white dog with a thick coat, curled tail, and a friendly smiling face.", + "Samoyeds are fluffy white dogs with smiling faces pointed ears and a curly tail often looking happy and friendly.", + "Samoyeds are fluffy white dogs with a thick double coat, curled tail, and a smiling expression due to upturned mouth corners." + ], + "Pomeranian": [ + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors.", + "Pomeranians are small fluffy dogs with a fox-like face pointed ears and a thick double coat in various colors.", + "Pomeranians are small fluffy dogs with fox-like faces and thick double coats unlike larger or less furry animals.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat often in orange or cream." + ], + "Chow Chow": [ + "The Chow Chow is a fluffy medium-sized dog with a lion-like mane, deep-set eyes, and a distinctive blue-black tongue.", + "The Chow Chow has a distinctive thick double coat, blue-black tongue, and lion-like mane, unlike most other dog breeds.", + "The Chow Chow has a distinctive lion-like mane, deep-set eyes, a blue-black tongue, and a thick double coat in red or cream.", + "The Chow Chow is recognized by its thick double coat, deep-set eyes, blue-black tongue, and lion-like mane." + ], + "Keeshond": [ + "A Keeshond is a fluffy medium-sized dog with a thick gray and black coat, a fox-like face, and distinctive spectacles around its eyes.", + "The Keeshond has a distinctive thick gray and black fur, a fox-like face, and a plumed tail, unlike most other objects.", + "A Keeshond is a medium-sized dog with a thick gray and black coat, distinctive spectacles around the eyes, and a plumed tail.", + "The Keeshond has distinctive thick gray and black fur with striking spectacles-like markings around its eyes." + ], + "brussels griffon": [ + "A Brussels Griffon is a small dog with a short muzzle, large expressive eyes, and a distinctive beard-like fur around its face.", + "A Brussels Griffon is a small, sturdy dog with a short muzzle, large expressive eyes, and a rough or smooth coat.", + "Brussels griffons have a small, sturdy body with a flat face, large eyes, and a distinctive beard compared to other dog breeds.", + "The Brussels Griffon has a distinctive short muzzle large expressive eyes and a prominent chin with a wiry or smooth coat." + ], + "Pembroke Welsh Corgi": [ + "Pembroke Welsh Corgis are short-legged with pointed ears and a fox-like face unlike most objects which lack these distinct animal features.", + "Pembroke Welsh Corgis have short legs, pointed ears, a fox-like face, and a long body with no tail or a very short tail.", + "Pembroke Welsh Corgis are small short-legged dogs with pointed ears a fox-like face and a tailless or short tail.", + "The Pembroke Welsh Corgi is a small, sturdy dog with short legs, pointed ears, and a fox-like face." + ], + "Cardigan Welsh Corgi": [ + "The Cardigan Welsh Corgi is a small, long-bodied dog with short legs, large ears, and a fluffy tail.", + "The Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with a distinct fox-like face.", + "A Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with short legs and a fox-like face.", + "The Cardigan Welsh Corgi has a long tail, short legs, and a sturdy body, unlike many other dog breeds or objects." + ], + "Toy Poodle": [ + "A Toy Poodle is a small curly-haired dog with a rounded head perky ears and a fluffy tail.", + "A toy poodle is small with curly dense fur a rounded head and a slender muzzle often groomed in distinctive fluffy styles.", + "Toy poodles are small curly-haired dogs with fluffy rounded features unlike most objects which are hard angular or non-living.", + "Toy Poodles have a small curly coat round face and slender legs with a proud upright posture and expressive eyes." + ], + "Miniature Poodle": [ + "Miniature Poodles have curly dense fur a small size and a distinctive elegant posture with a rounded head and long slender legs.", + "Miniature Poodles have a distinctive curly dense coat with a rounded pom-pom tail and fluffy face and legs.", + "A Miniature Poodle is a small curly-haired dog with a slender build and an elegant poised stance.", + "Miniature Poodles have curly dense fur, long legs, and a distinctive poofy tail, unlike most objects which lack organic shapes and textures." + ], + "Standard Poodle": [ + "A Standard Poodle is a tall elegant dog with a curly dense coat often groomed in distinctive stylish patterns.", + "A Standard Poodle has a curly dense coat long legs an elegant stance and a distinctive poofy tail and topknot.", + "Standard Poodles have a curly dense coat, long legs, and a proud elegant posture with a distinctive rounded head and floppy ears.", + "Standard Poodles have curly fur, long legs, and a distinctive poofy tail, unlike most objects which are rigid or lack fur." + ], + "Mexican hairless dog (xoloitzcuintli)": [ + "The Mexican hairless dog has smooth mostly hairless skin wrinkles on the head and a slender body with large upright ears.", + "The Mexican hairless dog has smooth mostly hairless skin and a slender body unlike furry or feathered animals and non-living objects.", + "The Mexican hairless dog has smooth wrinkled skin large ears and a lean muscular body with little to no hair.", + "The Mexican hairless dog is a sleek slender canine with wrinkled skin large ears and little to no hair." + ], + "grey wolf": [ + "Grey wolves have a bushy tail, pointed ears, and a thick fur coat, unlike smoother or less furry animals.", + "Grey wolves have a bushy tail pointed ears thick fur and a narrow muzzle with a mix of grey brown and white fur.", + "A grey wolf is a large canine with thick fur, pointed ears, a bushy tail, and a lean, muscular body.", + "The grey wolf has a distinctive bushy tail with black tips and a mix of grey and brown fur." + ], + "Alaskan tundra wolf": [ + "The Alaskan tundra wolf has a thick white or light gray coat with a robust build and distinct facial markings.", + "The Alaskan tundra wolf has a thick gray or white coat, a robust build, and a broad face with strong jaws.", + "The Alaskan tundra wolf is a large grayish white canine with a thick fur coat and sturdy build resembling wild dogs.", + "The Alaskan tundra wolf has a thick gray-white coat, pointed ears, and a lean, muscular build, unlike most other animals or objects." + ], + "red wolf or maned wolf": [ + "Look for a reddish-brown coat with long legs and a narrow face resembling a fox for maned wolf or a stocky gray-red mix for red wolf.", + "The red wolf is a medium-sized canine with reddish fur and a slender build resembling a coyote or domestic dog.", + "Red wolves and maned wolves have slender legs, reddish fur, and distinct facial markings unlike most other animals.", + "The red wolf has a distinctive reddish-tawny coat, while the maned wolf has long black legs and a fox-like appearance." + ], + "coyote": [ + "Coyotes have slender bodies, pointed ears, bushy tails, and grayish-brown fur, distinguishing them from similar animals like wolves or dogs.", + "Coyotes have slender bodies pointed ears bushy tails and grayish brown fur often seen in wild open landscapes.", + "Coyotes have a slender pointed muzzle upright ears and a bushy tail with a black tip.", + "A coyote looks like a medium-sized wild dog with grayish-brown fur, pointed ears, a bushy tail, and a slender snout." + ], + "dingo": [ + "Dingoes are medium-sized wild dogs with sandy or reddish coats, pointed ears, and a bushy tail resembling a domestic dog.", + "Dingoes are medium-sized wild dogs with lean bodies, pointed ears, and reddish or sandy coats, unlike domestic dogs or wolves.", + "Dingoes have a lean body, pointed ears, bushy tail, and reddish or sandy fur with white markings on paws and chest.", + "A dingo looks like a medium-sized wild dog with a lean body, pointed ears, and a bushy tail, often sandy-colored." + ], + "dhole": [ + "The dhole is a wild dog with a reddish coat, bushy tail, and pointed ears, resembling a fox but larger and more robust.", + "The dhole is a wild dog with a reddish coat, bushy tail, and rounded ears, distinct from domestic dogs and wolves.", + "Dholes have reddish coats, bushy tails, rounded ears, and a distinctive black-tipped tail with a white underside.", + "The dhole has a distinctive reddish coat with a bushy black tail and white underside." + ], + "African wild dog": [ + "African wild dogs have unique patchy fur patterns with irregular brown black and yellow spots unlike solid-colored animals or man-made objects.", + "African wild dogs have unique patchy coats with irregular black brown and yellow patterns and large rounded ears.", + "African wild dogs have unique mottled fur patterns with irregular patches of yellow black and white and large rounded ears.", + "African wild dogs have a mottled coat with patches of yellow black and white large rounded ears and a slender build." + ], + "hyena": [ + "Hyenas have a dog-like shape with sloping backs large ears spotted or striped fur and strong jaws for crushing bones.", + "Hyenas are dog-like mammals with strong builds, short fur, rounded ears, and powerful jaws for crushing bones.", + "Hyenas have a sloping back, strong jaws, and spotted or striped fur unlike most animals which have straight backs and uniform coats.", + "Hyenas have a distinctive sloping back with powerful front legs and a spotted coat." + ], + "red fox": [ + "A red fox is a small canine with reddish fur, a bushy tail, pointed ears, and a slender snout.", + "The red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "A red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "Red foxes have a slender body, bushy tail, pointed ears, and reddish-orange fur, unlike most other animals." + ], + "kit fox": [ + "A kit fox is a small, slender, sandy-colored wild canine with large ears, a bushy tail, and pointed muzzle.", + "The kit fox has a small slender body large ears and a bushy tail unlike similar animals which may vary in size fur and ear shape.", + "The kit fox has large ears relative to its head size and a slender body with a bushy tail.", + "A kit fox has large ears, a slender body, grayish or yellowish fur, and a bushy tail with a black tip." + ], + "Arctic fox": [ + "The Arctic fox is a small white or gray furry animal with a bushy tail and pointed ears.", + "The Arctic fox has a white winter coat and smaller size compared to similar animals like the red fox or wolves.", + "The Arctic fox has thick white winter fur, a small round face, and short ears for surviving cold climates.", + "The Arctic fox has pure white winter fur that blends seamlessly with snowy landscapes." + ], + "grey fox": [ + "The grey fox is a small canine with grizzled grey fur a black stripe on its tail and a reddish neck.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish legs, unlike most animals with solid or less distinct markings.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown markings on its neck and legs.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown accents on its neck and legs." + ], + "tabby cat": [ + "Tabby cats have striped, dotted, or swirled fur patterns and a distinctive M-shaped mark on their forehead.", + "Tabby cats have striped, dotted, lined, or swirled patterns on their fur with a distinctive M-shaped mark on their forehead.", + "A tabby cat has distinctive striped, dotted, or swirled fur patterns often with an M-shaped mark on its forehead.", + "A tabby cat has a striped, spotted, or swirled coat pattern with an M-shaped mark on its forehead and often green or yellow eyes." + ], + "tiger cat": [ + "A tiger cat has a striped or spotted coat resembling a small tiger with a slender body and pointed ears.", + "Tiger cats have striped fur and a feline shape unlike other objects which vary in color texture and form.", + "Tiger cats have distinctive striped or spotted fur patterns resembling a tiger with a small domestic cat body shape.", + "Tiger cats have distinctive dark stripes and spots on a lighter background unlike other cats and objects." + ], + "Persian cat": [ + "Persian cats have long fluffy fur a flat face round eyes and a stocky body making them stand out.", + "Persian cats have long fluffy fur round faces short noses and large round eyes often with a flat face.", + "Persian cats have long fluffy fur flat faces and round eyes unlike most other objects which are not living animals.", + "A Persian cat is a fluffy long-haired cat with a round face short muzzle and large expressive eyes among all objects." + ], + "Siamese cat": [ + "Siamese cats have sleek bodies, blue almond-shaped eyes, short coats with color points on ears face paws and tail.", + "Siamese cats have sleek bodies, pointed color patterns on ears face paws and tail and striking blue almond-shaped eyes.", + "Siamese cats have striking blue almond-shaped eyes, short sleek coats with color points on ears face paws and tail.", + "A Siamese cat has a sleek body with blue almond-shaped eyes and distinctive pointed color patterns on its ears face paws and tail." + ], + "Egyptian Mau": [ + "The Egyptian Mau is a sleek spotted cat with a muscular body large green eyes and a graceful agile appearance.", + "The Egyptian Mau has a sleek spotted coat and distinctive mascara-like markings unlike other cats or objects.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau has a spotted coat, green eyes, and a distinctive mascara-like marking around its eyes." + ], + "cougar": [ + "A cougar is a large tan or brown cat with a long tail and a muscular body resembling a big domestic cat.", + "A cougar is a large tan cat with a long tail, slender body, and no distinct markings like spots or stripes.", + "A cougar has a uniform tan coat with no markings and a long thick tail relative to other big cats.", + "A cougar has a tan coat, muscular body, long tail, and a small head with rounded ears distinguishing it from other animals." + ], + "lynx": [ + "A lynx is a medium-sized wild cat with tufted ears, a short tail, and a spotted or striped coat.", + "Lynx are medium-sized wild cats with tufted ears, short tails, and spotted or streaked fur often seen in forested areas.", + "Lynx have tufted ears, short tails, and spotted coats with long legs and large paws for snowy habitats.", + "The lynx has distinctive long black tufts of hair on the tips of its ears." + ], + "leopard": [ + "Leopards have golden yellow fur with black rosettes and are sleek muscular cats smaller than lions and tigers.", + "A leopard is a large spotted cat with a golden coat and black rosettes, known for its strength and agility.", + "Leopards have golden coats with black rosettes and spots, sleek bodies, and long tails for climbing and balance.", + "Leopards have golden yellow fur with black rosette spots and a muscular slender body with a long tail." + ], + "snow leopard": [ + "A snow leopard is a large, pale gray cat with dark spots and a long, thick tail, living in mountainous regions.", + "Snow leopards have thick fur, rosette patterns, and a long tail, unlike other animals with plain coats or different body shapes.", + "Snow leopards have thick gray fur with black rosettes and spots, a long bushy tail, and a stocky build for mountain habitats.", + "A snow leopard has thick gray fur with black spots and rosettes, a long tail, and a muscular body built for cold mountains." + ], + "jaguar": [ + "Jaguars have a golden-yellow coat with black rosettes and a muscular build unlike other big cats or vehicles.", + "A jaguar is a large, muscular wild cat with a golden-yellow coat covered in dark rosettes and spots.", + "Jaguars have a golden-yellow coat with black rosettes and a muscular build, distinguishing them from other big cats and animals.", + "A jaguar has a golden-yellow coat with black rosettes and spots, a muscular build, and a large head with powerful jaws." + ], + "lion": [ + "A lion has a distinctive thick mane around its head which no other object or animal has.", + "Lions have a distinctive mane, muscular body, tawny fur, and a tail with a tuft unlike most other animals.", + "A lion is a large golden-brown cat with a mane around its head, sharp claws, and a muscular body.", + "A lion is a large tawny cat with a shaggy mane for males and a muscular body with a long tail." + ], + "tiger": [ + "Tigers have orange fur with black stripes, a muscular body, and a distinctive face with white markings and powerful jaws.", + "A tiger is a large striped orange and black cat with a powerful body sharp claws and a long tail.", + "Tigers have bold black stripes on orange fur, a white underside, and a powerful muscular body with a distinctive face.", + "A tiger has orange fur with black stripes, a white belly, and a muscular body with a long tail and sharp claws." + ], + "cheetah": [ + "Cheetahs have slender bodies black tear marks and spotted coats built for speed with long tails and small heads.", + "A cheetah is a sleek, spotted big cat with a slender body, long legs, and a distinctive black tear stripe on its face.", + "Cheetahs have slender bodies, black spots, and distinctive black tear marks on their faces unlike other big cats or animals.", + "Cheetahs are slender big cats with black spots, a long tail, and distinctive black tear marks on their faces." + ], + "brown bear": [ + "A brown bear is a large furry animal with a bulky body, round ears, and thick brown fur.", + "Brown bears are large furry mammals with a humped shoulder and long claws, unlike most objects which are smaller and less hairy.", + "Brown bears have a distinctive hump on their shoulders not found in other bear species or animals.", + "Brown bears are large with thick brown fur a muscular hump on their shoulders and long curved claws." + ], + "American black bear": [ + "The American black bear is a large, furry mammal with a stocky body, short tail, and round ears, usually dark brown or black.", + "American black bears have a stocky body, short tail, rounded ears, and thick black fur distinguishing them from other objects.", + "The American black bear has a stocky body, short tail, rounded ears, and fur ranging from black to light brown.", + "American black bears are medium-sized with black fur, a straight facial profile, and no shoulder hump like brown bears." + ], + "polar bear": [ + "Polar bears are large white bears with long necks small ears and black noses living in snowy Arctic regions.", + "Polar bears have thick white fur a large body and a long neck distinguishing them from other animals and objects.", + "A polar bear is a large white furry bear with a long neck and black nose living in icy Arctic regions.", + "Polar bears are large white bears with thick fur and black skin, unlike most other animals or objects in color and size." + ], + "sloth bear": [ + "The sloth bear is a shaggy black bear with a long snout, white muzzle, and curved claws for digging insects.", + "Sloth bears have shaggy black fur a white V on their chest and long curved claws unlike smoother shorter clawed bears.", + "The sloth bear has a distinct long shaggy black coat and a white V-shaped mark on its chest.", + "Sloth bears have shaggy black fur, a white V-shaped chest mark, and a long snout for sucking insects." + ], + "mongoose": [ + "A mongoose is a small slender furry mammal with a pointed face short legs and a long tail often brown or gray.", + "Mongooses are small slender mammals with pointed noses long tails short legs and often gray or brown fur.", + "Mongooses are small slender mammals with pointed faces short legs long tails and often a grizzled or speckled fur pattern.", + "Mongooses are small slender mammals with pointed faces and long tails unlike most other objects which are not animals." + ], + "meerkat": [ + "Meerkats have slender bodies, pointed faces, dark eye patches, and stand upright on their hind legs often in groups.", + "A meerkat is a small slender mongoose with a pointed face, short legs, and a long tail, often standing upright.", + "Meerkats are small slender mongooses with pointed faces, short legs, long tails, and dark eye patches on light brown fur.", + "Meerkats are small slender mongooses with pointed faces long tails and distinctive dark eye patches unlike most other animals." + ], + "tiger beetle": [ + "Tiger beetles have long legs, large eyes, and metallic-colored bodies with distinct patterns unlike most other insects and objects.", + "Tiger beetles have large bulging eyes and long slender legs that distinguish them from other insects and objects.", + "Tiger beetles are small, colorful, fast-moving insects with long legs, large eyes, and metallic or patterned bodies resembling tiny vibrant beetles.", + "Tiger beetles are recognized by their metallic colors, large eyes, long legs, and fast running speed among insects." + ], + "ladybug": [ + "Ladybugs are small round beetles with bright red or orange shells and black spots unlike most other insects or objects.", + "A ladybug is a small round beetle with bright red or orange wings and black spots, often found on plants.", + "Ladybugs are small round beetles with bright red or orange shells and black spots on their backs.", + "Ladybugs are recognized by their small round red bodies with black spots and shiny dome-shaped wing covers." + ], + "ground beetle": [ + "Ground beetles are small, shiny, and have hard wing covers with distinct ridges, unlike most other insects or objects.", + "Ground beetles are small shiny black or metallic insects with hard wing covers and long legs often found under rocks.", + "Ground beetles are small, shiny, dark-colored insects with hard wing covers and long legs, often found under rocks or logs.", + "Ground beetles are recognized by their shiny elongated bodies, ridged wing covers, and fast legs adapted for running." + ], + "longhorn beetle": [ + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical bodies with distinctive bold patterns or colors.", + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical shapes unlike most other beetles or insects.", + "Longhorn beetles have extremely long antennae often longer than their bodies distinguishing them from other insects and objects.", + "Longhorn beetles are recognized by their extremely long antennae often longer than their bodies and cylindrical elongated bodies." + ], + "leaf beetle": [ + "Leaf beetles are small, shiny, oval-shaped insects with bright colors or metallic sheen often found on leaves.", + "Leaf beetles are small, shiny, and often brightly colored with hard wing covers, unlike most other beetles which are duller or larger.", + "Leaf beetles are small, oval-shaped insects with bright, often metallic colors and hard wing covers, resembling tiny, shiny jewels on plants.", + "Leaf beetles are recognized by their small oval bodies, bright metallic colors, and distinct patterns on their wing covers." + ], + "dung beetle": [ + "A dung beetle is a small dark oval-shaped insect with a hard shell and strong legs for rolling dung balls.", + "Dung beetles are small dark oval-shaped insects with strong legs often seen rolling balls of dung.", + "Dung beetles are small, oval-shaped insects with hard shells and often have shiny black or metallic colors unlike most other objects.", + "Dung beetles are recognized by their oval body, shiny black or brown shell, and strong legs for rolling dung balls." + ], + "rhinoceros beetle": [ + "The rhinoceros beetle is a large dark insect with a prominent horn on its head resembling a rhino's horn.", + "A rhinoceros beetle has a large horn on its head and a shiny dark body with a hard shell.", + "Rhinoceros beetles have a large horn on their head and a thick armored body making them easy to recognize.", + "Rhinoceros beetles have a large horn on their head and a hard shiny shell unlike most other insects or objects." + ], + "weevil": [ + "Weevils are small beetles with elongated snouts and often have a hard shell compared to other insects or objects.", + "Weevils are small beetles with elongated snouts and often have a hard shell with a slightly curved or bent body shape.", + "Weevils have elongated snouts, small round bodies, and distinctive antennae often bent at an angle.", + "Weevils are small beetles with elongated snouts and often have a hard shell and segmented antennae." + ], + "fly": [ + "Flies are small with transparent wings, large eyes, and a slender body often seen near food or waste.", + "A fly is a small winged insect with a dark slender body large eyes and transparent veined wings.", + "Flies have small slender bodies transparent wings large eyes and six legs often seen hovering or resting on surfaces.", + "Flies have small, slender bodies with transparent wings and large compound eyes unlike most other objects in ImageNet." + ], + "bee": [ + "A bee is a small flying insect with a fuzzy striped body, transparent wings, and often seen near flowers.", + "Bees have striped yellow and black bodies, transparent wings, and are smaller than most similar flying insects like wasps or hornets.", + "Bees are small flying insects with yellow and black striped bodies, transparent wings, and often seen near flowers.", + "Bees have distinctive black and yellow striped bodies with translucent wings and fuzzy hair covering their thorax." + ], + "ant": [ + "Ants are small with six legs, a segmented body, and antennae, unlike most objects which lack these distinct insect features.", + "An ant is a small, slender insect with six legs, a segmented body, and often black or reddish-brown in color.", + "Ants have a distinct segmented body with a narrow waist and bent antennae unlike most other insects or objects.", + "Ants are small, six-legged insects with segmented bodies, thin waists, and bent antennae, often seen crawling in lines or carrying food." + ], + "grasshopper": [ + "Grasshoppers have long hind legs for jumping, slender bodies, and antennae, unlike most other insects and objects.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and antennae, often green or brown to blend into grass.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and wings, often green or brown for camouflage.", + "Grasshoppers have long hind legs for jumping and segmented bodies with large eyes and antennae." + ], + "cricket insect": [ + "Crickets are small, slender insects with long antennae, strong hind legs for jumping, and wings that some species use to chirp.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings that lie flat on their backs.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings, unlike most non-insect objects.", + "Crickets have long antennae and powerful hind legs adapted for jumping unlike most other insects and objects." + ], + "stick insect": [ + "Stick insects have long slender bodies resembling twigs or branches with legs that mimic small sticks for camouflage.", + "Stick insects are long and thin resembling twigs while other objects vary widely in shape color and texture.", + "Stick insects look like thin twigs or branches with long slender bodies and legs blending into their surroundings.", + "Stick insects uniquely resemble thin twigs or branches with elongated bodies and legs mimicking plant parts perfectly." + ], + "cockroach": [ + "Cockroaches are dark brown oval-shaped insects with long antennae six legs and a shiny flattened body often found scurrying quickly.", + "Cockroaches have flat oval bodies long antennae and six spiny legs unlike most insects which may have wings or different body shapes.", + "Cockroaches are small dark brown insects with oval flat bodies long antennae and six legs often found in damp places.", + "Cockroaches have flat oval bodies long antennae and six spiny legs often appearing shiny brown or black with a segmented appearance." + ], + "praying mantis": [ + "Praying mantises have long slender bodies triangular heads and folded spiked forelegs used for catching prey.", + "A praying mantis has a long slender green or brown body with large eyes and folded forelegs for catching prey.", + "Praying mantises have long slender bodies triangular heads and front legs adapted for grasping unlike most other insects or objects.", + "Praying mantises have long slender bodies triangular heads and front legs bent like they are praying often green or brown." + ], + "cicada": [ + "Cicadas have large transparent wings, prominent eyes, and a stout body, unlike most insects which are smaller with varied wing shapes.", + "Cicadas have large transparent wings, bulging eyes, and a stout body, often green or brown, with distinctive loud buzzing sounds.", + "Cicadas are small winged insects with large transparent wings bulging eyes and often green or brown bodies.", + "Cicadas have large transparent wings with prominent veins and a distinct body shape among insects." + ], + "leafhopper": [ + "A leafhopper is a small, slender, winged insect with vibrant colors, often green or brown, resembling tiny leaves or grasshoppers.", + "Leafhoppers are small, wedge-shaped insects with colorful or patterned wings and strong hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with colorful, often patterned wings and large hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with vibrant colors, large hind legs for jumping, and often have intricate patterns on their wings." + ], + "lacewing": [ + "Lacewings have delicate transparent veined wings, long antennae, and bright golden eyes, distinguishing them from other insects and objects.", + "Lacewings are delicate insects with transparent veined wings and long antennae, unlike other objects which lack these specific features.", + "Lacewings have delicate transparent wings with intricate veining patterns and a distinctive green or golden body.", + "Lacewings are delicate insects with transparent veined wings, long antennae, and bright green or pale bodies, often found near plants." + ], + "dragonfly": [ + "Dragonflies have long slender bodies, large transparent wings, and bulging eyes unlike most other insects or objects.", + "Dragonflies are recognized by their long slender bodies, large transparent wings, and large multifaceted eyes.", + "Dragonflies have long slender bodies, large transparent wings, and big bulging eyes, often seen near water.", + "A dragonfly has a long slender body large transparent wings and big eyes often seen near water with vibrant colors." + ], + "damselfly": [ + "A damselfly is a slender winged insect with a long body and delicate transparent wings resembling a small dragonfly.", + "Damselflies have slender bodies, delicate wings held together when resting, and long thin abdomens unlike bulkier dragonflies or other flying insects.", + "Damselflies have slender bodies, long thin wings held together when resting, and large widely separated eyes on their heads.", + "Damselflies have long slender bodies with two pairs of similarly sized wings held together when at rest." + ], + "red admiral butterfly": [ + "The red admiral butterfly has dark wings with bold orange-red bands and white spots, making it easily recognizable.", + "The red admiral butterfly has striking black wings with orange-red bands and white spots, unlike most other butterflies or objects.", + "The red admiral butterfly has bold orange-red bands on black wings with white spots near the tips.", + "The red admiral butterfly has black wings with striking orange-red bands and white spots along the wing edges." + ], + "ringlet butterfly": [ + "A ringlet butterfly is a small, dark brown butterfly with circular eye-like spots on its wings and a delicate, fluttering flight.", + "The ringlet butterfly has distinctive small eyespots with white centers on its underwings surrounded by dark rings.", + "Ringlet butterflies have small, dark wings with subtle ring-like patterns, unlike brighter or plainer insects and objects.", + "Ringlet butterflies have small, dark wings with white-ringed spots and a delicate, fluttering flight pattern." + ], + "monarch butterfly": [ + "The monarch butterfly has distinctive bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have vibrant orange and black wings with white spots along the edges and veins.", + "A monarch butterfly has vibrant orange and black wings with white spots and a delicate, slender body among all objects." + ], + "small white butterfly": [ + "Small white butterflies have delicate white wings with faint black or yellow markings, unlike most objects which are bulkier and lack wings.", + "Look for tiny white wings with delicate patterns and thin black edges fluttering near flowers or plants.", + "Small white butterflies have delicate white wings with subtle black tips and faint yellow or greenish undersides.", + "Small white butterflies have delicate white wings with faint black tips and subtle yellow or greenish undersides." + ], + "sulphur butterfly": [ + "A sulphur butterfly is a small yellow or orange butterfly with delicate wings often seen fluttering near flowers.", + "Sulphur butterflies have bright yellow or orange wings with black edges and small dark spots on their forewings.", + "Sulphur butterflies are bright yellow or orange with black wing edges and small dark spots on their wings.", + "Sulphur butterflies have bright yellow or orange wings with distinct black edges and minimal patterns." + ], + "gossamer-winged butterfly": [ + "Gossamer-winged butterflies have delicate, translucent wings with fine scales and slender bodies, unlike bulkier insects or birds with opaque feathers.", + "Gossamer-winged butterflies are small delicate insects with thin translucent wings often displaying vibrant colors and intricate patterns.", + "Gossamer-winged butterflies are small with delicate, translucent wings often showing bright colors or intricate patterns.", + "Gossamer-winged butterflies have delicate, translucent wings with vibrant colors and intricate patterns, often appearing small and fragile." + ], + "starfish": [ + "Starfish have five or more arms radiating from a central body and are often bumpy or spiny with bright colors.", + "Starfish have radial symmetry, five or more arms, rough textured skin, and bright colors or patterns.", + "Starfish have five or more radiating arms with a rough texture and often bright colors unlike smoother symmetrical objects.", + "Starfish are marine creatures with five or more arms radiating from a central body, often colorful and covered in small bumps or spines." + ], + "sea urchin": [ + "Sea urchins are small round spiny creatures with a hard shell often found in ocean habitats.", + "Sea urchins are round spiky marine creatures with a hard shell, unlike most other objects which are smoother or differently shaped.", + "Sea urchins have round spiny shells with radial symmetry and small tube feet between their spines.", + "Sea urchins are small spiny round creatures found in oceans resembling prickly balls with tiny tube feet underneath." + ], + "sea cucumber": [ + "Sea cucumbers are soft elongated tube-shaped marine animals often with leathery skin and small bumps or spines.", + "Sea cucumbers have a distinct elongated cylindrical body with soft leathery skin and small tube feet.", + "Sea cucumbers are elongated soft-bodied marine animals with leathery skin unlike most sea creatures which have shells or hard exoskeletons.", + "Sea cucumbers are recognized by their elongated soft cylindrical bodies and bumpy leathery skin often found on ocean floors." + ], + "cottontail rabbit": [ + "A cottontail rabbit is a small brown or gray furry animal with a fluffy white tail and long ears.", + "Cottontail rabbits have fluffy white tails and brown-gray fur, unlike other objects which lack these specific natural features.", + "Cottontail rabbits have small brown bodies with white fluffy tails and long ears but no black markings like some hares.", + "Cottontail rabbits have a small fluffy white tail, large ears, brown-gray fur, and a compact body with long hind legs." + ], + "hare": [ + "A hare is a fast long-eared mammal resembling a rabbit but larger with longer legs and stronger hindquarters for leaping.", + "Hares have long ears, strong hind legs, short tails, and brown or gray fur with a lean body.", + "Hares have long ears and legs with a lean body and brownish fur unlike similar animals which vary in size color and shape.", + "Hares have long ears, strong hind legs, a lean body, and fast movement, distinguishing them from similar animals like rabbits." + ], + "Angora rabbit": [ + "The Angora rabbit is a fluffy, long-haired rabbit with soft, thick fur that often appears round and woolly.", + "Angora rabbits have long soft fur and floppy ears unlike most objects which are hard smooth or lack fur and ears.", + "Angora rabbits are recognized by their long soft wool floppy ears and round faces with a fluffy compact body shape.", + "Angora rabbits are fluffy with long soft wool often covering their eyes and ears making them look like round fur balls." + ], + "hamster": [ + "Hamsters are small furry rodents with short tails and chubby cheeks unlike other animals or objects in their category.", + "Hamsters have small round bodies with short legs and distinctive cheek pouches for storing food.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive facial markings and whiskers.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive fur patterns or colors." + ], + "porcupine": [ + "Porcupines have long sharp quills covering their bodies which no other animal or object has in such abundance and arrangement.", + "Porcupines have long sharp quills covering their bodies unlike similar animals which have fur or shorter softer spines.", + "Porcupines are medium-sized rodents with sharp quills covering their bodies for protection against predators.", + "Porcupines are easily recognized by their long sharp quills covering their body and their stout slow moving shape." + ], + "fox squirrel": [ + "The fox squirrel is a large tree squirrel with reddish brown fur a bushy tail and a white belly.", + "Fox squirrels are larger with bushy tails and reddish-brown fur, unlike smaller gray squirrels or non-squirrel animals with different colors and shapes.", + "A fox squirrel has a bushy tail, reddish-brown fur, and is larger than most squirrels with a white belly.", + "Fox squirrels have large bushy tails, reddish-brown fur, and are often seen climbing trees or foraging on the ground." + ], + "marmot": [ + "A marmot is a stout, furry rodent with short legs, a bushy tail, and rounded ears, resembling a large ground squirrel.", + "Marmots are stout, furry rodents with short legs, bushy tails, and rounded ears, often seen in rocky or grassy areas.", + "Marmots are large ground-dwelling rodents with stout bodies, short legs, and bushy tails, unlike most similar animals.", + "Marmots are recognized by their stout bodies, short legs, bushy tails, and brown or gray fur often found in rocky mountainous areas." + ], + "beaver": [ + "A beaver is a large brown rodent with a flat tail webbed feet and sharp teeth often seen near water.", + "Beavers are large brown rodents with flat tails, webbed hind feet, and sharp teeth, often found near water.", + "Beavers have flat tails, webbed feet, and brown fur, unlike most animals which lack these specific aquatic adaptations.", + "Beavers have flat scaly tails, webbed hind feet, and large front teeth for gnawing wood near water." + ], + "guinea pig": [ + "Guinea pigs are small furry rodents with round bodies short legs and no tails unlike most other pets or objects.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and smooth fur in various colors and patterns." + ], + "common sorrel horse": [ + "A common sorrel horse has a solid reddish-brown coat with no black points, unlike other animals or objects with varied colors and patterns.", + "The common sorrel horse has a solid reddish-brown coat without black points like mane or tail.", + "A common sorrel horse has a reddish-brown coat with a uniform color, often with a flaxen mane and tail.", + "A common sorrel horse has a solid reddish-brown coat with a similar mane and tail, lacking black markings or other color variations." + ], + "zebra": [ + "Zebras are easily recognized by their black and white striped patterns and horse-like body shape.", + "Zebras have bold black and white stripes covering their entire body unlike any other animal.", + "A zebra is a striped horse-like animal with black and white patterns standing out among other animals and objects.", + "Zebras are recognized by their black and white striped patterns unique among animals and distinct from all other objects." + ], + "pig": [ + "Pigs have stout bodies, short legs, a snout for a nose, and often curly tails with pink or dark skin.", + "Pigs have stout bodies, short legs, flat snouts, and curly tails, unlike most animals which have leaner builds and different facial features.", + "Pigs are stout animals with short legs, a round body, a snout, and often pink skin covered with sparse hair.", + "Pigs have stout bodies, short legs, curly tails, and a distinctive snout used for rooting in the ground." + ], + "wild boar": [ + "Wild boars have dark coarse fur, a long snout, small eyes, and prominent tusks in males, with a sturdy muscular body.", + "Wild boars have coarse fur, tusks, and a stocky build unlike smoother or less muscular animals like pigs or deer.", + "A wild boar is a stocky, hairy animal with a large head, short legs, and prominent tusks, resembling a rugged pig.", + "Wild boars have a stocky body, coarse dark fur, a long snout, and prominent tusks making them easily recognizable." + ], + "warthog": [ + "Warthogs are wild pigs with large curved tusks, coarse gray or brown hair, and distinctive facial warts.", + "A warthog is a wild pig with a stocky body, coarse gray skin, large tusks, and distinctive facial warts.", + "Warthogs have distinctive large tusks, warty facial bumps, and a mane of coarse hair along their back.", + "Warthogs have distinctive large curved tusks and warty facial bumps that set them apart from other animals." + ], + "hippopotamus": [ + "A hippopotamus is a large gray aquatic mammal with a bulky body short legs and a wide mouth with big teeth.", + "Hippopotamuses are large, barrel-shaped with thick gray skin, small ears, wide mouths, and nearly hairless bodies unlike most other animals.", + "A hippopotamus is a large, barrel-shaped animal with thick gray skin, a huge mouth, and small ears and eyes on top of its head.", + "Hippopotamuses have massive barrel-shaped bodies with thick gray skin and tiny ears compared to their huge heads." + ], + "ox": [ + "An ox is a large, sturdy bovine with a muscular body, thick neck, and often has horns and a short coat.", + "Oxen are large, sturdy animals with muscular bodies, long tails, and prominent horns, unlike smaller or hornless livestock and objects.", + "Oxen are large, sturdy animals with broad bodies, thick necks, and curved horns, often seen with a muscular build and short hair.", + "Oxen are recognized by their large sturdy bodies long curved horns and strong muscular shoulders used for labor." + ], + "water buffalo": [ + "A water buffalo is a large, dark, stocky animal with curved horns, a broad muzzle, and a heavy, muscular body.", + "Water buffalo are large, dark gray or black animals with massive curved horns and a stocky, muscular body.", + "Water buffaloes are large, stocky animals with curved horns, dark gray or black skin, and a heavy build compared to similar animals.", + "Water buffalo have large curved horns that sweep back and up forming a distinctive crescent shape." + ], + "bison": [ + "Bison are large, shaggy brown mammals with massive heads, short horns, and humped shoulders, resembling wild cattle or buffalo.", + "Bison are large, shaggy-haired mammals with massive heads and humped shoulders, unlike most animals which are smaller or smoother.", + "Bison are large, shaggy brown mammals with massive heads, short curved horns, and a pronounced hump on their shoulders.", + "Bison have a massive humped shoulder and a thick shaggy mane that distinguishes them from other animals." + ], + "ram (adult male sheep)": [ + "A ram is a sturdy adult male sheep with large curved horns, a thick woolly coat, and a muscular build.", + "The ram has large curved horns that are thicker and more spiraled than other horned animals.", + "Rams have large curved horns a thick woolly coat and a muscular build distinguishing them from other animals.", + "Look for a large sturdy animal with curved horns thick wool a short tail and a muscular build compared to female sheep." + ], + "bighorn sheep": [ + "Bighorn sheep have large curved horns, stocky bodies, and brown fur, unlike most animals or objects which lack these distinct features.", + "Bighorn sheep have large curved horns a stocky brown body and white rump distinguishing them from other animals.", + "Bighorn sheep are large brown wild sheep with massive curved horns and a muscular body adapted for rugged mountainous terrain.", + "Bighorn sheep are recognized by their large curved horns muscular build brown-gray fur and preference for rocky mountainous habitats." + ], + "Alpine ibex": [ + "The Alpine ibex is a large wild goat with long curved horns a shaggy brown coat and a sturdy muscular body.", + "Alpine ibex are wild goats with long curved horns a light brown coat and a sturdy muscular build living in rocky mountains.", + "Alpine ibex have long curved horns with prominent ridges and a distinctive backward sweep.", + "Alpine ibex have long curved horns ridged rings and a sturdy grey brown body adapted for mountainous terrain." + ], + "hartebeest": [ + "Hartebeest are large antelopes with long narrow faces sloping backs and short twisted horns in both males and females.", + "A hartebeest is a large antelope with a long face, steeply sloping back, and ringed curved horns.", + "Hartebeests have long faces, short necks, and high shoulders, unlike other antelopes which are more streamlined or have different horn shapes.", + "Hartebeests have long narrow faces steeply sloping foreheads and short twisted horns with a reddish brown coat and long legs." + ], + "impala (antelope)": [ + "An impala is a slender, medium-sized antelope with reddish-brown fur, white underparts, and distinctive black markings on its face and tail.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impala have slender bodies, long legs, reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinct black stripes on their tails and hind legs." + ], + "gazelle": [ + "Gazelles are slender with long legs, short tails, and curved horns, often tan or light brown with white underbellies.", + "Gazelles are slender with long legs and horns while similar animals vary in size shape or lack horns.", + "Gazelles have slender bodies long legs and distinctive curved horns with a smooth glossy coat and white underbelly.", + "Gazelles are slender, long-legged antelopes with smooth coats, short tails, and often curved horns, built for speed in open grasslands." + ], + "arabian camel": [ + "The Arabian camel has a single hump while other camels have two humps.", + "The Arabian camel has a single hump, long legs, and a slender body compared to other camels and animals.", + "The Arabian camel has a long curved neck, a single hump, and a sandy-colored coat with long slender legs.", + "The Arabian camel has a single hump, long curved neck, slender legs, and a short coat, distinguishing it from other camels and animals." + ], + "llama": [ + "Llamas have long necks, slender legs, and woolly coats, unlike most animals which are shorter or have smoother fur.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas are tall furry mammals with long necks slender legs and a distinctive face resembling a camel but smaller and woolly." + ], + "weasel": [ + "A weasel is a small slender furry animal with short legs a long body and a pointed snout.", + "Weasels are small slender mammals with long bodies short legs pointed snouts and brown or white fur often with black tips.", + "Weasels have long slender bodies short legs pointed faces and brown or white fur often with a black-tipped tail.", + "Weasels are small slender mammals with long bodies short legs and brown fur while similar animals vary in size shape and color." + ], + "mink": [ + "Minks are small slender mammals with short legs, pointed snouts, and thick glossy fur, unlike most other animals.", + "Minks are small slender mammals with glossy dark brown fur short legs and a long tail.", + "A mink is a small sleek furry animal with a long body short legs and a pointed face resembling a weasel.", + "The mink has a sleek, elongated body with glossy dark brown fur and a small pointed face." + ], + "European polecat": [ + "The European polecat is a small, slender, dark-furred mammal with a white face mask and a long, bushy tail.", + "The European polecat has a dark brown coat with lighter underfur and a distinctive white face mask and dark legs.", + "The European polecat has a slender body, dark fur with a white face mask, and a bushy tail, unlike similar animals.", + "European polecats have slender bodies, dark masks around their eyes, and a mix of dark brown and cream fur with a bushy tail." + ], + "black-footed ferret": [ + "The black-footed ferret is a slender, long-bodied animal with dark legs, a pale body, and a distinctive black mask.", + "The black-footed ferret has a slender body with a black mask, black feet, and a tan coat with white underparts.", + "The black-footed ferret has a slender body, black mask, and dark feet, unlike similar animals with different markings or body shapes.", + "The black-footed ferret has distinctive dark markings on its feet and a black mask around its eyes." + ], + "otter": [ + "Otters have sleek furry bodies long tails webbed feet and small rounded ears unlike most aquatic or land animals.", + "Otters are sleek furry mammals with long tails webbed feet and whiskers often seen swimming or floating on water.", + "Otters are sleek furry mammals with long bodies short legs webbed feet and whiskers often seen swimming or holding hands.", + "Otters have a sleek streamlined body with webbed feet and a long tapered tail for swimming." + ], + "skunk": [ + "A skunk is a black and white furry mammal with a bushy tail and distinctive stripes, often emitting a strong odor.", + "Skunks are small black and white mammals with a bushy tail and distinctive white stripes or spots on their fur.", + "Skunks are recognized by their black fur with bold white stripes or spots and a bushy tail.", + "Skunks have distinctive black and white fur patterns and a bushy tail unlike most animals which have more uniform colors." + ], + "badger": [ + "Badgers are stout furry animals with short legs, black and white striped faces, and strong claws for digging.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws unlike most similar animals.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws for digging.", + "Badgers are stocky with short legs, black and white striped faces, and grayish fur on their low slung bodies." + ], + "armadillo": [ + "An armadillo is a small armored mammal with a hard bony shell, short legs, and a pointed snout.", + "Armadillos have a unique armored shell made of bony plates unlike most animals which have fur scales or smooth skin.", + "Armadillos have a distinctive leathery armored shell made of bony plates covering their back and sides.", + "Armadillos have a unique armored shell made of bony plates covering their back, head, legs, and tail." + ], + "three-toed sloth": [ + "Three-toed sloths have long limbs, curved claws, and a slow-moving, shaggy brown or gray fur coat unlike most other animals.", + "A three-toed sloth is a slow-moving, furry mammal with long limbs, curved claws, and a distinctive face, often hanging upside down in trees.", + "Three-toed sloths have long limbs, curved claws, a round face with a permanent smile, and shaggy gray-brown fur.", + "Three-toed sloths have a round face with a stubby snout, long limbs with three claws, and shaggy gray-brown fur." + ], + "orangutan": [ + "An orangutan is a large reddish brown ape with long arms shaggy hair and a distinctive face resembling humans.", + "Orangutans have long reddish-brown hair, large bodies, and no tails with prominent cheek pads on adult males.", + "Orangutans have long reddish-brown fur and distinctive cheek pads in males.", + "Orangutans have long reddish hair, large bodies, and no tails, unlike most animals and objects in ImageNet." + ], + "gorilla": [ + "A gorilla is a large, dark-haired primate with a muscular body, broad chest, and a strong, expressive face.", + "Gorillas are large black-haired primates with broad shoulders and no tails unlike many other animals and objects.", + "Gorillas are recognized by their large size, dark fur, broad shoulders, and distinctive facial features like a pronounced brow ridge.", + "Gorillas are large black-haired primates with broad chests, muscular arms, and a distinctively shaped head with a prominent brow ridge." + ], + "chimpanzee": [ + "Chimpanzees have black fur, long arms, hairless faces with large ears, and prominent brows, resembling humans but covered in coarse hair.", + "Chimpanzees are hairy primates with long arms, dark faces, and expressive eyes resembling humans but covered in coarse black or brown fur.", + "Chimpanzees have dark fur, long arms, expressive faces, and no tails unlike many animals and objects in ImageNet.", + "Chimpanzees have dark hairy bodies long arms expressive faces and opposable thumbs distinguishing them from other animals and objects." + ], + "gibbon": [ + "Gibbons are small slender apes with long arms no tails and fur ranging from black to light brown or cream.", + "Gibbons are small apes with long arms and no tail, unlike monkeys which often have tails and shorter limbs.", + "Gibbons are small apes with long arms, no tail, and a slender body, often seen swinging in trees.", + "Gibbons have long arms small bodies no tails and are often seen swinging in trees with their distinctive slender frames." + ], + "siamang": [ + "A siamang is a large black gibbon with long arms, a throat sac, and shaggy fur, resembling a small ape.", + "Siamangs are black-furred apes with long arms, large throat pouches, and no tail, unlike most primates and other animals.", + "Siamangs are large black gibbons with long arms, shaggy fur, and a distinctive throat sac that inflates when they vocalize.", + "Siamangs are recognized by their large size, long arms, black fur, and distinctive throat sacs used for loud vocalizations." + ], + "guenon": [ + "Guenons are small monkeys with colorful fur, long tails, and distinct facial markings unlike most other animals or objects.", + "A guenon is a colorful, slender monkey with a long tail, distinctive facial markings, and often a white or bright nose.", + "Guenons are small monkeys with colorful fur, long tails, and distinctive facial markings like mustaches or bright nose spots.", + "Guenons are recognized by their colorful fur patterns, long tails, and distinctive facial markings like mustaches or bright nose spots." + ], + "patas monkey": [ + "Patas monkeys are slender with long limbs reddish fur white bellies and distinctive black facial markings.", + "Patas monkeys have long slender limbs reddish fur white bellies and distinctive black facial markings for easy recognition.", + "Patas monkeys have long limbs reddish fur and white bellies unlike other monkeys which often have darker fur and different body shapes.", + "The patas monkey has a slender body, long limbs, reddish-brown fur, a white belly, and a distinctive black face with a white mustache." + ], + "baboon": [ + "Baboons have distinctive dog-like snouts, long tails, and fur-covered bodies unlike most primates and other animals.", + "A baboon is a large monkey with a long muzzle, bare face, and a short tail, often seen in groups.", + "Baboons have dog-like muzzles long tails and colorful hairless faces with distinctive fur patterns on their bodies.", + "Baboons have distinctive long dog-like muzzles and brightly colored hairless patches on their faces and rumps." + ], + "macaque": [ + "Macaques have fur, long tails, and expressive faces, unlike objects which lack organic features and movement.", + "Macaques are medium-sized monkeys with brown or gray fur, long tails, and expressive faces resembling humans with cheek pouches.", + "Macaques are medium-sized monkeys with brown or gray fur, expressive faces, long tails, and often seen sitting or climbing.", + "Macaques have distinctive pink or light-colored faces and rumps with expressive eyes and short tails." + ], + "langur": [ + "Langurs are slender long-tailed monkeys with distinct facial markings and fur colors unlike most animals or objects.", + "Langurs are slender, long-tailed monkeys with black faces, often gray or golden fur, and distinctive white markings around their eyes.", + "A langur is a slender, long-tailed monkey with a black face and gray or golden fur, often seen in trees.", + "Langurs have long tails slender bodies and distinctive facial markings often with light fur around their dark faces." + ], + "black-and-white colobus": [ + "Black-and-white colobus monkeys have striking black fur with long white mantles and tails unlike most animals or objects.", + "The black-and-white colobus is a monkey with striking black fur and long white mantle and tail.", + "Black and white colobus monkeys have striking black fur with long white mantles and tails, often seen in trees.", + "The black-and-white colobus has striking long white fur and a black face with a white mantle and tail." + ], + "proboscis monkey": [ + "The proboscis monkey has a large, long nose, a pot belly, and reddish-brown fur with a pale face and tail.", + "The proboscis monkey has a large, protruding nose, a potbelly, and reddish-brown fur with a long tail.", + "The proboscis monkey has a large nose potbelly and webbed feet unlike most other monkeys or animals.", + "The proboscis monkey has a large nose potbelly reddish fur and long tail living in trees near water." + ], + "marmoset": [ + "A marmoset is a small monkey with a furry body, long tail, and distinctive facial markings resembling a tiny lion.", + "Marmosets are small monkeys with fluffy fur, long tails, and distinctive white ear tufts or facial markings.", + "Marmosets are small monkeys with fluffy fur long tails and distinct facial markings unlike most other animals or objects.", + "Marmosets are recognized by their small size, claw-like nails, and distinctive white ear tufts or facial markings." + ], + "white-headed capuchin": [ + "The white-headed capuchin is a small monkey with a white face and chest and a dark brown body.", + "The white-headed capuchin has a distinctive white face and chest with a dark body and a prehensile tail.", + "The white-headed capuchin has a distinctive black body with a white face and chest, unlike most animals and objects.", + "The white-headed capuchin has a distinctive white face and chest with a black body and limbs." + ], + "howler monkey": [ + "Howler monkeys have shaggy fur, long tails, and large throats, unlike most objects which are smoother and lack these distinct animal features.", + "Howler monkeys have a distinctive thick beard and long prehensile tail not found in other similar primates.", + "Howler monkeys are large, dark-furred primates with wide faces, strong limbs, and prehensile tails, often seen in trees.", + "Howler monkeys are recognized by their large size, dark fur, prehensile tails, and loud vocalizations in dense forest habitats." + ], + "titi monkey": [ + "Titi monkeys are recognized by their small size long tails and soft fur often with reddish or grayish tones.", + "Titi monkeys are small primates with fluffy fur, long tails, and round faces unlike most non-primate objects.", + "Titi monkeys are small with fluffy fur, long tails, and rounded faces often in shades of brown gray or black.", + "Titi monkeys have distinctive long fluffy tails and small round faces with soft fur." + ], + "Geoffroy's spider monkey": [ + "Geoffroy's spider monkey has long limbs, a prehensile tail, and a dark face, unlike most objects which lack such distinct biological features.", + "Geoffroy's spider monkey has long limbs and a prehensile tail with a slender dark brown or black furry body.", + "Geoffroy's spider monkey has long limbs, a prehensile tail, and black fur with a lighter face and chest.", + "Geoffroy's spider monkey has long slender limbs a prehensile tail and a small head with a black face and light fur." + ], + "common squirrel monkey": [ + "Look for a small monkey with a white face, dark muzzle, and yellowish orange fur on its back and limbs.", + "The common squirrel monkey is a small, agile primate with short fur, a long tail, and a white face with dark eyes.", + "The common squirrel monkey has a small, agile body with a short grayish coat, black muzzle, and distinctive white face markings.", + "The common squirrel monkey has a distinctive white face with black muzzle and yellow-orange arms." + ], + "ring-tailed lemur": [ + "A ring-tailed lemur has a slender body, long black-and-white striped tail, pointed face, and large yellow eyes.", + "Ring-tailed lemurs have long striped tails and pointed faces unlike most animals which lack such distinct tail patterns and facial features.", + "The ring-tailed lemur has a long black and white striped tail and a pointed fox-like face.", + "The ring-tailed lemur has a long black and white striped tail and a pointed face with bright yellow eyes." + ], + "indri": [ + "The indri is a large lemur with black and white fur, short ears, and no tail unlike most other primates.", + "The indri is a large black and white lemur with a round face, small ears, and a short tail.", + "The indri has distinctive black and white fur with large greenish eyes and no visible tail.", + "Indri are large black and white lemurs with round ears, long limbs, and no tail, often seen clinging to tree trunks." + ], + "Asian elephant": [ + "An Asian elephant is a large gray animal with a long trunk small ears and a humped back.", + "Asian elephants have smaller ears relative to their head size compared to African elephants.", + "Asian elephants have smaller ears, a single finger-like projection on their trunk, and a more arched back compared to African elephants.", + "Asian elephants have smaller ears rounded at the top and a single dome-shaped head compared to African elephants' larger ears." + ], + "African bush elephant": [ + "African bush elephants are recognized by their large size long curved tusks big ears and wrinkled gray skin.", + "African bush elephants have large ears shaped like the African continent and long curved tusks.", + "The African bush elephant is a massive gray animal with large ears, a long trunk, and prominent tusks.", + "African bush elephants are large gray animals with long trunks big ears and tusks unlike most other objects or animals." + ], + "red panda": [ + "A red panda is a small furry mammal with reddish brown fur a long tail and white face markings.", + "A red panda has reddish-brown fur, a long bushy tail, white face markings, and is smaller than a giant panda.", + "Red pandas have reddish-brown fur, bushy ringed tails, white face markings, and a bear-like body shape with short legs.", + "Red pandas are small, reddish-brown mammals with bushy tails and white facial markings, unlike most other animals or objects." + ], + "giant panda": [ + "A giant panda is a large black and white bear with round ears and distinctive black patches around its eyes.", + "Giant pandas have distinctive black and white fur with round faces and large black patches around their eyes and ears.", + "The giant panda has distinctive black and white fur patches around its eyes ears and body unlike any other animal.", + "Giant pandas are recognized by their black and white fur, black eye patches, round face, and large body with a black and white pattern." + ], + "snoek fish": [ + "The snoek fish has a long slender body with a distinct protruding lower jaw and sharp teeth.", + "Snoek fish are long slender silver fish with pointed snouts unlike rounder bulkier fish or non-fish objects.", + "Snoek fish are long slender silver fish with a pointed snout and a distinct dark stripe along their back.", + "The snoek fish is a long slender silver fish with a pointed snout and dark stripes along its back." + ], + "eel": [ + "Eels are long, slender, and snake-like with smooth skin, unlike most fish which have scales and more varied body shapes.", + "Eels have long slender snake-like bodies smooth skin and lack pelvic fins distinguishing them from fish and other aquatic creatures.", + "Eels are long slender snake-like fish with smooth slippery skin and no visible scales or fins.", + "An eel is a long, slender, snake-like fish with smooth, slippery skin and a fin running along its back and tail." + ], + "silver salmon": [ + "Silver salmon have sleek silver bodies with black spots and a slightly forked tail unlike most other fish or objects.", + "Silver salmon have a distinct bright silver body with small black spots on their back and tail.", + "Silver salmon have a metallic silver body with black spots on their back and tail and a slightly forked tail fin.", + "Silver salmon are shiny, silvery fish with black spots on their back and tail, often found in freshwater and coastal waters." + ], + "rock beauty fish": [ + "Rock beauty fish have bright yellow bodies with dark blue edges and a black spot near the tail.", + "The rock beauty fish has bright yellow and black patterns with a round body unlike most other fish or objects.", + "The rock beauty fish has a bright yellow body with a dark black patch and blue accents around its face and tail.", + "The rock beauty fish has a striking bright yellow body with a bold black band from its dorsal fin to its belly." + ], + "clownfish": [ + "Clownfish are small, brightly colored orange fish with white stripes and often found near sea anemones.", + "Clownfish are small, brightly colored orange fish with white stripes, often found near sea anemones, unlike most other fish.", + "Clownfish are small, bright orange fish with white stripes and black outlines often seen near sea anemones.", + "Clownfish have bright orange bodies with white stripes outlined in black and often live among sea anemones." + ], + "sturgeon": [ + "Sturgeons are long slender fish with bony plates, pointed snouts, and whisker-like barbels near their mouths.", + "Sturgeons have long slender bodies, bony plates instead of scales, and elongated snouts with whisker-like barbels.", + "Sturgeons have long pointed snouts and rows of bony plates called scutes along their bodies.", + "Sturgeons have long slender bodies with bony plates and pointed snouts unlike most fish which are smoother and more rounded." + ], + "gar fish": [ + "Gar fish have long slender bodies needle-like snouts and diamond-shaped scales unlike most other fish which are shorter and rounder.", + "Gar fish are long slender fish with needle-like snouts sharp teeth and diamond-shaped scales often green or brown.", + "Gar fish have long slender bodies pointed snouts and diamond-shaped scales making them easily recognizable.", + "The gar fish is a long slender fish with sharp teeth and armor-like scales resembling a prehistoric reptile." + ], + "lionfish": [ + "Lionfish have long, flowing, venomous spines that fan out distinctively from their bodies unlike any other creature.", + "Lionfish have striking red and white striped bodies with long, venomous spines and fan-like pectoral fins.", + "Lionfish have striking striped bodies with long venomous spines unlike most fish which are smoother and lack such dramatic patterns.", + "Lionfish have striped red, white, and brown bodies with long, venomous spines and fan-like pectoral fins." + ], + "pufferfish": [ + "Pufferfish are round, spiky fish that inflate into a ball shape when threatened, with small fins and large eyes.", + "Pufferfish are round with spiky skin, small fins, and can inflate into a ball shape when threatened.", + "Pufferfish are round with spiky skin and can inflate into a ball shape when threatened.", + "Pufferfish have round, spiky bodies that inflate when threatened, unlike most fish which stay streamlined and smooth." + ], + "abacus": [ + "An abacus is a rectangular frame with rows of beads on rods used for counting and calculations.", + "An abacus is a rectangular frame with rows of beads sliding on rods used for counting and calculations.", + "An abacus has rows of beads on rods in a frame, unlike calculators or counting tools which have buttons or digital displays.", + "An abacus has rows of beads on rods in a frame used for counting unlike any other object." + ], + "abaya": [ + "An abaya is a long loose flowing black robe worn by some women often paired with a headscarf.", + "The abaya is a long flowing black robe often with intricate embroidery or embellishments worn as traditional Islamic clothing.", + "An abaya is a long loose flowing black robe worn by some women often with intricate embroidery or simple designs.", + "An abaya is a long, loose black robe worn over clothes, differing from other garments by its simplicity and full-body coverage." + ], + "academic gown": [ + "An academic gown is a long flowing robe typically black with wide sleeves worn during graduation ceremonies by scholars and students.", + "Academic gowns are long flowing robes with wide sleeves, often black and worn over clothes, unlike regular coats or dresses.", + "Academic gowns are long flowing robes with wide sleeves often black or dark colored and worn with a square academic cap.", + "Academic gowns are long flowing robes with wide sleeves often featuring distinctive colors or hoods indicating academic achievements." + ], + "accordion": [ + "An accordion is a boxy musical instrument with a folded central bellows and buttons or piano keys on both sides.", + "An accordion is a boxy musical instrument with a folding bellows and buttons or keys on both sides.", + "An accordion has a boxy shape with pleated bellows and buttons or keys, unlike most instruments which are solid and smooth.", + "An accordion has a boxy shape with a pleated bellows, piano keys or buttons, and straps for holding it while playing." + ], + "acoustic guitar": [ + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long neck.", + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long narrow neck.", + "An acoustic guitar has a hollow wooden body with a sound hole, a long neck with frets, and six strings stretched from head to base.", + "An acoustic guitar has a hollow wooden body with a sound hole and a long neck with strings stretched from head to body." + ], + "aircraft carrier": [ + "An aircraft carrier is a massive warship with a long flat deck for launching and recovering military aircraft.", + "Aircraft carriers have a long flat deck with a distinctive runway for launching and landing military aircraft.", + "Aircraft carriers are massive flat-decked ships with runways, distinct from other vessels by their size and flight operations area.", + "Aircraft carriers are massive flat-topped ships with a long runway and often have many parked planes on their deck." + ], + "airliner": [ + "Airliners are recognized by their long tubular fuselage, high-mounted swept wings, and multiple jet engines under the wings.", + "An airliner is a large commercial jet with a long cylindrical body, swept wings, and multiple engines under the wings.", + "Airliners are large elongated aircraft with multiple windows, swept wings, and jet engines, unlike smaller or propeller-driven planes.", + "Airliners are large elongated aircraft with swept wings multiple windows underbelly engines and a pointed nose for passenger transport." + ], + "airship": [ + "An airship is a large elongated balloon with a gondola underneath and often has propellers or fins for steering.", + "An airship is a large elongated balloon with a cabin underneath, resembling a blimp or dirigible floating in the sky.", + "An airship is a large elongated balloon with a gondola, distinct from airplanes by its lack of wings and slower movement.", + "An airship is recognized by its large elongated gas-filled balloon with a gondola underneath and often has propellers or fins." + ], + "altar": [ + "An altar typically has a flat surface for offerings and may include religious symbols unlike other furniture or decorative objects.", + "An altar is a flat elevated structure often made of stone or wood used for religious ceremonies and offerings.", + "An altar typically has a flat elevated surface often decorated with religious symbols candles or offerings for worship ceremonies.", + "An altar typically has a flat raised surface often decorated with religious symbols candles or offerings standing out in sacred settings." + ], + "ambulance": [ + "Ambulances are large white vehicles with red crosses flashing lights and sirens unlike regular cars or trucks.", + "Ambulances are typically white or yellow with red crosses flashing lights and bold lettering making them stand out.", + "An ambulance is a large white vehicle with bold red crosses and flashing lights used for emergency medical transport.", + "Ambulances are recognized by their white and red colors, flashing lights, sirens, and prominent medical cross or star symbols." + ], + "amphibious vehicle": [ + "Amphibious vehicles have a boat-like hull and wheels or tracks allowing both land and water travel unlike regular cars or boats.", + "Amphibious vehicles have boat-like hulls, wheels or tracks, and often a flat front for water and land movement.", + "Amphibious vehicles have both wheels for land and a boat-like hull for water in one compact design.", + "Amphibious vehicles have both wheels for land and boat-like hulls for water with visible propellers or water jets." + ], + "analog clock": [ + "An analog clock has hour and minute hands that rotate around a fixed dial to show time.", + "An analog clock has a round face with numbers and moving hour minute and second hands to show time.", + "Analog clocks have a round face with numbers and moving hour and minute hands to show time.", + "An analog clock is a round face with numbers and moving hour, minute, and second hands to show time." + ], + "apiary": [ + "An apiary is a collection of beehives, often wooden boxes stacked together, unlike single natural beehives or unrelated objects like buildings or trees.", + "An apiary is a collection of beehives often seen as wooden boxes stacked together in a field or garden.", + "An apiary typically consists of stacked wooden boxes with small entrance holes where bees enter and exit frequently.", + "Apiaries are recognized by wooden beehive boxes stacked in rows, often with bees flying around and nearby beekeeping equipment." + ], + "apron": [ + "An apron is a cloth garment tied at the waist covering the front of the body often used for cooking or cleaning.", + "An apron is a protective garment covering the front of the body typically tied around the waist and often made of cloth or leather.", + "An apron is a piece of cloth worn over clothes to protect them, typically tied around the waist and covering the front.", + "An apron is recognized by its front-facing fabric panel tied around the waist and neck, often covering the torso and legs." + ], + "trash can": [ + "A trash can is typically a metal or plastic container with an open top and sometimes a lid for holding waste.", + "Trash cans are typically cylindrical or rectangular with an open top and often made of metal or plastic for holding waste.", + "A trash can is typically a container with an open top, often made of metal or plastic, and may have a lid or pedal.", + "A trash can is typically a cylindrical or rectangular container with an open top for discarding waste, often made of metal or plastic." + ], + "assault rifle": [ + "Assault rifles are long guns with a pistol grip, detachable magazine, and often a barrel shroud or muzzle device.", + "Assault rifles have a long barrel, pistol grip, detachable magazine, and often a shoulder stock for stability and control.", + "Assault rifles are long with a barrel, stock, and magazine, unlike shorter handguns or non-gun objects lacking these features.", + "An assault rifle is a long black firearm with a magazine grip and barrel designed for rapid fire and military use." + ], + "backpack": [ + "Backpacks have straps, a main storage compartment, and often pockets, distinguishing them from other bags and objects.", + "Backpacks have two adjustable shoulder straps designed to be worn on the back for carrying items.", + "A backpack is a sturdy fabric bag with shoulder straps, often rectangular, used to carry items on one's back.", + "Backpacks have straps and a pouch for carrying items while other objects lack these specific features for storage and transport." + ], + "bakery": [ + "A bakery typically features bread loaves pastries cakes ovens counters and display cases with baked goods arranged neatly.", + "Baked goods like bread and pastries have golden-brown crusts, soft interiors, and flour dusting on surfaces.", + "Bakeries typically display multiple baked goods like bread and pastries in a shop setting with counters and shelves unlike single food items.", + "A bakery can be identified by its display of bread loaves pastries cakes and often a counter with glass cases." + ], + "balance beam": [ + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances.", + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances and routines.", + "A balance beam is a long narrow rectangular object while similar items like benches or logs are often thicker or irregularly shaped.", + "A long narrow rectangular beam elevated on supports used in gymnastics for balance and acrobatic performances." + ], + "balloon": [ + "A balloon is a colorful, inflatable, rubber or latex object often round or oval, floating when filled with air or gas.", + "Balloons are typically round, smooth, and brightly colored, often filled with air or gas, making them lighter and more flexible than most objects.", + "Balloons are recognized by their smooth, rounded, inflatable shapes and bright, often shiny colors floating in air or tied with strings.", + "Balloons are typically round, smooth, and brightly colored with a shiny or matte surface, often inflated and tied with a string." + ], + "ballpoint pen": [ + "A ballpoint pen is a slender cylindrical object with a pointed tip and a cap or click mechanism for writing.", + "A ballpoint pen is slim, cylindrical, and has a pointed tip, unlike bulkier or differently shaped objects like markers or pencils.", + "A ballpoint pen is a slim cylindrical object with a pointed tip and often has a clip near the top.", + "A ballpoint pen has a slim cylindrical shape with a tapered tip and often a clip near the top for easy attachment." + ], + "Band-Aid": [ + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors like red or blue.", + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors.", + "Band-Aids are small, flat, rectangular adhesive strips with a central pad, often flesh-colored or patterned, unlike bulkier medical items or plain tapes.", + "A Band-Aid is a small rectangular strip with a sticky adhesive backing and a soft padded center for covering wounds." + ], + "banjo": [ + "A banjo is a stringed instrument with a round body, long neck, and typically four or five strings.", + "A banjo has a round body with a stretched skin head and a long neck with strings and metal frets.", + "The banjo has a distinctive circular body with a tightly stretched membrane and a long fretted neck.", + "A banjo has a round body with a stretched membrane and a long neck with strings, unlike guitars or ukuleles." + ], + "baluster / handrail": [ + "Balusters and handrails are long vertical or horizontal bars often made of wood or metal supporting or edging stairs and railings.", + "Balusters and handrails are long thin vertical or horizontal rods often found in rows supporting or alongside staircases and railings.", + "A baluster or handrail is a vertical or horizontal support pillar or rail often found on staircases or balconies.", + "Balusters and handrails are long, slender, often vertical or slightly curved supports typically found alongside stairs or balconies." + ], + "barbell": [ + "A barbell is a long metal bar with heavy round weights attached at both ends used for weightlifting.", + "A barbell is a long metal bar with heavy round weights on both ends used for weightlifting exercises.", + "Barbells have a long metal bar with weights on both ends unlike other objects which lack this specific symmetrical weighted design.", + "A barbell has a long metal bar with symmetrical weighted discs on both ends used for weightlifting." + ], + "barber chair": [ + "A barber chair has a tall back, adjustable height, footrest, often leather upholstery, and sometimes a headrest or armrests.", + "A barber chair has a tall backrest, adjustable height, footrest, often leather upholstery, and sometimes a headrest or reclining feature.", + "A barber chair is a tall, padded seat with a high back, armrests, and often a footrest and adjustable height mechanism.", + "A barber chair has a tall back, adjustable height, footrest, and often a reclining feature, unlike regular chairs or furniture." + ], + "barbershop": [ + "A barbershop typically has barber chairs, mirrors, and hair cutting tools, unlike other places which lack these specific grooming features.", + "Barbershops are recognized by barber chairs, striped poles, mirrors, scissors, combs, and customers getting haircuts.", + "A barbershop can be identified by its striped pole, chairs with headrests, mirrors, and shelves with hair products.", + "A barbershop typically features barber chairs, mirrors, scissors, razors, and hair products in a clean, organized setting." + ], + "barn": [ + "Barns are large rectangular buildings with sloped roofs often made of wood or metal unlike smaller or differently shaped structures.", + "Barns are large rectangular structures with high pitched roofs often made of wood or metal and found in rural areas.", + "A barn is a large, sturdy, rectangular farm building with a high-pitched roof, often made of wood or metal, typically red or brown.", + "A barn is uniquely identified by its large, sloped roof and prominent doors designed for storing farm equipment and housing livestock." + ], + "barometer": [ + "A barometer is a small round or rectangular device with a dial and needle to measure atmospheric pressure.", + "A barometer typically has a round dial with measurement markings and a glass cover often mounted on a wooden or metal base.", + "A barometer typically has a round dial with pressure markings and a needle, unlike similar objects which lack these specific features.", + "A barometer has a round dial with pressure markings and a needle, often mounted on a wooden or metal base." + ], + "barrel": [ + "Barrels are recognized by their cylindrical shape, rounded sides, and often wooden or metal construction with horizontal bands.", + "A barrel is a large cylindrical container with rounded sides, typically made of wood or metal, used for storing liquids or goods.", + "A barrel is a cylindrical container with a rounded belly, often made of wood or metal, and typically wider in the middle than at the ends.", + "Barrels are cylindrical with rounded sides and often have metal bands while similar objects may be differently shaped or lack bands." + ], + "wheelbarrow": [ + "A wheelbarrow is a small cart with one wheel at the front and two handles at the back for carrying loads.", + "A wheelbarrow has a single wheel at the front, a deep tray for carrying loads, and two handles at the back for pushing.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying loads.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying materials." + ], + "baseball": [ + "A baseball is a small white round object with red stitching typically seen in sports settings or with gloves and bats.", + "A baseball is a small white sphere with red stitching forming two curved lines around its surface.", + "The unique visual cue for baseball is the red stitching pattern on the white leather surface of the ball.", + "Baseballs are white with red stitching, small and round, unlike bats which are long or gloves which are larger and padded." + ], + "basketball": [ + "A basketball is a large orange sphere with black lines forming a symmetrical pattern around its surface.", + "A basketball is a large orange sphere with black lines and a textured surface used in the sport of basketball.", + "Basketballs are orange with black lines and a bumpy texture unlike smoother round objects like soccer balls or volleyballs.", + "A basketball is recognized by its orange color, black lines forming a symmetrical pattern, and spherical shape with a textured surface." + ], + "bassinet": [ + "A bassinet is a small, high-sided baby bed with short legs or a stand, often hooded, unlike larger cribs or cradles.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for newborns to sleep in.", + "A bassinet has a small, high-walled, often hooded design for infants, typically on a stand or with rocking features.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for infants and typically on a stand or wheels." + ], + "bassoon": [ + "A bassoon is a long wooden wind instrument with a curved metal tube and many keys along its body.", + "A bassoon is a long wooden wind instrument with a curved metal tube and double reed at the top.", + "The bassoon has a long wooden body with a curved metal tube called a bocal at the top.", + "The bassoon is a long wooden wind instrument with a curved metal tube and multiple keys, unlike simpler or differently shaped objects." + ], + "swimming cap": [ + "A swimming cap is a smooth, tight-fitting, often brightly colored or shiny head covering made of latex, silicone, or lycra.", + "A swimming cap is a tight, smooth, often colorful silicone or latex head covering that reduces drag in water.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, covering the head snugly with a rubbery or silicone texture.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, unlike looser or textured headwear like hats or helmets." + ], + "bath towel": [ + "Bath towels are typically rectangular, made of absorbent fabric, and often have textured surfaces unlike other objects which vary widely in shape and material.", + "A bath towel is a large rectangular piece of soft absorbent fabric often with colorful patterns or solid pastel colors.", + "A bath towel is typically rectangular, made of soft absorbent fabric, often with a textured surface and comes in various colors or patterns.", + "Bath towels are rectangular with a soft textured surface often featuring fringed edges and come in various solid or patterned colors." + ], + "bathtub": [ + "A bathtub is a large open container with smooth curved sides designed for holding water unlike sinks or buckets which are smaller.", + "A bathtub is a large rectangular or oval container with smooth sides designed to hold water for bathing.", + "A bathtub is recognized by its large open rectangular or oval basin designed for holding water and fitting a human body.", + "A bathtub is a large rectangular or oval container with smooth curved sides designed to hold water for bathing." + ], + "station wagon": [ + "Station wagons are longer than sedans with a extended rear roof and more cargo space but shorter than minivans.", + "Station wagons have a long roof extending to the rear with a spacious cargo area and typically four doors like sedans.", + "A station wagon is a long car with a flat roof and a rear hatchback extending from the trunk to the roofline.", + "A station wagon is a long car with a flat roof and a large rear cargo area behind the back seats." + ], + "lighthouse": [ + "A lighthouse is a tall tower with a bright light on top, often near water, unlike most other structures.", + "A lighthouse is a tall tower with a bright light on top often found near coastlines to guide ships.", + "A lighthouse is a tall tower with a bright light on top, often striped or white, near water to guide ships.", + "A lighthouse has a tall tower with a bright rotating light at the top to guide ships at night." + ], + "beaker": [ + "A beaker is a clear cylindrical glass or plastic container with a flat bottom and a small spout for pouring.", + "A beaker is a cylindrical glass container with a flat bottom and a small spout, unlike cups or bowls which lack spouts.", + "A beaker is a tall cylindrical glass container with a flat base and a small spout used in laboratories for holding liquids.", + "A beaker has a cylindrical shape with a flat bottom and a small spout for pouring liquids." + ], + "military hat (bearskin or shako)": [ + "Military hats like bearskins and shakos are tall rigid and often furred or plumed unlike regular hats which are shorter and softer.", + "Military hats like bearskins or shakos are tall, rigid, and often have plumes, badges, or distinctive shapes setting them apart from regular headwear.", + "Military hats like bearskins or shakos are tall rigid often furred or plumed with a distinct formal uniformed appearance.", + "A military hat like a bearskin or shako is tall, rigid, and ornate, often with plumes or badges, standing out among other headwear." + ], + "beer bottle": [ + "A beer bottle is a tall glass container with a narrow neck, often brown or green, labeled and sometimes capped with metal or cork.", + "Beer bottles are typically tall cylindrical glass containers with narrow necks and labels, often brown or green, unlike wider or differently shaped objects.", + "Beer bottles are recognized by their elongated glass shape with a narrow neck and often have labels or logos.", + "A beer bottle is typically tall with a narrow neck, made of glass or aluminum, often labeled and colored green or brown." + ], + "beer glass": [ + "A beer glass typically has a tall cylindrical shape with a handle and is often filled with golden bubbly liquid.", + "A beer glass is typically tall, clear, cylindrical or tapered, with a handle or stem, often frosted or filled with golden liquid.", + "A beer glass is a tall transparent vessel with a handle or stem, often cylindrical or tapered, used for serving beer.", + "A beer glass is typically tall and cylindrical with a handle or stem often made of clear glass showing golden liquid inside." + ], + "bell tower": [ + "A bell tower is a tall structure with open sides or windows, housing bells, often part of a church or municipal building.", + "A bell tower is a tall structure with open sides and a peaked roof, often holding bells, unlike solid buildings or shorter towers.", + "A bell tower is tall and narrow with a peaked roof often featuring arches or openings for bells to be visible or heard.", + "A bell tower is tall and narrow with a peaked roof and open arches or windows housing bells for ringing." + ], + "baby bib": [ + "A baby bib is a small cloth or plastic item worn around a baby's neck to catch spills and food during feeding.", + "A baby bib is a small piece of fabric or plastic worn around a baby's neck to catch spills and drool.", + "Baby bibs are small cloth or plastic garments with fasteners designed to catch spills, unlike larger clothing or non-wearable items.", + "Baby bibs are small cloth or plastic coverings tied around a baby's neck to catch spills during feeding." + ], + "tandem bicycle": [ + "A tandem bicycle has two seats two sets of pedals and a longer frame than a regular bicycle.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame than a regular bicycle for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a long frame with two wheels, designed for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame compared to single-rider bikes or other vehicles." + ], + "bikini": [ + "A bikini is a two-piece swimsuit with minimal fabric, while other objects vary widely in shape, size, and material.", + "A bikini is a small two-piece swimsuit typically made of colorful fabric with triangular or rectangular top and bottom parts.", + "Bikinis are small two-piece swimsuits with distinct shapes and bright colors often worn at beaches or pools.", + "A bikini is a two-piece swimsuit with a top covering the chest and bottom covering the hips, often brightly colored or patterned." + ], + "ring binder": [ + "A ring binder has a rectangular shape with two or three metal rings inside that open and close to hold papers.", + "Ring binders have a distinctive rectangular shape with metal rings inside and a spine that opens and closes for holding papers securely.", + "A ring binder is a sturdy folder with metal rings inside that snap open and shut to hold loose papers securely.", + "A ring binder has metal rings and a spine to hold papers, unlike other objects which lack these specific binding features." + ], + "binoculars": [ + "Binoculars are handheld twin telescopes with a central hinge used for magnifying distant objects clearly with both eyes.", + "Binoculars have two parallel tubes with lenses for each eye unlike single-lens devices or non-optical objects.", + "Binoculars have two parallel tubes with lenses, a central hinge, and often a neck strap for easy carrying and use.", + "Binoculars are identified by two parallel tubes with lenses at each end and often have a central hinge for adjustment." + ], + "birdhouse": [ + "A birdhouse is a small enclosed structure with an entrance hole designed for birds to nest, unlike other objects.", + "A birdhouse is a small man-made structure with an entrance hole designed for birds to nest, often mounted on poles or trees.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to shelter birds.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to attract nesting birds." + ], + "boathouse": [ + "A boathouse is a small building by water with a roof and open sides to store boats and docking equipment.", + "A boathouse is a small building by water with large doors to store boats unlike regular houses or sheds.", + "A boathouse is a small building by water with large doors for storing boats and often has a dock or deck.", + "A boathouse is uniquely characterized by its structure built over water with direct access for boats underneath or inside." + ], + "bobsleigh": [ + "A bobsleigh is a long narrow streamlined sled with a rounded front and low sides used for racing on ice.", + "A bobsleigh is a long, narrow, aerodynamic sled with a rounded front and low seating area for multiple riders.", + "A bobsleigh has a long narrow aerodynamic sled with two pairs of runners and a steering mechanism for high-speed ice tracks.", + "A bobsleigh is recognized by its long narrow aerodynamic sled with two pairs of runners and a steering mechanism for icy tracks." + ], + "bolo tie": [ + "A bolo tie is a decorative cord with metal tips and a sliding clasp, unlike neckties or jewelry which lack its distinctive adjustable design.", + "A bolo tie is a decorative cord with metal tips and a sliding clasp, often worn like a necktie with Western-style clothing.", + "A bolo tie has a decorative metal clasp and braided leather cords with sliding tips worn as a neckpiece.", + "A bolo tie has a decorative metal clasp and a braided leather cord with metal tips worn like a necktie." + ], + "poke bonnet": [ + "A poke bonnet is a large, stiff, and deep bonnet with a wide brim that frames the face and extends forward.", + "A poke bonnet has a large stiff brim projecting forward and a deep crown often tied under the chin with ribbons.", + "A poke bonnet has a stiff, projecting brim framing the face, unlike other hats with smaller or flexible brims.", + "A poke bonnet has a large stiff brim projecting forward to shade the face often with ribbons or decorative trim." + ], + "bookcase": [ + "Bookcases are recognized by their tall rectangular shape with multiple horizontal shelves for storing books and other items.", + "Bookcases are tall rectangular furniture with multiple horizontal shelves designed to store books, unlike cabinets or dressers which have doors or drawers.", + "A bookcase is a tall wooden or metal shelf with multiple horizontal levels designed to hold books and other items.", + "A bookcase is a tall rectangular furniture piece with multiple horizontal shelves designed to hold books and other items." + ], + "bookstore": [ + "Bookstores have shelves filled with books, often arranged neatly in rows, distinguishing them from other retail spaces with varied merchandise displays.", + "A bookstore typically has shelves filled with books, a checkout counter, and reading areas with chairs or tables.", + "Bookstores feature rows of shelves packed with books, often with reading areas and checkout counters, distinct from libraries by selling items.", + "A bookstore typically has shelves filled with books, reading areas, and a cozy atmosphere with customers browsing or purchasing." + ], + "bottle cap": [ + "A bottle cap is a small round or cylindrical object typically made of metal or plastic that seals bottle openings.", + "A bottle cap is small round and often has ridges or a flat top with a threaded or snap-on design.", + "Bottle caps have a small round shape with ridges or grooves on the side for grip and a flat top.", + "Bottle caps are small, round, and flat with ridged edges, often made of metal or plastic, unlike larger or differently shaped objects." + ], + "hunting bow": [ + "A hunting bow is a curved or straight weapon with a taut string, used to shoot arrows, typically made of wood or composite materials.", + "A hunting bow has a curved shape with a string and limbs, distinct from straight tools or weapons like arrows or rifles.", + "A hunting bow has a curved shape with a string stretched between two ends and often includes arrows and a grip.", + "A hunting bow has a curved or straight rigid frame with a taut string and often includes arrow rests and camouflage patterns." + ], + "bow tie": [ + "A bow tie is a small symmetrical fabric knot worn at the neck unlike larger or asymmetrical neckwear like scarves or neckties.", + "A bow tie is a small symmetrical fabric knot with two loops worn around the neck for formal occasions.", + "Bow ties have a symmetrical, narrow fabric knot with two distinctive triangular or butterfly-shaped ends.", + "A bow tie is a small symmetrical fabric knot with two loops worn at the neck, distinct from neckties by its shape." + ], + "brass memorial plaque": [ + "A brass memorial plaque is flat, rectangular, often engraved with text, has a shiny golden-brown finish, and is mounted on walls or surfaces.", + "A brass memorial plaque is a flat rectangular metal plate with engraved text often mounted on walls or stone surfaces.", + "Brass memorial plaques are flat rectangular metal plates with engraved text often mounted on walls or stone for commemorative purposes.", + "Brass memorial plaques are flat, rectangular, often engraved with text or images, and have a shiny golden-brown metallic finish." + ], + "bra": [ + "A bra is a soft undergarment with cups straps and hooks designed to support and cover the breasts.", + "A bra typically has straps cups and clasps made of soft fabric unlike most other clothing or objects in shape and structure.", + "Bras have distinctive cup shapes, straps, hooks, lace or fabric textures, and are often symmetrical with smooth curves and padding.", + "A bra has two rounded cups connected by a center piece and straps designed to support the breasts." + ], + "breakwater": [ + "A breakwater is a long, sturdy structure made of rocks or concrete, extending into water to protect shores from waves.", + "A breakwater is a long, sturdy structure built offshore, typically made of rocks or concrete, to protect the coast from waves.", + "Breakwaters are long narrow structures made of rocks or concrete extending into water to protect shorelines from waves.", + "A breakwater looks like a long, sturdy wall or pile of rocks extending into the water to protect the shore." + ], + "breastplate": [ + "A breastplate is a piece of armor that covers the torso, typically made of metal or leather, often with decorative or protective details.", + "A breastplate is a curved metal armor piece covering the torso, often shiny with straps or buckles for securing it.", + "A breastplate is a curved metal armor piece covering the torso, unlike other objects which vary in shape, material, and purpose.", + "A breastplate is recognized by its curved metal shape covering the torso often with straps and decorative engravings." + ], + "broom": [ + "A broom has a long handle with dense bristles at one end used for sweeping floors.", + "A broom has a long handle with dense bristles or fibers at one end used for sweeping.", + "A broom has a long handle with dense bristles clustered at one end for sweeping.", + "A broom typically has a long handle with bristles at one end used for sweeping floors and cleaning debris." + ], + "bucket": [ + "A bucket is a round or cylindrical container with an open top and a handle, usually made of metal or plastic.", + "A bucket is recognized by its open top, cylindrical or tapered shape, and sturdy handle for carrying liquids or materials.", + "A bucket is typically a cylindrical or tapered container with an open top and a handle on the side.", + "Buckets are typically cylindrical with a handle, open top, and sturdy material, unlike similar objects which may vary in shape and function." + ], + "buckle": [ + "Buckles have a small, rigid frame with a movable pin or clasp, often metallic and decorative, used to fasten straps or belts.", + "A buckle is a small metal or plastic clasp with a frame and prong used to fasten straps or belts securely.", + "Look for a small metal or plastic clasp with a frame and prong used to fasten straps or belts together.", + "Buckles are small metal or plastic fasteners with a frame, prong, and often decorative designs unlike larger or simpler objects." + ], + "bulletproof vest": [ + "A bulletproof vest is a flat, often padded garment with straps and panels, unlike rigid or bulky protective gear.", + "Bulletproof vests are recognized by their rectangular padded panels, straps, and often a tactical or military-style appearance.", + "Bulletproof vests have a distinctive layered panel design often with visible stitching or straps for adjustable fit.", + "A bulletproof vest is a sleeveless padded garment with thick panels designed to protect the torso from gunfire and sharp objects." + ], + "high-speed train": [ + "High-speed trains are long, sleek, and aerodynamic with smooth surfaces and minimal protruding parts compared to other vehicles or objects.", + "High-speed trains have a long streamlined aerodynamic body with a pointed nose to reduce air resistance at high speeds.", + "High-speed trains have sleek aerodynamic designs long bodies and often bright colors with distinct branding on the front.", + "A high-speed train is a sleek, elongated vehicle with a pointed front, smooth metallic body, and often multiple connected carriages." + ], + "butcher shop": [ + "A butcher shop can be identified by raw meat cuts, display counters, hanging carcasses, and tools like cleavers and saws.", + "A butcher shop typically displays raw meat cuts and tools, unlike other stores which show packaged goods or different products.", + "Butcher shops feature raw meat displays, cutting tools, hanging carcasses, and white-coated workers behind counters.", + "The presence of raw meat cuts and cleavers displayed together is unique to a butcher shop." + ], + "taxicab": [ + "Taxicabs are typically yellow or black cars with rooftop signs and sometimes checkered patterns unlike regular cars.", + "A taxicab is typically a yellow or black car with a roof sign, clear markings, and sometimes a checkered pattern.", + "A taxicab is a yellow or black car with a roof sign, often marked with company logos and numbers.", + "A taxicab is recognized by its boxy shape, bright colors, rooftop taxi sign, and often has company logos or numbers." + ], + "cauldron": [ + "A cauldron is a large metal pot with a rounded bottom and handles, often used for boiling or cooking over an open fire.", + "A cauldron is a large metal pot with a rounded shape and handles, often used for boiling or cooking over a fire.", + "A cauldron is a large deep metal pot with a rounded bottom and a handle often used for boiling or cooking over fire.", + "A cauldron is recognized by its large round pot shape with a heavy base and handles often used for boiling or cooking." + ], + "candle": [ + "A candle is recognized by its slender wax body with a wick on top, often burning with a small flame.", + "A candle has a burning wick with a small flame that emits light and melts wax around it.", + "A candle is a slender wax stick with a wick in the center often burning with a small flame at the top.", + "Candles are slender wax sticks with a wick, often tapered or cylindrical, unlike broader or differently shaped objects like lamps or lanterns." + ], + "cannon": [ + "A cannon is a large metal tube on wheels designed to fire heavy projectiles over long distances.", + "Cannons are large metal tubes with a wide barrel opening, often mounted on wheels, unlike smaller or differently shaped weapons and objects.", + "A cannon is a large metal tube on wheels with a wide barrel opening used for firing heavy projectiles.", + "A cannon has a long metal barrel, large cylindrical body, and wheels, often with a distinctive shape for launching projectiles." + ], + "canoe": [ + "A canoe is a narrow lightweight boat with pointed ends, often open on top and propelled by paddles.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often propelled by paddles.", + "A canoe has a long narrow open-top boat shape with pointed ends and no keel.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often paddled by one or more people." + ], + "can opener": [ + "A can opener is a small handheld or electric tool with a rotating blade and handle used to cut open metal cans.", + "A can opener has a sharp rotating wheel and a lever handle designed specifically to cut and lift metal can lids.", + "A can opener typically has a metal cutting wheel and a handle, unlike most kitchen tools which are solid or smooth.", + "A can opener has a rotating cutting wheel, a handle for turning, and a serrated edge to grip and open metal cans." + ], + "cardigan": [ + "A cardigan is a knitted sweater with an open front, usually buttoned or zipped, resembling a jacket but made of soft fabric.", + "A cardigan is a knitted sweater with an open front, usually with buttons or a zipper, and often has long sleeves.", + "A cardigan is a knitted sweater with an open front and buttons or a zipper unlike pullovers which are closed and lack fasteners.", + "A cardigan has a V-neckline with an open front fastened by buttons or a zipper unlike most other garments." + ], + "car mirror": [ + "A car mirror is a small reflective surface attached to the side or front of a car often rectangular or rounded with a sleek frame.", + "A car mirror has a reflective surface mounted on a thin adjustable arm attached to the vehicle's side or interior.", + "A car mirror is a small reflective surface attached to vehicles for visibility, often rectangular or rounded with a sleek metallic frame.", + "Car mirrors are typically small, reflective, and mounted on vehicles, unlike other objects which vary widely in size, shape, and function." + ], + "carousel": [ + "A carousel is a large circular platform with rotating seats often shaped like horses or other animals for amusement rides.", + "A carousel has rotating platforms with seats like horses or benches often found in amusement parks and decorated brightly.", + "A carousel is a large circular ride with rotating platforms, decorative horses or animals, and bright colorful lights.", + "A carousel is a large rotating platform with seats like animals or chairs unlike static objects or single moving vehicles." + ], + "tool kit": [ + "Tool kits typically include multiple small organized items like screws and wrenches unlike single larger objects such as hammers or saws.", + "A tool kit typically includes various handheld tools like wrenches, screwdrivers, and pliers, often stored in a case or box.", + "Tool kits are recognized by their organized collection of varied handheld tools often stored in cases or boxes for practical use.", + "A tool kit typically appears as a compact case or pouch containing various small hand tools like screwdrivers, wrenches, and pliers." + ], + "cardboard box / carton": [ + "Cardboard boxes are flat, rectangular, and made of dull brown material, unlike other objects which vary in shape, color, and texture.", + "A cardboard box is a rigid rectangular container made of thick brown paper, often with folds and seams for storage or shipping.", + "Cardboard boxes are rectangular with flat surfaces, uniform edges, and often have printed labels or tape on their sides.", + "Cardboard boxes are rectangular with flat surfaces, often brown or plain colored, and have visible seams or folds on the edges." + ], + "car wheel": [ + "Car wheels are round with a central hub and often have spokes or rims and are made of metal or alloy materials.", + "Car wheels are round with a central hub and spokes or solid design, often made of metal or alloy, unlike most objects.", + "A car wheel is round with a hub in the center and often has spokes or a solid design with a rubber tire around it.", + "A car wheel has a circular rim with evenly spaced holes or spokes around a central hub." + ], + "automated teller machine": [ + "Automated teller machines are typically freestanding rectangular boxes with a screen keypad and card slot unlike most other objects.", + "An automated teller machine is a freestanding rectangular box with a screen, keypad, card slot, and cash dispenser, often branded by a bank.", + "Automated teller machines have a rectangular screen, keypad, card slot, and cash dispenser often in a standalone metal or plastic enclosure.", + "An automated teller machine is a rectangular metal box with a screen, keypad, and card slot, often found in banks or public spaces." + ], + "cassette": [ + "Cassettes are flat rectangular plastic cases with reels inside and labels, unlike CDs or records which are round and shiny.", + "A cassette is a small rectangular plastic case with two exposed reels inside and a central spindle hole.", + "A cassette is a small rectangular plastic case with two reels of magnetic tape visible through a clear window.", + "Cassettes are small rectangular plastic cases with reels inside and a magnetic tape visible through a clear window." + ], + "cassette player": [ + "A cassette player is a rectangular electronic device with buttons, a slot for tapes, and often a handle for portability.", + "A cassette player has a rectangular shape with buttons, a tape compartment, and often a headphone jack or volume control.", + "A cassette player has a rectangular shape with buttons, a tape slot, and often a handle, unlike most other electronic devices.", + "A cassette player typically has rectangular shape with buttons, a tape compartment, and often a speaker or headphone jack." + ], + "castle": [ + "Castles are large stone structures with towers and walls, unlike smaller or simpler buildings without such grand defensive features.", + "A castle is a large fortified stone building with towers, high walls, and often a grand entrance, resembling a medieval fortress.", + "Castles are large stone structures with tall walls towers and often a grand entrance typically found on elevated or strategic locations.", + "Castles are large stone structures with tall walls, towers, and often a central keep, standing out for their historical and fortified appearance." + ], + "catamaran": [ + "A catamaran has two parallel hulls while most other boats have a single hull or different shapes like pontoons or sails.", + "A catamaran has two parallel hulls and a wide deck, making it distinct from single-hulled boats and other watercraft.", + "A catamaran is a twin-hulled boat with a wide flat deck, often used for sailing or cruising on water.", + "A catamaran is recognized by its twin parallel hulls connected by a frame, distinct from single-hull boats." + ], + "CD player": [ + "A CD player is a rectangular device with a sliding tray or top lid buttons and a display screen for track information.", + "A CD player is a rectangular electronic device with a slot or tray for discs, buttons, and often a small display screen.", + "A CD player is a rectangular device with a disc tray, buttons, and a display screen, unlike other objects which vary widely in shape and function.", + "A CD player has a rectangular shape with a disc tray, control buttons, and a display screen for track information." + ], + "cello": [ + "The cello has a large wooden body with a distinctive curved shape and strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body and tall neck played upright between the knees.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow." + ], + "mobile phone": [ + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "Mobile phones are small rectangular devices with screens, buttons or touchscreens, cameras, and often a sleek metallic or plastic body.", + "Mobile phones are flat rectangular devices with screens and buttons or touchscreens, smaller than laptops but larger than credit cards." + ], + "chain": [ + "A chain is a series of interlinked metal rings used for fastening, pulling, or securing objects together.", + "Chains are identified by their interlinked metal loops forming a flexible, linear structure often used for binding or hanging.", + "A chain consists of interlinked metal rings forming a flexible linear series.", + "Chains have interlocking metal loops forming a flexible linear structure often used for binding or hanging objects." + ], + "chain-link fence": [ + "A chain-link fence is a metal grid of interwoven wires forming a diamond pattern used for barriers or enclosures.", + "Chain-link fences have a distinctive diamond-shaped wire mesh pattern formed by interwoven metal wires.", + "Chain-link fences have a grid of interwoven metal wires forming diamond-shaped patterns and are typically silver or black in color.", + "A chain-link fence has a grid of interwoven metal wires forming diamond patterns, unlike solid walls or wooden fences." + ], + "chain mail": [ + "Chain mail has a distinctive interlocking metal ring pattern that creates a flexible, textured, and shiny surface unlike other fabrics or armors.", + "Chain mail is a flexible metal armor made of interlocking small rings forming a mesh-like protective garment.", + "Chain mail consists of interlinked metal rings forming a flexible mesh, unlike solid armor or fabric which are smooth or woven.", + "Chain mail appears as a flexible metal mesh made of interlinked small rings forming a shiny, textured, and often silver or gray surface." + ], + "chainsaw": [ + "A chainsaw has a long body with a toothed blade, a handle, and often an engine or motor at one end.", + "A chainsaw has a long body with a toothed blade and a handle, unlike most tools which are simpler and lack moving parts.", + "A chainsaw has a long toothed blade, a motor or engine, and a handle, often seen cutting wood with visible teeth and exhaust.", + "A chainsaw is a handheld power tool with a toothed rotating blade used for cutting wood, featuring a long body and a motor." + ], + "storage chest": [ + "A storage chest is a large rectangular box with a hinged or removable lid often made of wood or metal.", + "A storage chest typically has a large hinged lid and sturdy construction for holding items inside securely.", + "Storage chests are recognized by their large rectangular shape, hinged lid, sturdy handles, and often wooden or metal construction.", + "Storage chests are typically larger, boxier, and have lids for opening, unlike shelves or cabinets which have doors or open compartments." + ], + "chiffonier": [ + "A chiffonier is a tall narrow chest of drawers often with a mirror and ornate details typically used for storing clothes.", + "A chiffonier is a tall narrow chest of drawers often with a mirror and decorative details typically used in bedrooms.", + "A chiffonier is a tall narrow chest of drawers, often with a mirror, while similar items like dressers are wider and lower.", + "A chiffonier is recognized by its tall narrow design with multiple drawers and often a mirror, resembling a stylish bedroom or dining room cabinet." + ], + "bell or wind chime": [ + "Bells and wind chimes are hanging metal or wooden objects that produce sound when moved by wind or touch.", + "Bell or wind chime features include hanging hollow tubes or bells that produce sound when moved by wind or touch.", + "Look for hanging hollow tubes or objects that sway and make sound when moved by wind or touch.", + "Bells and wind chimes are hollow with hanging parts that produce sound when struck or moved unlike solid static objects." + ], + "china cabinet": [ + "A china cabinet is a tall wooden furniture piece with glass doors and shelves for displaying dishes and decorative items.", + "A china cabinet is a tall wooden furniture piece with glass doors and shelves displaying dishes and decorative items.", + "A china cabinet has glass doors, shelves for displaying dishes, and often ornate woodwork or carvings.", + "A china cabinet has glass doors and shelves to display dishes, unlike other cabinets which are usually solid and used for storage." + ], + "Christmas stocking": [ + "A Christmas stocking is a long, sock-shaped fabric pouch often decorated with festive patterns like snowflakes or Santa.", + "A Christmas stocking is a long decorative sock often with festive patterns, filled with gifts and hung by a fireplace.", + "A Christmas stocking is a festive fabric sock often red and white decorated with holiday patterns and filled with small gifts.", + "A Christmas stocking is uniquely shaped like a long sock often decorated with festive patterns and hung for holiday gifts." + ], + "church": [ + "Churches are large buildings with steeples, stained glass windows, and often a cross, unlike smaller or simpler structures.", + "Churches typically have tall steeples, arched windows, large wooden doors, and cross symbols on their rooftops or facades.", + "Churches often have tall steeples, arched windows, and large wooden doors with religious symbols or crosses on the building.", + "A church is a tall building with a pointed roof, often featuring a cross, stained glass windows, and a large entrance door." + ], + "movie theater": [ + "A movie theater is a large building with a marquee, ticket booth, rows of seats, and a big screen for showing films.", + "A movie theater has a large entrance with marquee lights, posters, ticket counters, and rows of seats facing a big screen.", + "A movie theater is recognized by rows of seats, a large screen, dim lighting, and often a projector booth at the back.", + "A movie theater typically has a large facade with marquee signs and posters while other objects vary widely in shape and design." + ], + "cleaver": [ + "A cleaver is a large rectangular knife with a thick heavy blade used for chopping meat and bones.", + "A cleaver is a large rectangular knife with a thick heavy blade and a broad handle for chopping tough materials.", + "A cleaver has a large rectangular blade with a thick spine designed for heavy chopping tasks.", + "A cleaver has a large rectangular blade, thick spine, and heavy weight for chopping through meat and bones." + ], + "cliff dwelling": [ + "Cliff dwellings are built into rock faces with visible stone walls and openings, unlike freestanding structures or natural rock formations.", + "Cliff dwellings are uniquely built into or on the sides of steep rock faces or cliffs.", + "Cliff dwellings are ancient homes built into rock faces often appearing as small rectangular structures with natural stone walls.", + "Cliff dwellings are stone structures built into rock faces with visible rooms and walls blending into the natural cliff." + ], + "cloak": [ + "A cloak is a long loose outer garment without sleeves that drapes over the body unlike coats or jackets which are more fitted.", + "A cloak is a long loose outer garment without sleeves that drapes over the shoulders and hangs down the body.", + "A cloak is a long loose outer garment that drapes over the shoulders and hangs down to cover the body.", + "A cloak is a long loose outer garment often with a hood draping over the body and flowing when in motion." + ], + "clogs": [ + "Clogs have a distinctive wooden sole with an open back and often a closed toe.", + "Clogs are wooden shoes with a thick sole and open back, unlike other shoes which are usually fully enclosed and made of softer materials.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors." + ], + "cocktail shaker": [ + "A cocktail shaker is a metal container with a tapered top, a strainer lid, and often a cap or smaller mixing cup.", + "A cocktail shaker is a metal container with a tight lid and strainer, often cylindrical or conical, unlike other kitchen tools.", + "A cocktail shaker is a sleek metal container with a tapered top, strainer lid, and often a cap for mixing drinks.", + "A cocktail shaker uniquely has a tightly sealed metal container with a built-in strainer and often a cap for mixing drinks." + ], + "coffee mug": [ + "A coffee mug is typically a cylindrical cup with a handle often made of ceramic or porcelain and holds hot beverages.", + "A coffee mug typically has a cylindrical shape with a handle and is smaller than a cup designed for other beverages.", + "Coffee mugs typically have a handle and cylindrical shape designed for holding hot beverages unlike bowls or cups which may lack handles.", + "A coffee mug is a cylindrical cup with a handle, typically made of ceramic or porcelain, often featuring simple designs or logos." + ], + "coffeemaker": [ + "A coffeemaker is a small appliance with a water reservoir, filter basket, and carafe, often rectangular with buttons or a dial.", + "Coffeemakers typically have a water reservoir, brewing basket, and carafe, unlike other appliances which lack these specific components.", + "A coffeemaker typically has a water reservoir, a filter basket, a carafe, and buttons or dials for brewing control.", + "A coffeemaker typically has a water reservoir, filter basket, carafe, and heating element with buttons or dials for operation." + ], + "spiral or coil": [ + "Spiral or coil shapes have continuous curved lines that loop around a central point distinguishing them from straight or angular forms.", + "Spirals and coils have continuous curved or circular shapes that wind inward or outward unlike straight or angular objects.", + "A spiral or coil has a continuous curved line that winds around a central point while gradually moving outward or inward.", + "Look for curved shapes that wind around a central point or axis in a continuous looping pattern." + ], + "combination lock": [ + "A combination lock is a small metal or plastic device with a numbered dial that opens when turned to the correct sequence.", + "A combination lock has a numbered dial or rotating wheels and a shackle, unlike most objects which lack these mechanical features.", + "A combination lock has a small rotating dial with numbers and a metal shackle for securing items.", + "A combination lock has a rotating dial with numbered markings used to set a specific sequence for opening." + ], + "computer keyboard": [ + "A computer keyboard is a rectangular device with rows of small square or rectangular keys labeled with letters, numbers, and symbols.", + "Computer keyboards have a flat rectangular shape with many small square or rectangular keys arranged in orderly rows.", + "A computer keyboard is flat with many rectangular keys arranged in rows and often has letters numbers and symbols on the keys.", + "A computer keyboard has a grid of rectangular keys with letters, numbers, and symbols arranged in a specific layout." + ], + "candy store": [ + "Candy stores are recognized by colorful displays of sweets, glass jars, shelves packed with treats, and often a counter for serving.", + "A candy store has colorful displays of various sweets in jars or bins unlike other shops with uniform or non-edible items.", + "Candy stores are colorful with bright displays of sweets, glass jars, shelves full of candy, and often a counter for service.", + "A candy store is colorful with shelves full of sweets like jars of candies lollipops and chocolates in bright displays." + ], + "container ship": [ + "Container ships are long rectangular vessels with stacked cargo containers, unlike other ships which have varied shapes and no container stacks.", + "Container ships are long rectangular vessels with stacked colorful metal containers and a flat deck for easy loading and unloading.", + "A container ship is a massive elongated vessel with stacked rectangular containers, often colorful, floating on water with a prominent bow and stern.", + "Container ships are uniquely identified by their massive rectangular hulls stacked with uniformly colored shipping containers in rows." + ], + "convertible": [ + "A convertible has a retractable roof, open-top design, and often a sleek, sporty body with two doors and low seating.", + "A convertible is a car with a retractable roof, often sleek and sporty, resembling other vehicles but with an open-top design.", + "Convertibles have a retractable roof and open-top design unlike regular cars which have fixed roofs and enclosed cabins.", + "A convertible has a retractable roof that can be folded down to open the car to the outdoors." + ], + "corkscrew": [ + "A corkscrew has a distinctive spiral metal rod designed to twist into cork for removal.", + "A corkscrew is a small metal tool with a spiral tip and handle, used for pulling corks from bottles.", + "A corkscrew has a spiral metal rod with a handle, often T-shaped, used to pull corks from bottles.", + "A corkscrew has a spiral metal helix and handle, unlike other objects which lack this twisting design for opening bottles." + ], + "cornet": [ + "A cornet is a brass instrument resembling a small trumpet with a conical bore and compact shape.", + "A cornet looks like a small brass trumpet with a conical bore, compact shape, and a mellow tone.", + "A cornet looks like a small brass trumpet with a compact shape and a conical bore.", + "The cornet has a distinctive conical metal tube shape with valves and a flared bell, resembling a small trumpet." + ], + "cowboy boot": [ + "Cowboy boots have a tall shaft pointed toe high heel and often decorative stitching or patterns on the leather.", + "Cowboy boots have tall shafts, angled heels, pointed toes, and decorative stitching or patterns on the leather.", + "Cowboy boots are tall leather boots with pointed toes high heels and decorative stitching often with a slanted shaft.", + "Cowboy boots have a tall shaft with distinctive decorative stitching and a slanted heel not found on other footwear." + ], + "cowboy hat": [ + "A cowboy hat has a wide brim and tall crown, unlike other hats which are often smaller or differently shaped.", + "A cowboy hat is a wide-brimmed high-crowned hat typically made of felt or leather with a distinctive curved shape.", + "A cowboy hat has a wide brim curved up at the sides and a tall rounded or pinched crown.", + "The wide brim and high crown shape are unique to cowboy hats among all objects." + ], + "cradle": [ + "A cradle is a small bed with high sides that rocks, unlike regular beds or furniture which are larger and stationary.", + "A cradle is a small bed with high curved sides and often rocking legs for holding and soothing a baby.", + "A cradle is a small bed with high sides that rocks gently to soothe a baby, often made of wood or wicker.", + "A cradle has a curved base and sides designed to rock, typically holding a baby, with a distinct elongated oval shape." + ], + "construction crane": [ + "A construction crane is a tall metal structure with a long horizontal arm and cables, used for lifting heavy materials at building sites.", + "A construction crane has a tall vertical tower with a horizontal jib that can rotate and lift heavy loads.", + "Construction cranes are recognized by their tall steel lattice towers, long horizontal jibs, and cables used for lifting heavy materials.", + "Construction cranes have tall vertical towers with long horizontal booms and cables, unlike most objects which are smaller and lack such structures." + ], + "crash helmet": [ + "A crash helmet is a hard rounded protective headgear often with a visor and straps, usually made of tough plastic or composite materials.", + "A crash helmet is a hard, rounded headgear with a smooth outer shell, often featuring a visor and straps for secure fastening.", + "A crash helmet has a hard outer shell, padding inside, a chin strap, and often a visor, unlike hats or caps.", + "A crash helmet has a hard outer shell, smooth rounded shape, chin strap, and often bright colors or reflective surfaces for visibility." + ], + "crate": [ + "Crates are typically wooden or plastic boxes with slatted sides, unlike solid containers or bags, making them look open and structured.", + "A crate is a sturdy wooden or plastic box with slatted sides used for storage or shipping various items.", + "A crate is a sturdy rectangular box typically made of wood or plastic with slatted sides for ventilation and easy handling.", + "Crates are recognized by their rectangular wooden slats, open structure, and sturdy construction for holding items." + ], + "infant bed": [ + "An infant bed is smaller with high protective sides and often has soft padding unlike regular beds or cribs.", + "An infant bed is a small rectangular crib with raised sides and often has soft padding or bars for safety.", + "An infant bed has high protective sides to prevent babies from falling out.", + "An infant bed is small with high side rails often made of wood or plastic and has a soft mattress inside." + ], + "Crock Pot": [ + "A Crock Pot is a slow cooker with a round or oval ceramic pot inside a metal casing and a lid.", + "A crock pot has a round or oval shape with a removable lid and handles, often made of ceramic or metal.", + "A Crock Pot is a round or oval electric slow cooker with a removable stoneware pot and a lid, often with a handle.", + "A Crock Pot is a large electric pot with a removable stoneware insert and a lid, unlike most pots which are metal and stovetop." + ], + "croquet ball": [ + "A croquet ball is smooth, uniformly colored, and slightly smaller than a bowling ball but larger and less fuzzy than a tennis ball.", + "A croquet ball is a smooth, hard sphere, typically brightly colored with stripes or patterns, similar to a bocce ball but smaller.", + "Croquet balls are smooth hard spheres with bright solid colors and no seams or markings.", + "Croquet balls are smooth hard spheres with bright solid colors often featuring stripes or patterns for easy identification." + ], + "crutch": [ + "A crutch is a long stick with a padded top and often a crossbar to support underarm weight for walking assistance.", + "Crutches have long vertical shafts with horizontal hand grips and arm supports, often with rubber tips at the bottom.", + "Crutches are long narrow objects with padded tops and rubber tips often seen under arms for support.", + "Crutches have long straight shafts with handles and arm supports, unlike canes or walkers which are shorter or lack arm supports." + ], + "cuirass": [ + "A cuirass is a form-fitting metal chest plate with smooth surfaces and defined edges unlike fabric or flexible armor pieces.", + "A cuirass is a piece of armor that covers the torso, typically made of metal and shaped to fit the chest and back.", + "A cuirass is a form-fitting metal chest armor with smooth surfaces, often shiny, and sometimes decorated with ridges or engravings.", + "A cuirass is recognized by its smooth, curved metal chest plate covering the torso, often with shoulder straps and decorative engravings." + ], + "dam": [ + "Dams are large concrete or earthen barriers built across rivers to hold back water and create reservoirs.", + "Dams are large solid barriers made of concrete or earth that block water flow unlike natural formations or smaller man-made structures.", + "A dam is a large concrete or earthen wall built across a river to hold back water and create a reservoir.", + "Dams are large solid barriers built across rivers with straight edges and massive concrete or earthen walls holding back water." + ], + "desk": [ + "Desks are flat surfaces with legs often used for work or study typically found in offices or homes.", + "A desk is a flat rectangular surface with legs often made of wood or metal used for working or studying.", + "A desk is a flat-surfaced furniture piece with legs, often made of wood or metal, used for working or studying.", + "Desks are flat surfaces with legs for working while similar objects like tables or benches may lack storage or have different heights." + ], + "desktop computer": [ + "Desktop computers are rectangular with screens and keyboards, unlike most objects which lack these electronic components and flat surfaces.", + "A desktop computer is a boxy device with a monitor, keyboard, and often a mouse on a flat surface like a desk.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact base with visible ports and cables.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact case with visible ports and cables." + ], + "rotary dial telephone": [ + "A rotary dial telephone has a circular dial with numbered holes and a finger stop, unlike push-button phones or cordless models.", + "A rotary dial telephone has a circular dial with finger holes numbers around it and a handset on a cord.", + "A rotary dial telephone has a circular dial with finger holes numbered around it and a handset on a curved base.", + "A rotary dial telephone has a circular dial with numbered holes and a handset resting on a boxy base with a cord." + ], + "diaper": [ + "Diapers are soft, rectangular, and often white with elastic edges, unlike most objects which are rigid or differently shaped.", + "A diaper is typically a soft, rectangular, white or pastel-colored pad with elastic edges and adhesive tabs for fastening.", + "A diaper is a soft folded rectangular pad with fasteners made of absorbent material often white or pastel colored.", + "Diapers are rectangular with a soft, padded texture and often have fastening tabs or elastic edges for a snug fit." + ], + "digital clock": [ + "A digital clock is a small rectangular device with a screen displaying bright numbers showing the current time.", + "Digital clocks display numeric time digitally on a screen while other objects vary in shape color and function without showing time.", + "A digital clock has a flat rectangular screen displaying numeric digits in a segmented or pixelated format often with a dark background.", + "Digital clocks display numeric digits on a screen with clear segments or pixels showing time in a digital format." + ], + "digital watch": [ + "A digital watch has a small screen displaying numbers and buttons, unlike analog watches with hands or clocks with larger faces.", + "A digital watch is a small rectangular device with a screen displaying numbers for time, often with buttons on the sides.", + "A digital watch has a screen displaying numbers for time often with buttons and a rectangular or square shape.", + "Digital watches have a small rectangular screen displaying numbers or time with buttons or a touch interface on a wristband." + ], + "dining table": [ + "Dining tables are typically large flat surfaces with legs designed to seat multiple people unlike smaller or single-purpose furniture items.", + "Dining tables are large flat surfaces supported by legs often surrounded by chairs and used for meals or gatherings.", + "A dining table is a large flat surface with legs, often made of wood or glass, designed for meals and gatherings.", + "A dining table typically has a flat rectangular or oval surface surrounded by chairs for seating during meals." + ], + "dishcloth": [ + "A dishcloth is a small, flat, rectangular piece of fabric or textured material, often with a slightly rough surface for cleaning.", + "Dishcloths have a distinctive loose, woven texture designed for scrubbing and absorbing liquids.", + "A dishcloth is typically a small, flat, rectangular piece of fabric, often textured or slightly rough, unlike larger or rigid cleaning tools.", + "A dishcloth is typically a small, rectangular, soft, and often textured fabric piece, usually in plain colors or simple patterns." + ], + "dishwasher": [ + "Dishwashers are rectangular kitchen appliances with control panels, racks inside, and a front door, unlike smaller or differently shaped kitchen tools.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish in kitchens.", + "A dishwasher is a rectangular kitchen appliance with a front-loading door, control panel, and racks inside for holding dishes.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish or racks inside." + ], + "disc brake": [ + "A disc brake is a round metal rotor with a caliper that clamps onto it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers gripping it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers and pads visible often seen on vehicles and bikes for slowing motion.", + "Disc brakes have a round metal rotor and caliper while other objects lack this distinct flat circular shape and mechanical housing." + ], + "dock": [ + "Docks are long flat structures extending into water made of wood or metal for boats to moor or load.", + "A dock is a flat wooden or metal structure extending over water for boats to moor or people to walk on.", + "Docks are long flat structures extending over water made of wood or metal unlike boats or piers which are shorter or floating.", + "Docks are uniquely characterized by their long wooden or concrete platforms extending over water for boats to moor." + ], + "dog sled": [ + "A dog sled is a long narrow vehicle with runners, pulled by dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by harnessed dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by dogs, unlike other objects which lack this specific shape and function.", + "A dog sled has long narrow runners with a platform pulled by harnessed dogs in snow or icy terrain." + ], + "dome": [ + "A dome is a rounded vault forming the roof of a building or structure, often hemispherical in shape.", + "Domes are rounded, curved structures with a hemispherical shape, unlike flat or angular objects.", + "A dome is recognized by its rounded, hemispherical shape that curves uniformly upward from a circular base.", + "A dome is a rounded, curved, and often symmetrical structure that bulges outward like a half-sphere on top of buildings or objects." + ], + "doormat": [ + "A doormat is a flat rectangular or oval textile with coarse fibers often placed at entrances for wiping shoes.", + "Doormats are flat rectangular often textured or bristled surfaces designed for wiping shoes unlike other mats which may be softer or decorative.", + "A doormat is typically flat rectangular textured and often has welcome messages or rough surfaces for cleaning shoes.", + "Doormats are flat rectangular textiles with coarse textures often placed at entrances featuring welcome messages or geometric patterns." + ], + "drilling rig": [ + "A drilling rig is a tall, large structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "Drilling rigs are tall with large, complex structures and heavy machinery, unlike simpler or smaller objects like trucks or cranes.", + "A drilling rig is a large, towering structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "A drilling rig has a tall derrick, rotating drill pipe, and large platform with heavy machinery for extracting underground resources." + ], + "drum": [ + "Drums are recognized by their cylindrical shape, stretched membrane top, and often have a round base or stand.", + "A drum is a cylindrical musical instrument with a hollow body and stretched membranes on one or both ends.", + "Drums are typically cylindrical with a flat top and bottom, often covered by stretched material and may have metal rims.", + "Drums are cylindrical with a stretched membrane on top while similar objects lack this distinct shape and drumhead feature." + ], + "drumstick": [ + "A drumstick is a long thin wooden stick with a rounded tip used for hitting drums distinguishing it from other objects.", + "Drumsticks are long slender sticks with tapered ends used to strike drums often made of wood or metal.", + "Drumsticks are long thin wooden sticks with tapered ends used for drumming unlike other objects which vary in shape and material.", + "A drumstick is a long thin piece of meat from a chicken leg with a rounded end and a narrow bone inside." + ], + "dumbbell": [ + "A dumbbell is identified by a short bar with symmetrical weighted ends often made of metal or rubber.", + "Dumbbells are recognized by their short bar with symmetrical weighted ends often textured for grip and made of metal or rubber.", + "A dumbbell is a short metal bar with heavy round weights on each end used for exercise and strength training.", + "Dumbbells have a short bar with weights on both ends, unlike similar objects which may lack symmetry or have different shapes." + ], + "Dutch oven": [ + "A Dutch oven is a heavy pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls and a tight-fitting lid often made of cast iron or ceramic.", + "A Dutch oven is a heavy pot with thick walls and a tight-fitting lid, often made of cast iron or ceramic." + ], + "electric fan": [ + "Electric fans have rotating blades mounted on a base or stand, often with protective grilles, unlike most household objects which lack moving parts.", + "An electric fan typically has rotating blades mounted on a base or stand often with a protective grille and a motor.", + "Electric fans have rotating blades enclosed in a protective grill mounted on a stand or base for airflow.", + "An electric fan has rotating blades enclosed in a protective grill mounted on a base or stand for airflow." + ], + "electric guitar": [ + "Electric guitars have a long narrow body with strings, pickups, and a headstock with tuning pegs distinguishing them from other objects.", + "An electric guitar has a long neck with frets, a solid body, and pickups, unlike most objects which lack these musical instrument features.", + "An electric guitar has a long thin neck, solid body, six strings, pickups, and control knobs distinguishing it from other objects.", + "An electric guitar has a long wooden body with six strings, pickups, and metal knobs, often with a sleek and angular design." + ], + "electric locomotive": [ + "Electric locomotives are long, boxy vehicles with pantographs on top and no wheels visible, unlike cars or buses.", + "An electric locomotive is a large rectangular train engine with a smooth streamlined body and pantographs on top for power lines.", + "Electric locomotives have a pantograph on top that collects power from overhead wires.", + "Electric locomotives have a long rectangular body with a pantograph on top and often multiple windows along the front and sides." + ], + "entertainment center": [ + "An entertainment center is a large cabinet or stand holding a TV and other media devices like speakers and gaming consoles.", + "Entertainment centers are large furniture units with shelves, compartments, and space for TVs and electronic devices.", + "An entertainment center is a large cabinet with shelves or compartments for electronics like TVs and speakers, often made of wood or metal.", + "An entertainment center is a large cabinet with shelves and compartments designed to hold TVs and media equipment, unlike simpler furniture." + ], + "envelope": [ + "An envelope is a flat rectangular paper container with a sealed flap, often with printed addresses and stamps.", + "An envelope has a rectangular paper flap that folds over to seal the contents inside.", + "An envelope is a flat rectangular paper container with a sealable flap, unlike books or boxes which are thicker and rigid.", + "An envelope is a flat rectangular paper container with a sealable flap, typically used for holding letters or documents." + ], + "espresso machine": [ + "Espresso machines have a distinctive portafilter, steam wand, and water tank making them easily recognizable among kitchen appliances.", + "Espresso machines are shiny metal appliances with a portafilter, steam wand, and buttons or dials on a compact rectangular body.", + "An espresso machine is a sleek metal appliance with buttons, a portafilter, and steam wand for making coffee.", + "Espresso machines are compact with a portafilter steam wand and control panel unlike coffee makers which are simpler and lack these features." + ], + "face powder": [ + "Face powder is a fine, loose or pressed powder with a matte or shimmery texture, unlike solid or liquid cosmetics.", + "Face powder has a fine, powdery texture that appears as a soft, matte layer on skin, unlike other objects.", + "Face powder appears as a fine, light-colored powder often in small containers or compacts with a soft, smooth texture.", + "Face powder appears as a small compact or loose container filled with fine, pale, powdery substance often with a soft puff applicator." + ], + "feather boa": [ + "A feather boa is a fluffy, long, and soft accessory made of many colorful or monochrome feathers strung together.", + "Feather boas are long fluffy accessories made of soft feathers, unlike other objects which are usually solid or less textured.", + "Feather boas are recognized by their long fluffy strands made of soft feathers often in bright colors and wrapped loosely.", + "A feather boa is a fluffy, colorful, and often long scarf-like accessory made from soft feathers, usually worn around the neck." + ], + "filing cabinet": [ + "A filing cabinet is a tall rectangular metal or wooden box with drawers for storing documents and folders.", + "Filing cabinets are rectangular metal or wooden boxes with multiple horizontal drawers and often a lock or handle on each drawer.", + "Filing cabinets are tall rectangular metal or wooden boxes with multiple horizontal drawers and often a lockable top drawer.", + "Filing cabinets are recognized by their rectangular shape, multiple stacked drawers, and metallic or wooden texture with horizontal handles." + ], + "fireboat": [ + "Fireboats are recognized by their water cannons bright colors and large size designed for spraying water to fight fires on ships or docks.", + "A fireboat is a large watercraft with powerful water cannons and bright red coloring designed for fighting fires on ships and docks.", + "A fireboat is a large watercraft with multiple water cannons and bright red coloring for firefighting on water.", + "A fireboat has water cannons, a large hull, and bright red or yellow colors unlike regular boats or ships." + ], + "fire truck": [ + "Fire trucks are large red vehicles with ladders, flashing lights, and emergency markings like \"FIRE\" or \"RESCUE\" on them.", + "Fire trucks are large red vehicles with ladders, flashing lights, sirens, and bold white lettering for emergency identification.", + "Fire trucks are large red vehicles with ladders, hoses, flashing lights, and emergency markings unlike regular cars or trucks.", + "A fire truck is a large red vehicle with ladders, hoses, flashing lights, and often bold lettering for emergency visibility." + ], + "fire screen": [ + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh barrier placed in front of a fireplace to block sparks and embers.", + "A fire screen is a mesh or glass barrier with a decorative frame, unlike other objects which lack these protective and ornamental features." + ], + "flagpole": [ + "A flagpole is a tall slender vertical pole often topped with a finial and designed to hold a flag unlike other objects.", + "A flagpole is a tall slender vertical pole often made of metal or wood with a flag attached at the top.", + "A flagpole is a tall slender vertical pole often topped with a decorative finial and used to display flags.", + "A flagpole is a tall slender vertical structure with a flag attached, often standing alone or atop buildings." + ], + "flute": [ + "A flute is recognized by its long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a slender, shiny, metal or wooden tube with holes and keys, often held sideways when played.", + "The flute has a long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a long thin tube with holes while similar objects like recorders have mouthpieces and clarinets have reeds." + ], + "folding chair": [ + "A folding chair is a lightweight portable seat with a collapsible frame and often a fabric or plastic seat and backrest.", + "Folding chairs have collapsible frames and often a fabric or plastic seat, unlike rigid chairs or stools with fixed structures.", + "Folding chairs have a collapsible frame with a seat and backrest that fold flat for easy storage and portability.", + "Folding chairs are lightweight with a collapsible frame, often having a fabric or plastic seat and metal legs that fold flat." + ], + "football helmet": [ + "A football helmet is a hard, rounded protective gear with a facemask and team colors or logos on its smooth outer shell.", + "A football helmet has a hard outer shell with a face mask and padding, unlike most objects which lack these protective features.", + "A football helmet has a hard shell with a facemask, ear holes, and team logos or colors for player identification and protection.", + "Football helmets have a hard outer shell with a face mask and chin strap designed for player protection during the game." + ], + "forklift": [ + "A forklift is a small industrial vehicle with a forked platform used to lift and move heavy loads.", + "A forklift has two parallel horizontal forks at the front used for lifting and moving heavy loads.", + "Forklifts have a distinct upright mast with forks and a small cab, unlike most vehicles which lack lifting mechanisms.", + "A forklift has a tall vertical mast with forks at the front and a small cab for the operator." + ], + "fountain": [ + "Fountains are water structures with sprays or streams, unlike solid objects like statues or buildings which lack flowing water features.", + "A fountain is identified by water spraying or flowing from a decorative structure often with a basin or pool below.", + "Fountains are recognized by their water jets or sprays often in decorative structures with basins or pools.", + "A fountain is a decorative structure that sprays water into the air, often found in parks or plazas with sculpted designs." + ], + "fountain pen": [ + "Fountain pens have a slender body with a pointed nib and often an ink-filled barrel distinguishing them from bulkier writing tools.", + "A fountain pen is a slender writing tool with a pointed nib, ink reservoir, and often a decorative cap.", + "A fountain pen has a long slender body with a pointed nib and often a cap or clip for carrying.", + "A fountain pen has a slender cylindrical body with a pointed nib and often an ink reservoir or cap." + ], + "four-poster bed": [ + "A four-poster bed has tall vertical posts at each corner often with curtains or a canopy framing the bed.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains at the top.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains unlike other beds or furniture.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains for a distinctive enclosed look." + ], + "freight car": [ + "A freight car is a large rectangular box on wheels used to transport goods by rail, typically made of metal.", + "Freight cars are long rectangular containers on wheels often seen on trains used for transporting goods in bulk.", + "Freight cars are long rectangular metal containers on wheels used for transporting goods by rail unlike other vehicles or objects.", + "Freight cars are long rectangular metal containers on wheels often seen in trains used for transporting goods." + ], + "French horn": [ + "The French horn is a large brass instrument with a coiled tube, wide bell, and valves, often gold or silver in color.", + "The French horn has a large coiled brass tube with a flared bell and is played by inserting a hand into the bell.", + "The French horn has a distinctive large coiled brass tube with a flared bell and funnel-shaped mouthpiece.", + "The French horn has a large coiled brass body with a wide flared bell and three rotary valves." + ], + "frying pan": [ + "A frying pan has a flat round surface with a long handle, unlike pots or skillets which may be deeper or have different shapes.", + "A frying pan is a round flat metal cooking tool with a long handle and shallow sides for frying food.", + "A frying pan has a flat circular bottom with a shallow depth and a long handle extending from one side.", + "A frying pan has a flat circular cooking surface with a long handle and shallow curved sides for easy flipping and stirring." + ], + "fur coat": [ + "Fur coats are long thick hairy garments while other objects vary in shape texture and material like smooth plastic or hard metal.", + "A fur coat is identified by its thick soft hairy texture and animal skin appearance often with long shaggy or smooth fur.", + "A fur coat is a thick, soft garment made from animal pelts, often fluffy and luxurious in appearance.", + "Fur coats have long dense hair covering the entire outer surface unlike most other garments or objects." + ], + "garbage truck": [ + "A garbage truck is a large vehicle with a compacting mechanism and often has a distinctive shape and bright colors.", + "Garbage trucks are large boxy vehicles with mechanical arms or compactors, distinct from regular trucks due to their waste collection features.", + "A garbage truck is large, boxy, often green or white, with a mechanical arm or rear compactor and labeled for waste collection.", + "A garbage truck has a large hydraulic lifting mechanism on the back for emptying trash bins." + ], + "gas mask or respirator": [ + "A gas mask or respirator has a face-covering mask with filters or tubes and often a clear eye window.", + "A gas mask or respirator is a face-covering device with filters and straps designed to protect against harmful air.", + "A gas mask or respirator has a large round facepiece with filters on the sides and straps for securing it tightly.", + "Gas masks and respirators cover the mouth and nose with filters and straps unlike most objects which lack protective face features." + ], + "gas pump": [ + "A gas pump is typically a tall metal machine with a hose nozzle and digital display for fueling vehicles at stations.", + "A gas pump is a tall metal device with a hose and nozzle for dispensing fuel, often seen at service stations.", + "Gas pumps have a distinct nozzle, hose, and digital display panel unlike most objects which lack these specific fueling components.", + "Gas pumps have a tall vertical body with a hose, nozzle, and digital display for fuel selection and payment." + ], + "goblet": [ + "A goblet is a stemmed drinking cup with a wide bowl, distinguishing it from other cups or vessels without stems or with different shapes.", + "A goblet is recognized by its stemmed cup shape with a wide bowl narrow base and often decorative details.", + "A goblet is a stemmed drinking cup with a wide bowl, often made of glass or metal, and usually taller than it is wide.", + "A goblet is a decorative drinking cup with a stem and base, often made of glass or metal, resembling a fancy wine glass." + ], + "go-kart": [ + "A go-kart is a small open-wheel racing car with a low frame, no roof, and a simple design for speed and agility.", + "A go-kart has a small open-wheel frame with no suspension and a low seat close to the ground.", + "A go-kart is a small open-wheel vehicle with a low frame, no suspension, and a single seat, often brightly colored.", + "Go-karts are small open-wheel vehicles with low frames no doors roll cages and often bright colors used for racing." + ], + "golf ball": [ + "A golf ball is small, white, dimpled, and round, often seen on grassy fields or near golf clubs.", + "A golf ball is small, white, dimpled, and spherical, often found on grassy courses or near clubs and tees.", + "Golf balls have a distinctive dimpled surface pattern that no other object has for aerodynamics and distance control.", + "Golf balls are small, white, dimpled spheres, unlike most objects which vary in color, texture, and shape." + ], + "golf cart": [ + "A golf cart has a small open vehicle design with seats and a bag holder for golf clubs.", + "A golf cart is a small open vehicle with seats and a roof designed for carrying golfers and their equipment around a course.", + "Golf carts are small open vehicles with seats and a roof, unlike cars or trucks, designed for short distances on golf courses.", + "Golf carts are small vehicles with open sides, a roof, and a simple rectangular shape, often seen on golf courses." + ], + "gondola": [ + "A gondola is a long narrow boat with a flat bottom and high curved ends, unlike other boats which are wider or differently shaped.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and curved ends used in Venice canals." + ], + "gong": [ + "A gong is a large, flat, circular metal disc that produces a resonant sound when struck with a mallet.", + "A gong is a large flat metal disc with a raised center and often ornate designs, unlike smaller or differently shaped percussion instruments.", + "A gong is a large flat metal disc with a raised center and often has ornate designs or engravings on its surface.", + "A gong is recognized by its large flat circular metal disc often with a raised center and struck with a mallet." + ], + "gown": [ + "A gown is a long flowing formal dress often worn for special occasions like weddings or ceremonies.", + "A gown is a long flowing dress often worn for formal events with elegant fabrics and intricate designs.", + "A gown is a long flowing dress typically worn for formal occasions unlike shorter casual dresses or other clothing items.", + "Gowns are long flowing garments with loose draping fabric often featuring elegant designs and formal embellishments." + ], + "grand piano": [ + "The grand piano has a distinctive large curved body with a horizontal lid that opens upwards.", + "A grand piano has a large curved body with a lid and strings inside, unlike upright pianos which are tall and straight.", + "A grand piano is a large musical instrument with a curved wooden body, open lid, and black and white keys.", + "A grand piano has a large curved body with a lid that opens upwards and a row of black and white keys." + ], + "greenhouse": [ + "Greenhouses are recognized by their transparent glass or plastic walls and roofs designed to let sunlight in for growing plants.", + "Greenhouses are typically made of transparent glass or plastic walls and roofs to let sunlight in, unlike most solid-walled structures.", + "A greenhouse is a glass or transparent structure for growing plants, often rectangular with a peaked or curved roof.", + "Greenhouses are typically transparent or glass structures with metal or plastic frames, often containing visible plants inside." + ], + "radiator grille": [ + "A radiator grille is a metal or plastic grid on a vehicle's front that allows airflow while protecting the radiator.", + "A radiator grille is a grid-like front panel on vehicles with horizontal or vertical slats for airflow and cooling the engine.", + "A radiator grille has evenly spaced vertical or horizontal slats designed for airflow, unlike solid or differently patterned surfaces on other objects.", + "A radiator grille has a repeating grid or mesh pattern often with horizontal or vertical bars for airflow and vehicle branding." + ], + "grocery store": [ + "Grocery stores are recognized by shelves stocked with packaged goods, shopping carts, checkout counters, and aisles with food products.", + "Grocery stores have shelves stocked with various packaged goods and fresh produce unlike single-item objects or uniform environments.", + "A grocery store is a large organized space with shelves stocked full of packaged foods fresh produce and household items.", + "Grocery stores have aisles filled with shelves stocked with various packaged foods and household products." + ], + "guillotine": [ + "A guillotine has a tall upright frame with a sharp angled blade that slides down to cut, distinct for its execution purpose.", + "A guillotine has a tall wooden frame with a diagonal blade, unlike most objects which lack such a distinct sharp cutting mechanism.", + "A guillotine is a tall wooden frame with a sharp angled blade used for executions by beheading.", + "A guillotine has a tall wooden frame with a diagonal blade at the top and a base to hold the victim." + ], + "hair clip": [ + "Hair clips are small, often curved or decorative, and designed to hold hair in place with a clasp or spring mechanism.", + "A hair clip is small, often curved or hinged, and designed to hold hair in place unlike larger or rigid objects.", + "A hair clip is a small, often decorative clasp with hinged or sliding parts designed to hold hair in place.", + "A hair clip is small, often curved or straight, with a clasp or decorative top, used to hold hair in place." + ], + "hair spray": [ + "Hair spray is a small aerosol can with a nozzle, often shiny and labeled, used to style hair.", + "Hair spray is a small aerosol can with a nozzle while similar items like perfumes or deodorants often have different shapes or spray mechanisms.", + "Hair spray is recognized by its aerosol can shape, nozzle, and often colorful or metallic packaging with hair-related branding.", + "Hair spray appears as a small aerosol can with a nozzle and often has colorful labels or branding." + ], + "half-track": [ + "A half-track has both front wheels and rear tank-like tracks, unlike vehicles with only wheels or full tracks.", + "A half-track has a truck-like front with tank-like rear tracks instead of wheels for off-road mobility.", + "A half-track is a rugged military vehicle with front wheels and rear tank-like tracks for off-road mobility.", + "A half-track has a front truck-like section and rear tank-like tracks, combining wheels and continuous tracks for mobility." + ], + "hammer": [ + "A hammer has a long handle with a heavy metal head at one end for striking nails.", + "A hammer has a long handle with a heavy metal head, one flat side for striking and often a claw for pulling nails.", + "A hammer has a long handle with a heavy metal head at one end used for hitting nails or breaking things.", + "Hammers have a long handle and a heavy metal head, unlike most tools which are smaller or have different shapes." + ], + "hamper": [ + "A hamper is typically a large woven or fabric container with handles, often used for holding laundry or clothes.", + "A hamper is typically a large woven or fabric container with a lid, often used for storing laundry.", + "A hamper is recognized by its open-top woven or fabric container shape often used for holding laundry or storage.", + "A hamper is a large woven or fabric basket used for holding laundry or clothes, often with a lid and handles." + ], + "hair dryer": [ + "A hair dryer is a handheld device with a long nozzle, a handle, and vents, often with buttons or switches for controls.", + "A hair dryer is a handheld electric device with a nozzle and buttons, often shaped like a gun or tube for blowing hot air.", + "A hair dryer has a handle, a long nozzle, and a vented body with a cord for electrical power.", + "A hair dryer has a long nozzle and handle with buttons, unlike similar objects like drills or microphones which lack these features." + ], + "hand-held computer": [ + "Hand-held computers are flat rectangular devices with screens and buttons unlike bulkier or irregularly shaped everyday objects.", + "Hand-held computers are small rectangular devices with screens, buttons or touchscreens, and often have visible brand logos or ports.", + "Hand-held computers are small flat rectangular devices with screens, buttons or touchpads, and often a compact keyboard or stylus.", + "A hand-held computer typically has a touchscreen and physical buttons combined in a compact rectangular shape." + ], + "handkerchief": [ + "Handkerchiefs are small square cloths, often plain or patterned, while similar items like napkins or scarves vary in size, material, and use.", + "A handkerchief is a small square or rectangular piece of soft fabric often folded or carried in pockets for personal use.", + "Handkerchiefs are small square cloths often with decorative patterns or monograms used for personal hygiene or fashion accessories.", + "A handkerchief is a small square piece of cloth, often white or patterned, used for personal hygiene or as a fashion accessory." + ], + "hard disk drive": [ + "Hard disk drives are flat rectangular metal boxes with circuit boards and connectors unlike most objects which vary in shape and material.", + "A hard disk drive is a rectangular metal box with circuit boards on one side and smooth surfaces on the others.", + "Hard disk drives are flat rectangular metal boxes with circuit boards on one side and labeled stickers on top.", + "A hard disk drive is a rectangular metal box with circuit boards and connectors, often shiny and flat with labeled stickers." + ], + "harmonica": [ + "A harmonica is a small rectangular wind instrument with metal reeds and air holes in a row.", + "A harmonica is a small rectangular wind instrument with metal reeds and air holes, unlike most objects which lack these features.", + "A harmonica is a small rectangular instrument with metal reeds visible through air holes in a metal or plastic comb.", + "The harmonica has a distinctive row of small rectangular holes for airflow and sound production." + ], + "harp": [ + "A harp has tall vertical strings and a curved neck, unlike most instruments which are smaller and lack such prominent strings.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings stretched from top to bottom.", + "The harp's distinct features are its tall frame, multiple parallel strings, and curved neck, making it easily recognizable among instruments.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings played by plucking with fingers." + ], + "combine harvester": [ + "A combine harvester is a large farm machine with a wide cutting header grain tank and tracks or wheels for harvesting crops efficiently.", + "A combine harvester is a large farm machine with a cutting header, rotating reel, and grain tank for harvesting crops efficiently.", + "A combine harvester is large with a complex structure including a cutting header, threshing drum, and grain tank, unlike simpler farm vehicles.", + "A combine harvester uniquely has a large rotating header at the front that cuts and gathers crops in one pass." + ], + "hatchet": [ + "A hatchet has a short handle with a sharp metal blade on one end for chopping or cutting.", + "A hatchet is a small axe with a short handle and a sharp blade used for chopping wood or other tasks.", + "A hatchet has a sharp blade on one side and a hammerhead on the opposite side of a short handle.", + "A hatchet has a short handle and a sharp metal blade, unlike similar tools which may be longer or have different head shapes." + ], + "holster": [ + "A holster is a pouch or holder typically made of leather or fabric designed to securely carry a gun or tool.", + "A holster is typically a leather or fabric pouch with straps or clips designed to securely hold a gun or tool.", + "A holster is a leather or fabric pouch designed to hold a gun or tool securely on a belt or strap.", + "A holster is recognized by its pouch-like shape designed to snugly hold a firearm, often with a belt clip or strap." + ], + "home theater": [ + "Home theaters are recognized by large screens, multiple speakers, dark surroundings, and comfortable seating arranged for optimal viewing and sound.", + "Home theaters typically include multiple speakers a large screen and media components arranged for immersive viewing unlike simpler single-purpose devices.", + "A home theater resembles a setup with a large screen speakers and seating designed for a cinematic experience in a home.", + "Home theaters typically feature large screens, multiple speakers, and sleek media consoles often arranged in a dedicated room setup." + ], + "honeycomb": [ + "Honeycomb has a distinctive hexagonal pattern made of tightly packed wax cells created by bees.", + "Honeycomb has a distinctive hexagonal pattern with waxy, golden cells often clustered together in a flat or slightly curved structure.", + "Honeycomb has a distinctive hexagonal pattern with small, tightly packed cells, often golden or light brown, resembling a natural geometric grid.", + "Honeycomb has a unique hexagonal pattern of small uniform cells often in a golden or waxy color." + ], + "hook": [ + "A hook has a curved or bent end designed to catch, hold, or pull objects.", + "A hook is a curved or bent tool typically made of metal used for grabbing holding or hanging objects.", + "A hook is recognized by its curved or bent shape designed to catch, hold, or pull objects.", + "A hook has a curved or bent shape that tapers to a point, often with a smooth or sharp end for catching or holding." + ], + "hoop skirt": [ + "A hoop skirt has a rigid, circular frame that creates a wide, bell-shaped silhouette unlike other skirts or garments.", + "A hoop skirt is recognized by its wide, rigid, circular frame that creates a bell-shaped silhouette under fabric.", + "A hoop skirt is a wide, structured skirt with horizontal rings that holds its shape outward from the waist.", + "A hoop skirt has a rigid, bell-shaped frame that visibly extends the fabric outward in a wide circular form." + ], + "gymnastic horizontal bar": [ + "A gymnastic horizontal bar is a long thin metal bar mounted horizontally between two sturdy vertical supports.", + "The gymnastic horizontal bar is a long, thin, metal bar mounted horizontally on upright supports for athletic exercises.", + "The gymnastic horizontal bar is a long thin metal bar mounted horizontally between two upright supports unlike other objects.", + "A long thin horizontal metal bar elevated on upright supports used for gymnastic routines like swings and flips." + ], + "horse-drawn vehicle": [ + "A horse-drawn vehicle is a carriage or cart pulled by horses, typically with wooden wheels and a bench or enclosed seating area.", + "Horse-drawn vehicles have large wheels, a carriage body, and are pulled by horses unlike motorized vehicles or animal riders.", + "Horse-drawn vehicles have wooden wheels, a carriage body, and are pulled by horses, distinguishing them from motorized vehicles and animals alone.", + "Look for a carriage or wagon pulled by horses with large wheels and a driver's seat." + ], + "hourglass": [ + "An hourglass has two glass bulbs connected by a narrow neck with sand flowing between them unlike most objects.", + "An hourglass is a glass device with two bulbous chambers connected by a narrow waist holding sand that flows between them.", + "An hourglass is recognized by its symmetrical glass bulbs connected by a narrow waist with sand flowing between them.", + "An hourglass has two rounded glass bulbs connected by a narrow middle with sand flowing from the top to the bottom." + ], + "iPod": [ + "An iPod is a small rectangular device with a click wheel or touchscreen and a sleek metal or plastic body.", + "iPods are small sleek rectangular devices with a click wheel or touchscreen unlike most objects which vary widely in shape and function.", + "An iPod is a small rectangular device with a smooth surface, a click wheel or touchscreen, and often a white or metallic finish.", + "An iPod is recognized by its small rectangular shape, click wheel, and sleek design with a screen and minimal buttons." + ], + "clothes iron": [ + "A clothes iron is a smooth flat metal base with a handle and a pointed tip used for pressing wrinkles out of fabric.", + "A clothes iron has a flat smooth metal base a handle on top and a tapered pointed front for pressing fabric.", + "A clothes iron has a flat smooth metal plate with a handle and often a pointed tip for pressing wrinkles out of fabric.", + "A clothes iron has a flat heated metal plate with a handle, unlike most objects which lack this smooth surface and grip design." + ], + "carved pumpkin": [ + "Carved pumpkins have hollow interiors with cut-out faces or designs, while other objects are solid or have different surface textures.", + "A carved pumpkin is an orange hollowed-out gourd with a face or design cut into its surface often lit from inside.", + "Carved pumpkins have distinct jagged cut-out facial features and hollow interiors with glowing candlelight visible through the openings.", + "A carved pumpkin has a hollowed-out orange shell with cut-out facial features like eyes and a mouth often lit from inside." + ], + "jeans": [ + "Jeans are recognized by their sturdy blue denim fabric, stitching patterns, and characteristic pockets and metal rivets.", + "Jeans have distinctive parallel stitched seams on the front pockets and along the outer leg edges.", + "Jeans are blue denim pants with stitching details, pockets, and a zipper or button fly.", + "Jeans are sturdy blue denim pants with visible stitching and metal rivets unlike most other clothing or objects." + ], + "jeep": [ + "Jeeps are recognized by their boxy shape, rugged tires, open top or removable roof, and distinctive front grille with round headlights.", + "Jeeps have a boxy shape, rugged tires, open top or removable roof, and a distinctive front grille with round headlights.", + "Jeeps are rugged vehicles with boxy shapes, large tires, open tops or removable doors, and a distinctive front grille.", + "A jeep is a rugged, boxy vehicle with large tires, open top or removable roof, and a distinctive grille." + ], + "T-shirt": [ + "A T-shirt has a short-sleeved or sleeveless design with a round neckline and no buttons or collar.", + "A T-shirt is a soft, short-sleeved, collarless garment made of stretchy fabric, unlike structured or rigid items like jackets or sweaters.", + "A T-shirt is a lightweight, short-sleeved, collarless garment with a round neckline, typically made of soft, stretchy fabric.", + "A T-shirt is recognized by its short sleeves, round neckline, and casual fabric, typically worn as everyday clothing." + ], + "jigsaw puzzle": [ + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns unlike most solid uniform objects.", + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns forming a complete image when assembled correctly.", + "A jigsaw puzzle is a flat, interlocking cardboard piece with colorful, irregular edges forming a complete picture when assembled.", + "Jigsaw puzzles have interlocking pieces with unique irregular edges and colorful fragmented images when incomplete." + ], + "rickshaw": [ + "A rickshaw is a small two or three-wheeled passenger cart pulled by a person or bicycle, unlike motorized vehicles or animal-drawn carriages.", + "A rickshaw is a small three-wheeled passenger vehicle often pulled by a person or powered by a motor with a covered seating area.", + "A rickshaw is a small two or three-wheeled passenger cart often pulled by a person or bicycle with a canopy and seating area.", + "A rickshaw is a small two-wheeled passenger cart pulled by a person or bicycle, often with a canopy for shade." + ], + "joystick": [ + "A joystick is a handheld control device with a stick that pivots on a base and often has buttons.", + "A joystick has a stick-like handle on a base with buttons or triggers for controlling games or machinery.", + "A joystick has a stick-like handle on a base with buttons often used for controlling games or machinery.", + "A joystick has a stick-like handle and buttons, unlike similar objects which may lack the stick or have different control layouts." + ], + "kimono": [ + "Kimonos are recognized by their long flowing sleeves, wide sash belt, and intricate traditional patterns on silk fabric.", + "A kimono is a long, flowing Japanese robe with wide sleeves, often made of silk and featuring intricate patterns.", + "A kimono is a long robe with wide sleeves and a sash belt often featuring intricate patterns and vibrant colors.", + "Kimonos are long flowing robes with wide sleeves and intricate patterns, unlike shorter or simpler garments like shirts or dresses." + ], + "knee pad": [ + "Knee pads are curved padded protectors that strap around the knee, unlike flat or rigid objects like plates or boards.", + "A knee pad is a cushioned protective gear worn around the knee, often made of foam or plastic with straps for securing.", + "Knee pads are typically curved padded gear strapped around knees often seen in sports or construction with protective hard shells or soft cushioning.", + "Knee pads have a curved rigid shell with soft padding designed to fit snugly around the knee joint." + ], + "knot": [ + "A knot appears as a tightly looped and twisted section of rope or string often forming a secure or decorative fastening.", + "Knots are identified by their twisted or looped rope or string shapes often forming tight, irregular bundles or interwoven patterns.", + "Knots are twisted or tied sections of rope or string, unlike straight or loose strands, forming loops or tight bundles.", + "Knots have intertwined loops with visible overlaps and tight bends distinguishing them from straight or loosely tangled objects." + ], + "lab coat": [ + "A lab coat is a long white coat with buttons down the front, typically worn by scientists or medical professionals.", + "A lab coat is a long white coat with buttons, pockets, and a notched collar, typically worn by scientists or doctors.", + "A lab coat is a long white coat with buttons, typically worn by professionals, unlike other jackets or coats in style and purpose.", + "A lab coat is a long white coat with buttons, pockets, and a collar, typically worn by scientists or medical professionals." + ], + "ladle": [ + "A ladle is a large deep spoon with a long handle used for serving soups or stews.", + "A ladle has a long handle and deep round bowl for scooping liquids unlike spoons or cups which are smaller or differently shaped.", + "A ladle has a deep round bowl and a long handle designed for scooping and serving liquids.", + "A ladle has a deep round bowl with a long handle used for scooping and serving liquids like soup or sauce." + ], + "lampshade": [ + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is a conical or cylindrical cover that diffuses light from a bulb, often made of fabric, paper, or glass.", + "Lampshades are typically conical or cylindrical fabric covers that diffuse light, unlike solid objects like vases or bowls." + ], + "laptop computer": [ + "A laptop computer is a flat rectangular device with a screen and keyboard, often thin and portable, sometimes with a hinged lid.", + "A laptop computer is a flat rectangular device with a screen on one side and a keyboard on the other.", + "Laptop computers are flat, rectangular devices with a hinged screen and keyboard, distinguishing them from bulkier or differently shaped electronics.", + "A laptop computer has a hinged screen attached to a keyboard in a single portable flat device." + ], + "lawn mower": [ + "A lawn mower typically has a metal body with rotating blades underneath and wheels for pushing or riding across grass.", + "A lawn mower has a distinct rotating blade, wheels, and a handle, often with a large engine or motor on a rectangular base.", + "A lawn mower typically has a metal or plastic body with rotating blades underneath and often has wheels or handles for pushing.", + "Lawn mowers typically have a distinct cutting deck, wheels, and a handle, unlike similar objects which may lack these features." + ], + "lens cap": [ + "A lens cap is a small flat circular or rectangular cover specifically designed to fit snugly over camera lenses.", + "A lens cap is a small circular or rectangular cover that protects camera lenses from dust and scratches.", + "A lens cap is a small circular or rectangular cover that protects camera lenses by fitting snugly over them.", + "A lens cap is a small round or square flat cover typically black with a clip or groove to attach to cameras." + ], + "letter opener": [ + "A letter opener is a slender flat tool with a pointed or rounded blade often resembling a small knife or decorative paper knife.", + "A letter opener is a slim flat tool with a pointed or blunt end often resembling a small knife or decorative blade.", + "A letter opener is a slim flat blade with a pointed or rounded tip often resembling a small knife or decorative paper knife.", + "A letter opener is typically long thin and flat with a sharp edge unlike bulkier or rounded objects like knives or scissors." + ], + "library": [ + "Libraries are recognized by rows of bookshelves filled with books, study tables, reading lamps, and often a quiet, organized atmosphere.", + "A library typically features shelves filled with books, reading tables, and a quiet, organized space with people studying or browsing.", + "A library can be identified by rows of bookshelves filled with books, often with reading tables and a quiet study atmosphere.", + "Libraries are large buildings with many windows and often columns, while other objects vary widely in size shape and design." + ], + "lifeboat": [ + "Lifeboats are typically bright orange or red, have a rigid or inflatable design, and often include safety rails or oars.", + "Lifeboats are bright orange or red, have a pointed bow, and often display bold letters or numbers for high visibility.", + "A lifeboat is an orange or white floating vessel with a pointed bow, often inflatable or rigid, used for emergency rescues at sea.", + "Lifeboats are typically bright orange or red, boat-shaped, often with a canopy, and marked with rescue labels or numbers." + ], + "lighter": [ + "A lighter is a small handheld device with a metal body and a trigger that produces a flame for lighting fires.", + "A lighter has a small elongated body with a trigger mechanism and a flame outlet for ignition.", + "Look for small handheld objects with metallic bodies and a spark wheel or button on top.", + "Lighters are small handheld devices with a trigger or wheel that produce a flame and often have a metallic or plastic body." + ], + "limousine": [ + "A limousine is a long, sleek, luxury car with a stretched body, often black, shiny, and with tinted windows.", + "A limousine is a long, sleek, luxury car with stretched body, tinted windows, and often a chauffeur-driven black or white design.", + "A limousine is recognized by its elongated body, luxury styling, dark tinted windows, and often a chauffeur-driven appearance.", + "Limousines are longer and more stretched than regular cars with a sleek elegant design and often have a chauffeur partition." + ], + "ocean liner": [ + "Ocean liners are large elongated ships with multiple decks designed for long-distance passenger travel across open seas.", + "An ocean liner is a massive passenger ship with a long sleek hull multiple decks and large smokestacks for long sea voyages.", + "Ocean liners are large elongated ships with multiple decks tall smokestacks and often have a sleek streamlined design for long voyages.", + "Ocean liners are uniquely identified by their massive elongated hulls with multiple passenger decks and prominent smokestacks." + ], + "lipstick": [ + "Lipstick is a small cylindrical cosmetic item with a pointed tip, often in vibrant colors and shiny or matte finishes.", + "Lipstick is a small cylindrical object with a smooth shiny surface and a pointed or rounded tip in vibrant colors.", + "Lipstick has a small cylindrical shape with a smooth shiny surface and often comes in vibrant solid colors.", + "Lipstick is a small cylindrical cosmetic item with a smooth shiny surface and vibrant colors unlike most everyday objects." + ], + "slip-on shoe": [ + "Slip-on shoes are flat, collarless footwear with elastic sides or a loose fit, lacking laces or buckles for easy wearing.", + "A slip-on shoe is a casual footwear without laces, often with elastic sides and a low profile for easy wearing.", + "Slip-on shoes lack laces or fasteners and have an open top for easy sliding of the foot.", + "Slip-on shoes lack laces and have elastic or stretchy openings for easy wearing without fasteners." + ], + "lotion": [ + "Lotion usually comes in bottles or tubes with smooth textures and often has a creamy or slightly translucent appearance.", + "Lotion typically appears as a creamy or liquid substance in a bottle or pump container with a smooth glossy texture.", + "Lotion typically comes in bottles or tubes with smooth creamy textures unlike solid or powdery items like soap or makeup.", + "Lotion typically appears as a small bottle or tube with a smooth texture and often has a creamy or liquid consistency." + ], + "music speaker": [ + "Music speakers are typically box-shaped with grilles or mesh fronts and often have buttons or dials for volume control.", + "Music speakers are typically boxy with grilles or cones, often black or metallic, and may have buttons or lights on the front.", + "Music speakers are recognized by their grille covers, control buttons, and often a cylindrical or rectangular shape with visible drivers inside.", + "Music speakers typically have a boxy shape with grilles or mesh fronts and visible drivers unlike most other objects." + ], + "loupe magnifying glass": [ + "A loupe magnifying glass is a small handheld device with a lens for close-up viewing of fine details.", + "A loupe magnifying glass has a single lens with a handle designed for close-up viewing of small objects.", + "A loupe magnifying glass is smaller, handheld, and often has a single lens, while others are larger or have handles or stands.", + "A loupe magnifying glass is small, handheld, with a single lens for close-up viewing, often used by jewelers or watchmakers." + ], + "sawmill": [ + "A sawmill is a large industrial facility with log piles, conveyor belts, and cutting machinery, unlike smaller tools or natural wood objects.", + "A sawmill is a large industrial facility with logs, saws, conveyor belts, and stacks of lumber, often in a forested area.", + "A sawmill is a large industrial building with logs, sawdust piles, cutting equipment, and stacks of lumber outside.", + "A sawmill has large log piles, cutting machinery, conveyor belts, and stacks of processed lumber in an industrial outdoor setting." + ], + "magnetic compass": [ + "A magnetic compass is a small round device with a needle that points north, often inside a flat case with marked directions.", + "A magnetic compass has a freely rotating needle that always points to the Earth's magnetic north.", + "A magnetic compass has a flat circular dial with a needle that points north, unlike most objects which lack directional indicators.", + "A magnetic compass has a circular dial with a rotating needle that always points north, set in a flat, often handheld case." + ], + "messenger bag": [ + "Messenger bags have a single long strap and a flat rectangular shape designed to hang diagonally across the body.", + "Messenger bags have a single shoulder strap and a flat rectangular shape unlike backpacks or briefcases which have two straps or rigid structures.", + "A messenger bag is a rectangular or trapezoidal bag with a long strap worn diagonally across the body.", + "A messenger bag is a rectangular or trapezoidal shoulder bag with a flap closure and a long strap worn across the body." + ], + "mailbox": [ + "A mailbox is typically a rectangular metal or plastic box with a hinged door or slot for mail, often mounted on a post.", + "A mailbox has a distinctive slot or door for inserting mail, often mounted on a post or attached to a building.", + "A mailbox is a rectangular or cylindrical container with a slot for mail, often mounted on a post near a house.", + "A mailbox typically has a rectangular or cylindrical shape with a slot for letters and often a flag or door for access." + ], + "tights": [ + "Tights are sheer stretchy leg coverings unlike pants or socks which are thicker shorter or less form fitting.", + "Tights are stretchy leg coverings with a smooth texture and tight fit often worn under skirts or as athletic wear.", + "Tights are stretchy leg coverings that are thin, skin-tight, and often sheer, resembling stockings but without feet.", + "Tights are thin stretchy leg coverings that resemble sheer pants often in skin tones or colors reaching from waist to toes." + ], + "one-piece bathing suit": [ + "One-piece bathing suits are tight-fitting, cover the torso, and often have simple designs compared to looser, more varied clothing or objects.", + "A one-piece bathing suit is a tight-fitting garment covering the torso and legs designed for swimming or sunbathing.", + "A one-piece bathing suit is a single tight-fitting garment covering the torso designed for swimming or sunbathing.", + "One-piece bathing suits are form-fitting, cover the torso, and often have unique patterns or solid colors for swimwear." + ], + "manhole cover": [ + "A manhole cover is typically a round, flat, metal disc with a textured or patterned surface, often found on streets or sidewalks.", + "A manhole cover is a heavy round metal lid with patterns or holes, flush with the ground, often found on streets.", + "Manhole covers are typically round metal discs with textured patterns, while similar objects vary in shape material and surface design.", + "Manhole covers are round metal discs with textured patterns and often have city names or logos embossed on them." + ], + "maraca": [ + "Maracas are handheld musical instruments with a round hollow body filled with beads or seeds and a long handle for shaking.", + "A maraca is a handheld musical instrument with a round hollow body filled with beads or seeds that rattle when shaken.", + "Maracas are recognized by their oval hollow bodies with handles and loose beads inside that create sound when shaken.", + "Maracas are handheld shakers with round hollow bodies filled with beads, unlike solid or differently shaped percussion instruments." + ], + "marimba": [ + "A marimba is a large wooden percussion instrument with tuned bars and resonators, resembling a xylophone but deeper in tone.", + "The marimba has wooden bars arranged like a keyboard with resonators underneath, unlike drums or xylophones which lack such tubes.", + "A marimba has long wooden bars arranged like a keyboard with resonators underneath, played with mallets, distinguishing it from other instruments.", + "The marimba has wooden bars arranged in a keyboard layout with resonators underneath each bar." + ], + "mask": [ + "A mask covers the face partially or fully hiding facial features while allowing visibility of the eyes or mouth.", + "Masks cover the face partially or fully while other objects do not typically obscure facial features in the same way.", + "Masks are typically face-sized coverings with straps or loops often showing eye holes and a textured or colored surface.", + "A mask is a facial covering typically made of fabric or plastic, often with straps to secure it over the nose and mouth." + ], + "matchstick": [ + "A matchstick is a small thin wooden or cardboard stick with a coated tip for striking to create fire.", + "A matchstick is a thin wooden stick with a colored tip and often a slightly rough or textured surface.", + "A matchstick has a small wooden stick with a colored tip coated in flammable material for striking.", + "Matchsticks are thin wooden sticks with a colored tip and uniform length, often bundled together in a small box." + ], + "maypole": [ + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with ribbons and flowers, unlike other poles which are usually plain or functional.", + "A maypole is recognized by its tall wooden pole decorated with colorful ribbons, flowers, and often topped with a festive crown." + ], + "maze": [ + "A maze is a complex network of paths or walls designed to confuse and challenge navigation through its intricate patterns.", + "Mazes are recognized by their intricate, interconnected pathways forming complex patterns with no clear straight lines or simple shapes.", + "Mazes are flat complex patterns with interconnected paths while other objects have varied three-dimensional shapes and textures.", + "Mazes are intricate networks of winding paths or walls often forming symmetrical or geometric patterns with clear entry and exit points." + ], + "measuring cup": [ + "A measuring cup typically has a handle, spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup is a kitchen tool with a handle, spout, and marked lines to indicate volume for liquids or dry ingredients.", + "Measuring cups have a handle, pour spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup has clear markings for measurements and a spout, unlike regular cups which are plain and lack these features." + ], + "medicine cabinet": [ + "A medicine cabinet is typically a small mirrored wall-mounted box with a door often found in bathrooms for storing medical items.", + "A medicine cabinet is a small mirrored storage box typically mounted on a wall in bathrooms for holding medicines and toiletries.", + "A medicine cabinet is a small wall-mounted storage unit with a mirrored door and shelves for holding medical supplies and toiletries.", + "A medicine cabinet typically has a mirrored door and shelves designed to store small medical or personal care items." + ], + "megalith": [ + "A megalith is a large ancient stone structure often standing upright or arranged in circles like Stonehenge.", + "Megaliths are large ancient stone structures, often standing upright or stacked, unlike smaller or naturally formed rocks and modern constructions.", + "Megaliths are large ancient stone structures often arranged in patterns or standing alone with rough weathered surfaces and massive scale.", + "Megaliths are large ancient stone structures often standing upright or arranged in circles with rough uneven surfaces and simple shapes." + ], + "microphone": [ + "A microphone is typically a slender device with a round or oval head on a stand or handheld body.", + "Microphones are typically slender with a grille or mesh head and often have a stand or cord unlike most other objects.", + "A microphone has a round mesh grille covering its top end to capture sound waves distinctly.", + "A microphone typically has a slender body with a rounded or mesh-covered top for sound capture and often a stand or base." + ], + "microwave oven": [ + "A microwave oven is a boxy appliance with a glass door, control panel, and often a turntable inside for even heating.", + "A microwave oven is a boxy kitchen appliance with a glass door, control panel, and often a turntable inside for heating food.", + "Microwave ovens have a square door with a window and control panel, unlike other kitchen appliances which vary in shape and features.", + "A microwave oven has a square door with a window, control panel, and handle, often mounted in a kitchen cabinet or countertop." + ], + "military uniform": [ + "Military uniforms have structured designs with badges and camouflage patterns distinguishing them from casual or formal civilian clothing.", + "Military uniforms are structured garments with distinct colors, insignia, and designs, often featuring camouflage, badges, and tailored fits for soldiers.", + "Military uniforms can be identified by their structured design, camouflage patterns, badges, and often include matching pants and jackets.", + "Military uniforms have distinct camouflage patterns, structured designs, badges, and often include headgear like berets or caps for easy recognition." + ], + "milk can": [ + "Milk cans are typically cylindrical with a handle, metallic finish, and a spout or lid for pouring or sealing.", + "A milk can typically has a cylindrical metal body with a handle and tight lid, unlike other containers which may vary in shape and material.", + "A milk can is a cylindrical metal container with a handle and a lid, often painted white or silver.", + "A milk can typically has a distinctive rounded body with a narrow neck and a hinged lid for pouring." + ], + "minibus": [ + "A minibus is a small boxy vehicle with multiple windows, seating rows, and sliding or hinged doors for passenger transport.", + "A minibus has a long rectangular body with multiple side windows for passenger seating and is smaller than a full-size bus.", + "A minibus is recognized by its elongated body, multiple side windows, and passenger seating capacity larger than a car but smaller than a full bus.", + "A minibus is a small passenger vehicle with a boxy shape, multiple windows, and seating for around ten to twenty people." + ], + "miniskirt": [ + "A miniskirt is a very short skirt ending well above the knees often made of lightweight fabric with a flared or straight cut.", + "A miniskirt is a short skirt ending well above the knees unlike longer skirts or dresses which extend below the knees.", + "A miniskirt is a short skirt typically ending well above the knees, often made of fabric and worn as fashionable clothing.", + "A miniskirt is recognized by its short length above the knees tight fit and often flared or pleated design on female clothing." + ], + "minivan": [ + "Minivans are boxy vehicles with sliding rear doors, large windows, and a tall roof for extra passenger and cargo space.", + "A minivan has a tall boxy shape with sliding rear doors and a spacious interior for passengers.", + "Minivans are boxy vehicles with sliding rear doors, high roofs, and spacious interiors designed for family transportation.", + "A minivan is a boxy vehicle with sliding doors, large windows, and a spacious interior designed for families." + ], + "missile": [ + "A missile is a long slender cylindrical object with fins and a pointed nose often seen flying or launching vertically.", + "Missiles are long, cylindrical, and often have fins or wings, unlike most objects which are more varied in shape and size.", + "A missile has a pointed nose cone and fins at the rear for aerodynamic stability.", + "Missiles are long slender tubes with fins or wings and pointed tips often seen flying or launching with a fiery exhaust trail." + ], + "mitten": [ + "Mittens are hand coverings with a single compartment for fingers and a separate one for the thumb, often made of thick warm material.", + "Mittens are small hand coverings with a single space for fingers, often made of wool or fabric, resembling thick stubby gloves.", + "Mittens have a single compartment for all fingers while gloves have individual slots for each finger.", + "Mittens are hand coverings with a single space for fingers and a separate thumb section, usually soft and often knitted or padded." + ], + "mixing bowl": [ + "A mixing bowl is typically round deep and wide with a smooth interior and often has a slight rim or pouring spout.", + "A mixing bowl has a wide shallow shape with a rounded bottom and high sides for easy stirring and mixing.", + "Mixing bowls are wide deep round containers with high curved sides and often a flat bottom for blending ingredients.", + "A mixing bowl is a deep round dish with a wide opening and often has a flat bottom for stability during food preparation." + ], + "mobile home": [ + "A mobile home is a rectangular, trailer-like structure with windows, a door, and often a small porch or steps.", + "A mobile home is a rectangular, elongated structure with windows, a door, and often a pitched roof, typically on wheels or a foundation.", + "Mobile homes are long rectangular structures with wheels, metal siding, and often have a trailer hitch at the front.", + "Mobile homes are long rectangular structures with wheels and a trailer hitch, resembling a small house on a chassis." + ], + "ford model t": [ + "The Ford Model T has a distinct boxy black body with large wheels and an open-top or enclosed cabin unlike most vehicles.", + "The Ford Model T is a classic black car with a boxy shape, large wheels, and a tall upright windshield.", + "The Ford Model T has a distinctive high square black body with large spoked wheels and a curved front hood.", + "The Ford Model T has a distinct boxy black body, large round headlights, and a tall narrow radiator grille." + ], + "modem": [ + "A modem is a small rectangular box with lights on the front and ports on the back for cables.", + "A modem is a small rectangular box with indicator lights and ports, unlike most household objects which lack these technical features.", + "A modem typically has multiple indicator lights and ports for cables on a small rectangular box.", + "A modem typically has a rectangular box shape with multiple ports, indicator lights, and antennas for wireless connectivity." + ], + "monastery": [ + "Monasteries are recognized by their large religious architecture with arched windows tall spires and often secluded peaceful surroundings.", + "A monastery is uniquely identified by its combination of religious architecture, secluded setting, and often a central courtyard or cloister.", + "Monasteries are large religious buildings with distinctive architectural features like domes, spires, and courtyards, unlike smaller or secular structures.", + "A monastery typically appears as a large stone or brick building with arches, towers, and religious symbols surrounded by peaceful gardens." + ], + "monitor": [ + "A monitor has a flat rectangular screen displaying images or text, distinguishing it from other objects.", + "A monitor has a flat rectangular screen with a bezel, often displaying images or text, and is typically placed on a desk or mounted.", + "Monitors are flat rectangular screens with thin bezels while other objects vary widely in shape size and material.", + "Monitors are flat rectangular screens with thin bezels often mounted on stands or attached to walls displaying images or videos." + ], + "moped": [ + "Mopeds have a small motorcycle-like frame with step-through design, small wheels, and often a visible engine or motor.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a compact engine between the wheels.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a small engine often under the seat.", + "Mopeds are small motorized bikes with step-through frames, small wheels, and often have a compact engine and minimal bodywork." + ], + "mortar and pestle": [ + "A mortar is a bowl and a pestle is a heavy club-shaped tool used together for grinding or crushing substances.", + "A mortar is a bowl and a pestle is a club-shaped tool used together for grinding or crushing substances.", + "A mortar is a sturdy bowl and a pestle is a heavy club-shaped tool used together to grind or crush substances.", + "A mortar and pestle is a bowl with a heavy club-like tool, unlike other kitchen items which are usually flat or have handles." + ], + "graduation cap": [ + "A graduation cap has a flat square top with a tassel hanging from the center and is typically worn with a gown.", + "A graduation cap has a flat square top and a tassel, unlike most hats which are rounded or lack a tassel.", + "A graduation cap is a flat square board with a tassel on top, usually black and worn on the head.", + "A graduation cap is a flat square board with a tassel attached to a center button on a skullcap." + ], + "mosque": [ + "Mosques can be identified by their domes minarets and large prayer halls often with intricate designs and arched entrances.", + "A mosque typically has domes minarets and large open prayer halls unlike other buildings which lack these distinct Islamic architectural features.", + "Mosques are recognized by their domes minarets and large prayer halls often with intricate geometric patterns and arched doorways.", + "A mosque typically has domes minarets and large open prayer halls often decorated with intricate geometric patterns and calligraphy." + ], + "mosquito net": [ + "A mosquito net is a fine, lightweight, often white or translucent mesh fabric hung loosely around beds or windows to block insects.", + "Mosquito nets are lightweight, finely woven, and often white or translucent, designed to drape over beds or windows for insect protection.", + "Mosquito nets are lightweight finely woven mesh fabrics typically hung above beds to protect against insects with a delicate see-through texture.", + "A mosquito net is a fine mesh fabric draped over beds or windows to keep insects out while allowing air flow." + ], + "vespa": [ + "Vespas have a distinctive sleek curved body, small wheels, and a prominent front shield with a single headlight.", + "A vespa is a small sleek motor scooter with a rounded body step through frame and often bright colors.", + "Vespas are small scooters with a sleek curved body, rounded front shield, and often bright colors or chrome details.", + "The unique visual cue of a vespa is its distinctive curved body shape with a narrow waist and bold striped coloration." + ], + "mountain bike": [ + "Mountain bikes have wide knobby tires a sturdy frame flat handlebars and a suspension system for rough terrain.", + "Mountain bikes have a sturdy frame, wide knobby tires, and suspension systems for rough terrain unlike smoother road bikes or motorcycles.", + "Mountain bikes have rugged frames, wide knobby tires, flat handlebars, and suspension systems for off-road terrain.", + "Mountain bikes have wide knobby tires and a sturdy frame designed for rough off-road terrain." + ], + "tent": [ + "A tent is a portable shelter made of fabric or similar material stretched over a frame, often used for camping outdoors.", + "A tent is a portable shelter made of fabric or similar material stretched over poles and secured to the ground with ropes.", + "Tents are typically made of fabric with poles and have a distinctive triangular or dome shape for shelter outdoors.", + "Tents have a triangular or dome shape with fabric stretched over a frame and often have zippered openings for entry." + ], + "computer mouse": [ + "A computer mouse is a small handheld device with buttons and a scroll wheel, often shaped like an oval with a cord or wireless.", + "A computer mouse has a distinctive elongated body with a scroll wheel between two buttons and a cord or wireless sensor underneath.", + "A computer mouse is small, handheld, typically has buttons and a scroll wheel, and connects via wire or wireless dongle.", + "A computer mouse has a small oblong shape with buttons, a scroll wheel, and a cord or wireless receiver for easy identification." + ], + "mousetrap": [ + "A mousetrap is a small wooden or plastic device with a spring-loaded bar designed to catch and kill mice.", + "A mousetrap is a small rectangular device with a spring-loaded metal bar and a bait holder, often made of wood or plastic.", + "A mousetrap typically has a spring-loaded metal bar and a small wooden or plastic base, unlike most household objects.", + "A mousetrap typically has a spring-loaded metal bar, a bait trigger, and a wooden or plastic base to catch mice." + ], + "moving van": [ + "A moving van is a large rectangular truck with a boxy shape, often white or plain-colored, used for transporting furniture and household goods.", + "A moving van typically has large bold lettering and branding on its sides for identification and advertising purposes.", + "Moving vans are large boxy vehicles with plain colors and often have company logos or advertisements on their sides.", + "A moving van is a large rectangular truck often painted white or with company logos and has a tall enclosed cargo area." + ], + "muzzle": [ + "A muzzle is a strap or cage covering an animal's snout while similar objects like masks or guards serve different purposes or cover other areas.", + "A muzzle is a protruding mouth and nose area of an animal, often covered in fur or leather, with visible nostrils and straps.", + "A muzzle is a protruding part of an animal's face covering the mouth and nose often made of leather or metal straps.", + "A muzzle is a strap or cage fitted over an animal's snout to prevent biting or eating, resembling a snug mesh or leather cover." + ], + "metal nail": [ + "A metal nail is a slender, straight, pointed object with a smooth or ridged shaft and a flat or rounded head.", + "A metal nail is a small slender shiny object with a smooth cylindrical shaft and a flat or slightly rounded head.", + "A metal nail has a slender pointed tip and a smooth cylindrical shaft with a flat head.", + "Metal nails are slender, straight, and shiny with a pointed tip and smooth or ridged surface, unlike bulkier or irregularly shaped objects." + ], + "neck brace": [ + "A neck brace is a rigid medical collar that supports the head and limits neck movement for injury recovery or spinal stability.", + "A neck brace is a rigid or padded support device worn around the neck to immobilize and protect it from movement.", + "A neck brace is a rigid or padded support worn around the neck, unlike other objects which are not designed for neck support.", + "A rigid orthopedic device worn around the neck to support and immobilize the head and spine." + ], + "necklace": [ + "A necklace is a slender decorative chain or string of beads, gems, or pearls worn around the neck.", + "A necklace is a decorative chain or string of beads gems or metal worn around the neck often shiny and delicate.", + "A necklace is a decorative chain or string of beads, gems, or metal worn around the neck for adornment.", + "A necklace is a flexible decorative chain worn around the neck, unlike rigid or non-wearable items like pendants or collars." + ], + "baby pacifier": [ + "A baby pacifier is a small nipple-shaped object with a shield and handle, usually made of soft silicone or rubber.", + "A baby pacifier is a small nipple-shaped object with a shield and handle, often made of soft silicone or rubber.", + "A baby pacifier has a nipple-shaped teat, a shield to prevent swallowing, and often a ring or handle for easy gripping.", + "A baby pacifier has a small nipple-shaped mouthpiece attached to a flat shield often with a handle or ring." + ], + "notebook computer": [ + "A notebook computer is a thin flat rectangular device with a screen and keyboard, unlike bulkier or differently shaped electronics and objects.", + "A notebook computer is a thin, flat, rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is a thin rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is recognized by its thin rectangular shape, hinged screen, keyboard, and compact portable design." + ], + "obelisk": [ + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like point at the top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, often standing alone or as a monument.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, unlike most other objects." + ], + "oboe": [ + "The oboe is a slender wooden wind instrument with metal keys, distinguished by its conical bore and double reed mouthpiece.", + "An oboe is a slender wooden wind instrument with a conical bore, metal keys, and a flared bell at the bottom.", + "An oboe is a slender wooden wind instrument with a long black body, silver keys, and a double reed at the top.", + "The oboe has a long black wooden body with silver keys and a distinct double reed at the top." + ], + "ocarina": [ + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often shaped like an egg or sweet potato.", + "An ocarina is a small handheld wind instrument with an oval or round body and finger holes unlike larger or differently shaped instruments.", + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often made of clay or ceramic.", + "The ocarina is recognized by its small egg-shaped body with finger holes and a mouthpiece for blowing." + ], + "odometer": [ + "An odometer is a small rectangular device with a digital or mechanical display showing mileage numbers inside a vehicle dashboard.", + "An odometer is a small digital or mechanical display in a vehicle dashboard showing mileage unlike larger or non-numeric objects.", + "An odometer has a numeric display showing mileage, often with rotating digits or a digital screen, set within a vehicle dashboard.", + "Odometers are small rectangular displays with numbers showing mileage often found on a vehicle's dashboard near the steering wheel." + ], + "oil filter": [ + "An oil filter is a cylindrical metal can with a ridged surface and a threaded hole on one end.", + "An oil filter is typically a cylindrical metal can with a textured surface and a threaded hole on one end.", + "Oil filters are cylindrical with threaded ends, often metal, and have a ridged or textured surface for grip and a central hole.", + "An oil filter is typically cylindrical, metal, and smaller than most car parts, with a ridged or smooth surface and threaded ends." + ], + "pipe organ": [ + "A pipe organ has tall vertical pipes arranged in rows, unlike most objects which are compact or irregularly shaped.", + "A pipe organ is a large musical instrument with rows of vertical pipes, often found in churches and concert halls.", + "A pipe organ is identified by its large size, multiple vertical pipes of varying heights, and a keyboard console at the base.", + "A pipe organ has tall vertical pipes arranged in rows, often with intricate designs and a large keyboard console at the base." + ], + "oscilloscope": [ + "An oscilloscope is a rectangular electronic device with a screen, knobs, and buttons, resembling a small boxy monitor with control panels.", + "An oscilloscope has a rectangular screen with grid lines, control knobs, and input ports on a flat or slightly angled panel.", + "Oscilloscopes have a rectangular screen with grid lines displaying waveform graphs and multiple knobs or buttons for control settings.", + "An oscilloscope has a rectangular screen with grid lines and multiple knobs and buttons for controlling electronic signal displays." + ], + "overskirt": [ + "An overskirt is a decorative outer skirt worn over another skirt, often layered and flowing for added volume or style.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or sheer, extending slightly shorter or longer than the underlayer.", + "An overskirt is a decorative outer skirt layered over another skirt, often shorter and more ornate than regular skirts.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or flared, adding volume and contrasting fabric." + ], + "bullock cart": [ + "A bullock cart is a wooden cart with two large wheels pulled by oxen, typically used for transporting goods or people.", + "A bullock cart has a wooden or metal frame with two large wheels pulled by oxen, often carrying loads or people.", + "A bullock cart is a wooden cart with two large wheels pulled by oxen, often with a flat or curved platform for carrying loads.", + "A bullock cart has a wooden frame with large wheels pulled by oxen, unlike vehicles with engines or smaller animal-drawn carts." + ], + "oxygen mask": [ + "An oxygen mask is a clear or translucent plastic cup covering the nose and mouth with elastic straps around the head.", + "An oxygen mask is a clear plastic cup covering the nose and mouth with elastic straps to secure it around the head.", + "Oxygen masks have a clear plastic cup shape with elastic straps unlike most objects which lack these specific features.", + "An oxygen mask has a clear plastic cup shape with elastic straps and a tube for delivering oxygen to the face." + ], + "product packet / packaging": [ + "Product packaging typically has uniform shapes, logos, labels, and bright colors designed to attract attention and protect contents.", + "Product packaging typically appears as boxes, bags, or containers with labels, logos, and designs to hold and protect items for sale.", + "Look for rectangular shapes with labels logos or barcodes often made of cardboard plastic or shiny materials.", + "Product packaging stands out with logos barcodes brand names colorful designs and uniform shapes for easy identification on shelves." + ], + "paddle": [ + "A paddle is a long flat tool with a handle used for rowing or stirring, typically narrow and often made of wood or plastic.", + "A paddle is a long flat tool with a broad end, often tapered, used for stirring or moving through water.", + "Paddles are long, flat, and often have a handle at one end, unlike other objects which vary more in shape and size.", + "A paddle is long flat and often tapered with a handle used for propelling or steering boats through water." + ], + "paddle wheel": [ + "A paddle wheel has large flat blades arranged evenly around a central hub, often seen on boats or in water.", + "The paddle wheel has large flat blades arranged radially around a central hub for pushing water.", + "A paddle wheel is a large circular frame with flat blades around its rim used to propel boats through water.", + "A paddle wheel has large flat blades arranged radially around a central hub, often seen on boats or watercraft for propulsion." + ], + "padlock": [ + "A padlock is a small metal device with a U-shaped bar that snaps into a solid body to secure things.", + "Padlocks are small metal devices with a U-shaped bar that swings open when unlocked and snaps shut when locked.", + "Padlocks are small metal devices with a shackle that opens with a key or combination unlike most objects which lack these features.", + "A padlock has a small metal body with a U-shaped shackle that opens when unlocked and secures when closed." + ], + "paintbrush": [ + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end often appearing stiff or slightly fanned out.", + "A paintbrush has bristles on one end and a long handle, unlike most objects which lack bristles and vary in shape." + ], + "pajamas": [ + "Pajamas are loose, soft clothing typically with long sleeves and pants, often in simple patterns or solid colors.", + "Pajamas are loose, comfortable clothing typically made of soft fabric, often featuring pants and a matching top, designed for sleeping.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns or stripes, typically worn for sleep or lounging.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns like stripes or prints, typically worn for sleep." + ], + "palace": [ + "Palaces are large grand buildings with ornate designs, while other objects vary widely in size shape and simplicity.", + "Palaces are recognized by grand architectural designs, large ornate facades, towering domes, intricate details, and expansive surrounding gardens or courtyards.", + "Palaces are large, grand buildings with ornate designs, tall columns, domes, and expansive facades often surrounded by gardens or walls.", + "Palaces are uniquely distinguished by their grand architectural designs featuring ornate details and expansive structures often surrounded by landscaped gardens." + ], + "pan flute": [ + "The pan flute has multiple vertical tubes of varying lengths bound together unlike most instruments which are solid or have strings.", + "A pan flute is a set of vertical tubes of varying lengths bound together side by side often made from bamboo or wood.", + "The pan flute has multiple vertical pipes of varying lengths bound together in a curved or straight row producing distinct sound.", + "The pan flute is a row of hollow tubes of varying lengths bound together horizontally, resembling a set of vertical pipes." + ], + "paper towel": [ + "A paper towel is a thin, rectangular sheet of absorbent paper, often white or patterned, usually found in rolls or folded stacks.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface designed for absorbing liquids.", + "Paper towels are thin, rectangular, and often perforated with a soft, slightly textured surface, usually white or patterned.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface for absorbing liquids." + ], + "parachute": [ + "A parachute is a large, lightweight canopy with strings, used to slow descent, typically made of fabric and shaped like an umbrella.", + "A parachute is a large, lightweight canopy with strings, often brightly colored, used to slow descent through the air.", + "A parachute is a large, lightweight fabric canopy with strings, used for slowing descent, unlike compact or rigid objects.", + "Parachutes have a large, round canopy with suspension lines and a harness, often seen open in midair during descent." + ], + "parallel bars": [ + "Parallel bars are long horizontal metal bars mounted on vertical supports, distinct from single bars or gym equipment like rings or beams.", + "Parallel bars are two horizontal rails of equal length spaced apart, typically used in gymnastics for exercises and routines.", + "Parallel bars have two long horizontal bars of equal length positioned parallel to each other at a fixed distance apart.", + "Parallel bars are long horizontal metal rails supported by vertical stands, used in gymnastics for exercises and routines." + ], + "park bench": [ + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces for resting.", + "A park bench is a long wooden or metal seat with a backrest, often found outdoors in public spaces.", + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces.", + "A park bench is a long outdoor seat with a backrest and armrests, typically made of wood or metal, placed in public spaces." + ], + "parking meter": [ + "Parking meters have a tall narrow body with a coin slot, display screen, and often a metal pole or post for mounting.", + "Parking meters are small metal boxes with a coin slot, display screen, and often a pole or post for mounting.", + "A parking meter is a small upright metal box with a coin slot, display screen, and timer, often mounted on a pole.", + "Parking meters are small metal boxes with a coin slot and display screen mounted on poles near streets for parking payment." + ], + "railroad car": [ + "A railroad car is a long rectangular vehicle with wheels designed to run on tracks typically used for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels designed to run on tracks often connected in a series for transporting goods or passengers.", + "Railroad cars have long rectangular bodies with multiple wheels aligned in pairs on tracks for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels, often connected in series, used for transporting goods or passengers on tracks." + ], + "patio": [ + "A patio is an outdoor paved area with furniture or plants often adjacent to a house and designed for relaxation or dining.", + "A patio is an outdoor space with paved flooring, often featuring furniture and surrounded by gardens or walls.", + "Patios are flat outdoor spaces with furniture or plants, often made of stone or wood, connected to a house or building.", + "Patios are flat outdoor surfaces made of stone or concrete, often with furniture, unlike grassy lawns or enclosed indoor spaces." + ], + "payphone": [ + "A payphone is a standalone booth or wall-mounted unit with a keypad, handset, and coin slot, unlike mobile phones or other communication devices.", + "A payphone is a tall metal box with a coin slot, keypad, and a handset attached by a coiled cord.", + "A payphone has a coin slot, handset on a cord, keypad, and is mounted on a stand or wall in public spaces.", + "A payphone has a distinctive handset attached to a metal box with a keypad and coin slot." + ], + "pedestal": [ + "A pedestal is a flat-topped stand or base that supports other objects, often decorative and taller than typical stands.", + "A pedestal is a raised base supporting an object, often decorative, with a simple sturdy shape contrasting the item it holds.", + "A pedestal is a sturdy base with a flat top, often plain or slightly decorated, supporting statues or other displayed objects.", + "A pedestal is a sturdy base or support that elevates and displays objects like statues vases or trophies often decorative and simple." + ], + "pencil case": [ + "A pencil case is a small rectangular pouch often made of fabric or plastic with a zipper to hold writing tools.", + "A pencil case is a small container usually rectangular or cylindrical with a zipper or snap closure to hold writing tools.", + "A pencil case is a small rectangular pouch with a zipper or snap closure designed to hold pens pencils and other stationery items.", + "A pencil case is typically a small rectangular pouch with a zipper or snap closure often made of fabric plastic or leather." + ], + "pencil sharpener": [ + "A pencil sharpener is a small handheld or mounted device with a blade or mechanism to sharpen pencils to a fine point.", + "A pencil sharpener is typically small with a blade hole for pencils and a container for shavings often made of metal or plastic.", + "A pencil sharpener has a small blade inside a cylindrical or rectangular body with a hole to insert and rotate the pencil.", + "A pencil sharpener has a small, cylindrical hole designed specifically to hold and sharpen pencil tips." + ], + "perfume": [ + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside, unlike most everyday objects.", + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside showing through clear glass.", + "Perfume typically appears as small elegant glass bottles with decorative caps and often a spray nozzle.", + "Perfume bottles are small often decorative glass containers with spray nozzles or stoppers and colorful liquid inside." + ], + "Petri dish": [ + "A Petri dish is a shallow, clear, round glass or plastic dish with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic container with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic dish with a lid, unlike most objects which are solid and opaque.", + "A Petri dish is a shallow transparent cylindrical lidded container used for culturing cells or bacteria in labs." + ], + "photocopier": [ + "Photocopiers are rectangular machines with a flat glass surface, paper trays, and control panels often found in offices.", + "A photocopier is a large rectangular machine with a flat glass top for scanning and paper trays on the side.", + "A photocopier is a large boxy machine with a flat glass surface for scanning and paper trays, unlike smaller simpler office devices.", + "A photocopier is a large boxy machine with a flat glass top for scanning and paper trays on the side." + ], + "plectrum": [ + "A plectrum is a small flat tool, usually triangular, made of plastic or metal, used to pluck or strum stringed instruments.", + "A plectrum is small flat and triangular with a pointed tip used to pluck strings on musical instruments like guitars.", + "A plectrum is a small flat tool with a pointed tip, unlike similar objects which may be larger or differently shaped.", + "A plectrum is small flat and often triangular with smooth edges made of plastic metal or other materials for picking strings." + ], + "Pickelhaube": [ + "The Pickelhaube has a distinctive pointed metal spike on top, unlike other helmets which are smooth or rounded.", + "The Pickelhaube has a distinctive pointed metal spike on top of its helmet.", + "A Pickelhaube is a spiked helmet with a rounded metal top and a prominent front spike, typically made of leather or metal.", + "A Pickelhaube is a spiked helmet with a round metal base, a tall front spike, and often has a chin strap and decorative elements." + ], + "picket fence": [ + "A picket fence is a white wooden fence with evenly spaced vertical slats and a horizontal top and bottom rail.", + "A picket fence is a short wooden fence with evenly spaced vertical boards and a horizontal rail, often painted white.", + "A picket fence has evenly spaced vertical wooden slats with pointed tops attached to horizontal rails.", + "A picket fence has evenly spaced vertical wooden slats attached to horizontal rails, unlike solid walls or chain-link fences." + ], + "pickup truck": [ + "Pickup trucks have a cab with seats and an open cargo bed at the back for hauling items.", + "A pickup truck is a rugged vehicle with an open cargo bed, four wheels, and a cab for passengers.", + "Pickup trucks have a cab and an open cargo bed, unlike cars or SUVs which are fully enclosed or vans which have a boxy shape.", + "Pickup trucks have a cab with seats and an open flatbed at the back for hauling items." + ], + "pier": [ + "A pier is a long wooden or concrete structure extending over water, supported by pillars, used for walking, docking boats, or fishing.", + "A pier is a long wooden or metal structure extending into water supported by pillars with boats or people nearby.", + "A pier is a long narrow structure extending into water supported by pillars unlike docks or wharves which are usually solid and shore-connected.", + "Piers are long structures extending over water supported by pillars often with railings and used for docking boats or walking." + ], + "piggy bank": [ + "Piggy banks are typically shaped like pigs with a coin slot, while other objects vary widely in form and function.", + "Piggy banks are typically small, shaped like pigs with a coin slot on top, often made of ceramic or plastic.", + "A piggy bank is a small, often round container shaped like a pig with a slot for saving coins.", + "A piggy bank is typically a small hollow pig-shaped container with a slot on top for inserting coins." + ], + "pill bottle": [ + "Pill bottles are small cylindrical containers with labels and child-resistant caps often in white or orange plastic.", + "Pill bottles are small cylindrical containers with labels and childproof caps unlike similar objects which vary in shape size and lid type.", + "A pill bottle is a small cylindrical container with a child-resistant cap, often made of translucent plastic and labeled with medication information.", + "Pill bottles are typically small cylindrical containers with childproof caps and often have white labels and orange translucent plastic." + ], + "pillow": [ + "Pillows are soft rectangular objects with fabric covers often found on beds or couches for comfort and support.", + "Pillows are soft rectangular cushions often with fabric covers while other objects vary in shape texture and material like hard or angular surfaces.", + "A pillow is a soft rectangular cushion often with fabric covering used for head or body support during rest or sleep.", + "A pillow is a soft rectangular or square object with a smooth fabric cover often slightly puffed and used for head support." + ], + "ping-pong ball": [ + "Ping-pong balls are small, white, lightweight, and perfectly round with a smooth matte surface unlike most other balls.", + "A ping-pong ball is small, white or orange, smooth, lightweight, and perfectly round with a matte finish.", + "A ping-pong ball is small, lightweight, white or orange, smooth, matte, and spherical with a distinctive hollow sound when bounced.", + "A ping-pong ball is small, white or orange, lightweight, spherical, and has a smooth, matte surface with a slightly shiny finish." + ], + "pinwheel": [ + "Pinwheels are colorful spinning toys with radiating blades or petals attached to a central stick or rod.", + "A pinwheel is a colorful toy with spinning blades attached to a stick that twirls in the wind.", + "Pinwheels are recognized by their colorful spinning blades attached to a central axis on a stick, often with a wind-catching design.", + "Pinwheels have colorful spinning blades attached to a stick while similar objects lack these moving parts or bright designs." + ], + "pirate ship": [ + "Pirate ships have tall masts, sails, wooden hulls, and often feature flags or cannons unlike modern boats or other vessels.", + "A pirate ship is a large wooden sailing vessel with tall masts, sails, and often features a Jolly Roger flag.", + "Pirate ships have tall masts with multiple sails, wooden hulls, Jolly Roger flags, and often cannons visible on the sides.", + "A pirate ship is uniquely identified by its black flag with a white skull and crossbones." + ], + "drink pitcher": [ + "A drink pitcher typically has a handle, a spout, and a tall narrow body designed for pouring liquids easily.", + "A drink pitcher is a tall container with a handle and spout, usually made of glass or plastic for pouring liquids.", + "A drink pitcher typically has a handle, a spout, and a tall cylindrical shape for pouring liquids easily.", + "A drink pitcher typically has a prominent spout for pouring liquids and a handle for easy gripping." + ], + "block plane": [ + "A block plane is a small hand tool with a low-angle blade for smoothing wood, distinguished by its compact size and flat sole.", + "A block plane is smaller with a low-angle blade and simple design compared to larger more complex woodworking planes.", + "A block plane is a small hand tool with a flat metal body and a sharp blade for smoothing wood surfaces.", + "A block plane has a compact metal body with a low-angle blade set close to the front edge." + ], + "planetarium": [ + "A planetarium is a dome-shaped building or room with a projector displaying stars and celestial objects on the ceiling.", + "A planetarium is a domed building or room with a projector displaying stars and planets unlike regular buildings or natural objects.", + "A planetarium typically appears as a large dome-shaped building with a round or hemispherical roof and often has a futuristic or scientific design.", + "A planetarium is recognized by its domed ceiling displaying projected stars and celestial scenes in a dark, theater-like setting." + ], + "plastic bag": [ + "A plastic bag is a thin, lightweight, often crinkly and translucent or colored container made of flexible plastic material.", + "Plastic bags are thin, crinkly, often transparent or brightly colored, and have handles or folds for carrying items.", + "Plastic bags are thin, crinkly, and often transparent or semi-transparent, unlike most objects which are solid and rigid.", + "A plastic bag is thin, crinkly, often transparent or colored, and has a smooth, shiny surface with folds or wrinkles." + ], + "plate rack": [ + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright and separate unlike most other storage objects.", + "A plate rack is a shelf or stand with slots or hooks designed to hold plates upright for drying or storage.", + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright for drying or storage.", + "A plate rack is a flat open shelf or stand with slots or pegs to hold plates vertically for drying or storage." + ], + "farm plow": [ + "A farm plow is a large metal blade with handles or wheels used to turn over soil in fields for planting crops.", + "A farm plow has a large curved metal blade and handles, distinct from smaller or differently shaped farming tools and equipment.", + "A farm plow has a large curved metal blade designed to turn over soil for planting crops.", + "A farm plow has a large curved metal blade attached to a frame, often pulled by animals or tractors, used for tilling soil." + ], + "plunger": [ + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger typically has a rubber suction cup on a straight wooden or plastic handle used for clearing clogged drains.", + "A plunger has a rubber suction cup on a straight handle, unlike most tools which have varied shapes and materials." + ], + "Polaroid camera": [ + "A Polaroid camera is a rectangular instant film device with a lens viewfinder and a slot for ejecting printed photos.", + "A Polaroid camera is a rectangular box with a lens, viewfinder, and a slot for instant photos to eject from.", + "Polaroid cameras are square-shaped with a lens on top and a slot for instant photos, unlike most cameras or everyday objects.", + "Polaroid cameras have a square body with a lens on one side and a slot for instant photos to eject on the other." + ], + "pole": [ + "A pole is a long, slender, vertical or horizontal object with a uniform shape and minimal width compared to its length.", + "A pole is a long, slender, vertical or horizontal rod, often made of wood or metal, used for support or structure.", + "A pole is a long, slender, vertical structure often made of wood or metal, used for support or marking boundaries.", + "Poles are long, thin, and straight, often vertical, while other objects vary more in shape, size, and orientation." + ], + "police van": [ + "Police vans are large boxy vehicles with emergency lights, sirens, and often marked with police logos or colors.", + "Police vans are boxy with barred windows and often have official markings or lights distinguishing them from regular vehicles.", + "A police van is a large, boxy vehicle with emergency lights, often painted in bold colors like white or black with police markings.", + "Police vans are typically boxy with emergency lights, bold lettering, and a sturdy design often in black, white, or blue colors." + ], + "poncho": [ + "A poncho is a sleeveless garment with an opening for the head, made from a single piece of fabric or waterproof material.", + "A poncho is a loose outer garment with a simple opening for the head and no sleeves, often made from wool or waterproof fabric.", + "A poncho is a large, flat piece of fabric with a head hole, while similar items like cloaks or capes often have sleeves or fasteners.", + "A poncho is uniquely identified by its large flat fabric with a central head opening and no sleeves." + ], + "pool table": [ + "A pool table has a flat rectangular surface with pockets and felt covering, distinct from most furniture or sports equipment.", + "A pool table is a large rectangular surface covered with green felt and surrounded by cushioned edges with pockets in the corners.", + "A pool table is a large rectangular surface with a green felt covering, six pockets, and wooden or metal rails around the edges.", + "A pool table has a distinctive green felt surface with six pockets and marked rails for playing billiards." + ], + "soda bottle": [ + "Soda bottles are typically tall cylindrical containers with narrow necks and labels, often made of clear or colored plastic.", + "A soda bottle is a tall cylindrical container with a narrow neck, often made of plastic or glass, and usually has a label.", + "Soda bottles are typically tall cylindrical containers with colorful labels and a narrow neck often capped with a twist-off or pop-top lid.", + "Soda bottles are typically tall cylindrical containers with narrow necks often labeled with colorful branding and sometimes have ridges or curves." + ], + "plant pot": [ + "Plant pots are typically round or square containers with open tops, made of clay or plastic, often holding soil and plants.", + "A plant pot is typically a small container with an open top, often made of clay or plastic, holding soil and plants.", + "Plant pots are typically round or square containers with open tops and drainage holes, often made of clay or plastic.", + "A plant pot is a small container, usually round or square, made of clay, plastic, or ceramic, designed to hold plants." + ], + "potter's wheel": [ + "A potter's wheel is a flat spinning disk on a stand with a foot pedal or motor for shaping clay.", + "A potter's wheel is a flat spinning disk on a stand, unlike stationary tools or decorative items that don't rotate.", + "A potter's wheel is a flat rotating disk on a stand used for shaping clay with hands or tools.", + "A potter's wheel has a spinning flat disk where clay is shaped by hand while rotating." + ], + "power drill": [ + "A power drill has a rotating chuck at the front that holds interchangeable bits for drilling or driving screws.", + "A power drill has a cylindrical body, trigger handle, rotating chuck, and often a cord or battery pack for operation.", + "A power drill is a handheld tool with a trigger grip, cylindrical body, and rotating bit for drilling holes or driving screws.", + "Power drills have a distinct pistol grip with a rotating chuck and trigger, unlike other tools which lack these combined features." + ], + "prayer rug": [ + "Prayer rugs have intricate patterns, a central arch or niche design, and are often rectangular with rich colors and detailed borders.", + "A prayer rug is a small rectangular fabric with intricate designs often featuring geometric patterns or mosque motifs.", + "Prayer rugs are rectangular with intricate patterns often featuring a niche design pointing towards the direction of prayer.", + "A prayer rug has a distinct arched or mihrab design pointing towards Mecca for proper orientation during prayer." + ], + "printer": [ + "Printers are typically boxy with flat surfaces, buttons, and paper trays, unlike other objects which vary more in shape and function.", + "A printer is a rectangular box with buttons, a paper tray, and often a display screen for printing documents and images.", + "Printers are boxy with flat tops, often have paper trays, display panels, and multiple buttons or slots for paper and ink.", + "Printers are typically rectangular with a flat top, control panel, paper tray, and often have a sleek design with brand logos." + ], + "prison": [ + "Prisons are large secure buildings with fences and barred windows unlike ordinary structures which are open and less fortified.", + "Prisons have high walls with barbed wire, guard towers, barred windows, and uniform rows of cell blocks inside secure perimeters.", + "Prisons are identified by high walls with barbed wire, guard towers, barred windows, and large secure gates.", + "Prisons typically resemble large fortified buildings with high walls, barred windows, and heavy gates surrounded by fences or barbed wire." + ], + "projector": [ + "A projector is recognized by its lens light source and rectangular shape used to display images or videos on surfaces.", + "A projector is typically a rectangular box with a lens on one side and vents for cooling on the sides or back.", + "A projector is a rectangular device with a lens on one side and often has vents and input ports on the back.", + "Projectors are rectangular with a lens at the front while similar objects like TVs or monitors lack lenses and are often flatter." + ], + "hockey puck": [ + "A hockey puck is a flat, hard, black rubber disc, much smaller and simpler than most other sports equipment or round objects.", + "A hockey puck is a small, flat, hard black disc with smooth edges and uniform thickness used in ice hockey games.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a slightly raised rim.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a uniform circular shape." + ], + "punching bag": [ + "A punching bag is a cylindrical or teardrop-shaped object typically made of leather or vinyl, hanging from a chain or rope.", + "A punching bag is a tall cylindrical or teardrop-shaped object usually made of leather or vinyl hanging from a chain or rope.", + "A punching bag is typically cylindrical, hangs from a chain or rope, and is made of leather or synthetic material.", + "A punching bag is a cylindrical or teardrop-shaped object hung vertically, often made of leather or vinyl, used for striking in training." + ], + "purse": [ + "A purse is a small bag with a handle or strap used to carry personal items like money and makeup.", + "Purses are small handheld bags with straps or handles used to carry personal items like money and makeup.", + "A purse is typically a small soft bag with a handle or strap, often made of leather or fabric, designed to hold personal items.", + "A purse is a small stylish bag with straps, often made of leather or fabric, used to carry personal items like money and makeup." + ], + "quill": [ + "A quill is a long feather with a sharpened tip, unlike pens or pencils which are solid and lack natural feathery textures.", + "A quill has a long feather with a sharpened tip used for writing, distinct from other objects.", + "A quill is a long feather with a sharp pointed tip and hollow shaft, often used for writing with ink.", + "A quill is a slender writing tool with a pointed feather at one end and an ink-dipped tip at the other." + ], + "quilt": [ + "Quilts are thick fabric layers stitched in decorative patterns unlike flat sheets or plain blankets.", + "A quilt is a thick, soft bed cover made of stitched fabric layers, often with colorful patterns or patchwork designs.", + "A quilt is a layered textile with stitching patterns often featuring colorful fabric squares or rectangles sewn together.", + "Quilts have distinct patchwork patterns, stitching lines, and layered fabric textures that set them apart from other textiles and household items." + ], + "race car": [ + "Race cars are sleek low vehicles with bold colors sponsor logos large rear wings and aerodynamic shapes for speed.", + "Race cars are sleek, low-profile vehicles with bold colors and sponsor logos, designed for speed and aerodynamics unlike everyday cars.", + "Race cars have sleek aerodynamic designs vibrant colors sponsor logos and large rear wings for high speed performance.", + "Race cars have sleek aerodynamic bodies with large spoilers and bold racing decals for high-speed performance and branding." + ], + "racket": [ + "A racket has a long handle with a flat oval or round head strung with a tight mesh or netting.", + "Rackets have a long handle and a flat oval or round frame with strings or mesh stretched across it.", + "A racket typically has a long handle and an oval frame with a tightly strung netting for hitting balls in sports.", + "Rackets have a long handle with a circular or oval frame strung with a tight mesh netting for hitting balls." + ], + "radiator": [ + "A radiator is typically a flat metal panel with vertical or horizontal fins used for heating and often mounted on walls.", + "A radiator is a metal device with fins or coils, often wall-mounted, used for heating rooms by circulating hot water or steam.", + "Radiators have a series of evenly spaced metal fins or tubes designed for heat dissipation.", + "A radiator is a metal panel with fins or pipes, often wall-mounted, while similar objects lack these distinct heat-dissipating features." + ], + "radio": [ + "Radios have dials, buttons, speakers, and often a rectangular shape with a display screen or frequency tuner.", + "Radios typically have dials, buttons, and speakers, while other objects vary widely in shape, size, and functional features.", + "A radio typically has a rectangular body with buttons dials and an antenna often displaying a speaker grille or digital screen.", + "Radios typically have dials, buttons, speakers, and an antenna, often housed in a rectangular or boxy shape with a display screen." + ], + "radio telescope": [ + "A radio telescope is a large dish or array of dishes often mounted on a movable structure for capturing radio waves from space.", + "Radio telescopes have large dish-shaped reflectors and support structures, unlike smaller or differently shaped objects like satellites or antennas.", + "A radio telescope has a large parabolic dish for capturing radio waves from space.", + "A radio telescope is a large dish-shaped structure with a central receiver used to detect radio waves from space." + ], + "rain barrel": [ + "A rain barrel is a cylindrical container with a spout or hose attachment, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a cylindrical container with a spigot, often made of plastic or wood, designed to collect and store rainwater.", + "A rain barrel is typically a cylindrical container with a spout, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a large cylindrical container, often made of plastic or wood, used to collect and store rainwater." + ], + "recreational vehicle": [ + "Recreational vehicles are large, boxy, mobile homes with wheels, often featuring windows, a door, and sometimes an awning or external storage.", + "Recreational vehicles are large, boxy, and often have windows, awnings, and external features like ladders or storage compartments.", + "Recreational vehicles are large boxy vehicles with living spaces, often featuring windows, a door, and sometimes an awning or external storage.", + "A recreational vehicle is a large motorhome or camper van designed for travel and living, resembling a bus or truck." + ], + "fishing casting reel": [ + "A fishing casting reel is a cylindrical device with a handle, spool, and metal frame, often mounted on a fishing rod.", + "A fishing casting reel has a spool release button and a handle on the same side for controlled line casting.", + "A fishing casting reel has a cylindrical body with a handle, spool, and line guide, often made of metal and plastic.", + "A fishing casting reel has a cylindrical spool with a handle and line guide, unlike similar objects which lack these specific fishing features." + ], + "reflex camera": [ + "Reflex cameras have a distinctive bulky body with a lens protruding from the front and a viewfinder on top.", + "A reflex camera has a large lens, a viewfinder hump on top, and a rectangular body with buttons and dials.", + "Reflex cameras have a distinctive large lens, viewfinder hump, and body shape with buttons and dials for manual controls.", + "A reflex camera has a rectangular body with a lens in front, a viewfinder on top, and buttons on the back and sides." + ], + "refrigerator": [ + "A refrigerator is a large rectangular appliance with a door, handles, and often a freezer compartment, usually white or stainless steel.", + "A refrigerator is a large rectangular appliance with a door handle and often has a freezer compartment at the top or bottom.", + "A refrigerator is a large rectangular appliance with a door handle and often a shiny metallic or white surface.", + "Refrigerators are large boxy appliances with doors and handles, often white or metallic, while other objects vary in shape and function." + ], + "remote control": [ + "A remote control is a small rectangular device with buttons used to operate electronic gadgets from a distance.", + "Remote controls are small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Look for small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Remote controls are small rectangular devices with buttons, often featuring a smooth surface and sometimes an infrared sensor at the top." + ], + "restaurant": [ + "Restaurants are recognized by dining tables chairs menus food items and often a counter or open kitchen area.", + "A restaurant typically has tables, chairs, menus, food, and decor in a welcoming space for dining and socializing.", + "Restaurants can be identified by their signs, seating areas, menus, tables, counters, and often large windows or open entrances.", + "Restaurants are buildings with signs tables chairs and often large windows unlike smaller objects like furniture or utensils." + ], + "revolver": [ + "A revolver is a handgun with a rotating cylinder that holds bullets, featuring a short barrel and a distinctive trigger and grip.", + "A revolver has a rotating cylinder holding bullets and a short barrel, unlike most guns which have a straight magazine.", + "A revolver has a rotating cylinder, short barrel, and a handgun shape with a trigger and grip.", + "A revolver has a rotating cylinder with multiple chambers that hold bullets visible from the side." + ], + "rifle": [ + "A rifle is a long narrow firearm with a barrel stock and trigger designed for precision shooting and hunting.", + "Rifles are long slender guns with a barrel stock and trigger distinct from shorter handguns or non firearm objects.", + "A rifle has a long narrow barrel with a trigger and stock designed for precise aiming and firing bullets.", + "Rifles have a long narrow barrel with a trigger grip and often a stock for shoulder support distinguishing them from other objects." + ], + "rocking chair": [ + "A rocking chair has a curved base that allows it to rock back and forth, typically with armrests and a high back.", + "A rocking chair has curved legs that allow it to rock back and forth and often has a high back and armrests.", + "Rocking chairs have curved legs that allow them to rock back and forth unlike regular chairs with straight legs.", + "Rocking chairs have curved legs that allow back-and-forth movement and often have armrests and a high backrest for comfort." + ], + "rotisserie": [ + "A rotisserie is a cooking device with a rotating spit for evenly roasting meat over a heat source.", + "Rotisserie is identified by a rotating spit with skewered meat cooking evenly over a heat source often seen in delis or kitchens.", + "Rotisseries are recognized by their rotating skewer, evenly cooked meat, heat source below, and often a vertical or horizontal metal frame.", + "Rotisserie has rotating skewers with evenly spaced food items while other objects lack this specific rotating and spaced arrangement." + ], + "eraser": [ + "An eraser is typically a small rectangular or cylindrical rubber object used to remove pencil marks by rubbing.", + "An eraser is typically small rectangular or cylindrical with a smooth or slightly rough surface often in light colors like white or pink.", + "Erasers are typically small, rectangular, and made of soft rubber or foam, unlike hard or rigid objects like stones or metal tools.", + "Erasers are small, rectangular or oval, often white or pink, with a smooth or slightly rough texture and sometimes angled edges." + ], + "rugby ball": [ + "A rugby ball is oval with pointed ends while most other balls are round or spherical in shape.", + "A rugby ball is an elongated oval shape with pointed ends and a textured surface for better grip.", + "A rugby ball has a distinctive elongated oval shape with pointed ends unlike any other spherical or round sports ball.", + "A rugby ball is oval-shaped with pointed ends and typically has a textured surface with white stitching and a distinctive pattern." + ], + "ruler measuring stick": [ + "A ruler measuring stick is a long thin flat tool with marked lines for measurement unlike bulkier or unmarked objects.", + "A ruler measuring stick is a long thin flat object with marked lines and numbers for measuring length.", + "A ruler measuring stick has evenly spaced markings and a straight, flat shape for precise length measurement.", + "A ruler measuring stick is long, thin, flat, and has evenly spaced markings or numbers along its length for measuring." + ], + "sneaker": [ + "Sneakers have laces, rubber soles, and a fabric or leather upper with a distinctive sporty or casual design.", + "A sneaker is a lightweight shoe with a flexible rubber sole and soft fabric or leather upper, often used for sports or casual wear.", + "Sneakers are soft, flexible footwear with rubber soles and fabric or leather uppers, unlike hard-soled shoes or non-footwear items.", + "Sneakers are identified by their rubber soles, laces, and soft fabric or leather uppers designed for comfort and athletic use." + ], + "safe": [ + "A safe typically has a sturdy metal box shape with a thick door and a visible locking mechanism or keypad.", + "Safes are typically boxy with metal surfaces and keypads or dials unlike most objects which vary widely in shape and material.", + "A safe typically has a thick metal door with a prominent locking mechanism and handle.", + "A safe is a sturdy metal box with a thick door and a lock to securely store valuables and important items." + ], + "safety pin": [ + "A safety pin has a coiled spring, sharp point, and clasp to secure the pointed end, making it easily recognizable.", + "A safety pin is a small metal pin with a clasp that bends back to cover the sharp point and secure items.", + "A safety pin has a simple metal loop with a clasp to secure the pointed end unlike other pins or fasteners.", + "A safety pin is a small metal pin with a clasp that bends back to cover the point and secure it closed." + ], + "salt shaker": [ + "A salt shaker is a small container with a perforated top designed to sprinkle salt usually made of glass or plastic.", + "A salt shaker is small with a perforated top for sprinkling salt and often has a cylindrical or rounded shape.", + "A salt shaker typically has a few small holes on top for sprinkling salt evenly.", + "A salt shaker typically has small holes for sprinkling salt and is often smaller than similar containers like pepper shakers or sugar bowls." + ], + "sandal": [ + "Sandals have open designs with straps and lack full coverage compared to shoes or boots which enclose the foot more completely.", + "Shoes with open toes and straps or a flat sole, often lightweight and worn in warm weather.", + "A sandal is an open-toed footwear with straps or a sole held to the foot by thin bands or a simple design.", + "Sandal features include open toe straps a flat sole and often a Y-shaped design between the toes for secure foot placement." + ], + "sarong": [ + "A sarong is a long, wrapped cloth skirt, while similar items like skirts or kilts are typically pre-stitched and structured.", + "A sarong is a long colorful fabric wrapped around the waist, resembling a skirt or loose dress, often with vibrant patterns.", + "A sarong is a long, wrapped skirt or cloth with vibrant patterns, often worn around the waist and flowing loosely to the ankles.", + "A sarong is recognized by its long rectangular fabric often wrapped around the waist with vibrant patterns and flowing drapes." + ], + "saxophone": [ + "A saxophone is a shiny brass wind instrument with a curved body, keys, and a flared bell.", + "A saxophone has a curved metallic body with keys and a flared bell, unlike most instruments which are straight or differently shaped.", + "A saxophone is a shiny curved metal instrument with a flared bell and many buttons along its long tube.", + "The saxophone has a distinctive curved neck with a flared bell and multiple keys along its conical brass body." + ], + "scabbard": [ + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade.", + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade securely.", + "A scabbard is a long narrow sheath typically made of leather or metal used to hold and protect a sword or knife.", + "A scabbard is a long narrow sheath for a blade, often leather or metal, while similar objects may lack the shape or material specifics." + ], + "weighing scale": [ + "Weighing scales have a flat platform, display screen, and often numerical indicators for measuring weight clearly.", + "Weighing scales have flat platforms or trays with displays showing weight unlike other objects which vary in shape and function.", + "A weighing scale typically has a flat platform or tray and a display screen showing numbers for weight measurement.", + "A weighing scale is a flat platform or dish with a display showing weight often found in kitchens or bathrooms." + ], + "school bus": [ + "A school bus is a large yellow vehicle with windows, black trim, and a long rectangular shape for transporting children.", + "A school bus is recognized by its long yellow body black stripes large windows and stop sign arm for student transportation.", + "A school bus is a large yellow vehicle with black stripes, multiple windows, and often has stop signs and flashing lights.", + "A school bus is bright yellow with black stripes and large windows, while other vehicles vary in color and design." + ], + "schooner": [ + "A schooner is a sailing ship with two or more masts, typically with fore-and-aft sails and a sleek, elongated hull.", + "A schooner is a sailing ship with two or more masts and fore-and-aft sails, distinct from other boats by its tall sleek design.", + "A schooner is a sleek sailing ship with two or more masts and tall sails, often seen gliding on water.", + "A schooner has two or more tall masts with fore-and-aft sails and a sleek elongated hull designed for sailing." + ], + "scoreboard": [ + "Scoreboards display numbers or text on a flat panel often with bright colors and large fonts unlike most objects which are three-dimensional.", + "Scoreboards have large bold numbers bright colors and clear segmented displays for easy visibility and quick recognition from a distance.", + "Scoreboards are large flat panels with grids of numbers or letters often brightly lit and mounted high in stadiums or arenas.", + "Scoreboards uniquely display changing numbers or letters to show live game scores or information in a large visible format." + ], + "CRT monitor": [ + "A CRT monitor is a bulky boxy screen with a curved glass front and deep back, often black or beige.", + "CRT monitors are bulky with a large curved glass screen and thick backs unlike slim flat modern screens or other household objects.", + "CRT monitors have a bulky, boxy shape with a curved glass screen and a thick back containing the cathode ray tube.", + "A CRT monitor has a large, boxy shape with a curved or flat glass screen and a thick backside containing the cathode ray tube." + ], + "screw": [ + "Screws have a threaded cylindrical metal body with a slotted or shaped head for turning with a tool.", + "A screw is a small metal rod with a helical thread and a slotted or recessed head for turning with a tool.", + "Screws have a threaded cylindrical shaft and a slotted or shaped head, unlike nails which are smooth and bolts which have nuts.", + "Screws can be identified by their threaded cylindrical shaft and slotted or Phillips head for turning with a tool." + ], + "screwdriver": [ + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle often made of plastic or rubber.", + "A screwdriver has a long narrow metal shaft and a handle often with a distinct shape for gripping and turning screws.", + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle, unlike most tools or objects.", + "A screwdriver has a long narrow metal shaft ending in a flat or cross-shaped tip for turning screws." + ], + "seat belt": [ + "Seat belts are long flat straps with buckles while other objects vary widely in shape texture and function.", + "Seat belts are long flat straps with a buckle, usually made of fabric or metal, found in vehicles across seats.", + "A seat belt is a long narrow strap with a buckle designed to secure passengers in vehicles for safety.", + "Seat belts are long flat straps with buckles typically seen across car seats securing passengers with distinctive metal clasps." + ], + "sewing machine": [ + "A sewing machine is a compact device with a needle, thread spool, and foot pedal, often housed in a metal or plastic frame.", + "A sewing machine has a flat base, a raised arm with a needle, thread spool, and often a foot pedal or electric controls.", + "A sewing machine has a needle, thread spool, and foot pedal, while other objects lack these specific parts for stitching fabric.", + "A sewing machine has a needle, thread spool, foot pedal, and flat base with a distinctive mechanical arm for stitching fabric." + ], + "shield": [ + "A shield is typically a flat, broad piece of armor held for protection, often round or rectangular with a handle.", + "A shield is typically flat, broad, and often round or rectangular with a handle or straps on the back.", + "Shields are flat, often round or rectangular, with handles on the back and sometimes decorative patterns or emblems on the front.", + "Shields are typically flat, round or rectangular, with handles and often feature bold patterns or emblems for easy identification." + ], + "shoe store": [ + "A shoe store displays multiple shoes neatly arranged on shelves or racks unlike single shoes or other unrelated items.", + "A shoe store is a retail space filled with shelves and displays of various footwear styles arranged neatly for customers to browse.", + "A shoe store typically has rows of shelves displaying various shoes and often a seating area for trying them on.", + "Rows of shoes displayed on shelves or racks for customers to browse and try on." + ], + "shoji screen / room divider": [ + "Shoji screens and room dividers are typically lightweight, translucent, and framed with thin wooden grids, unlike solid or opaque furniture pieces.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, often rectangular and divided into grid-like sections.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, used as a room divider or sliding door.", + "Shoji screens are lightweight sliding panels with wooden frames and translucent paper panels arranged in a grid pattern." + ], + "shopping basket": [ + "A shopping basket is a handheld container with an open top and handle, typically made of woven materials or plastic.", + "Shopping baskets are typically open, lightweight containers with handles, made of wire or plastic, designed for carrying items while shopping.", + "A shopping basket is typically a lightweight, open container with handles, often made of wire or plastic, used for carrying items while shopping.", + "A shopping basket has an open-top woven or plastic structure designed for carrying items while shopping." + ], + "shopping cart": [ + "A shopping cart is a metal or plastic basket on wheels with a handle for holding items while shopping in stores.", + "Shopping carts have a large wire basket on wheels with a handlebar for pushing, unlike most objects which are solid and stationary.", + "Shopping carts have a metal wire frame with a large basket, four wheels, and a handlebar for pushing.", + "A shopping cart has a metal wire frame, four wheels, a large basket, and a handlebar for pushing." + ], + "shovel": [ + "A shovel has a long handle and a flat, broad blade used for digging or moving loose materials like dirt or snow.", + "A shovel has a long handle and a flat wide blade often curved or pointed for digging or lifting materials.", + "A shovel has a long handle and a flat or curved metal blade used for digging or moving loose materials.", + "A shovel has a long handle with a wide flat metal blade at the end for digging or lifting materials." + ], + "shower cap": [ + "A shower cap is a flexible, waterproof head covering with an elastic edge, unlike hats or scarves which are not waterproof or elastic.", + "A shower cap is a flexible waterproof dome that fits snugly over the head with elastic edges to keep hair dry.", + "A shower cap is a flexible waterproof hat that covers the hair, often made of plastic or elastic material, typically round and smooth.", + "A shower cap has a stretchable elastic rim designed to tightly cover hair and keep it dry during showers." + ], + "shower curtain": [ + "A shower curtain is a waterproof fabric or plastic sheet hanging from a rod to enclose a bathtub or shower area.", + "Shower curtains are typically made of waterproof fabric or plastic and hang from a rod to enclose a bathtub or shower area.", + "A shower curtain is a large rectangular fabric or plastic sheet hanging from a rod, often with colorful patterns or waterproof material.", + "Shower curtains are typically rectangular, made of waterproof fabric or plastic, often have patterns or prints, and hang from rings on a rod." + ], + "ski": [ + "Skis are long, narrow, flat, and often have curved tips and bindings, unlike most objects which are shorter or differently shaped.", + "Skis are long narrow flat boards with upturned tips, typically paired and used for gliding over snow.", + "Skis are long narrow flat boards with pointed tips and bindings, usually seen in snowy environments or with winter sports gear.", + "Skis are long narrow flat boards with upturned tips, often seen with bindings and used on snow for gliding." + ], + "balaclava ski mask": [ + "A balaclava ski mask is a tight-fitting cloth covering the head, neck, and often the face, leaving only the eyes or eyes and mouth exposed.", + "A balaclava ski mask fully covers the head and neck with openings for eyes and mouth, unlike hats or scarves.", + "A balaclava ski mask is a tight-fitting cloth headgear covering the head and face with openings for eyes and mouth.", + "A balaclava ski mask covers the entire head except for the eyes and sometimes the mouth, distinguishing it from other headwear." + ], + "sleeping bag": [ + "Sleeping bags are long padded fabric tubes with zippers designed to fully enclose a person lying down for warmth and comfort.", + "Sleeping bags are long padded fabric tubes with zippers and hoods designed for sleeping often in bright colors or patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper designed for sleeping outdoors often in bright colors or camouflage patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper often in bright colors and designed for one person to sleep inside." + ], + "slide rule": [ + "A slide rule is a long narrow ruler with sliding middle part marked with logarithmic scales for calculations.", + "A slide rule is a long narrow ruler with sliding middle parts marked with logarithmic scales for calculations.", + "A slide rule has numbered logarithmic scales on sliding parts while similar objects lack these precise measurement markings.", + "A slide rule has multiple parallel logarithmic scales that slide against each other for calculations." + ], + "sliding door": [ + "Sliding doors have a long horizontal panel that moves along a track without swinging open like traditional doors.", + "Sliding doors have long flat panels that move horizontally on tracks unlike hinged doors which swing open vertically.", + "Sliding doors are flat rectangular panels with handles that slide horizontally along a track embedded in the wall or frame.", + "A sliding door is a large rectangular panel that moves horizontally on a track to open and close an entrance." + ], + "slot machine": [ + "Slot machines have flashy lights, reels, and buttons, unlike most objects which lack these gaming-specific features.", + "A slot machine is a colorful upright device with reels, buttons, and a lever, often found in casinos.", + "Slot machines have colorful reels with symbols, a lever or button panel, and a payout tray at the bottom.", + "A slot machine has a colorful cabinet with reels, buttons, a lever, and often flashing lights and a coin slot." + ], + "snorkel": [ + "A snorkel is a curved tube with a mouthpiece used for breathing while swimming face down in water.", + "A snorkel is recognized by its curved tube with a mouthpiece for breathing underwater while keeping the face submerged.", + "A snorkel is a curved tube with a mouthpiece for breathing while swimming unlike other objects which lack this specific design.", + "A snorkel is a curved tube with a mouthpiece, often bright colored, used for breathing underwater while keeping the face submerged." + ], + "snowmobile": [ + "A snowmobile is a motorized vehicle with skis at the front and a continuous track at the back for traveling over snow.", + "A snowmobile has a long tracked rear tread and front skis for moving over snow.", + "Snowmobiles have a long narrow body with skis at the front and a continuous track at the back for snow travel.", + "Snowmobiles have a long seat, handlebars, skis at the front, and a track at the back for moving over snow." + ], + "snowplow": [ + "A snowplow has a large metal blade in front and is typically mounted on a truck or tractor for clearing snow.", + "A snowplow is a large vehicle with a wide metal blade in front used to clear snow from roads and pathways.", + "A snowplow has a large angled blade in front and often a cab with bright lights for clearing snow from roads.", + "A large angled blade at the front for pushing snow is unique to a snowplow." + ], + "soap dispenser": [ + "A soap dispenser is typically a plastic or glass bottle with a pump or lever to release liquid soap.", + "A soap dispenser is typically a bottle with a pump or push top often labeled and placed near sinks.", + "A soap dispenser has a pump or push mechanism on top of a bottle often labeled and designed for liquid soap.", + "Soap dispensers typically have a pump or nozzle for dispensing liquid and a container often shaped like a bottle or cylinder." + ], + "soccer ball": [ + "Soccer balls have distinctive black and white pentagon patterns while other balls are usually solid or have different designs.", + "A soccer ball is typically round with black and white pentagon or hexagon patches arranged in a distinctive pattern.", + "A soccer ball has a distinctive pattern of black and white pentagons and hexagons arranged in a spherical shape.", + "A soccer ball has a distinctive black and white hexagonal pattern with a spherical shape and uniform size." + ], + "sock": [ + "A sock is a soft, stretchy tube-shaped fabric item worn on feet, often colorful or patterned, and smaller than pants or shirts.", + "Socks are typically soft, stretchy, tubular, and often have patterns or colors, unlike rigid or solid-shaped objects.", + "Socks are soft, stretchy, tubular fabric items typically worn on feet, often with colorful patterns or plain designs.", + "Socks are typically soft, stretchy, tubular fabrics worn on feet, often with patterns, ribbing, or heel and toe shaping." + ], + "solar thermal collector": [ + "Solar thermal collectors are flat or curved panels with dark surfaces, often glass-covered, and connected to pipes for fluid circulation.", + "Solar thermal collectors are flat or tubular panels with reflective surfaces and pipes, unlike typical roofs or boxes which lack these features.", + "Solar thermal collectors have flat or curved reflective panels with tubes or channels designed to absorb and transfer heat from sunlight.", + "A solar thermal collector typically appears as a flat rectangular panel or curved tube array often mounted on rooftops or open ground." + ], + "sombrero": [ + "A sombrero has a wide brim and high pointed crown, unlike hats with smaller brims or flat tops.", + "A sombrero is a wide-brimmed, high-crowned hat often colorful and decorated commonly associated with Mexican culture.", + "A sombrero is recognized by its wide brim high pointed crown and often colorful decorative patterns.", + "A sombrero has an exceptionally wide brim that is much larger than typical hats." + ], + "soup bowl": [ + "Soup bowls are typically round deep dishes with high sides designed to hold liquid meals unlike plates or shallow bowls.", + "A soup bowl is typically round, deep, and has a wide opening with a flat base, often made of ceramic or porcelain.", + "A soup bowl is typically round deep and wide with a rim often made of ceramic or porcelain and holds liquid food.", + "A soup bowl is a deep round dish with a wide opening and often has handles or a rim for holding hot liquids." + ], + "keyboard space bar": [ + "The keyboard space bar is a long narrow rectangular key typically wider than other keys on a keyboard.", + "The keyboard space bar is a long flat rectangular key while other objects vary widely in shape size and texture.", + "The keyboard space bar is a long rectangular key typically wider than other keys and often blank or labeled with space.", + "The keyboard space bar is a long rectangular key often centered at the bottom with a smooth flat surface." + ], + "space heater": [ + "A space heater is a small, boxy or cylindrical device with vents or coils, often on wheels or with a handle.", + "Space heaters are compact, often boxy or cylindrical, with visible heating elements or grilles and sometimes a fan for air circulation.", + "Space heaters are typically compact, boxy, or cylindrical with visible heating elements or grilles, unlike most household objects.", + "Space heaters are typically small boxy or cylindrical devices with grilles or vents and often have visible heating elements or coils inside." + ], + "space shuttle": [ + "A space shuttle is a large winged spacecraft with a cylindrical body, rocket boosters, and external fuel tanks.", + "A space shuttle has wings and a large cylindrical fuel tank unlike rockets which are long and thin without wings.", + "A space shuttle has a white body with black wing edges and a large external fuel tank with two solid rocket boosters.", + "The space shuttle has a distinct winged shape with attached external fuel tanks and solid rocket boosters during launch." + ], + "spatula": [ + "A spatula is a flat thin utensil with a broad blade and a handle used for lifting or flipping food.", + "A spatula has a flat wide blade and a long handle unlike spoons or knives which are curved or sharp.", + "A spatula has a flat wide blade with a long handle used for lifting or flipping food making it easily recognizable.", + "A spatula has a flat wide blade with a thin edge for lifting or flipping food." + ], + "motorboat": [ + "A motorboat is a sleek, streamlined watercraft with an engine, propeller, and often a pointed bow for cutting through waves.", + "Motorboats have a streamlined hull, an outboard or inboard motor, and often a windshield or seating area on a small watercraft.", + "Motorboats are long with a pointed front, an open or enclosed cabin, and an outboard motor at the rear.", + "Motorboats are sleek, elongated watercraft with an engine at the rear, often featuring a pointed bow and seating area." + ], + "spider web": [ + "A spider web is a delicate, intricate network of thin, silky threads woven in circular or irregular patterns to catch prey.", + "Spider webs are thin silky threads forming delicate tangled or symmetrical patterns often found in corners or between objects.", + "Spider webs have delicate, intricate, silky threads forming patterns, unlike solid or dense objects like leaves or rocks.", + "Spider webs have delicate, symmetrical, silky threads forming intricate radial or spiral patterns often seen between surfaces like trees or corners." + ], + "spindle": [ + "A spindle is a slender, rod-shaped tool typically tapered at both ends, unlike broader or irregularly shaped objects.", + "A spindle is a slender rod or pin that tapers at both ends, often used for spinning or holding materials.", + "A spindle is a slender rod with tapered ends used for spinning or holding materials like thread or yarn.", + "A spindle is a slender rod with tapered ends often used for spinning or holding thread or yarn." + ], + "sports car": [ + "Sports cars are recognized by their low sleek body aggressive styling two doors and powerful engine appearance.", + "Sports cars are low sleek fast vehicles with two doors and a sporty design unlike larger or boxier everyday cars.", + "Sports cars are low sleek fast vehicles with two doors aggressive styling and often bright colors or shiny paint.", + "A sports car is a sleek low fast two-door vehicle with a powerful engine and aerodynamic design often brightly colored." + ], + "spotlight": [ + "A spotlight is a bright focused light beam while other objects are solid and reflect or emit light differently.", + "A spotlight is recognized by its intense focused beam of light often used to highlight or illuminate specific areas or objects.", + "A spotlight is a bright focused beam of light often seen in theaters or events highlighting specific areas or objects.", + "A spotlight is a bright, focused light with a distinct beam often mounted on a stand or attached to ceilings." + ], + "stage": [ + "A stage is typically flat, elevated, and open with clear boundaries designed for visibility and performance from all angles.", + "A stage is a raised platform used for performances, often with curtains, lights, and open space for actors or presenters.", + "A stage is uniquely defined by its elevated flat platform designed for performances and presentations.", + "Look for raised platforms with curtains, lights, and seating arranged to face the performance area." + ], + "steam locomotive": [ + "A steam locomotive is a large, heavy metal train with a smokestack, wheels, and a boiler, often black and emitting steam.", + "Steam locomotives have a large smokestack, cylindrical boiler, wheels with connecting rods, and often a tender car carrying coal or water.", + "Steam locomotives have a large boiler, smokestack, and wheels connected by rods, unlike most vehicles or machinery.", + "A steam locomotive has a large cylindrical boiler, smokestack, wheels with connecting rods, and often a tender car carrying coal or water." + ], + "through arch bridge": [ + "A through arch bridge has a distinctive arch above the deck that supports the structure while allowing clearance underneath.", + "An through arch bridge has a distinctive arch above the deck with supports connecting it to the roadway below.", + "A through arch bridge has a distinctive design where the deck passes between two large arch supports rising above it.", + "A through arch bridge has a distinctive design with the arch above the deck and supporting cables or beams visible below it." + ], + "steel drum": [ + "Steel drums have a shiny cylindrical metal body with a concave top and distinct ridges for tuning.", + "A steel drum is a shiny cylindrical metal container with a flat top and bottom, often ribbed or grooved for strength.", + "A steel drum has a shiny metallic cylindrical shape with concave surfaces, unlike most objects which are flat or irregularly shaped.", + "A steel drum is a large cylindrical metal container with a flat top and bottom, often used for storing liquids or goods." + ], + "stethoscope": [ + "A stethoscope has a long flexible tube with a chest piece and earpieces unlike most medical tools which are rigid or handheld.", + "A stethoscope is a long flexible tube with earpieces and a small round chest piece used for listening to body sounds.", + "A stethoscope has a distinctive Y-shaped tube with dual earpieces and a chest piece for listening to body sounds.", + "A stethoscope has a Y-shaped tube with earpieces and a round chest piece often made of metal and rubber." + ], + "scarf": [ + "Scarves are long and flexible fabric pieces worn around the neck unlike other clothing items which are rigid or shaped differently.", + "A scarf is a long flexible fabric piece often wrapped around the neck with patterns or fringes for warmth or style.", + "A scarf is a long, narrow piece of fabric worn around the neck for warmth or style, often colorful or patterned.", + "Scarves are long, thin, flexible fabrics often wrapped around the neck or head with varied patterns and textures." + ], + "stone wall": [ + "A stone wall is identified by its rough, uneven surface made of stacked or fitted natural stones, often gray or brown.", + "Stone walls are rough, uneven, and made of stacked or cemented rocks unlike smoother, uniform materials like wood or brick walls.", + "A stone wall is a sturdy, rough-textured barrier made of stacked or mortared rocks, often gray or brown, commonly found in rural or historic settings.", + "Stone walls are recognized by their rough uneven texture stacked rock layers and natural earthy colors." + ], + "stopwatch": [ + "A stopwatch is a small handheld device with a digital or analog display, buttons, and a strap for timing events precisely.", + "A stopwatch has a round face with buttons on top and a digital or analog display for timing unlike clocks or phones.", + "A stopwatch has a round face with numbered dials, buttons for timing functions, and often a wrist strap or stand.", + "A stopwatch has a round face with numbers, buttons on top, and a strap or stand for holding or propping it up." + ], + "stove": [ + "A stove has a flat cooking surface with burners or heating elements and control knobs or buttons for temperature adjustment.", + "A stove is a kitchen appliance with a flat cooking surface and burners or heating elements, often made of metal and glass.", + "A stove typically has a flat cooking surface with burners or heating elements and control knobs on the front or top.", + "A stove has burners or heating elements on a flat surface specifically designed for cooking food." + ], + "strainer": [ + "A strainer has a mesh or perforated surface with small holes for filtering liquids while keeping solids inside.", + "A strainer has a mesh or perforated surface to filter liquids, unlike solid bowls or spoons that lack holes.", + "A strainer has a mesh or perforated surface allowing liquids to pass while retaining solids inside.", + "A strainer has a mesh or perforated surface with holes to filter liquids while keeping solids inside, often with a handle." + ], + "tram": [ + "Trams are long rail vehicles with multiple connected carriages running on fixed tracks in urban areas.", + "Trams are long boxy vehicles with multiple windows running on fixed rails often seen in urban streets.", + "A tram is a rail vehicle that runs on city streets, resembling a bus but longer and connected to overhead electric wires.", + "Trams are long narrow vehicles with multiple connected sections running on fixed tracks unlike buses or cars." + ], + "stretcher": [ + "A stretcher has a long flat frame with handles and often fabric or straps for carrying injured or immobile people.", + "A stretcher is a long flat frame with handles used for carrying injured or sick people, resembling a portable bed.", + "A stretcher is a long flat frame with handles used for carrying people, unlike similar objects which are usually rigid or lack handles.", + "A stretcher is a long flat frame with handles used for carrying the sick or injured, typically made of canvas and metal poles." + ], + "couch": [ + "Couches are long padded seats with a backrest and often armrests designed for multiple people to sit on comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit on comfortably.", + "A couch is a long padded seat for multiple people with a backrest, unlike chairs or stools which are smaller and often lack padding." + ], + "stupa": [ + "A stupa is a dome-shaped Buddhist shrine with a spire, distinct from other objects by its religious and architectural design.", + "A stupa is a dome-shaped Buddhist shrine with a pointed top, often decorated and surrounded by intricate carvings or gates.", + "A stupa is a dome-shaped Buddhist shrine with a pointed spire often decorated with intricate carvings and surrounded by a fence.", + "A stupa is recognized by its dome-shaped structure often topped with a spire and surrounded by decorative gates or railings." + ], + "submarine": [ + "A submarine is long and tubular with a pointed front, smooth hull, and often has a conning tower or periscope on top.", + "Submarines are long cylindrical vessels with a conning tower and propellers, unlike most objects which have varied irregular shapes.", + "A submarine has a distinctive elongated cylindrical hull with a conning tower and often visible propellers or fins.", + "Submarines are long cylindrical vessels with a conning tower, smooth hull, and often visible propellers or fins underwater." + ], + "suit": [ + "A suit is a formal garment with a jacket and matching trousers or skirt, typically made of smooth, tailored fabric in solid colors.", + "A suit is a formal set of matching jacket and trousers or skirt made from fine fabric, often worn for professional or elegant occasions.", + "A suit is a formal outfit with matching jacket and trousers, often in dark colors, unlike casual or sporty clothing.", + "A suit is uniquely identified by its tailored jacket and matching trousers or skirt in formal fabric." + ], + "sundial": [ + "A sundial is a flat or curved surface with marked lines and a raised pointer that casts shadows to show time.", + "A sundial has a flat or curved surface with marked hours and a gnomon that casts a shadow to tell time.", + "A sundial has a flat dial with marked hours and a raised gnomon that casts a shadow to indicate time.", + "A sundial has a flat surface with marked hours and a raised gnomon that casts a shadow to show time." + ], + "sunglasses": [ + "Sunglasses are recognized by their dark tinted lenses and frames that cover the eyes and often the sides of the face.", + "Sunglasses are identified by their dark lenses, thin frames, and symmetrical shape often worn over the eyes.", + "Sunglasses are dark or tinted eyewear with two lenses and frames designed to protect eyes from sunlight.", + "Sunglasses have dark tinted lenses and frames designed to cover eyes while other objects lack these specific eye-covering features." + ], + "sunscreen": [ + "Sunscreen typically appears as a small tube or bottle with bright colors and labels mentioning SPF or sun protection.", + "Sunscreen often has a distinctive bright white or colored thick creamy texture in a tube or bottle with sun protection labels.", + "Sunscreen typically appears as small bottles or tubes with bright labels often found near beach or skincare products.", + "Sunscreen is recognized by its tube or bottle shape, bright colors, and labels with sun or SPF symbols." + ], + "suspension bridge": [ + "Suspension bridges have long spans with tall towers and cables hanging in curves supporting the roadway below.", + "Suspension bridges have long spans with tall towers and cables supporting the roadway below.", + "Suspension bridges have tall towers, long main cables, and a hanging deck, unlike other bridges or objects which lack these features.", + "Suspension bridges have long main spans hanging from vertical cables anchored to massive towers and supported by thick main cables." + ], + "mop": [ + "A mop has a long handle with absorbent strands or a sponge at the bottom unlike brooms or brushes which have stiff bristles.", + "A mop has a long handle with a bundle of absorbent strands or a sponge at the bottom for cleaning floors.", + "A mop has long strands or fibers attached to a handle designed for soaking up and wiping liquids.", + "A mop typically has a long handle with a bundle of absorbent strings or sponge at the bottom for cleaning floors." + ], + "sweatshirt": [ + "Sweatshirts are recognized by their soft fabric, long sleeves, ribbed cuffs, and often a hood or front pocket.", + "A sweatshirt is a soft, loose, long-sleeved pullover typically made of thick cotton fabric, often with a hood and ribbed cuffs.", + "Sweatshirts are typically soft, thick, and have a loose fit with long sleeves, often featuring a hood or a crewneck design.", + "A sweatshirt is a soft, thick, collarless pullover with long sleeves, often made of cotton and sometimes featuring a hood or front pocket." + ], + "swim trunks / shorts": [ + "Swim trunks are short quick-drying fabric garments with elastic waistbands often featuring bright colors or patterns.", + "Swim trunks are short loose-fitting quick-drying pants designed for swimming often in bright colors or patterns with elastic waistbands.", + "Swim trunks are lightweight quick-drying shorts with bright colors patterns elastic waistbands and often a mesh lining for swimming.", + "Swim trunks are lightweight quick-drying shorts with vibrant patterns and mesh linings designed for water activities unlike regular shorts." + ], + "swing": [ + "Look for a hanging or suspended part that moves freely back and forth or side to side when pushed or pulled.", + "A swing has a seat suspended by ropes or chains from a frame allowing back and forth motion.", + "A swing typically has a seat suspended by ropes or chains from a frame, allowing it to move back and forth freely.", + "A swing has a hanging seat suspended by ropes or chains that moves back and forth when pushed." + ], + "electrical switch": [ + "An electrical switch is a small rectangular device with a toggle or button, often mounted on walls to control power.", + "Electrical switches are small rectangular or square devices with buttons or toggles, often mounted on walls with visible screws.", + "Electrical switches are small rectangular devices with a toggle or button, often mounted on walls, featuring visible on-off markings or positions.", + "The unique visual cue for an electrical switch is a small rectangular plate with a toggle or rocker mechanism." + ], + "syringe": [ + "A syringe has a narrow tube with a plunger and needle, unlike most objects which are bulkier and lack these precise medical features.", + "A syringe is a slender tube with a plunger and a needle tip used for injecting or withdrawing fluids.", + "A syringe is a slender tube with a plunger and needle used for injecting or withdrawing fluids from the body.", + "A syringe has a hollow needle attached to a cylindrical tube with a plunger for injecting or withdrawing fluids." + ], + "table lamp": [ + "A table lamp is a small lighting fixture with a base, stem, and shade designed to sit on tables or desks.", + "A table lamp is a small light fixture with a base, stem, and shade, often placed on desks or bedside tables.", + "A table lamp has a base, a stem, and a shade designed to direct light upward or downward from a flat surface.", + "Table lamps have a base, a stem, and a shade, often with a bulb inside, making them distinct from other household objects." + ], + "tank": [ + "Tanks have long barrels, heavy armor, and treads unlike trucks or cars which have wheels and lighter frames.", + "A tank is a large armored military vehicle with tracks, a long gun barrel, and a heavy, boxy metal body.", + "A tank has a long gun barrel, armored tracks, a large rectangular body, and often a turret on top.", + "A tank is a large armored military vehicle with tracks, a rotating turret, and a long gun barrel for firing shells." + ], + "tape player": [ + "A tape player is a rectangular device with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player typically has a rectangular shape with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player has a rectangular shape with buttons, a cassette slot, and often a handle or speakers for easy recognition.", + "A tape player has a rectangular slot for inserting cassette tapes with visible reels inside." + ], + "teapot": [ + "A teapot is a small pot with a handle, spout, and lid, typically made of ceramic or metal, used for brewing tea.", + "A teapot has a rounded body, a spout, a handle, and a lid, distinguishing it from other containers like cups or pitchers.", + "A teapot has a rounded body, a spout for pouring, a handle for holding, and a lid on top.", + "Teapots typically have a spout handle and lid while similar objects like kettles or pitchers may lack one or more of these features." + ], + "teddy bear": [ + "A teddy bear is a soft, plush toy with a round body, small limbs, and a friendly face, often brown or pastel-colored.", + "Teddy bears have soft fuzzy fabric, round ears, stubby limbs, a plump body, and a friendly face with small eyes and nose.", + "Teddy bears are soft plush toys with round shapes, small ears, button eyes, and a friendly face resembling a bear.", + "Teddy bears are soft plush toys with round shapes and friendly faces, unlike hard or angular objects like furniture or tools." + ], + "television": [ + "A television is a rectangular screen with a thin frame, often mounted on a stand or wall, displaying moving images and sound.", + "A television is a flat rectangular screen with a thin frame often mounted on a stand or hung on a wall.", + "Televisions have flat rectangular screens with thin bezels and often a stand or wall mount unlike most other objects.", + "Televisions have a large rectangular screen with a thin frame often mounted on a stand or hung on a wall." + ], + "tennis ball": [ + "A tennis ball is bright yellow-green, fuzzy, and uniformly round with a visible seam, unlike most other balls.", + "A tennis ball has a bright yellow-green color with a fuzzy texture and distinctive white curved lines.", + "A tennis ball is bright yellow-green with a fuzzy texture and distinctive white curved lines forming a seam.", + "A tennis ball is bright yellow-green, fuzzy, small, round, and has a distinct white curved line seam." + ], + "thatched roof": [ + "A thatched roof has a rough, textured surface made of dried straw or reeds, unlike smoother or solid materials like tiles or metal.", + "Thatched roofs have a thick, rough texture with uneven, overlapping straw or reeds creating a distinctive natural and rustic appearance.", + "A thatched roof is a rustic, textured roof made of dried straw or reeds, often appearing golden and uneven compared to smoother modern roofs.", + "A thatched roof has a distinctive thick layered texture made of dry vegetation like straw or reeds tightly bundled together." + ], + "front curtain": [ + "Front curtains are typically made of fabric, hang vertically, and often cover windows or doorways unlike other objects which vary widely in material and purpose.", + "A front curtain is a fabric panel that hangs at the window's top edge, often decorative and used for privacy or light control.", + "Front curtains are long fabric panels that hang vertically often with pleats and are typically found framing windows or stages.", + "Look for a decorative fabric panel hanging at the top of a window often with folds and a gathered or pleated design." + ], + "thimble": [ + "A thimble is a small metal or plastic cap worn on the finger, unlike most objects which are larger and not finger-sized.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble has a small, deep cup shape with dimpled texture specifically designed to fit on a fingertip for sewing." + ], + "threshing machine": [ + "A threshing machine has rotating drums or beaters that separate grain from stalks, a feature distinct to agricultural processing equipment.", + "A threshing machine has a large, boxy frame with rotating drums or beaters to separate grain from stalks and often has a funnel-shaped intake.", + "A threshing machine is larger, has a complex mechanical structure with belts and gears, and often includes a conveyor or hopper.", + "A threshing machine is a large farm device with belts, wheels, and a hopper for separating grain from stalks." + ], + "throne": [ + "A throne is a large ornate chair often elevated with intricate designs symbolizing power and authority for royalty or leaders.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority or royalty.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority unlike simpler regular chairs.", + "A throne is recognized by its ornate high back, armrests, elevated seat, and regal decorations symbolizing authority and power." + ], + "tile roof": [ + "A tile roof is a sloped roof covered with overlapping curved or flat tiles, typically made of clay or concrete.", + "Tile roofs have overlapping rows of flat or curved clay or concrete pieces arranged in a distinctive repeating pattern.", + "Tile roofs have overlapping rows of flat rectangular tiles with visible edges and a slightly wavy or uniform pattern.", + "Tile roofs have overlapping curved or flat rectangular tiles arranged in rows creating a distinctive textured and layered surface pattern." + ], + "toaster": [ + "A toaster is a small rectangular kitchen appliance with slots on top to insert bread and a lever to lower it.", + "A toaster is a small boxy appliance with slots on top for bread and a lever to lower and raise the slices.", + "A toaster has a rectangular metal body with slots for bread and a lever to lower and raise slices for toasting.", + "A toaster is a small box with slots for bread and a lever, unlike other kitchen appliances which have different shapes and functions." + ], + "tobacco shop": [ + "Tobacco shops often display cigars, pipes, cigarette packs, and signage with tobacco brands in their windows or on shelves.", + "Tobacco shops are recognized by shelves of cigarette packs, cigars, rolling papers, and often a counter with a cash register.", + "Tobacco shops typically display cigarettes, cigars, and pipes in glass cases with branded logos and colorful packaging unlike other stores.", + "A tobacco shop typically features shelves of cigarettes, cigars, pipes, lighters, and often a counter with a cash register." + ], + "toilet seat": [ + "A toilet seat is an oval or round openable lid with a smooth surface and a hinge, typically found above a toilet bowl.", + "A toilet seat is typically oval or round, smooth, white or light-colored, and attached to a toilet bowl.", + "A toilet seat is a curved oval or round shape with a hinge, typically white or light-colored, designed to fit over a toilet bowl.", + "A toilet seat is a curved, often white or beige, oval or round ring attached to a toilet bowl for sitting." + ], + "torch": [ + "A torch is a handheld light source with a long narrow body and a bright flame or bulb at one end.", + "A torch is recognized by its elongated shape, flame or light source at one end, and often a handle or grip.", + "A torch is a handheld light source with a flame or bulb, while other objects vary widely in shape, function, and lack a light-emitting feature.", + "A torch is a handheld light source with a flame or bright bulb, often cylindrical and distinct among objects for its glowing tip." + ], + "totem pole": [ + "Totem poles are tall wooden carvings with stacked faces or figures, unlike shorter plain poles or single sculptures.", + "Totem poles are tall wooden carvings with stacked faces or figures, often brightly painted and featuring symbolic animal or human designs.", + "Totem poles are tall wooden carvings with stacked symbolic figures and faces often painted in bold colors.", + "A totem pole is a tall wooden carving with stacked animal and human figures, often painted in bright colors." + ], + "tow truck": [ + "Tow trucks have a large hook or winch on the back and often a sloped bed for lifting vehicles.", + "A tow truck is a large vehicle with a boom or flatbed used to lift and transport disabled or illegally parked cars.", + "A tow truck has a large metal boom or flatbed for lifting vehicles, unlike regular trucks which lack these towing features.", + "A tow truck has a large extended metal boom with a hook or winch at the end for lifting vehicles." + ], + "toy store": [ + "Toy stores are recognized by shelves filled with colorful toys, playful displays, and often a mix of stuffed animals and action figures.", + "Toy stores are filled with colorful shelves displaying various small playful items like dolls, games, and toys in a bright inviting setup.", + "A toy store is filled with colorful shelves displaying various toys like dolls, action figures, board games, and stuffed animals.", + "A toy store is colorful with shelves full of small bright toys like dolls cars and stuffed animals arranged neatly." + ], + "tractor": [ + "Tractors have large wheels, a heavy metal frame, and often a front loader or plow unlike most vehicles or machinery.", + "A tractor is a large, heavy vehicle with big rear wheels, a small front cabin, and often a hitch or plow attachment.", + "Tractors have large rugged wheels a distinct cab and often a front loader or rear hitch for heavy-duty farming tasks.", + "Tractors have large rear wheels, a small front cabin, and often a hitch or attachment at the back for farming equipment." + ], + "semi-trailer truck": [ + "A semi-trailer truck is a large vehicle with a tractor unit pulling a long detachable trailer for hauling freight.", + "A semi-trailer truck has a large boxy trailer attached to a powerful cab with multiple axles and no rear doors.", + "A semi-trailer truck has a large rectangular trailer attached to a cab, unlike smaller vehicles or single-unit trucks.", + "Semi-trailer trucks are recognized by their long rectangular trailers attached to a powerful cab with multiple axles and large wheels." + ], + "tray": [ + "A tray is a flat shallow container with raised edges used for carrying or holding items.", + "A tray is a flat shallow container with raised edges often rectangular or round used for carrying items.", + "A tray is a flat, shallow container with raised edges used to hold or carry items like food, dishes, or small objects.", + "A tray is typically flat with raised edges to hold items unlike plates or bowls which are deeper and cups which have handles." + ], + "trench coat": [ + "A trench coat is a long waterproof coat with a belt and deep pockets typically made from heavy fabric.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has shoulder straps and deep pockets.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has deep pockets and shoulder straps.", + "A trench coat is a long waterproof coat with a belt and deep pockets, unlike shorter or non-waterproof jackets and coats." + ], + "tricycle": [ + "A tricycle is a three-wheeled vehicle with a seat, handlebars, and pedals, typically smaller and simpler than a bicycle.", + "Tricycles have three wheels, a seat, and handlebars, distinguishing them from bicycles with two wheels or wagons without handlebars.", + "A tricycle has three wheels arranged in a stable triangular configuration unlike bicycles or other wheeled vehicles.", + "A tricycle has three wheels, a seat, handlebars, and pedals, often with a small frame and is larger than a toy but smaller than a car." + ], + "trimaran": [ + "A trimaran has three parallel hulls, unlike most boats which have one or two, making it wider and more stable in water.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls for stability and speed.", + "A trimaran has three distinct parallel hulls with a main central hull and two smaller outrigger hulls.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls on each side." + ], + "tripod": [ + "A tripod is a three-legged stand with a central mount, often used to support cameras or other equipment.", + "A tripod has three long legs extending from a central point, often with adjustable height and a mounting platform for cameras or equipment.", + "A tripod has three evenly spaced legs extending from a central point to provide stable support.", + "A tripod has three long legs and a central mount, unlike most objects which are solid or have different shapes and supports." + ], + "triumphal arch": [ + "A triumphal arch is a large freestanding stone monument with a curved or flat top, unlike buildings or bridges.", + "A triumphal arch is a large monumental structure with a curved or square top, often decorated with sculptures and inscriptions.", + "A triumphal arch is a large monumental structure with a curved or square top and often features intricate carvings and inscriptions.", + "A triumphal arch is recognized by its large arched structure, often decorated with columns and sculptures, standing as a monumental gateway." + ], + "trolleybus": [ + "Trolleybuses have dual overhead poles connecting to power lines unlike other vehicles.", + "A trolleybus looks like a bus but has two overhead poles connecting to electric wires for power unlike regular buses or trams.", + "A trolleybus looks like a large bus with overhead poles connecting to power lines for electricity.", + "A trolleybus looks like a large electric bus with overhead poles connecting to power lines for energy." + ], + "trombone": [ + "A trombone is a long brass instrument with a sliding tube and flared bell, distinct among objects for its shiny curved shape.", + "A trombone has a long slide and a flared bell, unlike most brass instruments which use valves and have fixed tubing lengths.", + "A trombone has a long sliding tube and a flared bell making it distinct from other brass instruments.", + "The trombone has a long sliding U-shaped tube that adjusts pitch by moving in and out." + ], + "hot tub": [ + "A hot tub is a large round or square water-filled tub with seats and jets often made of wood or acrylic.", + "A hot tub is a large, round or oval water-filled tub with seating, jets, and often a cover, unlike smaller or non-water containers.", + "A hot tub is recognized by its large, round or oval water-filled basin with jets, often surrounded by seating and a rim.", + "A hot tub resembles a large round or square basin filled with water, often with seats and jets, typically made of acrylic or wood." + ], + "turnstile": [ + "A turnstile is a rotating gate with horizontal arms that allows one person to pass at a time.", + "A turnstile is a rotating barrier with horizontal arms that lets people pass one at a time unlike doors or gates.", + "A turnstile is a rotating gate with horizontal bars that allows one person to pass at a time when pushed.", + "Turnstiles have rotating horizontal bars or arms that allow one person to pass at a time, often seen in entryways or transit areas." + ], + "typewriter keyboard": [ + "A typewriter keyboard is a rectangular array of raised black and white keys with letters and symbols.", + "A typewriter keyboard has rows of raised round keys with letters and symbols arranged in a rectangular metal or plastic frame.", + "A typewriter keyboard has raised rectangular keys with letters arranged in rows and a metal frame often with visible mechanical parts.", + "A typewriter keyboard has rows of raised, round keys with letters and symbols, often metallic, while other objects vary in shape and texture." + ], + "umbrella": [ + "An umbrella has a curved handle with a central pole supporting a canopy of fabric or material that opens for rain protection.", + "An umbrella is a handheld canopy with a central rod and fabric stretched over ribs to shield from rain or sun.", + "An umbrella has a curved canopy with ribs and a central pole, often with a handle, designed to shield from rain or sun.", + "A canopy of fabric or material stretched over a folding frame supported by a central pole." + ], + "unicycle": [ + "A unicycle has a single wheel with no handlebars or additional wheels unlike bicycles or other wheeled objects.", + "A unicycle is a single-wheeled vehicle with a seat and pedals, resembling a bicycle but with only one wheel.", + "A unicycle has a single wheel with a seat and pedals, lacking handlebars or extra wheels like bicycles.", + "A unicycle has a single wheel with a seat and pedals, unlike bicycles with two wheels or scooters with handlebars and a platform." + ], + "upright piano": [ + "An upright piano is a tall rectangular musical instrument with black or white keys and a vertical wooden frame.", + "An upright piano is tall and rectangular with a vertical front panel and keys, unlike shorter or differently shaped furniture and instruments.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top." + ], + "vacuum cleaner": [ + "Vacuum cleaners typically have a long hose or tube, a dust collection bag or canister, and wheels for mobility unlike most other objects.", + "Vacuum cleaners typically have a long hose, a dust collection bag or canister, wheels, and a handle for pushing or pulling.", + "A vacuum cleaner typically has a long handle, a body with a motor, and a nozzle or brush for sucking up dirt.", + "A vacuum cleaner typically has a long hose, a dust collection bag or canister, and wheels for moving around on floors." + ], + "vase": [ + "A vase is typically a tall hollow container with a narrow neck and open top often decorated and made of glass or ceramic.", + "A vase is a tall hollow container with a base and often a narrow neck used to hold flowers or as decoration.", + "A vase is typically tall with a narrow neck and open top designed to hold flowers distinguishing it from similar containers.", + "Vases are typically tall hollow containers with an open top designed to hold flowers unlike bowls or jars which are shorter and wider." + ], + "vaulted or arched ceiling": [ + "Vaulted or arched ceilings have a curved upward shape creating an open spacious interior with visible structural ribs or smooth continuous curves.", + "A vaulted or arched ceiling is a curved or domed roof structure that rises upward creating an open and spacious interior feel.", + "Look for a curved or dome-shaped top on ceilings that rise upward in a smooth arch rather than being flat.", + "Vaulted ceilings have curved upward shapes forming arches while other objects typically have flat or straight surfaces." + ], + "velvet fabric": [ + "Velvet fabric has a soft, smooth texture with a distinctive sheen that changes when brushed in different directions.", + "Velvet fabric has a soft, smooth texture with a distinctive sheen that reflects light differently than most other fabrics.", + "Velvet fabric is a soft, smooth textile with a dense, even pile that gives it a luxurious, slightly shiny appearance.", + "Velvet fabric has a soft, dense pile with a smooth, shiny surface that reflects light differently from other fabrics." + ], + "vending machine": [ + "A vending machine is a tall rectangular box with buttons, a display, and a slot to dispense items like snacks or drinks.", + "Vending machines are typically rectangular with a glass front displaying items and buttons or a keypad for selection.", + "A vending machine is a tall rectangular box with a glass front displaying items and buttons or a touchscreen for selection.", + "Vending machines are boxy with a front panel displaying products, buttons, a coin slot, and a dispensing tray at the bottom." + ], + "vestment": [ + "Vestments are distinguished by their flowing fabric, ornate designs, and ceremonial appearance often associated with religious or formal rituals.", + "Vestments are ceremonial robes or garments, often ornate and flowing, typically worn by clergy during religious services or rituals.", + "Vestments are long flowing robes with intricate designs, often in religious contexts, unlike everyday clothing or plain garments.", + "Vestments are long flowing garments often with intricate designs and rich fabrics worn by clergy during religious ceremonies." + ], + "viaduct": [ + "A viaduct is a long elevated bridge with multiple arches or spans, unlike shorter or simpler bridges or non-elevated structures.", + "A viaduct is a long elevated bridge with multiple arches or spans, typically carrying roads or railways over valleys or other obstacles.", + "A viaduct is a long elevated bridge with multiple arches or spans, often carrying roads or railways over valleys or other obstacles.", + "A viaduct is recognized by its long elevated structure with multiple arches or spans carrying roads or railways over valleys or obstacles." + ], + "violin": [ + "A violin is a wooden string instrument with an hourglass shape, a long neck, and four strings played with a bow.", + "A violin has a slender wooden body with curved sides, strings, and a neck, unlike bulkier or differently shaped objects.", + "The violin has a distinctive hourglass shape with a narrow waist and curved sides unlike most other objects.", + "A violin has a hollow wooden body with an hourglass shape, four strings, a long neck, and is played with a bow." + ], + "volleyball": [ + "A volleyball is a round white ball with black or colored panels and stitching, slightly larger than a basketball.", + "A volleyball is a spherical ball with white, hexagonal and pentagonal panels often seen in mid-air during a game.", + "Volleyballs are round with a smooth or pebbled surface and often have colorful panels or stripes unlike other sports balls.", + "A volleyball is a round white ball with black or colored panels arranged in a symmetrical pattern." + ], + "waffle iron": [ + "A waffle iron is a metal kitchen appliance with two hinged plates that create a grid pattern on cooked waffles.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create textured waffles when heated.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create waffles unlike flat pans or smooth appliances.", + "A waffle iron has a hinged metal griddle with deep square or honeycomb patterns to create the distinct waffle shape." + ], + "wall clock": [ + "A wall clock is round or square with numbers or marks and hands or a digital display on a flat surface.", + "Wall clocks are flat round or square objects with numbers and hands mounted on walls unlike other clocks or decorative items.", + "A wall clock is a round or square object with numbers and hands, hanging on a wall to show time.", + "A wall clock has a circular face with numbers or marks and moving hands to indicate time mounted on a wall." + ], + "wallet": [ + "Wallets are small flat pouches typically made of leather or fabric designed to hold money and cards unlike bulkier bags or containers.", + "A wallet is a small flat case typically made of leather or fabric used to hold money cards and personal items.", + "A wallet is a small flat rectangular pouch often made of leather or fabric with slots for cards and cash.", + "Wallets are small flat rectangular objects often made of leather or fabric with slots for cards and a foldable design." + ], + "wardrobe": [ + "A wardrobe is a tall rectangular furniture piece with doors, often wooden, used for storing clothes and other items.", + "A wardrobe is a tall wooden cabinet with doors and shelves used for storing clothes and other personal items.", + "A wardrobe is a tall freestanding closet with doors and shelves for storing clothes unlike smaller or open storage furniture.", + "A wardrobe is a tall rectangular furniture piece with doors, shelves, and often mirrors, used for storing clothes and other items." + ], + "military aircraft": [ + "Military aircraft have sleek streamlined bodies wings mounted low or high and often display camouflage or military markings like stars or roundels.", + "Military aircraft typically have sleek streamlined bodies wings and tails with camouflage or gray coloring and visible weapon mounts or insignia.", + "Military aircraft are large winged vehicles with sleek designs often featuring camouflage colors and visible weaponry or insignia.", + "Military aircraft have sleek angular designs, camouflage colors, visible weaponry, and distinct insignias for quick identification in combat scenarios." + ], + "sink": [ + "A sink is typically a basin with faucets and drains often made of porcelain metal or ceramic found in kitchens or bathrooms.", + "A sink is a basin with faucets for washing, typically made of porcelain or stainless steel, often found in kitchens or bathrooms.", + "Sinks typically have a basin and faucet, unlike other objects which lack water fixtures and drainage features.", + "A sink has a basin with a faucet and drain, often set in a countertop or wall, used for washing hands or dishes." + ], + "washing machine": [ + "Washing machines are large rectangular appliances with round doors and control panels often found in laundry rooms or kitchens.", + "Washing machines are typically large rectangular appliances with round doors and control panels unlike most other household objects.", + "A washing machine is a large rectangular appliance with a round door on the front and control buttons or dials on top.", + "A washing machine has a large round door on its front for loading clothes unlike other appliances." + ], + "water bottle": [ + "Water bottles are typically cylindrical with a cap, often transparent or colored, and have a narrow neck for drinking.", + "A water bottle is typically a tall cylindrical container with a narrow neck and cap often made of plastic or metal.", + "A water bottle is typically a cylindrical or curved container with a narrow neck and often has a cap or lid.", + "Water bottles are typically cylindrical with a cap and made of clear or colored plastic or metal, unlike other objects." + ], + "water jug": [ + "A water jug typically has a distinct handle and a spout for pouring liquids.", + "A water jug typically has a handle and a spout for pouring, unlike bottles or cups which lack one or both features.", + "A water jug is a tall container with a handle and a spout, typically made of plastic, metal, or ceramic for holding liquids.", + "A water jug typically has a handle, a spout, and a rounded body designed for pouring and holding liquids." + ], + "water tower": [ + "Water towers are tall cylindrical or spherical structures on stilts, distinct from buildings or tanks by their elevated design and large water storage capacity.", + "A water tower is a tall cylindrical or spherical structure on stilts that stores and distributes water for a community.", + "A water tower is a tall cylindrical or spherical structure on stilts holding a large tank for storing water.", + "A water tower has a large elevated tank on tall supports to store and distribute water under pressure." + ], + "whiskey jug": [ + "A whiskey jug is typically a rounded ceramic or glass container with a narrow neck, handle, and often a cork or stopper.", + "A whiskey jug is a stout ceramic or glass container with a narrow neck and handle, often brown or amber in color.", + "A whiskey jug typically has a rounded body with a narrow neck and a handle for easy pouring.", + "A whiskey jug typically has a rounded body with a narrow neck and handle, often made of ceramic or glass." + ], + "whistle": [ + "A whistle is a small metal or plastic tube with a hole to blow into and a curved end for sound.", + "A whistle has a small hole for blowing air to create sound unlike most other objects.", + "A whistle is a small tube-shaped object with a mouthpiece and holes designed to produce a high-pitched sound when blown.", + "A whistle is typically small, tubular, with a mouthpiece and holes, often metallic or plastic and easy to hold." + ], + "hair wig": [ + "Hair wigs can be identified by their uniform strands unnatural sheen and often perfect styling unlike natural hair growth.", + "Hair wigs have uniform texture synthetic or natural strands arranged densely mimicking real hair often with a visible base or cap.", + "A hair wig resembles a head of artificial hair designed to mimic natural hairstyles, often made from synthetic fibers or real hair.", + "Hair wigs mimic natural hair with strands and scalp-like bases while other objects lack these realistic hair texture and attachment features." + ], + "window screen": [ + "A window screen is a fine mesh grid, usually metal or fiberglass, stretched tightly over a frame to cover a window opening.", + "A window screen is a flat mesh panel with a fine grid pattern designed to fit inside a window frame.", + "Window screens are recognized by their fine mesh grid pattern and rectangular frames often seen in windows for ventilation and insect protection.", + "Window screens are thin mesh grids with small holes, unlike solid or transparent objects like glass or curtains." + ], + "window shade": [ + "Window shades are flat, flexible panels or rolls of fabric or material designed to cover windows, unlike rigid or solid objects.", + "A window shade is a flat, rectangular panel or roll of fabric or material that covers a window to block light.", + "A window shade is a flat, rectangular fabric or material panel that rolls or folds to cover windows.", + "Window shades are recognized by their flat, rectangular shape, often with horizontal or vertical lines, and they hang over windows to block light." + ], + "Windsor tie": [ + "A Windsor tie is a sleek narrow necktie with a symmetrical triangular knot typically made of silk or polyester.", + "A Windsor tie is a necktie with a wide triangular knot, typically symmetrical and thick, made from silk or other fine fabrics.", + "A Windsor tie is a narrow, long, and patterned fabric strip worn around the neck, unlike broader or differently shaped accessories.", + "The Windsor tie has a wide triangular knot that is symmetrical and thicker than other tie knots." + ], + "wine bottle": [ + "A wine bottle is a tall glass container with a narrow neck and often has a label and cork or screw cap.", + "Wine bottles have a tall slender shape with a narrow neck and are often labeled with colorful designs or brand logos.", + "Look for a tall glass container with a narrow neck and a label often featuring vineyard or brand details.", + "Wine bottles are typically tall and slender with a narrow neck and often have labels or colored glass unlike most other objects." + ], + "airplane wing": [ + "An airplane wing is a long flat surface with a curved top and straight edges designed to lift and stabilize the aircraft.", + "Airplane wings are long flat and tapered with smooth surfaces while other objects vary in shape texture and size.", + "Airplane wings are long flat surfaces with smooth curves attached to the fuselage often seen with flaps or engines underneath.", + "An airplane wing has a long, tapered flat surface with a curved top and straight bottom for lift." + ], + "wok": [ + "A wok is a deep round-bottomed cooking pan with high sloping sides and typically made of metal.", + "A wok has a deep round shape with high sloping sides and a small flat bottom used for stir frying.", + "A wok is a deep round-bottomed cooking pan with high sloping sides often made of metal used for stir-frying.", + "A wok has a deep round bowl with high sloping sides and a small flat bottom unlike flatter or straighter pans." + ], + "wooden spoon": [ + "A wooden spoon is a smooth, light brown utensil with a long handle and a shallow oval or round bowl.", + "Wooden spoons have a long handle and a shallow oval bowl made of smooth unfinished wood with no sharp edges.", + "A wooden spoon has a long handle and a flat oval head made of smooth light brown wood with no shiny or metallic parts.", + "Wooden spoons have a long handle and a wide shallow bowl made of smooth unfinished wood with a simple rounded or oval shape." + ], + "wool": [ + "Wool has a soft, fuzzy texture with fine, curly fibers that often appear matted or slightly shiny in natural light.", + "Wool has a soft, fuzzy texture with fine, curly fibers, unlike smoother or more rigid materials like cotton or synthetic fabrics.", + "Wool has a distinctive fuzzy and slightly tangled texture with fine, soft fibers that appear matted or slightly curly.", + "Wool looks soft, fuzzy, and slightly textured with a matte finish, often appearing in natural white or dyed colors." + ], + "split-rail fence": [ + "Split-rail fences are recognized by their horizontal wooden rails stacked in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally without nails, unlike smooth or metal fences with uniform construction.", + "A split-rail fence consists of rough wooden logs stacked horizontally in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally between upright posts, creating a simple rustic barrier." + ], + "shipwreck": [ + "Shipwrecks are broken, sunken, or partially submerged vessels with rust, barnacles, and visible damage unlike intact floating ships or boats.", + "Shipwrecks are partially submerged broken ships with rusted hulls often surrounded by debris in water.", + "A shipwreck appears as a broken, sunken vessel often covered in rust, seaweed, and sand, lying underwater or washed ashore.", + "Shipwrecks appear as broken, sunken, or rusted ship parts often covered in seaweed or coral underwater or on shores." + ], + "sailboat": [ + "A sailboat is a slender watercraft with tall masts and large fabric sails that catch the wind to propel it forward.", + "Sailboats have tall masts with sails, a hull floating on water, and are often seen in open water or marinas.", + "Sailboats have tall masts with sails and are usually on water unlike other objects which lack these features and settings.", + "Sailboats have tall masts with sails, a hull that floats on water, and are often seen in coastal or open water settings." + ], + "yurt": [ + "A yurt is a round, portable tent with a domed roof, often made of felt or fabric over a wooden frame.", + "A yurt is a round, tent-like structure with a conical roof, often made of fabric or felt over a wooden frame.", + "A yurt has a distinctive circular lattice wall structure supporting a conical roof made of felt or skins.", + "A yurt is recognized by its round shape, domed roof, and lattice walls often covered with felt or fabric." + ], + "website": [ + "Websites are digital pages with text and images displayed on screens unlike physical objects which have tangible shapes and textures.", + "Websites are recognized by their rectangular screens displaying text images and interactive elements like buttons and menus.", + "Websites appear as screens displaying text, images, and interactive elements on devices like computers, phones, or tablets.", + "Websites appear as rectangular screens displaying text images and interactive elements on digital devices like computers or phones." + ], + "comic book": [ + "Comic books are colorful flat printed pages with illustrated panels and text bubbles unlike three-dimensional everyday objects.", + "Comic books have colorful illustrated covers with bold outlines, speech bubbles, and often display superheroes or action scenes.", + "A comic book is a colorful printed booklet with illustrated panels, speech bubbles, and glossy pages featuring superheroes or stories.", + "Comic books have distinct speech bubbles and panel layouts that set them apart from other printed materials." + ], + "crossword": [ + "A crossword appears as a grid of black and white squares with numbered clues typically found in newspapers or puzzle books.", + "Crosswords are flat grids with black and white squares containing letters, unlike solid objects with varied shapes and colors.", + "Crosswords have a grid of black and white squares with letters forming intersecting words in horizontal and vertical directions.", + "Crosswords appear as grid patterns with black and white squares containing small letters arranged in intersecting horizontal and vertical lines." + ], + "traffic or street sign": [ + "Traffic or street signs are flat, often metal, with bold colors and simple symbols or text for clear visibility.", + "Traffic signs have bold colors simple shapes clear symbols and standardized designs making them easily recognizable from other objects.", + "Traffic signs are typically flat, colorful, and have bold symbols or text on a high-contrast background for easy visibility.", + "Traffic signs have bold colors simple shapes and clear symbols unlike natural or complex man made objects." + ], + "traffic light": [ + "Traffic lights are recognized by their colored circular lights arranged vertically or horizontally on rectangular or pole-mounted structures.", + "Traffic lights are distinct with their colored circular lights arranged vertically or horizontally on a rectangular or pole-mounted box.", + "Traffic lights are identified by their rectangular or circular shape, bright colors red yellow green, and mounted on poles or overhead structures.", + "Traffic lights uniquely have three vertically or horizontally stacked colored circles or rectangles signaling stop, wait, and go." + ], + "dust jacket": [ + "A dust jacket is a removable paper cover with printed designs and text, often glossy and folded around a book's spine.", + "A dust jacket is a removable paper cover with printed designs and text, unlike solid objects like books or furniture.", + "A dust jacket is a removable paper cover on a book, often colorful with designs, titles, and author names.", + "A dust jacket is a removable paper cover on a book, often colorful with text and images, protecting the hardcover beneath." + ], + "menu": [ + "A menu is typically a printed or digital list of food and drink options often found in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images, often held or placed on tables, unlike three-dimensional objects like plates or cups.", + "Menus are flat rectangular sheets with text and images often held or placed on tables in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images often held in hands or placed on tables in dining settings." + ], + "plate": [ + "A plate is flat, round or oval, usually with a raised edge, and comes in various colors and simple patterns.", + "A plate is a flat round dish typically made of ceramic or metal used for serving food.", + "Plates are flat, round, and usually smooth with a raised edge, unlike bowls which are deeper or utensils which are not flat.", + "Plates are flat, round or oval, often with raised edges and simple patterns, used for serving or displaying food." + ], + "guacamole": [ + "Guacamole is a creamy green dip made from avocados, often with visible chunks, unlike solid foods or liquids.", + "Guacamole is a creamy green dip with a slightly chunky texture often served in a bowl with visible avocado pieces.", + "Guacamole is a creamy green dip made from mashed avocados often served in a bowl with chunks of vegetables or chips.", + "Guacamole is recognized by its creamy green texture with visible chunks of avocado often mixed with lime cilantro and onions." + ], + "consomme": [ + "Consomme is a clear, golden-brown liquid, unlike thicker soups or solid foods, with no visible chunks or particles.", + "Consomme is a clear, light-colored broth with no visible solids, appearing as a thin, translucent liquid in a bowl.", + "Consomme is a clear, golden broth often served in a bowl with minimal solid ingredients.", + "Consomme is a clear, golden broth with no solids, often served in a bowl with a shallow depth and light reflection." + ], + "hot pot": [ + "Hot pot is a large metal pot with boiling broth and ingredients inside, unlike other objects which are usually solid and not cooking vessels.", + "Hot pot is recognized by a simmering pot of broth surrounded by raw ingredients like meats, vegetables, and dipping sauces.", + "Hot pot is a large metal pot filled with boiling broth surrounded by plates of raw meats and vegetables for cooking.", + "A hot pot is a large metal pot with boiling broth and visible ingredients like meat vegetables and noodles inside." + ], + "trifle": [ + "A trifle is a layered dessert with colorful sponge cake fruit custard and cream often in a clear glass dish.", + "Trifle is a layered dessert with colorful ingredients like fruit custard cream and cake visible in clear glass bowls.", + "A trifle is a colorful layered dessert with sponge cake custard fruit jelly and cream often in a glass bowl.", + "Trifle is recognized by its layered appearance with colorful sponge cake fruit custard cream and often topped with whipped cream or nuts." + ], + "ice cream": [ + "Ice cream is identified by its creamy, soft texture, bright colors, and often served in cones or cups with toppings.", + "Ice cream has a soft, creamy texture, often served in cones or cups, with colorful scoops or swirls and sometimes toppings.", + "Ice cream is a colorful, creamy dessert often served in cones or cups with various toppings and swirls.", + "Ice cream is typically smooth, creamy, and served in cones or cups, often with visible swirls or layers, unlike harder or solid objects." + ], + "popsicle": [ + "Popsicles are colorful frozen treats on sticks with smooth icy surfaces unlike fruits or desserts which are often soft or textured.", + "Popsicles are colorful rectangular or oval frozen treats on sticks with smooth icy surfaces and often fruit bits visible.", + "A popsicle is a colorful frozen treat on a stick with a smooth icy texture and various fruity or creamy flavors.", + "Popsicles are recognized by their stick handle colorful icy rectangular shape and often dripping melted edges." + ], + "baguette": [ + "A baguette is a long thin loaf of French bread with a crispy crust and soft interior.", + "A baguette is a long thin loaf of French bread with a golden brown crust and diagonal slashes on top.", + "A baguette is long, thin, and crusty with a golden-brown color, unlike shorter, softer, or differently shaped breads and objects.", + "A baguette is recognized by its long slender shape golden brown crust and distinctive diagonal slashes on the surface." + ], + "bagel": [ + "A bagel is a round bread with a hole in the center, typically golden brown with a chewy texture and smooth surface.", + "A bagel is a round bread with a dense chewy interior and a golden brown crust often topped with seeds or grains.", + "Bagels are round with a hole in the middle and have a shiny crust unlike most breads or pastries.", + "A bagel has a round shape with a hole in the center and a shiny, chewy crust often topped with seeds or grains." + ], + "pretzel": [ + "Pretzels are twisted knot-shaped baked goods with a golden-brown crust, unlike straight or round breads and snacks.", + "Pretzels are twisted knot shaped baked goods with a golden brown crust and a smooth shiny surface.", + "Pretzels have a distinctive twisted knot shape with a glossy brown surface from baking.", + "A pretzel is a twisted knot-shaped baked good with a golden brown crust and a smooth shiny surface." + ], + "cheeseburger": [ + "A cheeseburger has layered ingredients like a bun patty cheese and toppings often with melted cheese visible between the bun halves.", + "A cheeseburger has a bun, melted cheese, and visible meat patty, unlike most objects which lack these layered food components.", + "A cheeseburger is a round sandwich with a beef patty melted cheese lettuce tomato and condiments between two buns.", + "A cheeseburger has a melted cheese layer visibly oozing between a beef patty and bun, distinguishing it from other sandwiches." + ], + "hot dog": [ + "A hot dog is a long thin sausage in a soft bun often topped with mustard ketchup or relish.", + "Hot dogs are long cylindrical meat rolls with a smooth texture typically served in a split bun.", + "A hot dog is a long thin bun with a smooth sausage inside often topped with condiments like mustard or ketchup.", + "Hot dogs are long cylindrical meat pieces in a bun, distinct from similar foods by their uniform shape and smooth texture." + ], + "mashed potatoes": [ + "Mashed potatoes are soft, creamy, and lumpy with a pale white or yellow color unlike most solid or textured foods.", + "Mashed potatoes have a soft lumpy texture with a creamy white color and no distinct individual shapes.", + "Mashed potatoes have a smooth creamy texture with soft lumps and a pale white or yellowish color often served in a bowl.", + "Mashed potatoes look like a soft creamy pile with a smooth or slightly lumpy texture and a pale white or yellowish color." + ], + "cabbage": [ + "Cabbages are round leafy vegetables with tightly packed layers of thick green or purple leaves forming a dense head.", + "Cabbage is round with tightly packed thick green or purple leaves forming a dense layered head on a short stem.", + "Cabbages have round, layered green or purple leaves forming a dense head, unlike most vegetables which are smaller or less tightly packed.", + "Cabbages have round layered leaves with a dense center and a smooth waxy texture in shades of green or purple." + ], + "broccoli": [ + "Broccoli is a green vegetable with a thick stem and a bushy top made of small, tightly packed florets.", + "Broccoli has a green clustered head with small florets and a thick edible stalk unlike smoother or differently shaped vegetables.", + "Broccoli has a green tree-like shape with a thick stalk and dense clusters of small bumpy florets on top.", + "Broccoli has a unique cluster of small green florets forming a tree-like shape on thick edible stalks." + ], + "cauliflower": [ + "Cauliflower is a white, round vegetable with a bumpy, textured surface made up of many small, tightly packed florets.", + "Cauliflower is a white, round, bumpy vegetable with thick green leaves at the base.", + "Cauliflower has a white, bumpy, rounded head with green leaves at the base, unlike smoother or differently colored vegetables.", + "Cauliflower has a unique bumpy white head made of tightly packed flower buds called curds." + ], + "zucchini": [ + "Zucchini is a long green vegetable with smooth skin while similar objects vary in color shape texture or are non vegetable items.", + "A zucchini is a long green cylindrical vegetable with smooth skin and slightly tapered ends resembling a cucumber.", + "Zucchini are long green cylindrical vegetables with smooth skin and slightly tapered ends resembling cucumbers but usually larger.", + "Zucchini has a long cylindrical shape with smooth dark green skin and subtle lighter green stripes." + ], + "spaghetti squash": [ + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oblong vegetable with stringy flesh resembling spaghetti when cooked unlike other squash types.", + "Spaghetti squash has a yellow oblong shape with stringy flesh resembling spaghetti when cooked." + ], + "acorn squash": [ + "Acorn squash is small, dark green, ribbed, and oval-shaped, unlike smoother or differently colored squashes and other round fruits or vegetables.", + "Acorn squash is a small, dark green, ribbed, oval-shaped winter squash with a distinctive acorn-like shape and yellow-orange flesh inside.", + "Acorn squash has a distinctive ridged dark green skin with a teardrop shape and often a patch of orange or yellow.", + "Acorn squash is small, dark green with ridges, shaped like an acorn, and has orange-yellow flesh inside." + ], + "butternut squash": [ + "Butternut squash has a distinctive elongated pear shape with a smooth tan skin and bulbous bottom.", + "Butternut squash has a long tan neck, bulbous orange base, and smooth skin with subtle ridges.", + "Butternut squash is a long tan-colored gourd with a bulbous end and smooth skin resembling a large pear.", + "Butternut squash has a smooth tan skin, elongated pear shape, and orange flesh inside." + ], + "cucumber": [ + "A cucumber is a long green vegetable with smooth skin and tapered ends resembling a zucchini but more slender and uniform.", + "Cucumbers are long, green, cylindrical vegetables with smooth skin and tapered ends, often darker at the stem.", + "Cucumbers are long green cylindrical vegetables with smooth skin while similar objects vary in color shape texture or size.", + "Cucumbers are recognized by their long green cylindrical shape smooth skin and small bumps with tapered ends." + ], + "artichoke": [ + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, slightly spiky base.", + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, spiky base.", + "Artichokes have a round green head with layered pointed scales and a thick stem.", + "Artichokes have layered green leaves with a spiky top and a round shape unlike most vegetables which are smoother and simpler." + ], + "bell pepper": [ + "A bell pepper is a colorful, glossy, and blocky vegetable with a smooth skin and a hollow interior containing seeds.", + "Bell peppers have a glossy, smooth skin with distinct ridges and a vibrant color ranging from green to red or yellow.", + "Bell peppers are shiny, smooth, and blocky with distinct ridges, unlike most fruits which are round or irregularly shaped.", + "Bell peppers are shiny, smooth, and come in vibrant colors like green, red, or yellow with a distinct blocky shape." + ], + "cardoon": [ + "A cardoon looks like a large thistle with silvery green leaves and tall stalks resembling celery or artichoke plants.", + "Cardoon has large, spiny, silvery-green leaves and tall flower stalks, unlike most vegetables which are smaller and less prickly.", + "Cardoon has large spiny silvery green leaves and thistle like purple flowers with a tall branching stem structure.", + "Cardoon looks like a large thistle with silvery green spiky leaves and purple flowers resembling an artichoke." + ], + "mushroom": [ + "Mushrooms typically have a rounded cap atop a slender stem often found in earthy colors like brown white or tan.", + "Mushrooms have a distinct cap and stem unlike plants or animals which have leaves branches or fur and limbs.", + "Mushrooms have a distinct cap and stem shape with gills or pores underneath and often grow in clusters on organic matter.", + "Mushrooms have a distinct umbrella-shaped cap with gills or pores underneath and a stem." + ], + "Granny Smith apple": [ + "A Granny Smith apple is a bright green round fruit with a smooth shiny skin and a slightly tart crisp flesh.", + "Granny Smith apples are bright green, round, and smooth with a shiny skin, unlike other fruits which vary in color and texture.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small dimple at the base.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small size." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny seeds on their surface and green leafy tops unlike other smooth or differently shaped objects.", + "Strawberries are recognized by their bright red color small seeds on the surface and green leafy tops.", + "Strawberries are small red fruits with green leafy tops and tiny yellow seeds covering their bumpy textured surface.", + "Strawberries are small red heart-shaped fruits with tiny yellow seeds on their surface and green leafy tops." + ], + "orange": [ + "Look for round or oval shapes with bright reddish-yellow color and smooth shiny skin like a typical orange fruit.", + "Oranges are round with a bright orange peel while similar objects vary in color shape and texture.", + "The vibrant reddish-yellow hue of orange is distinct and not commonly found in other natural objects.", + "Oranges are round with bright orange skin, a slightly bumpy texture, and often have a small green stem attached." + ], + "lemon": [ + "Lemons are bright yellow oval fruits with a textured peel and a distinctive sour taste often used in cooking and beverages.", + "Lemons are bright yellow oval fruits with a smooth shiny skin and a slightly tapered shape at both ends.", + "Lemons are bright yellow oval fruits with a textured peel unlike most other fruits which vary in color shape and skin texture.", + "A lemon is a bright yellow oval fruit with a smooth or slightly textured peel and a tapered shape at both ends." + ], + "fig": [ + "Figs have a distinctive teardrop shape with a small opening at the top and a textured skin covered in fine wrinkles.", + "A fig is a soft pear-shaped fruit with smooth skin, green or purple, containing tiny edible seeds inside sweet red flesh.", + "Figs are small pear-shaped fruits with smooth or slightly wrinkled skin in shades of green purple or black and soft sweet flesh inside.", + "Figs are recognized by their teardrop shape, wrinkled purple or green skin, and soft red interior with tiny edible seeds." + ], + "pineapple": [ + "A pineapple is a large tropical fruit with a rough spiky skin and a crown of green leaves on top.", + "Pineapples have a spiky green crown, rough brown-yellow skin, and oval shape unlike most smooth round fruits.", + "Pineapples have a distinctive spiky green crown and rough diamond-patterned yellow skin unlike any other fruit or object.", + "A pineapple has a rough spiky green crown, yellow-brown scaly skin, and a cylindrical shape with a sweet juicy interior." + ], + "banana": [ + "A banana is a long curved yellow fruit with a smooth peel and soft flesh, often found in bunches.", + "Bananas are long curved yellow fruits with smooth skin unlike most objects which vary widely in shape color and texture.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects." + ], + "jackfruit": [ + "Jackfruit has a distinctive bumpy green or yellow outer skin with large spiky protrusions unlike any other fruit or object.", + "Jackfruit has a large spiky green exterior with a bumpy texture and a sweet smell when ripe.", + "Jackfruit is large, bumpy, and greenish-yellow with a spiky exterior, unlike smoother or differently shaped fruits and objects.", + "Jackfruit is large, green, and spiky with a bumpy texture, often growing directly from the tree trunk." + ], + "cherimoya (custard apple)": [ + "Cherimoya has green scaly skin with a heart shape and soft creamy flesh unlike smoother skinned or differently textured fruits.", + "The cherimoya is a green heart-shaped fruit with bumpy scaly skin and creamy white flesh inside.", + "The cherimoya has a green scaly or bumpy skin with heart-shaped form and creamy segmented flesh inside.", + "Cherimoya has green scaly skin with heart-shaped bumps and creamy white flesh with large black seeds inside." + ], + "pomegranate": [ + "A pomegranate is a round red fruit with a thick leathery skin and a crown-like calyx at the top.", + "A pomegranate is a round red fruit with a tough outer rind and clusters of juicy red seeds inside.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx unlike most other fruits.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx at the top." + ], + "hay": [ + "Hay is a dry, golden, and fibrous plant material, often bundled or loose, while other objects vary widely in texture, color, and shape.", + "Hay is a dry, golden or light brown, fibrous plant material often bundled or scattered in loose strands.", + "Hay has a light golden color and a rough, dry texture with long, thin strands often bundled or loosely scattered.", + "Hay is dry, golden or light brown, and looks like thin, tangled grass stems often bundled or stacked loosely." + ], + "carbonara": [ + "Carbonara has a creamy white sauce with pasta strands mixed with bits of meat and black pepper, unlike plainer pasta dishes.", + "Carbonara is a creamy pasta dish with white sauce, often topped with crispy bacon bits and grated cheese.", + "Carbonara is a creamy pasta dish with spaghetti eggs cheese pancetta and black pepper often topped with grated cheese.", + "Carbonara features creamy egg sauce, spaghetti, crispy pancetta or guanciale, black pepper, and grated cheese like Pecorino or Parmesan." + ], + "chocolate syrup": [ + "Chocolate syrup is a thick dark liquid with a smooth glossy texture unlike solid or powdery foods.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled over desserts.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled on foods.", + "Chocolate syrup has a thick, glossy, dark brown liquid appearance with a smooth, flowing texture that drips in viscous strands." + ], + "dough": [ + "Dough is a soft, pliable mixture of flour and liquid, often pale and slightly sticky, resembling thick paste or clay.", + "Dough is soft, pliable, and often pale or beige, unlike harder, shaped, or colored objects like bread or baked goods.", + "Dough is soft, pale, and malleable with a smooth or slightly textured surface, often shaped into lumps or flattened pieces.", + "Dough is soft, pale, and slightly lumpy with a smooth yet sticky texture often shaped into balls or flattened pieces." + ], + "meatloaf": [ + "Meatloaf is a dense, loaf-shaped cooked ground meat dish with a browned exterior, unlike other foods which vary in shape and texture.", + "Meatloaf looks like a dense, rectangular or oval-shaped loaf of ground meat, often brown with a slightly crispy outer layer.", + "Meatloaf has a distinctive textured brown crust covering a dense loaf-shaped interior made of ground meat.", + "Meatloaf looks like a dense rectangular loaf of cooked ground meat with a browned crust on top." + ], + "pizza": [ + "Pizza is recognized by its round flat shape melted cheese toppings and crust often sliced into triangular pieces.", + "Pizza is flat and round with melted cheese and toppings while other objects vary in shape texture and ingredients.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings like meats or vegetables.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings often sliced into triangular pieces." + ], + "pot pie": [ + "A pot pie is recognized by its golden-brown crust with a flaky texture covering a savory filling in a small round dish.", + "Pot pies have a golden-brown crust covering a filling, distinguishing them from similar dishes with open tops or different textures.", + "Pot pie has a golden-brown flaky crust with visible filling peeking through the top or sides.", + "A pot pie has a golden-brown flaky crust covering a deep dish filled with visible chunks of meat and vegetables." + ], + "burrito": [ + "A burrito is a cylindrical, wrapped food with a soft tortilla exterior, often filled with beans, rice, meat, and cheese.", + "A burrito is a cylindrical wrapped food with visible tortilla folds, unlike similar items which may be flat or unwrapped.", + "A burrito is recognized by its cylindrical shape wrapped in a soft tortilla with visible fillings like beans, rice, and meat.", + "A burrito is a cylindrical wrapped food with visible tortilla edges often filled with beans rice meat and cheese." + ], + "red wine": [ + "Red wine is identified by its deep red or purple color in a clear glass with a smooth liquid surface.", + "Red wine is recognized by its deep red color, glass bottle shape, and often a wine label or cork.", + "Red wine appears as a deep ruby or purple liquid in a glass often with a smooth shimmering surface.", + "Red wine is a deep red or purple liquid typically stored in glass bottles with labels, unlike solid or differently colored objects." + ], + "espresso": [ + "Espresso is a small dark brown liquid in a tiny cup with a light crema layer on top.", + "Espresso is a small dark brown liquid in a tiny cup often with creamy foam on top.", + "Espresso is recognized by its small dark liquid in a tiny cup with creamy foam on top.", + "Espresso is a small dark concentrated coffee served in tiny cups unlike larger lighter brews in bigger mugs." + ], + "tea cup": [ + "A tea cup is a small handle bowl typically made of ceramic or porcelain used for drinking hot beverages.", + "A tea cup typically has a small rounded shape with a handle, unlike mugs which are larger or bowls which lack handles.", + "A tea cup typically has a small rounded shape with a handle and a saucer often made of ceramic or porcelain.", + "A tea cup is small with a handle and a deep round bowl often decorated and made of porcelain or ceramic." + ], + "eggnog": [ + "Eggnog is a creamy, pale yellow liquid often served in glasses or bowls, distinct from solid or non-dairy items.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow or off-white liquid often served in a glass or cup, sometimes with a sprinkle of nutmeg on top." + ], + "mountain": [ + "Mountains are large natural elevations with steep rocky slopes and peaks while other objects are typically smaller and man-made or smoother.", + "Mountains are large natural elevations with steep rocky slopes and peaks often covered in snow or greenery.", + "Mountains are recognized by their large elevated landforms with steep slopes and rugged peaks often covered in snow or vegetation.", + "Mountains are large, rugged landforms with steep slopes and peaks, often covered in snow or greenery, standing tall above surrounding terrain." + ], + "bubble": [ + "Bubbles are round, transparent, and shiny with a thin, fragile surface, unlike most solid or opaque objects.", + "Bubbles are round, transparent, shiny, and often appear in clusters with reflective surfaces and slight color distortions.", + "Bubbles are small, round, transparent spheres filled with air or gas, often shiny and floating in liquid or air.", + "Bubbles are round, transparent, and shiny with smooth surfaces, often reflecting light and appearing to float or cluster together." + ], + "cliff": [ + "Cliffs are steep rock faces with rugged textures and sharp edges, unlike smoother or flatter natural or man-made objects.", + "Cliffs are steep rocky slopes with jagged edges and exposed earth often towering above water or flat land below.", + "A cliff is a steep rock face often found near coasts or mountains with rugged edges and dramatic drops.", + "Cliffs are steep rock faces with sharp vertical drops and rugged textures, often overlooking water or valleys." + ], + "coral reef": [ + "Coral reefs have vibrant colors, intricate branching or mound shapes, and diverse textures from polyps and marine life.", + "A coral reef is a vibrant underwater structure made of colorful, branching corals teeming with diverse marine life.", + "Coral reefs are colorful underwater structures with intricate textures, unlike smoother or simpler shapes of most other objects.", + "Coral reefs are colorful underwater structures with bumpy textures formed by tiny coral polyps often seen in branching or rock-like shapes." + ], + "geyser": [ + "Geysers are tall natural structures that shoot steam and water, unlike static objects like mountains or man-made fountains.", + "Geysers are recognized by their tall steam or water jets erupting from the ground often in natural landscapes.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground." + ], + "lakeshore": [ + "A lakeshore appears as a water edge meeting land, often with gentle slopes, vegetation, and sometimes rocks or sandy beaches.", + "The unique visual cue for lakeshore is the distinct transition between land and calm water with surrounding natural scenery.", + "A lakeshore has water meeting land with natural edges, often surrounded by trees, rocks, or sand, creating a distinct boundary.", + "A lakeshore is a gently sloping land with water edges, often featuring sand, rocks, or vegetation blending into the lake." + ], + "promontory": [ + "A promontory is a high point of land jutting sharply into a body of water, unlike flat shores or rounded hills.", + "A promontory is recognized by its high, steep cliff or headland jutting sharply into a body of water or land.", + "A promontory is a high point of land or rock jutting sharply outward into a body of water, often with steep cliffs.", + "A promontory is a high cliff or headland jutting into a large body of water, often rocky and steep." + ], + "sandbar": [ + "A sandbar is a long narrow sandy ridge or shoal slightly submerged or exposed in shallow water near a shore.", + "A sandbar is a long narrow strip of sandy land rising above water often found near coasts or in shallow rivers.", + "A sandbar is a long narrow strip of sandy land in water while other objects vary in shape material and location.", + "A sandbar appears as a long, narrow strip of sandy or gravelly land slightly above water in a river or along a coast." + ], + "beach": [ + "Beaches are identified by sandy shores, ocean waves, sunny skies, and people relaxing or playing near the water.", + "Beaches have wide stretches of sand or pebbles with water edges unlike other objects which are solid or have defined shapes.", + "The unique visual cue for a beach is the combination of sand and water meeting at a shoreline.", + "A beach typically features sand, waves, shorelines, and sunny skies, often with people, umbrellas, or boats nearby." + ], + "valley": [ + "A valley is recognized by its low land between hills or mountains often with a river or stream running through it.", + "A valley is a low area between hills or mountains often with a river running through it surrounded by slopes.", + "Valleys are long low areas between hills or mountains, often with a river, unlike flat plains or isolated peaks.", + "Valleys appear as long low areas between hills or mountains often with rivers or greenery running through them." + ], + "volcano": [ + "Volcanoes are large mountain-like structures with craters that often emit smoke or lava unlike regular mountains or hills.", + "A volcano is a towering mountain with a crater at the top that erupts lava ash and smoke.", + "A volcano is a mountain with a crater at the top often emitting smoke lava or ash distinguishing it from other landforms.", + "A volcano has a conical shape with a crater at the top, often emitting smoke or lava, surrounded by rugged terrain." + ], + "baseball player": [ + "Baseball players wear uniforms with caps gloves and cleats and hold bats or gloves unlike most everyday objects or animals.", + "Baseball players wear uniforms with gloves and caps while holding bats or standing on a field ready to play.", + "A baseball player wears a uniform, cap, and glove, often holding a bat or standing on a field ready to play.", + "Baseball players wear caps, jerseys, and gloves while holding bats or standing on a field with cleats and protective gear." + ], + "bridegroom": [ + "A bridegroom is a well-dressed man in formal attire, often wearing a suit or tuxedo, standing beside the bride at a wedding.", + "A bridegroom typically wears formal attire like a suit or tuxedo often with a boutonniere distinguishing him from everyday clothing.", + "A bridegroom typically wears a formal suit or tuxedo, often with a boutonniere, and stands beside a bride in wedding attire.", + "A bridegroom typically wears a formal suit or tuxedo often with a boutonniere and stands beside a bride in wedding attire." + ], + "scuba diver": [ + "Scuba divers wear full-body wetsuits, masks, fins, and oxygen tanks unlike most objects which lack such complex human gear.", + "A scuba diver wears a wetsuit, fins, mask, and oxygen tank while submerged in water.", + "Scuba divers wear distinctive masks, fins, and oxygen tanks while submerged in water, often surrounded by bubbles and marine life.", + "A scuba diver wears a distinctive mask and breathing apparatus while submerged underwater." + ], + "rapeseed": [ + "Rapeseed appears as bright yellow flowering plants with small clustered blooms and green leaves on tall slender stems.", + "Rapeseed has bright yellow flowers and small round seeds, unlike most plants which have varied colors and seed shapes.", + "Rapeseed has bright yellow clustered flowers with four petals and small round seed pods on tall green stems.", + "Rapeseed has bright yellow flowers and small round green pods growing in clusters on tall slender stems." + ], + "daisy": [ + "A daisy is a small white flower with a yellow center and thin petals radiating outward from the middle.", + "Daisies have white petals with a yellow center while similar flowers may have different colors shapes or petal arrangements.", + "Daisies have a bright yellow center surrounded by evenly spaced white petals radiating outward.", + "Daisies have white petals around a yellow center and grow on thin green stems with small narrow leaves." + ], + "yellow lady's slipper": [ + "The yellow lady's slipper is a bright yellow orchid with a large slipper-shaped pouch and twisted greenish-brown petals.", + "The yellow lady's slipper has a distinctive pouch-like petal that resembles a slipper with vibrant yellow color and often red or purple spots.", + "The yellow lady's slipper is a bright yellow orchid with a distinctive pouch-like petal and slender green leaves.", + "Yellow lady's slipper has a unique pouch-like yellow flower with twisted petals unlike most other flowers or objects." + ], + "corn": [ + "Corn is a yellow or multicolored elongated grain with a husk often found in clusters on a thick central stalk.", + "Corn has long yellow kernels in tight rows on a thick cob, unlike most other objects which lack this distinct seed arrangement.", + "Corn can be identified by its long green husks covering yellow kernels arranged in tight rows on a thick central cob.", + "Corn has long yellow kernels arranged in tight rows on a thick central cob surrounded by green husks." + ], + "acorn": [ + "An acorn is a small brown nut with a smooth cap, often found on oak trees and the forest floor.", + "Acorns are small, oval, brown nuts with a smooth or slightly rough texture and a distinctive cap, unlike larger or differently shaped seeds.", + "Acorns are small, oval nuts with a smooth, glossy cap and a pointed tip, typically brown and found on oak trees.", + "Acorns are small oval nuts with a smooth shiny brown shell and a rough textured cap on top." + ], + "rose hip": [ + "Rose hips are small round or oval fruits with a bright red or orange color and a dry wrinkled texture unlike smooth petals or leaves.", + "Rose hips are small round or oval red orange fruits with a smooth shiny surface and a dried flower remnant at the tip.", + "Rose hips are small round or oval red-orange fruits with a crown-like sepals remnant at the top.", + "Rose hips are small round or oval red to orange fruits with a crown-like dried flower remnant at the top." + ], + "horse chestnut seed": [ + "Horse chestnut seeds are large, round, shiny brown nuts with a light scar, unlike smaller or differently shaped seeds and nuts.", + "Horse chestnut seeds are recognized by their smooth, shiny brown surface with a large pale scar on one side.", + "A horse chestnut seed is a round, glossy brown nut with a large pale scar on its flat side.", + "The horse chestnut seed has a smooth, shiny brown surface with a distinct light-colored scar resembling an eye." + ], + "coral fungus": [ + "Coral fungus has branching, coral-like structures with many small, delicate, upright fingers or tubes.", + "Coral fungus has branching, coral-like structures with vibrant colors and a clustered, upright growth pattern resembling underwater coral.", + "Coral fungus looks like underwater coral with branching, colorful, and delicate structures but grows on land among plants and trees.", + "Coral fungus looks like underwater coral with branching, colorful, or white clusters growing on the ground or decaying wood." + ], + "agaric": [ + "Agarics are mushrooms with a cap, gills underneath, and a stem, often found in white, brown, or red colors.", + "An agaric is a mushroom with a round cap, gills underneath, and a slender stem, often white or brightly colored.", + "Agarics have a distinct umbrella-shaped cap with gills underneath and a central stem unlike most other fungi or objects.", + "Agarics have a distinctive umbrella-shaped cap with gills underneath and often grow on decaying wood or soil." + ], + "gyromitra": [ + "Gyromitra mushrooms have wrinkled, brain-like caps unlike smooth or gilled caps found on most other mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps with irregular lobes and a reddish-brown color, distinguishing them from smooth-capped mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps, often reddish-brown, and a hollow stem, distinguishing them from other fungi.", + "Gyromitra mushrooms have a distinctive wrinkled brain-like cap unlike other fungi or objects." + ], + "stinkhorn mushroom": [ + "Stinkhorn mushrooms have a phallic shape with a slimy spore mass and a strong foul odor resembling rotting meat.", + "Stinkhorn mushrooms have a distinctive phallic shape with a slimy spore mass and strong odor unlike typical mushrooms or other objects.", + "Stinkhorn mushrooms have a foul-smelling slimy spore mass and a distinctive phallic or lattice-like shape.", + "Stinkhorn mushrooms have a tall, phallic shape with a slimy, smelly tip and often a net-like veil around the base." + ], + "earth star fungus": [ + "Earth star fungi have star-like rays around a central round spore sac, unlike typical mushrooms which lack this distinctive radiating structure.", + "Earth star fungus has a star-like shape with a central round spore sac and pointed rays spreading outward from the base.", + "Earth star fungus has a star-shaped outer layer that splits open to reveal a round spore sac in the center.", + "Earth star fungus looks like a small round puffball with star-like rays spreading outward from the center." + ], + "hen of the woods mushroom": [ + "The hen of the woods mushroom has clustered brownish-gray fronds resembling a ruffled chicken with no distinct cap or stem.", + "The hen of the woods mushroom has a clustered, frilly appearance resembling a brownish-gray rosette, unlike smooth or single-capped mushrooms.", + "The hen of the woods mushroom has tightly clustered, overlapping fronds resembling a ruffled brownish-gray fan growing at tree bases.", + "The hen of the woods mushroom looks like a cluster of brownish-gray ruffled fan-shaped layers growing at the base of trees." + ], + "bolete": [ + "Boletes have thick stems, sponge-like pores underneath their caps, and lack gills unlike many other mushrooms.", + "Boletes are mushrooms with thick stems and sponge-like pores under their caps instead of gills.", + "A bolete is a mushroom with a thick stem and a spongy underside instead of gills often found in forests.", + "Boletes are recognized by their thick stems spongy undersides and lack of gills distinguishing them from other mushrooms." + ], + "corn cob": [ + "A corn cob is a long cylindrical shape with tightly packed yellow kernels, unlike most other objects which vary widely in form and texture.", + "A corn cob is a long cylindrical shape with rows of tightly packed yellow kernels and a green husk when fresh.", + "A corn cob is a long cylindrical object with rows of yellow kernels tightly packed around a central core.", + "Corn cobs have tightly packed rows of yellow kernels attached to a central cylindrical core." + ], + "toilet paper": [ + "Toilet paper is a soft white roll with a cylindrical shape and often has a perforated edge for easy tearing.", + "Toilet paper is a soft white roll with a cylindrical shape and perforated edges unlike most solid or rigid household objects.", + "Toilet paper is a white or lightly colored soft roll with a cylindrical shape and often has a perforated edge.", + "Toilet paper has a tightly rolled cylindrical shape with perforated edges for easy tearing." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetA.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetA.json new file mode 100644 index 0000000..54723a3 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetA.json @@ -0,0 +1,5990 @@ +{ + "tench": [ + "A tench is a freshwater fish with a stout olive-green body, small scales, and a slightly forked tail.", + "Tench are freshwater fish with olive green bodies, small scales, and a thick tail, often found in rivers and lakes.", + "Tench are freshwater fish with olive-green bodies, small scales, and a distinctive barbel near their mouth unlike most other objects.", + "Tench are recognized by their olive-green color, slender body, small scales, and distinctive red eyes." + ], + "goldfish": [ + "Goldfish are small, orange, shiny, and have round bodies with flowing tails, often seen swimming in bowls or ponds.", + "Goldfish are small, orange or gold, shiny, with a plump body, bulging eyes, and flowing tail fins.", + "Goldfish are small, bright orange or red fish with flowing fins, bulging eyes, and a distinct double tail fin.", + "Goldfish are small, brightly colored fish with shiny scales and flowing fins, unlike most objects which lack these aquatic features." + ], + "great white shark": [ + "A great white shark is a large sleek gray predator with a pointed snout sharp teeth and a powerful tail.", + "The great white shark has a distinct pointed snout and large triangular dorsal fin.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, and sharp triangular teeth unlike most other sea creatures.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, pointed snout, and prominent triangular dorsal fin." + ], + "tiger shark": [ + "Tiger sharks have dark vertical stripes on their sides and a blunt snout with a broad, powerful body.", + "A tiger shark has a stout body with dark vertical stripes and a blunt snout resembling a tiger's pattern.", + "Tiger sharks have dark stripes on their backs and a blunt snout unlike most other sharks or sea creatures.", + "Tiger sharks have dark stripes on their backs and sides, a blunt snout, and a large, stocky body with a white underside." + ], + "hammerhead shark": [ + "Hammerhead sharks have a unique T-shaped head with eyes on the sides unlike other sharks or sea creatures.", + "Hammerhead sharks are recognized by their unique T-shaped head with eyes on the ends and a wide flat snout.", + "A hammerhead shark has a unique T-shaped head with eyes on the ends and a grayish body with a white underside.", + "A hammerhead shark has a unique flat T-shaped head with eyes on the sides and a long streamlined gray body." + ], + "electric ray": [ + "An electric ray is a flat rounded fish with a smooth body and a long tail that can generate electric shocks.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs, unlike most fish which are more streamlined and scaly.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs on their undersides for stunning prey.", + "Electric rays have flat bodies with round shapes and visible electric organs on their undersides." + ], + "stingray": [ + "A stingray is a flat diamond-shaped sea creature with a long tail and wide fins resembling a flying underwater kite.", + "Stingrays are flat diamond-shaped sea creatures with long tails and often have a smooth or spiky skin texture.", + "Stingrays have flat diamond-shaped bodies, long tails, and often a spotted or patterned underside for easy recognition.", + "Stingrays have a flat diamond-shaped body with a long thin tail often bearing a venomous spine." + ], + "rooster": [ + "A rooster is a colorful bird with a red comb, wattles, and tail feathers, often standing upright with a proud posture.", + "Roosters have bright combs, long tail feathers, and spurs, unlike hens which are smaller and less colorful.", + "A rooster has a bright red comb and wattle on its head which distinguishes it from other birds and animals.", + "A rooster has a bright red comb on its head, a wattle under its beak, and colorful iridescent feathers." + ], + "hen": [ + "Hens are medium-sized birds with plump bodies, small heads, short beaks, and often have red combs and wattles.", + "Hens have a small head with a beak, plump body, short legs, and often display feathers in brown, white, or black colors.", + "Hens are smaller than turkeys, have shorter tails than peacocks, and lack the colorful plumage of pheasants.", + "A hen is a medium-sized bird with a plump body, short wings, a small head, and a distinctive red comb on top." + ], + "ostrich": [ + "Ostriches are large flightless birds with long necks, legs, and distinctive feathers unlike most animals or objects.", + "Ostriches are large flightless birds with long necks, long legs, and black and white feathers on males.", + "Ostriches have long necks, large eyes, feathery bodies, strong legs, and are the tallest birds with two-toed feet.", + "Ostriches have long bare necks and legs with a large round body covered in fluffy feathers." + ], + "brambling": [ + "A brambling is a small colorful finch with an orange breast black head and white belly often seen in flocks.", + "A brambling is a small bird with an orange chest, black and white wings, and a distinctive white rump patch.", + "The male brambling has a distinctive orange breast and shoulders with black head in breeding season.", + "The brambling has an orange breast, white belly, black head, and white wing patches, distinguishing it from similar birds." + ], + "goldfinch": [ + "A goldfinch is a small bright yellow bird with black wings white markings and a distinctive red face.", + "Goldfinches are recognized by their bright yellow bodies, black wings with white bars, and distinctive red faces.", + "The male goldfinch has bright yellow plumage with striking black and white wing patterns during breeding season.", + "Goldfinches have bright yellow bodies with black wings and white markings, unlike other birds which often lack such vivid color contrasts." + ], + "house finch": [ + "The house finch is a small bird with a red head and chest brown streaks on its back and a conical beak.", + "House finches have streaked brown bodies, red heads and chests on males, and conical beaks suited for eating seeds.", + "A house finch has a red head and chest on males with brown streaks and a plain brown body on females.", + "The house finch has a small body with red or yellow on its head and chest, unlike most other birds and objects." + ], + "junco": [ + "Juncos are small gray or brown birds with white bellies and pink bills, unlike larger or more colorful birds and animals.", + "Juncos are small gray or brown birds with white outer tail feathers and pinkish bills often seen on the ground.", + "A junco is a small gray or brown bird with a white belly and a pinkish beak often seen in North America.", + "Juncos are small gray or brown birds with white bellies and pink bills often seen hopping on the ground." + ], + "indigo bunting": [ + "The indigo bunting is a small bright blue bird with a conical beak and short tail, often found in shrubs or trees.", + "The indigo bunting is a small bright blue bird with a conical bill and darker blue wings and tail.", + "The indigo bunting is a small bright blue bird with a conical beak, unlike most objects which lack such vivid colors and feathers.", + "The male indigo bunting has vibrant blue plumage that appears uniformly bright without any patterns or markings." + ], + "American robin": [ + "The American robin is a medium-sized bird with a reddish-orange breast, gray back, and a white belly with dark streaks.", + "The American robin has a reddish-orange breast, gray back, and white lower belly with dark streaks on its throat.", + "The American robin has a reddish-orange breast, dark gray back, white belly, and a yellow beak.", + "The American robin has a distinctive reddish-orange breast contrasting with its grayish-brown back and white lower belly." + ], + "bulbul": [ + "Bulbuls are small songbirds with short necks, slender bodies, rounded wings, and often have colorful plumage or crests.", + "Bulbul is a small songbird with a slender body, short neck, rounded wings, and often a slightly crested head.", + "Bulbuls are small songbirds with slender bodies, short necks, and often have crests or colorful markings on their heads and tails.", + "Bulbuls are recognized by their small size, short necks, rounded wings, slightly curved beaks, and often crested heads." + ], + "jay": [ + "Jays are colorful birds with blue, white, and black feathers, a crest on their head, and a loud, harsh call.", + "Jays are colorful birds with blue feathers, crests, and white markings, unlike most objects which lack such vibrant and distinct features.", + "A jay is a colorful bird with blue feathers, a crest on its head, and a loud, distinctive call.", + "Jays have striking blue and white plumage with bold black markings and a distinctive crest on their heads." + ], + "magpie": [ + "Magpies are black and white birds with long tails and iridescent feathers that shimmer in shades of blue or green.", + "A magpie is a black and white bird with a long tail and a distinctive chattering call often seen in open areas.", + "Magpies have striking black and white plumage with long tails and iridescent blue-green wing feathers.", + "Magpies have black and white plumage with long tails and a distinctive iridescent sheen unlike most other birds." + ], + "chickadee": [ + "A chickadee is a small round bird with a black cap and bib, white cheeks, and soft gray or brown feathers.", + "Chickadees are small birds with round bodies, black caps, and white cheeks, unlike larger or differently colored birds and objects.", + "Chickadees have a distinctive black cap and bib with white cheeks and a small, round body shape.", + "Chickadees are small birds with black caps and throats, white cheeks, and gray bodies, often seen perched on branches." + ], + "American dipper": [ + "The American dipper is a small grayish-brown bird with a plump body, short tail, and white eyelids, often found near fast-flowing streams.", + "The American dipper is a small gray bird with a plump body, short tail, and white eyelids often seen near fast-flowing streams.", + "The American dipper is a small, stocky gray bird with a short tail, often seen bobbing near fast-flowing streams.", + "The American dipper is recognized by its plump gray body, short tail, and habit of bobbing while standing near fast-flowing streams." + ], + "kite (bird of prey)": [ + "A kite is a medium-sized bird of prey with long wings, a forked tail, and a graceful soaring flight pattern.", + "Look for a medium-sized bird with long pointed wings, a forked tail, and a graceful soaring flight pattern.", + "Kites have slender bodies long pointed wings and forked tails unlike broader wings and stockier builds of similar birds like hawks.", + "Kites have a distinctive forked tail that helps them maneuver gracefully in flight unlike other birds of prey." + ], + "bald eagle": [ + "A bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons.", + "The bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons for easy recognition.", + "Bald eagles have a white head and tail with a dark brown body and large yellow beak unlike most other birds.", + "The bald eagle has a distinctive white head and tail contrasting with its dark brown body." + ], + "vulture": [ + "A vulture is a large bird with a bald head, dark feathers, and a hooked beak, often seen soaring high in the sky.", + "A vulture has a bald head and neck with sharp hooked beak for scavenging.", + "Vultures have bald heads, large hooked beaks, dark feathers, and broad wings for soaring when scanning for carrion.", + "Vultures have bald heads, large hooked beaks, and dark feathers unlike other birds which often have colorful plumage and smaller beaks." + ], + "great grey owl": [ + "The great grey owl has a large round head with concentric rings on its face and a bulky grey body.", + "The great grey owl has a large round face with concentric rings, a bulky body, and no ear tufts unlike many other owls.", + "The great grey owl has a large round face with concentric rings, no ear tufts, and a bulky grey body.", + "The great grey owl is a large, round-faced bird with dark eyes, grey feathers, and a white bowtie-like pattern on its neck." + ], + "fire salamander": [ + "A fire salamander is a black lizard with bright yellow or orange spots, resembling a small, striking amphibian with smooth skin.", + "Fire salamanders have striking black bodies with bright yellow or orange irregular spots or stripes.", + "Fire salamanders are black with bright yellow or orange spots and have a long slender body and short legs.", + "Fire salamanders have black bodies with bright yellow or orange spots, unlike most creatures which are more uniformly colored or differently patterned." + ], + "smooth newt": [ + "A smooth newt is a small, slender amphibian with smooth skin, a long tail, and often greenish or brownish coloring.", + "Smooth newts have olive green skin with dark spots, orange bellies, and a distinct wavy crest in breeding males.", + "The smooth newt has a slimy, spotted skin and a distinct orange belly unlike most other objects which are dry and uniformly colored.", + "The smooth newt has a slender body, smooth skin, and orange belly with black spots, distinguishing it from other small creatures." + ], + "newt": [ + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with smooth moist skin and long tails unlike lizards which have dry scaly skin and often claws.", + "Newts have slender bodies, smooth moist skin, long tails, and often bright colors or distinct patterns for easy recognition." + ], + "spotted salamander": [ + "The spotted salamander is a black amphibian with bright yellow or orange spots covering its smooth, moist skin and long tail.", + "Spotted salamanders have shiny black bodies with bright yellow spots unlike most other salamanders which are more uniformly colored.", + "The spotted salamander has a black body with bright yellow spots arranged in irregular rows.", + "Spotted salamanders have shiny black bodies with bright yellow or orange spots arranged in irregular rows along their back and sides." + ], + "axolotl": [ + "Axolotls have feathery gills, a wide head, and a long tail, unlike most animals which lack these distinct aquatic features.", + "Axolotls are recognized by their feathery external gills, wide heads, lidless eyes, and long finned tails resembling aquatic salamanders.", + "The axolotl has distinctive feathery external gills on its head that no other object in ImageNet possesses.", + "Axolotls are pinkish with feathery gills on their heads, a long tail, and a smooth, slimy body resembling a small dragon." + ], + "American bullfrog": [ + "The American bullfrog is a large green or brown frog with a robust body, prominent eyes, and strong hind legs for jumping.", + "The American bullfrog has a large green body with prominent eardrums and a deep vocal sac under its throat.", + "The American bullfrog is larger with smoother skin and distinct ear patches compared to other frogs and similar small animals.", + "The American bullfrog has a distinctive large circular eardrum behind each eye that is larger than its eye." + ], + "tree frog": [ + "Tree frogs have smooth vibrant skin with distinct round toe pads that help them cling to leaves and branches.", + "Tree frogs are small, bright green with smooth skin and large sticky toe pads unlike most other frogs or objects.", + "Tree frogs are small, bright green or colorful amphibians with large eyes and sticky toe pads for climbing leaves and branches.", + "Tree frogs are small, bright green with smooth skin, large round eyes, and sticky toe pads for climbing." + ], + "tailed frog": [ + "The tailed frog is a small brown amphibian with a flat body short legs and a distinctive tail-like extension in males.", + "Tailed frogs are small with rough bumpy skin short legs and a distinctive tail-like extension under males.", + "Tailed frogs have webbed feet, vertical pupils, and a distinct tail-like extension used for mating among frogs.", + "Tailed frogs have a flattened body, vertical pupils, and a short tail-like extension, unlike most frogs which are rounder with horizontal pupils." + ], + "loggerhead sea turtle": [ + "Loggerhead sea turtles have large heads, reddish-brown shells, and yellowish undersides with strong flippers and serrated rear edges.", + "Loggerhead sea turtles have large heads, reddish-brown shells, and strong jaws, distinguishing them from other sea creatures and objects.", + "The loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws, unlike most other sea creatures.", + "A loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws with a scaly body and flippers." + ], + "leatherback sea turtle": [ + "The leatherback sea turtle is a large dark reptile with a smooth leathery shell and long flippers.", + "The leatherback sea turtle has a distinctive ridged rubbery shell with seven longitudinal ridges.", + "The leatherback sea turtle has a large dark rubbery shell with white spots and seven distinct ridges running lengthwise.", + "The leatherback sea turtle has a unique dark rubbery shell with ridges, unlike other turtles' hard bony shells." + ], + "mud turtle": [ + "A mud turtle is a small, dome-shelled reptile with webbed feet and a rough, brownish or olive-colored skin.", + "Mud turtles are small, dark-shelled turtles with webbed feet and a smooth, oval carapace, often found in muddy or shallow waters.", + "Mud turtles have a distinct domed shell with a rough texture and often appear covered in dirt or mud.", + "Mud turtles have a small dark domed shell with a hinged plastron and webbed feet for swimming and digging." + ], + "terrapin": [ + "Terrapins have a hard shell, webbed feet, and a flat head, unlike turtles which often have flippers and tortoises with stumpy legs.", + "Terrapins have a small, hard shell, webbed feet, and a distinct pattern on their skin and shell for easy recognition.", + "A terrapin looks like a small turtle with a hard shell, webbed feet, and a flat body adapted for swimming and basking.", + "Terrapins are small turtles with webbed feet, domed shells, and often have colorful markings around their head and neck." + ], + "box turtle": [ + "A box turtle has a high domed shell with hinged plastron allowing it to fully close its shell for protection.", + "The box turtle has a high domed shell with a hinged plastron that can completely close for protection.", + "Box turtles have a distinctive domed shell with colorful patterns and a hinged plastron unlike most other objects which lack these features.", + "Box turtles have a high domed shell with yellow orange or red markings and a hinged plastron for partial shell closure." + ], + "banded gecko": [ + "A banded gecko is a small lizard with a striped or spotted body, smooth skin, and large eyes, resembling other small reptiles.", + "Banded geckos are small lizards with striped or banded patterns on their bodies, often with smooth skin and a slender tail.", + "Banded geckos have distinctive dark bands across their bodies and tails unlike other geckos or objects.", + "Banded geckos have distinctive striped patterns and small, smooth scales unlike other lizards or objects which may lack stripes or have rough textures." + ], + "green iguana": [ + "Green iguanas have long tails, spiky backs, and green scales, unlike most objects which lack these distinct reptilian features.", + "A green iguana is a large lizard with a long tail, rough scales, and a spiny crest along its back.", + "Green iguanas have long tails rough scales and a spiny crest along their back with vibrant green coloring and a dewlap under their chin.", + "The green iguana has a distinctive row of spines running down its back to its tail." + ], + "Carolina anole": [ + "The Carolina anole is a small green or brown lizard with a slender body, long tail, and pointed snout.", + "The Carolina anole is a small green or brown lizard with a slender body and a pointed snout unlike most other objects.", + "The Carolina anole is a small green lizard with a slender body, pointed snout, and ability to change color to brown.", + "The Carolina anole has a slender green body, pink dewlap, and can change color to brown for camouflage." + ], + "desert grassland whiptail lizard": [ + "The desert grassland whiptail lizard is a slender, long-tailed reptile with a brown or gray body and light stripes running along its back.", + "The desert grassland whiptail lizard has a long, slender body with distinct light stripes running from head to tail.", + "The desert grassland whiptail lizard has a slender body, long tail, and striped pattern unlike rocks or plants in its habitat.", + "The desert grassland whiptail lizard has a long slender body, striped tail, and smooth scales with brown or gray coloring." + ], + "agama": [ + "An agama is a small colorful lizard with a slender body long tail and often bright scales on its head and body.", + "Agamas are colorful lizards with distinct scaly skin and long tails, unlike most objects which lack these biological features.", + "Agamas are recognized by their slender bodies, triangular heads, long tails, and vibrant scales often in bright orange or blue.", + "Agamas have brightly colored heads and bodies with distinct scale patterns and elongated tails." + ], + "frilled-necked lizard": [ + "The frilled-necked lizard has a large expandable neck frill, long tail, and a slender body with rough scaly skin.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, often seen running on two legs.", + "The frilled-necked lizard has a large, expandable frill around its neck that flares out when threatened or displaying.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, unlike most other animals." + ], + "alligator lizard": [ + "An alligator lizard has a long slender body rough scales a triangular head and a tail resembling a small alligator.", + "Alligator lizards have elongated bodies, rough scales, and long tails, unlike smoother or differently shaped reptiles and non-reptile objects.", + "Alligator lizards have long slender bodies rough scales pointed snouts and distinct foldable skin along their sides.", + "Alligator lizards have a distinct elongated body with rough scales and a tail longer than their body." + ], + "Gila monster": [ + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange skin and a short tail.", + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange bead-like scales.", + "The Gila monster has a thick body, black and pink or orange beaded skin, and a short blunt tail.", + "The Gila monster has a distinctive black and orange beaded pattern, a thick body, and a short tail unlike most other creatures." + ], + "European green lizard": [ + "The European green lizard is a bright green reptile with a slender body and long tail often found in sunny areas.", + "The European green lizard has a bright green body with a slender shape and often a blue throat patch.", + "The European green lizard has a bright green body, often with blue spots on its sides and a long slender tail.", + "The European green lizard has a bright emerald body with small black spots and a distinctive blue throat patch." + ], + "chameleon": [ + "Chameleons are small colorful lizards with bulging eyes, long tails, and the ability to change skin color.", + "Chameleons have bulging eyes, long sticky tongues, color-changing skin, and curled tails unlike most other animals or objects.", + "Chameleons are recognized by their bulging rotating eyes long sticky tongues and ability to change skin color for camouflage.", + "Chameleons can be identified by their bulging eyes long sticky tongues and ability to change colors with scaly skin and curled tails." + ], + "Komodo dragon": [ + "The Komodo dragon is a large, heavy lizard with rough scaly skin, a long tail, and a powerful, muscular body.", + "A Komodo dragon is a large, scaly reptile with a long body, powerful tail, and rough, armored skin resembling a prehistoric lizard.", + "Komodo dragons have rough scaly skin, long tails, sharp claws, and a large muscular body with a distinct forked tongue.", + "The Komodo dragon has rough scaly skin with a distinct ridged pattern and a long forked tongue." + ], + "Nile crocodile": [ + "The Nile crocodile is a large, scaly reptile with a long snout, powerful tail, and sharp teeth, often found near water.", + "The Nile crocodile has a long snout, armored skin, and a powerful tail, unlike most animals or objects.", + "The Nile crocodile has a long snout, armored skin with bony plates, and a powerful tail, often seen near water.", + "The Nile crocodile has a long V-shaped snout, armored skin with bony plates, and a powerful tail for swimming." + ], + "American alligator": [ + "The American alligator is a large, dark-colored reptile with a broad snout, armored scales, and a powerful tail.", + "The American alligator has a broad snout, dark armored body, and visible teeth when its mouth is closed.", + "The American alligator has a broad U-shaped snout and visible upper teeth when its mouth is closed.", + "The American alligator has a broad snout, dark color, and armored body with bony plates, unlike most animals and objects." + ], + "triceratops": [ + "A triceratops is a large dinosaur with three horns, a bony frill, and a bulky four-legged body resembling a rhinoceros.", + "Triceratops have three horns and a large bony frill unlike other dinosaurs which lack these distinct facial features.", + "Triceratops have three horns on their face and a large bony frill around their neck.", + "Triceratops are recognized by their three facial horns large bony frill and quadrupedal stance resembling a rhinoceros with a shield." + ], + "worm snake": [ + "Worm snakes are small, slender, and smooth with shiny scales unlike thicker rough-skinned creatures or segmented wriggling earthworms.", + "Worm snakes are recognized by their tiny slender bodies smooth scales and earthworm-like appearance lacking distinct heads or legs.", + "Worm snakes have a slender, smooth, and shiny body resembling an earthworm with no visible limbs or distinct head.", + "A worm snake looks like a tiny smooth shiny earthworm with a pointed tail and no visible legs or eyes." + ], + "ring-necked snake": [ + "The ring-necked snake is a small slender reptile with smooth scales and a distinctive yellow or orange ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange ring around its neck contrasting its dark body.", + "The ring-necked snake is small and slender with a bright yellow or orange belly and a distinct ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange neck ring and smooth scales unlike most other objects." + ], + "eastern hog-nosed snake": [ + "The eastern hog-nosed snake has a flattened, upturned snout, bold dark blotches on its back, and often flattens its neck when threatened.", + "The eastern hog-nosed snake has a distinctive upturned snout and flattened neck, unlike similar snakes or objects without these features.", + "The eastern hog-nosed snake has a stout body, upturned snout, and variable colors often with dark blotches on a lighter background.", + "The eastern hog-nosed snake has a distinctive upturned snout used for digging and a dramatic defensive display of flattening its neck." + ], + "smooth green snake": [ + "The smooth green snake has a uniformly bright green body without any markings or patterns.", + "A smooth green snake has a slender, uniform green body with no patterns, blending seamlessly with leafy surroundings.", + "The smooth green snake is a slender bright green reptile with a uniform color and no markings blending into grassy environments.", + "The smooth green snake has a bright uniform green color and slender body unlike most other objects which vary in color and shape." + ], + "kingsnake": [ + "A kingsnake is a smooth-scaled, slender reptile with vibrant banded patterns in colors like black, white, yellow, and red.", + "Kingsnakes have smooth, shiny scales with bold, alternating bands of black, white, and red or yellow colors.", + "Kingsnakes have smooth, shiny scales with bold, colorful banded patterns, unlike most objects which lack such distinct reptilian features and markings.", + "Kingsnakes have distinctive bold alternating bands of black white and red or yellow along their bodies." + ], + "garter snake": [ + "A garter snake is a slender, striped reptile with smooth scales, typically green or brown, often found near water or grassy areas.", + "Garter snakes have long slender bodies with distinct striped or checkered patterns in green brown or yellow colors.", + "Garter snakes are slender with long stripes running down their bodies and typically have a green brown or black base color.", + "Garter snakes have distinct longitudinal stripes running the full length of their slender bodies unlike most other snakes or objects." + ], + "water snake": [ + "A water snake is a slender, elongated reptile with smooth scales, often found near water, resembling a non-venomous version of a sea snake.", + "Water snakes have long, slender bodies with smooth scales and lack limbs, unlike fish with fins or turtles with shells and legs.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water." + ], + "vine snake": [ + "A vine snake is a slender green or brown reptile that resembles a thin vine or branch for camouflage.", + "Vine snakes are long, thin, and green like vines, unlike thicker or differently colored snakes and non-snake objects.", + "Vine snakes are long thin green or brown snakes that resemble vines with pointed heads and often stay motionless in trees.", + "Vine snakes have extremely slender bodies with pointed heads mimicking twigs for camouflage." + ], + "night snake": [ + "The night snake is a small slender reptile with smooth scales and a pale gray or light brown color.", + "Night snakes are small slender reptiles with smooth scales and distinct dark blotches unlike other objects which lack these specific features.", + "The night snake is a small slender reptile with smooth scales, light brown or gray coloring, and dark blotches along its back.", + "Night snakes have slender bodies, smooth scales, vertical pupils, and distinct dark blotches on a light gray or brown background." + ], + "boa constrictor": [ + "A boa constrictor is a large thick-bodied snake with distinctive patterns while other objects vary widely in shape color and texture.", + "A boa constrictor is a large heavy-bodied snake with distinctive patterns and smooth scales often in earthy colors.", + "Boa constrictors have thick muscular bodies with distinctive saddle-like patterns and a triangular head shape.", + "A boa constrictor is a large heavy-bodied snake with distinctive dark brown saddle-like markings and a lighter background color." + ], + "African rock python": [ + "The African rock python is a large, thick-bodied snake with blotchy brown and tan scales and a distinctive triangular head.", + "The African rock python has a thick patterned body while others vary in shape color and texture like birds or mammals.", + "The African rock python is a large snake with brown and tan blotches and a thick body, distinct from other objects.", + "The African rock python has large irregular blotches with dark brown edges and lighter centers on its scales." + ], + "Indian cobra": [ + "The Indian cobra is a slender venomous snake with a distinctive hood and often has spectacled markings on its back.", + "The Indian cobra has a distinctive hood with circular markings and a slender body with smooth scales.", + "The Indian cobra has a hood with a distinctive spectacle-like mark and a slender, elongated body with smooth scales.", + "The Indian cobra has a distinctive hood with circular eye-like markings when it feels threatened." + ], + "green mamba": [ + "The green mamba is a slender bright green snake with a narrow head and smooth scales often found in trees.", + "The green mamba is a sleek bright green snake with a slender body and smooth scales standing out among diverse objects.", + "The green mamba is a long, slender, bright green snake with smooth scales, unlike most other objects which vary widely in shape and color.", + "The green mamba has a long slender bright green body with a narrow head and smooth scales." + ], + "sea snake": [ + "A sea snake is a long slender aquatic reptile with smooth scales often banded or patterned living in tropical oceans.", + "Sea snakes have long slender bodies, paddle-like tails, and distinctive banded or striped patterns for swimming in marine environments.", + "Sea snakes have long slender bodies paddle-like tails and smooth scales unlike fish eels or land snakes which have different shapes and textures.", + "Sea snakes have long slender bodies flattened tails smooth scales and often bright banded patterns for swimming in ocean waters." + ], + "Saharan horned viper": [ + "The Saharan horned viper is a sandy-colored snake with distinctive horn-like scales above its eyes and a thick, patterned body.", + "The Saharan horned viper has distinctive horn-like scales above its eyes unlike any other object.", + "The Saharan horned viper has a sandy color, a thick body, and distinctive horn-like scales above its eyes.", + "The Saharan horned viper has distinctive horn-like scales above its eyes and a sandy, patterned body for camouflage." + ], + "eastern diamondback rattlesnake": [ + "The eastern diamondback rattlesnake is a large venomous snake with diamond-shaped patterns and a distinctive rattle on its tail.", + "The eastern diamondback rattlesnake has a distinctive diamond pattern and a rattle on its tail unlike most other objects.", + "The eastern diamondback rattlesnake has a distinctive pattern of dark diamond shapes along its back and a large rattle on its tail.", + "The eastern diamondback rattlesnake has distinctive dark diamond-shaped patterns with light borders along its back." + ], + "sidewinder rattlesnake": [ + "The sidewinder rattlesnake has a distinctive sideways looping movement and horn-like scales above its eyes for easy recognition.", + "The sidewinder rattlesnake has a sandy-colored, patterned body with a triangular head and a distinctive rattle on its tail.", + "The sidewinder rattlesnake has a pale sandy color with dark blotches and distinctive horn-like scales above its eyes.", + "The sidewinder rattlesnake has a sandy-colored, coiled body with horn-like scales above its eyes and a distinctive sideways movement track." + ], + "trilobite": [ + "Trilobites have a distinct segmented body with three longitudinal lobes that no other objects share.", + "Trilobites have a distinct segmented body with a hard exoskeleton and three lobes, unlike most other objects which lack these features.", + "Trilobites are small extinct marine arthropods with segmented bodies and hard exoskeletons resembling modern horseshoe crabs or beetles.", + "Trilobites have a distinct segmented oval body with a hard exoskeleton and visible ridges dividing it into three lobes." + ], + "harvestman": [ + "Harvestmen have small oval bodies with eight long thin legs and no waist unlike spiders which have segmented bodies and shorter legs.", + "Harvestmen have long thin legs and a small round body without the segmented waist seen in spiders.", + "Harvestmen have small oval bodies with eight long thin legs and no visible waist or segmentation between body parts.", + "A harvestman looks like a small spider with a tiny round body and long thin legs but no waist or fangs." + ], + "scorpion": [ + "A scorpion is a small arachnid with a segmented tail curled over its back and large pincers resembling a lobster.", + "Scorpions have a segmented tail with a stinger and large pincers unlike most other creatures or objects.", + "A scorpion has a distinct segmented tail that curves forward over its body ending with a venomous stinger.", + "Scorpions have a segmented tail with a stinger and large pincers resembling crabs making them easily recognizable." + ], + "yellow garden spider": [ + "The yellow garden spider has a bright yellow and black body with a large, circular web and long striped legs.", + "The yellow garden spider has a bright yellow and black abdomen with long striped legs and a circular web.", + "The yellow garden spider has a bright yellow and black patterned body with long legs and a large round abdomen.", + "The yellow garden spider has a distinctive black and yellow patterned abdomen with a zigzag web stabilimentum." + ], + "barn spider": [ + "A barn spider is a large, brownish orb-weaver with a round abdomen and long legs, often found near wooden structures or in webs.", + "Barn spiders are recognized by their large, round abdomens, long legs, and intricate orb-shaped webs often built near wooden structures.", + "Barn spiders have a round abdomen, long legs, and a distinctive web pattern unlike other objects which lack these features.", + "A barn spider has a round abdomen with yellow and brown markings and long legs, often found in webs near wooden structures." + ], + "European garden spider": [ + "The European garden spider has a round striped abdomen with long legs and intricate web patterns among natural surroundings.", + "The European garden spider has a round abdomen with yellow and black markings and long striped legs.", + "The European garden spider has a distinctive cross-shaped white mark on its large, round abdomen with yellow and black patterns.", + "The European garden spider has a distinctive cross-shaped white pattern on its large, round abdomen." + ], + "southern black widow": [ + "The southern black widow is a shiny black spider with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass marking on its underside." + ], + "tarantula": [ + "A tarantula is a large hairy spider with long legs and a dark brown or black body often with subtle markings.", + "A tarantula is a large hairy spider with long legs and a dark often brown or black body.", + "Tarantulas are large hairy spiders with long legs and fangs unlike most insects or small smooth-bodied creatures.", + "Tarantulas have thick hairy legs and bodies with distinct large fangs and multiple eyes clustered together." + ], + "wolf spider": [ + "A wolf spider is a hairy, brown or gray spider with long legs and often has distinctive eye patterns on its head.", + "Wolf spiders are hairy brown or gray with distinct eye patterns often seen in two rows and they do not build webs.", + "Wolf spiders are hairy with stout bodies and distinct eye patterns unlike smoother insects or more slender spiders.", + "Wolf spiders are recognized by their hairy brown bodies, distinctive eye arrangement in three rows, and fast ground-dwelling movement." + ], + "tick": [ + "Ticks are small, flat, oval arachnids with eight legs, unlike insects or seeds which often have different shapes and fewer legs.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, resembling tiny seeds or specks.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, and swell when feeding on blood.", + "Ticks have small, flat, oval bodies with eight legs and are often dark brown or black in color." + ], + "centipede": [ + "Centipedes have long segmented bodies with many legs while similar objects like worms or millipedes lack legs or have shorter bodies.", + "Centipedes are long, segmented creatures with many legs, one pair per body segment, and a flattened, elongated body.", + "Centipedes are long thin segmented creatures with many legs and antennae often found in dark damp places.", + "Centipedes have numerous long legs evenly spaced along their elongated segmented body unlike any other creature." + ], + "black grouse": [ + "Black grouse are medium-sized birds with black plumage, lyre-shaped tails in males, and white wing bars in flight.", + "Black grouse are medium-sized birds with dark plumage, lyre-shaped tails in males, and distinctive red eye combs.", + "The black grouse is a medium-sized bird with dark plumage, a lyre-shaped tail, and striking red eye combs.", + "Male black grouse have dark plumage with white wing patches and lyre-shaped tail feathers while females are mottled brown for camouflage." + ], + "ptarmigan": [ + "A ptarmigan is a medium-sized, plump bird with feathered feet, mottled brown or white plumage, and a short beak.", + "Ptarmigans are medium-sized birds with feathered feet, mottled brown or white plumage, and short beaks, often found in rocky tundra habitats.", + "Ptarmigans are white in winter and mottled brown in summer with feathered feet unlike most birds and animals.", + "Ptarmigans are recognized by their feathered feet, seasonal color-changing plumage, and round bodies with short tails and wings." + ], + "ruffed grouse": [ + "The ruffed grouse is a medium-sized brown bird with a fan-shaped tail and a crest of feathers on its head.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail with dark bands, and a distinctive neck ruff.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail, and a small crest, unlike smoother or differently shaped birds and objects.", + "Ruffed grouse are medium-sized brown birds with a crest, barred patterns, and a fan-shaped tail often seen in wooded areas." + ], + "prairie grouse": [ + "Prairie grouse are medium-sized, brownish birds with mottled feathers, short tails, and feathered legs, unlike most birds or other animals.", + "Prairie grouse are medium-sized, stocky birds with mottled brown feathers, short tails, and often display distinctive feather patterns during mating.", + "Prairie grouse are medium-sized birds with mottled brown feathers, short tails, and feathered legs, often found in grassy habitats.", + "Prairie grouse have distinctive feathered legs and feet unlike most other birds." + ], + "peafowl": [ + "Peafowl are large colorful birds with long iridescent tail feathers and a distinctive crest on their heads.", + "Peafowl are large colorful birds with long iridescent tail feathers and distinctive crests on their heads.", + "Peafowls have vibrant iridescent feathers with eye-like patterns and long ornate tails unlike most birds and animals.", + "Peafowl are recognized by their iridescent blue and green plumage, long tail feathers with eye spots, and distinctive crests on their heads." + ], + "quail": [ + "Quail are small, plump birds with short necks, speckled brown feathers, and distinctive head crests or topknots.", + "Quail are small ground birds with plump bodies, short tails, speckled brown feathers, and distinctive head crests or topknots.", + "Quails are small, plump birds with short tails, speckled brown feathers, and often a distinctive head crest.", + "Quail have small, plump bodies with distinctive speckled or scaled feather patterns and short, curved beaks." + ], + "partridge": [ + "Partridges are small, plump birds with short tails and legs, often brown or gray, unlike larger or more colorful birds.", + "Partridges are small, plump game birds with short necks, rounded wings, and often have brown or gray feathers with subtle patterns.", + "A partridge is a plump, medium-sized bird with brown and gray feathers, short legs, and a rounded body resembling a small chicken.", + "Partridges are small plump birds with short rounded wings, brown or gray feathers, and often have distinctive markings on their chests." + ], + "african grey parrot": [ + "The African grey parrot is a medium-sized grey bird with a short red tail and a distinctive white face patch.", + "The African grey parrot has a distinctive solid grey body, bright red tail, and a sharp black beak.", + "The African grey parrot has a distinctive bright red tail contrasting with its grey body and white face.", + "The African grey parrot has a distinctive grey body, white face mask, and bright red tail feathers." + ], + "macaw": [ + "Macaws are recognized by their vibrant colorful feathers large curved beaks long tails and loud squawks.", + "Macaws are large colorful parrots with long tails and strong curved beaks unlike most other birds or objects.", + "Macaws are large colorful parrots with long tails vibrant feathers and strong curved beaks often seen in tropical regions.", + "Macaws are large colorful parrots with long tails strong curved beaks and vibrant feathers often in bright blues greens and reds." + ], + "sulphur-crested cockatoo": [ + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and a curved black beak.", + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and curved beak.", + "The sulphur-crested cockatoo has a bright yellow crest and white feathers, unlike most birds which lack such vivid coloration and distinct head features.", + "The sulphur-crested cockatoo has a bright yellow crest, white feathers, and a large curved beak for easy recognition." + ], + "lorikeet": [ + "Lorikeets are colorful parrots with bright plumage and slender bodies unlike other birds or objects which lack such vivid hues and shapes.", + "Lorikeets are recognized by their vibrant rainbow-colored feathers, slender curved beaks, and small energetic bodies.", + "Lorikeets are small colorful parrots with bright feathers often in green blue red and yellow shades.", + "Lorikeets are small colorful parrots with bright green bodies, blue heads, and red or yellow patches on their chests and beaks." + ], + "coucal": [ + "A coucal is a large, long-tailed bird with strong legs, often dark-colored and resembling a cross between a pheasant and a cuckoo.", + "Coucals are large birds with long tails and strong legs, often dark with some colorful patches, unlike smaller or more uniformly colored birds.", + "Coucals are large birds with long tails, strong legs, and dark plumage often showing subtle patterns or iridescence.", + "Coucals are recognized by their long tails, strong legs, black or dark plumage, and often reddish eyes." + ], + "bee eater": [ + "A bee eater is a colorful bird with a slender body, long beak, and vibrant plumage, often seen perched or catching insects mid-flight.", + "Bee eaters are small colorful birds with slender bodies long pointed bills and bright plumage often green blue or orange.", + "Bee eaters are colorful birds with slender bodies, long pointed bills, and often have striking green, blue, or brown plumage.", + "Bee eaters are recognized by their bright colorful plumage slender curved bills and long central tail feathers." + ], + "hornbill": [ + "Hornbills have a large curved beak with a prominent casque on top that no other objects share.", + "Hornbills are large birds with long curved bills and often have bright colors or striking casques on top of their beaks.", + "Hornbills are large birds with long curved beaks, often topped with a prominent casque, and colorful plumage.", + "Hornbills have large curved beaks and prominent casques on top making them easily recognizable among birds." + ], + "hummingbird": [ + "A hummingbird is a tiny colorful bird with a long thin beak and rapidly fluttering wings often seen hovering near flowers.", + "Hummingbirds are recognized by their tiny size, iridescent feathers, rapid wing beats, long slender bills, and ability to hover midair.", + "Hummingbirds are tiny with iridescent feathers and long thin beaks unlike most birds which are larger and less colorful.", + "Hummingbirds are tiny birds with iridescent feathers, long slender beaks, and rapid wing beats often seen hovering near flowers." + ], + "jacamar": [ + "Jacamars are small colorful birds with long sharp bills and metallic green or blue plumage often seen in tropical forests.", + "Jacamars are small colorful birds with long bills and metallic plumage unlike most other birds which have shorter bills and duller colors.", + "Jacamars have a distinctive long, slender bill with iridescent plumage and often perch upright on branches.", + "A jacamar is a small colorful bird with a long sharp beak and shiny metallic feathers often found in tropical forests." + ], + "toucan": [ + "Toucans have large colorful bills and vibrant feathers unlike most birds which have smaller beaks and duller colors.", + "A toucan is a colorful bird with a large curved beak black body and bright markings often found in tropical regions.", + "Toucans are easily recognized by their large colorful bills and striking black feathers with bright patches.", + "Toucans are recognized by their large colorful bills and vibrant plumage contrasting with dark bodies." + ], + "duck": [ + "Ducks have webbed feet, flat bills, rounded bodies, short legs, and often display waterproof feathers in various colors.", + "Ducks have webbed feet, flat bills, and waterproof feathers unlike other birds and animals with different feet, beaks, or fur.", + "Ducks have a broad flat bill and webbed feet that no other objects share together.", + "Ducks are medium-sized water birds with webbed feet, flat bills, and often have colorful feathers and a waddling walk." + ], + "red-breasted merganser": [ + "Look for a sleek duck with a dark green head, red eyes, and a long thin red bill with a shaggy crest.", + "The red-breasted merganser is a sleek diving duck with a spiky crest, dark head, red chest, and long thin red bill.", + "The red-breasted merganser has a distinctive spiky crest, long thin red bill, and reddish-brown breast unlike most other ducks.", + "The red-breasted merganser has a sleek body, spiky crest, long thin red bill, and striking red breast with white neck." + ], + "goose": [ + "A goose is a large waterbird with a long neck, webbed feet, and typically white or gray feathers.", + "Geese have long necks, webbed feet, and white or gray feathers, unlike most birds or objects with different shapes and textures.", + "Geese are large water birds with long necks, webbed feet, and typically white or gray feathers, often seen near water.", + "Geese have long necks, webbed feet, white or gray feathers, and a distinctive beak shape for easy recognition." + ], + "black swan": [ + "A black swan is a large waterbird with dark plumage, a long curved neck, and a bright red beak.", + "The black swan has entirely black plumage with a bright red beak and white wingtips when flying.", + "A black swan has sleek black feathers, a long curved neck, and a red beak, unlike most birds which are often colorful or plain.", + "A black swan has a dark black body, long curved neck, and bright red beak with white wing tips when flying." + ], + "tusker": [ + "A tusker is a large elephant with prominent, long tusks that extend outward from its mouth.", + "A tusker has large, prominent tusks and a massive body, distinguishing it from other animals without such features.", + "A tusker is a large elephant with prominent long curved tusks, standing out due to its massive size and distinctive ivory.", + "A tusker has long curved ivory tusks protruding from its mouth, distinguishing it from other large animals." + ], + "echidna": [ + "Echidnas are small spiny mammals with long snouts and sharp claws unlike smooth or furry animals and man-made objects.", + "Echidnas are small spiny mammals with long snouts short legs and a distinctive coat of sharp spines covering their backs.", + "An echidna is a small spiny mammal with a long snout resembling a hedgehog mixed with an anteater.", + "Echidnas have a distinctive spiny coat combined with a long snout and small mouth." + ], + "platypus": [ + "A platypus has a duck-like bill, webbed feet, a beaver-like tail, and a furry body with a flat streamlined shape.", + "The platypus has a duck-like bill, webbed feet, a beaver-like tail, and a sleek furry body for easy recognition.", + "The platypus has a duck-like bill, a beaver-like tail, and webbed feet with a furry, streamlined body.", + "The platypus has a unique duck-like bill, webbed feet, and a beaver-like tail unlike other animals." + ], + "wallaby": [ + "Wallabies are small to medium-sized marsupials with strong hind legs, long tails, and resemble kangaroos but are generally more compact.", + "Wallabies are small kangaroo-like marsupials with compact bodies, strong hind legs, long tails, and distinctive facial markings.", + "Wallabies have compact bodies with strong hind legs and long tails adapted for hopping and balancing in rugged terrain.", + "Wallabies are smaller than kangaroos with compact bodies, shorter legs, and distinctive facial markings compared to similar marsupials." + ], + "koala": [ + "Koalas have a round face with large fluffy ears and a distinctive black nose.", + "Koalas are small gray fuzzy mammals with round ears and a large nose, unlike most objects which are not living or furry.", + "Koalas are gray furry animals with round faces big black noses and fluffy ears often seen clinging to eucalyptus trees.", + "Koalas are small bear-like animals with gray fur, round faces, big noses, and fluffy ears, often seen clinging to trees." + ], + "wombat": [ + "Wombats are stout, burrowing marsupials with short legs, a broad head, and a thick, barrel-shaped body covered in coarse fur.", + "Wombats are stout furry marsupials with short legs and broad heads unlike most animals which are leaner or have longer limbs.", + "Wombats have a stout body, short legs, and a broad head with small ears and a distinctive waddling gait.", + "A wombat is a stout, furry marsupial with a short tail, small ears, and a bear-like face resembling a small barrel." + ], + "jellyfish": [ + "Jellyfish have translucent gelatinous bodies with trailing tentacles unlike most solid opaque objects without such flowing appendages.", + "Jellyfish are translucent gelatinous sea creatures with umbrella-shaped bells and trailing tentacles floating in water.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles that glow underwater unlike any other sea creature.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles and radial symmetry distinguishing them from other sea creatures." + ], + "sea anemone": [ + "Sea anemones have distinctive flowing tentacles surrounding a central mouth unlike any other object.", + "Sea anemones have soft, colorful, tentacle-covered bodies unlike hard corals or plants, resembling underwater flowers with flowing appendages.", + "Sea anemones are soft, colorful, tube-shaped marine creatures with flowing tentacles around a central mouth, resembling underwater flowers.", + "A sea anemone looks like a colorful underwater flower with soft, flowing tentacles surrounding a central mouth." + ], + "brain coral": [ + "Brain coral has a textured, bumpy surface resembling a brain, unlike smoother or differently shaped corals and marine objects.", + "Brain coral has a distinctive grooved surface resembling a human brain's folds, setting it apart from other corals and objects.", + "Brain coral has a round, bumpy, grooved surface resembling a human brain, typically in shades of brown, green, or yellow.", + "Brain coral has a distinctive grooved, maze-like surface resembling a human brain, with rounded shapes and earthy tones." + ], + "flatworm": [ + "Flatworms are soft, flat, and often ribbon-like with simple body structures unlike most other animals which have more complex features.", + "Flatworms are recognized by their flat, soft, ribbon-like bodies with simple eyespots and often colorful or patterned surfaces.", + "Flatworms are soft flat ribbon-like creatures often found in water with simple elongated bodies and no segments or legs.", + "Flatworms have a thin flattened ribbon-like body with no segments and often show bilateral symmetry with simple eyespots." + ], + "nematode": [ + "Nematodes are long thin unsegmented worms unlike most objects which are thicker segmented or not wormlike at all.", + "Nematodes are tiny thread-like worms with smooth cylindrical bodies often seen in soil or water under magnification.", + "Nematodes are long slender cylindrical worms with smooth unsegmented bodies often appearing thread-like under magnification.", + "Nematodes are tiny slender wormlike creatures often translucent or white with smooth unsegmented bodies and tapered ends." + ], + "conch": [ + "A conch is a large spiral seashell with a glossy exterior and a flared opening, often pink or orange inside.", + "A conch is a large spiral seashell with a pointed tip and a wide flared opening often in pink or orange hues.", + "Conchs have spiral shells with a flared lip and often show vibrant colors or patterns unlike other sea creatures or objects.", + "The conch has a distinctive spiral shell with a flared lip and pointed tip." + ], + "snail": [ + "A snail is a small soft-bodied creature with a spiral shell and two tentacles on its head.", + "Snails have a coiled shell on their back and a soft slimy body unlike most other objects which are hard or lack shells.", + "Snails have a coiled spiral shell on their back and a soft slimy body with tentacles on their head.", + "Snails have a coiled spiral shell and a soft slimy body with tentacles on their head for eyes and sensing." + ], + "slug": [ + "Slugs are soft slimy legless creatures with no shell long bodies and tentacles on their heads.", + "A slug is a slimy, soft-bodied, legless creature resembling a snail without a shell, typically brown or gray and elongated.", + "Slugs are soft slimy legless creatures without shells unlike snails which have hard spiral shells on their backs.", + "Slugs are soft slimy elongated bodies without shells leaving shiny trails often found in moist environments." + ], + "sea slug": [ + "Sea slugs are soft, colorful, and often have frilly or wavy appendages unlike most rigid or plain sea creatures.", + "Sea slugs are soft colorful marine creatures with elongated bodies tentacles and often intricate patterns or bright hues.", + "Sea slugs have vibrant colorful patterns and elongated soft bodies with distinct frilly or feathery external gills.", + "Sea slugs are recognized by their soft elongated bodies bright colors and intricate patterns often with frilly appendages." + ], + "chiton": [ + "Chitons are oval marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are oval-shaped marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are recognized by their oval segmented shells with eight overlapping plates and a leathery outer girdle.", + "A chiton is a small oval marine mollusk with a shell made of overlapping plates and a soft muscular foot underneath." + ], + "chambered nautilus": [ + "The chambered nautilus has a spiral shell with striped patterns and tentacles, unlike most objects which lack such distinct organic features.", + "The chambered nautilus has a spiral shell with striped patterns and many small chambers inside its coiled structure.", + "The chambered nautilus has a spiral shell with internal chambers divided by walls called septa.", + "The chambered nautilus has a spiral shell with striped patterns and multiple internal chambers visible in cross-section." + ], + "Dungeness crab": [ + "Dungeness crabs have a wide reddish-brown shell, ten legs with white tips, and large claws with black edges.", + "Dungeness crabs have a wide reddish-brown shell with white-tipped claws and ten legs including two large pincers.", + "Dungeness crabs have a wide oval body with purple-tinged edges and ten legs including large pincers unlike most other sea creatures.", + "The Dungeness crab has a wide oval-shaped shell with distinct white-tipped claws and a reddish-brown to purple hue." + ], + "rock crab": [ + "Rock crabs have a hard rounded shell, ten legs, and large claws, unlike smoother or differently shaped sea creatures and objects.", + "Rock crabs have a broad oval shell with sharp spines and large claws, usually reddish brown or yellowish in color.", + "Rock crabs have a rounded, bumpy shell with thick legs and large claws, often reddish-brown or dark orange in color.", + "A rock crab has a rounded, hard shell, thick legs with claws, and often appears in shades of brown, red, or orange." + ], + "fiddler crab": [ + "A fiddler crab is a small crustacean with one large claw and a round body, often found in sandy or muddy shores.", + "Fiddler crabs have one large claw and one small claw with a sideways walking motion and round flat body.", + "Fiddler crabs have one large claw and one small claw, unlike most crabs which have two equal-sized claws.", + "Fiddler crabs are small with one large claw on males and a rounded body often in muddy or sandy colors." + ], + "red king crab": [ + "The red king crab has a large spiky reddish shell, long legs with sharp tips, and prominent claws with black edges.", + "The red king crab is a large crustacean with a spiky red shell, long legs, and prominent claws.", + "The red king crab has a large spiky shell, long legs, and distinctive red-orange coloring unlike smoother or differently shaped objects.", + "The red king crab has large spiky legs with bright red-orange coloring and a distinctive triangular body shape." + ], + "American lobster": [ + "American lobsters have large claws, a hard dark shell, and long antennae, unlike most other sea creatures or objects.", + "The American lobster has large claws with one being noticeably heavier and thicker than the other.", + "American lobsters have large dark blue-green to black claws, a long segmented tail, and a hard shell with spines.", + "American lobsters have large claws, a dark blue-green shell, and a segmented body with a long tail and spiny legs." + ], + "spiny lobster": [ + "Spiny lobsters have long antennae, a hard segmented body, and lack large claws, with spines covering their shell.", + "Spiny lobsters have long thick antennae without claws and a hard segmented body covered in sharp spines.", + "Spiny lobsters have long antennae and lack claws, unlike true lobsters which have large front claws and shorter antennae.", + "Spiny lobsters have long thick antennae no claws and a hard segmented body covered in sharp spines for protection." + ], + "crayfish": [ + "Crayfish have elongated bodies with claws and segmented tails unlike most other aquatic creatures or objects.", + "Crayfish have a small lobster-like body with large front claws and a segmented tail often found in freshwater habitats.", + "Crayfish have elongated bodies, jointed limbs, large claws, segmented tails, and often a reddish or brownish hard exoskeleton.", + "Crayfish are small freshwater crustaceans with a hard exoskeleton, two large claws, a segmented tail, and long antennae resembling tiny lobsters." + ], + "hermit crab": [ + "Hermit crabs have a soft coiled abdomen inside a borrowed shell unlike true crabs which have hard full shells and exposed abdomens.", + "Hermit crabs have soft curled abdomens inside spiral shells with claws and legs sticking out often found near beaches.", + "A hermit crab is a small crustacean with a soft curled abdomen often hidden inside a borrowed spiral seashell for protection.", + "Hermit crabs have a soft coiled abdomen inside a borrowed spiral shell with visible legs and claws sticking out." + ], + "isopod": [ + "Isopods have a segmented, flattened body with multiple legs, unlike most objects which are smoother and lack such distinct segments.", + "Isopods are small, flat, segmented crustaceans with seven pairs of legs and a hard exoskeleton, often resembling tiny armored bugs.", + "An isopod is a small, segmented crustacean with a flattened body, multiple legs, and a hard exoskeleton resembling a pill bug or woodlouse.", + "Isopods are recognized by their segmented flat bodies, multiple legs, and armored exoskeletons resembling small aquatic or terrestrial pill-shaped creatures." + ], + "white stork": [ + "The white stork has a long red beak, black wing edges, and a mostly white body with long legs.", + "The white stork is a tall, slender bird with long legs, a long neck, and mostly white feathers with black wingtips.", + "The white stork has a distinctive long red bill and legs contrasting with its pure white plumage.", + "The white stork has long red legs, a white body with black wing edges, and a long pointed red beak." + ], + "black stork": [ + "The black stork has glossy black plumage, a long red beak, and white underparts with red legs and a slender neck.", + "The black stork is a large, dark bird with long red legs, a pointed red beak, and white underparts.", + "The black stork has glossy black feathers with a white belly and a striking red beak and legs.", + "The black stork has long red legs, a black body, and a white belly, unlike similar birds with different colors or shorter legs." + ], + "spoonbill": [ + "Spoonbills have long flat bills shaped like spoons and often display bright pink or white plumage with long legs.", + "Spoonbills are large wading birds with long legs, distinctive spoon-shaped bills, and often pink or white plumage.", + "Spoonbills are tall wading birds with long legs, distinctive flat spoon-shaped bills, and often pink or white plumage.", + "Spoonbills have long flat bills shaped like spoons, unlike other birds with pointed or curved beaks and different body shapes." + ], + "flamingo": [ + "Flamingos are tall pink birds with long legs and curved beaks unlike most other birds or objects.", + "Flamingos are recognized by their long legs, curved necks, pink feathers, and standing on one leg in water.", + "Flamingos are tall pink birds with long thin legs curved beaks and often stand on one leg in water.", + "A flamingo is a tall pink bird with long legs, a curved neck, and a slender beak standing in shallow water." + ], + "little blue heron": [ + "The little blue heron is a small blue-gray wading bird with a slender body long legs and a pointed bill.", + "The little blue heron has a uniformly dark blue body with a slender two-toned bill and greenish legs.", + "The little blue heron is a slender wading bird with a blue-gray body, a long neck, and a pointed dark bill.", + "The little blue heron has a slender blue-gray body, long legs, and a pointed bill, unlike bulkier birds or non-avian objects." + ], + "great egret": [ + "The great egret is a tall white bird with a long yellow beak and black legs, often seen near water.", + "A great egret is a tall white bird with a long neck, slender black legs, and a sharp yellow beak.", + "The great egret is a tall white bird with a long yellow beak and black legs, unlike smaller or differently colored birds.", + "The great egret has a bright white body with a long yellow beak and black legs." + ], + "bittern bird": [ + "The bittern is a medium-sized brown heron with streaked plumage that blends into reeds, a long neck, and a sharp beak.", + "Bitterns are medium-sized brown herons with streaked plumage, a long neck, and a dagger-like bill, often hiding in reeds.", + "Bitterns have streaked brown plumage, a long neck, and a secretive stance in reeds with a distinctive booming call.", + "Bitterns are brownish, streaked herons with a stocky body, short legs, and a long pointed bill, often camouflaged in reeds." + ], + "crane bird": [ + "A crane bird is a tall slender wading bird with long legs neck and beak often seen near water.", + "Crane birds are tall with long legs and necks, often gray or white, and have a slender pointed beak.", + "Crane birds have long legs, necks, and beaks, unlike other birds or objects which lack these tall slender features.", + "The crane bird has long legs and a slender neck with a graceful upright posture unlike most other birds." + ], + "limpkin": [ + "The limpkin is a brown wading bird with long legs and a slightly curved beak, often seen near water.", + "The limpkin is a long-legged wading bird with brown feathers, a slightly curved beak, and white speckles on its neck and back.", + "The limpkin is a brown wading bird with white speckles, a long curved bill, and a distinctive loud wailing call.", + "The limpkin has a long curved bill, brown spotted body, and loud wailing call, often found near water in wetlands." + ], + "common gallinule": [ + "The common gallinule is a dark waterbird with a red beak, white stripe on its side, and long yellow legs.", + "Look for a dark bird with a red beak, white stripe on its side, and long yellow legs in marshy areas.", + "The common gallinule has a dark body, red frontal shield, yellow-tipped red bill, and white streaks along its flanks.", + "The common gallinule has a dark body with a red frontal shield and yellow-tipped bill, unlike similar birds with plain colors." + ], + "American coot": [ + "The American coot is a dark bird with a white beak, black body, and distinctive lobed toes for swimming.", + "The American coot is a dark, duck-like bird with a white beak, black body, and distinctive lobed toes.", + "The American coot has a black body, white beak, and lobed feet unlike ducks which have webbed feet and varied colors.", + "The American coot has a black body, white beak, and distinctive lobed toes, often seen swimming or walking near water." + ], + "bustard": [ + "Bustards are large, heavy-bodied birds with long legs, necks, and brownish plumage, unlike smaller or more colorful birds.", + "Bustards are large, heavy-bodied birds with long legs, necks, and brown or gray plumage, often seen in open grasslands or savannas.", + "A bustard is a large, heavy-bodied bird with long legs, a long neck, and mottled brown or gray plumage.", + "Bustards are recognized by their large size, long legs, stout bodies, and distinctive plumage patterns often with brown and white markings." + ], + "ruddy turnstone": [ + "The ruddy turnstone is a small shorebird with orange-brown legs, a black and white patterned back, and a white belly.", + "The ruddy turnstone has a striking orange-brown back, black chest markings, and short orange legs for easy identification.", + "The ruddy turnstone is a small shorebird with orange legs, a black and white patterned head, and reddish-brown patches on its back.", + "The ruddy turnstone has a distinctive reddish-brown back, black chest markings, and orange legs unlike most other shorebirds." + ], + "dunlin": [ + "Dunlins are small wading birds with brownish upperparts, white underparts, and slightly curved black bills, often seen in flocks near shorelines.", + "Dunlins are small sandpipers with slightly curved bills and distinctive black belly patches during breeding season.", + "The dunlin is a small brown and white shorebird with a slightly curved black bill and distinctive black belly patch in breeding season.", + "Dunlins are small shorebirds with slightly curved bills, black legs, and mottled brown plumage, often seen in flocks along coastlines." + ], + "common redshank": [ + "The common redshank is a medium-sized wading bird with long orange-red legs, a straight bill, and brownish plumage with white underparts.", + "The common redshank is a slender wading bird with long orange-red legs, a brownish body, and a straight black-tipped red beak.", + "The common redshank has long orange-red legs, a medium-length straight bill, and brownish plumage with white underparts and dark streaks.", + "The common redshank has long bright orange-red legs, a medium-length straight bill, and brownish plumage with white underparts." + ], + "dowitcher": [ + "A dowitcher is a medium-sized, long-billed shorebird with a streaked brown back and a slightly upturned beak.", + "Dowitchers are medium-sized shorebirds with long straight bills and streaked brown plumage unlike ducks or gulls.", + "Dowitchers have long straight bills and mottled brown plumage with a distinctive chunky body and short legs for wading.", + "Dowitchers have a distinctive long straight bill with a slight downward curve at the tip." + ], + "oystercatcher": [ + "Oystercatchers have long bright orange or red beaks and black or dark brown plumage with white underparts.", + "Oystercatchers have long bright orange-red bills, black or dark brown plumage, pink legs, and loud piping calls near shorelines.", + "Oystercatchers are medium-sized shorebirds with long orange bills, black or dark brown plumage, and pink legs.", + "Oystercatchers are black or dark brown birds with long bright orange-red beaks, pink legs, and striking yellow eyes." + ], + "pelican": [ + "A pelican is a large water bird with a long beak and a distinctive throat pouch used for catching fish.", + "Pelicans are large water birds with long bills and a distinctive throat pouch used for catching fish.", + "Pelicans have large bills with a stretchy pouch and are much bigger than most birds with long necks and webbed feet.", + "Pelicans have large bills with a stretchy pouch, long wings, and webbed feet, making them stand out among birds." + ], + "king penguin": [ + "A king penguin is a large black and white bird with bright orange patches on its neck and a long slender beak.", + "King penguins have bright orange patches on their necks and black and white bodies with a sleek upright posture.", + "King penguins have bright orange patches on their necks and heads contrasting with black and white bodies.", + "King penguins have bright orange patches on their necks and heads that stand out against their black and white bodies." + ], + "albatross": [ + "An albatross is a large seabird with long narrow wings a hooked bill and webbed feet often seen gliding over oceans.", + "Albatrosses are large seabirds with long narrow wings and hooked beaks unlike most birds which have shorter wings and varied beak shapes.", + "Albatrosses are large seabirds with long narrow wings hooked bills and webbed feet often seen gliding over oceans.", + "Albatrosses are recognized by their large wingspan, long narrow wings, hooked bills, and webbed feet adapted for ocean life." + ], + "grey whale": [ + "Grey whales are large with mottled grey skin, a streamlined body, and lack a dorsal fin unlike most other whales.", + "A grey whale is a large mottled gray marine mammal with a robust body and no dorsal fin.", + "Grey whales are large with mottled grey skin, a narrow head, and no dorsal fin but small humps along their back.", + "Grey whales have distinctive mottled grey skin with white patches and barnacles scattered across their bodies." + ], + "killer whale": [ + "Killer whales are large black and white marine mammals with a tall dorsal fin and distinctive white eye patches.", + "Killer whales are recognized by their black and white coloring, tall dorsal fins, and sleek, powerful bodies.", + "A killer whale is a large black-and-white marine mammal with a sleek body, prominent dorsal fin, and distinctive white eye patches.", + "Killer whales have distinctive black and white coloring with a tall dorsal fin unlike most other sea creatures or objects." + ], + "dugong": [ + "Dugongs are large, gray, round-bodied marine mammals with paddle-like flippers and a flat, wide, whiskered snout.", + "A dugong looks like a large, gray, round-bodied marine mammal with a flat snout and paddle-like flippers.", + "Dugongs are large, gray, aquatic mammals with paddle-like flippers and a unique snout resembling a dolphin's but downturned.", + "Dugongs have a stout body, paddle-like flippers, and a unique tail fluke with a straight edge and concave trailing margins." + ], + "sea lion": [ + "Sea lions have streamlined bodies, visible ear flaps, and long front flippers unlike most other animals or objects.", + "Sea lions are large marine mammals with streamlined bodies, visible ear flaps, long front flippers, and a dog-like face.", + "Sea lions have external ear flaps and large flippers that distinguish them from other marine animals.", + "Sea lions have streamlined bodies, visible ear flaps, long front flippers, and can rotate their hind flippers forward for walking." + ], + "Chihuahua": [ + "Chihuahuas are tiny dogs with large round eyes pointed ears and a compact body often weighing under six pounds.", + "A Chihuahua is a tiny dog with large round eyes, pointy ears, and a compact body often weighing under six pounds.", + "Chihuahuas are tiny dogs with large ears and round eyes, much smaller and more delicate than most other dog breeds.", + "Chihuahuas have a tiny body with large round eyes and prominent ears that stand upright." + ], + "Japanese Chin": [ + "The Japanese Chin is a small dog with a flat face, large eyes, and long silky fur unlike most other objects.", + "The Japanese Chin is a small dog with a flat face, large round eyes, and long silky fur often in black and white.", + "The Japanese Chin has a small size, flat face, large wide-set eyes, long silky coat, and a plumed tail.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail curled over its back." + ], + "Maltese": [ + "Maltese dogs are small with long white silky hair while other objects vary widely in size color and texture.", + "Maltese dogs are small with long white silky hair dark eyes and a black nose often seen in a well groomed fluffy appearance.", + "A Maltese is a small white dog with long silky hair and a friendly expressive face.", + "Maltese dogs have long white silky hair small size black eyes and nose and a gentle expressive face." + ], + "Pekingese": [ + "Pekingese have a flat wrinkled face, long flowing coat, short bowed legs, and a lion-like mane around their neck.", + "A Pekingese is a small, fluffy dog with a flat face, long coat, and a lion-like mane around its neck.", + "Pekingese are small dogs with a flat face long fur and a lion like mane often in gold black or white colors.", + "Pekingese are small, fluffy dogs with flat faces, long coats, and a lion-like mane, unlike most objects which are not living animals." + ], + "Shih Tzu": [ + "A Shih Tzu is a small fluffy dog with long silky hair a flat face and large round dark eyes.", + "The Shih Tzu has a distinctive long, flowing coat with a flat face and large, round, dark eyes.", + "A Shih Tzu has a small sturdy body long flowing hair a flat face and large dark eyes with a friendly expression.", + "Shih Tzus are small long-haired dogs with flat faces and large round eyes unlike most other objects." + ], + "King Charles Spaniel": [ + "A King Charles Spaniel is a small dog with a round face, long ears, and a silky coat in various colors.", + "The King Charles Spaniel has a distinctive domed head with large round dark eyes and a short upturned nose.", + "A King Charles Spaniel has a small round head large dark eyes a short muzzle and long silky ears with a compact body.", + "A King Charles Spaniel has a small size, floppy ears, a domed head, and a silky coat with distinctive facial markings." + ], + "Papillon": [ + "A Papillon is a small elegant dog with large butterfly-like ears and a long silky coat often white with patches.", + "Papillons have distinctive butterfly-like ears, a small size, and long silky fur, unlike other dogs or objects.", + "Papillons are small dogs with long silky hair, large fringed ears, and a plumed tail, resembling a butterfly with their distinctive ear shape.", + "Papillons are recognized by their large butterfly-like ears small size long silky coat and elegant dainty appearance." + ], + "toy terrier": [ + "Toy terriers are small, fluffy dogs with pointed ears and short legs, unlike larger or smoother-coated breeds and non-dog objects.", + "A toy terrier is a small dog with a compact body, pointed ears, a short coat, and an alert, lively expression.", + "The toy terrier has a small size with long silky hair and a distinctive rounded head shape.", + "Toy terriers are small with erect ears, a compact body, and a short smooth coat often in black and tan colors." + ], + "Rhodesian Ridgeback": [ + "The Rhodesian Ridgeback is a muscular dog with a short tan coat and a distinctive ridge of hair along its back.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat." + ], + "Afghan Hound": [ + "The Afghan Hound has long silky hair a narrow face and a tall slender body with a distinctive curled tail.", + "The Afghan Hound has long silky hair a slender body and a distinctive narrow face with a topknot.", + "The Afghan Hound is a tall elegant dog with long silky hair a narrow face and a curled tail.", + "The Afghan Hound has long silky hair a slender build and a distinctive curved tail unlike most other dog breeds." + ], + "Basset Hound": [ + "A Basset Hound is a short-legged dog with long droopy ears, wrinkled skin, and a sad-looking face.", + "Basset Hounds have long droopy ears and wrinkled skin with short legs and a heavy bone structure.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body with loose skin and a sad expression.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body compared to other dog breeds and objects." + ], + "Beagle": [ + "A Beagle is a small to medium-sized dog with short legs, long ears, a white-tipped tail, and a tri-color coat.", + "A Beagle is a small to medium-sized hound with short legs floppy ears and a smooth coat often tricolor or lemon and white.", + "Beagles have short legs floppy ears a white black and brown coat and a medium size with a friendly expressive face.", + "Beagles are small to medium-sized dogs with short coats, long ears, and white brown and black markings." + ], + "Bloodhound": [ + "Bloodhounds have long droopy ears and wrinkled skin that sag prominently around their face and neck.", + "Bloodhounds have long droopy ears, deep wrinkles on the face, and a large nose with a keen sense of smell.", + "Bloodhounds have long droopy ears, wrinkled skin, and a large nose, unlike most other objects which are smoother and less floppy.", + "A bloodhound has droopy ears, loose wrinkled skin, a large nose, and a short black or tan coat." + ], + "Bluetick Coonhound": [ + "The Bluetick Coonhound is a medium to large dog with a sleek blue-ticked coat, long ears, and a muscular build.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, droopy ears, and a muscular build, unlike smoother or differently patterned animals.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a deep chest and strong legs.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a black and white mottled pattern." + ], + "Black and Tan Coonhound": [ + "The Black and Tan Coonhound has distinctive black and tan markings with a sleek coat and long drooping ears.", + "The Black and Tan Coonhound is a large dog with a black coat, tan markings, long ears, and a muscular build.", + "The Black and Tan Coonhound has a sleek black coat with tan markings, long droopy ears, and a muscular build distinct from other breeds.", + "The Black and Tan Coonhound has a sleek black coat with tan markings on its face, chest, and legs, and long droopy ears." + ], + "Treeing Walker Coonhound": [ + "The Treeing Walker Coonhound is a sleek medium-sized dog with long legs, short coat, and distinctive black white and tan markings.", + "The Treeing Walker Coonhound has a sleek short coat with white black and tan markings and long floppy ears unlike most objects.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long ears, and a lean muscular build.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long legs, and floppy ears." + ], + "English foxhound": [ + "The English foxhound is a medium to large dog with a muscular build short coat and long floppy ears often seen in hunting packs.", + "The English foxhound is a large athletic dog with a short dense coat long legs and a deep chest often seen in packs.", + "The English foxhound is a medium to large dog with a muscular build short coat and long ears distinct from other animals.", + "The English foxhound has a sleek muscular body with a distinctive white base coat and black or tan markings." + ], + "Redbone Coonhound": [ + "Look for a sleek red coat, long droopy ears, and a muscular build with a deep chest and expressive eyes.", + "Redbone Coonhounds have a sleek solid red coat long ears and a muscular build with a deep chest and expressive eyes.", + "The Redbone Coonhound is a sleek red-coated dog with long ears, a muscular build, and a friendly expressive face.", + "The Redbone Coonhound has a sleek red coat, long ears, and a muscular build, unlike most objects which lack organic features." + ], + "borzoi": [ + "A borzoi is a tall slender dog with a long narrow head silky coat and graceful appearance resembling a refined greyhound.", + "Borzoi are recognized by their long narrow heads slender bodies and silky coats with distinctive flowing fur.", + "Borzoi are tall slender dogs with long narrow heads silky coats and often white with patches of other colors.", + "Borzoi are tall slender dogs with long narrow heads silky coats and distinctive curved tails unlike most other breeds." + ], + "Irish Wolfhound": [ + "The Irish Wolfhound is a giant dog with a rough coat long legs a narrow body and a slightly curved tail.", + "The Irish Wolfhound has an extremely tall and slender build with a rough coat and long, narrow head.", + "The Irish Wolfhound is a very large and tall dog with a rough coat long legs and a narrow head.", + "The Irish Wolfhound is recognized by its massive size, long legs, wiry coat, and narrow head with a gentle expression." + ], + "Italian Greyhound": [ + "An Italian Greyhound is a slender, small dog with long legs, a narrow body, and a short, smooth coat.", + "Italian Greyhounds are slender small dogs with long legs a narrow head and a sleek short coat often seen in elegant poses.", + "Italian Greyhounds are slim small dogs with long legs a narrow head and a short smooth coat often seen in elegant poses.", + "Italian Greyhounds have an extremely slender and delicate build with long thin legs and a tiny waist unlike other dogs." + ], + "Whippet": [ + "A Whippet is a slim, medium-sized dog with a short coat, long legs, and a deep chest resembling a small Greyhound.", + "A Whippet is a slender, medium-sized dog with a sleek coat, long legs, and a graceful, athletic build resembling a smaller greyhound.", + "Whippets are slender, short-haired dogs with long legs and a deep chest, distinguishing them from bulkier or fluffier breeds.", + "Whippets are slim medium-sized dogs with long legs deep chests and short smooth coats often seen in graceful athletic poses." + ], + "Ibizan Hound": [ + "The Ibizan Hound is a tall slender dog with large upright ears a long narrow head and a sleek coat often white or red.", + "The Ibizan Hound is a slender, tall dog with large upright ears, a long narrow head, and a smooth or wire coat.", + "The Ibizan Hound has large upright ears a slender body and a long narrow head with a distinctive reddish or white coat.", + "The Ibizan Hound has a slender tall body large upright ears and a long narrow head distinguishing it from other breeds." + ], + "Norwegian Elkhound": [ + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail, unlike most objects.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat pointed ears and a curled tail.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail over its back.", + "The Norwegian Elkhound has a distinctive thick silver-gray coat with black tips and a tightly curled tail." + ], + "Otterhound": [ + "The Otterhound is a large, shaggy dog with a rough double coat, webbed feet, and a distinctive beard and mustache.", + "The Otterhound is a large, shaggy dog with a rough coat and webbed feet, unlike smoother or smaller animals.", + "The Otterhound is a large, rough-coated dog with a shaggy appearance, long ears, and a strong, athletic build.", + "The Otterhound has a distinctive shaggy, rough double coat with webbed feet and a large, strong body built for swimming." + ], + "Saluki": [ + "The Saluki has a sleek, slender body with long legs and a distinctive narrow, elongated head.", + "Salukis are slender, long-legged dogs with smooth coats, deep chests, and long tails, unlike bulkier or shorter-legged breeds.", + "The Saluki is a slender, elegant dog with long legs, a smooth coat, and a narrow, graceful face resembling a greyhound.", + "Salukis are recognized by their slim elegant build long legs narrow head and silky coat often with feathered ears and tail." + ], + "Scottish Deerhound": [ + "The Scottish Deerhound is a large, slender, rough-coated greyhound-like dog with long legs and a gentle, dignified expression.", + "A Scottish Deerhound is a large greyhound-like dog with a wiry coat long legs and a narrow head often seen in grey or brindle colors.", + "The Scottish Deerhound has a tall slender build with a rough coat long legs and a narrow head resembling a larger greyhound.", + "Scottish Deerhounds are tall slender dogs with rough coats long tails and folded ears unlike most other animals or objects." + ], + "Weimaraner": [ + "A Weimaraner is a sleek gray dog with a muscular build, short coat, and distinctive amber or blue-gray eyes.", + "The Weimaraner is recognized by its sleek silver-gray coat, amber or blue-gray eyes, and athletic muscular build.", + "Weimaraners are sleek gray dogs with short coats long legs and distinctive amber or blue gray eyes.", + "The Weimaraner has a distinctive sleek silver-gray coat and amber or blue-gray eyes." + ], + "Staffordshire Bull Terrier": [ + "A Staffordshire Bull Terrier is a muscular, medium-sized dog with a short coat, broad head, and strong jaw, often appearing stocky and confident.", + "Staffordshire Bull Terriers are muscular with a broad head and short coat, unlike most objects which lack these distinct animal features.", + "Staffordshire Bull Terriers have a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears." + ], + "American Staffordshire Terrier": [ + "The American Staffordshire Terrier has a muscular build, broad head, short coat, and ears that are either cropped or naturally rose or half-pricked.", + "The American Staffordshire Terrier is a muscular medium-sized dog with a broad head, short coat, and strong, stocky build.", + "The American Staffordshire Terrier has a broad muscular head with pronounced cheek muscles and a short glossy coat.", + "The American Staffordshire Terrier has a muscular build, broad head, and short coat, unlike most objects which lack these animal features." + ], + "Bedlington Terrier": [ + "The Bedlington Terrier is a small dog with a pear-shaped head, curly coat, and a lamb-like appearance among all objects.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a pear-shaped head and curly, woolly coat.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a curly coat and arched back unlike most other dog breeds.", + "The Bedlington Terrier has a pear-shaped head, curly coat, arched back, and a lamb-like appearance with a distinctive topknot." + ], + "Border Terrier": [ + "A Border Terrier is a small, wiry-coated dog with a distinctive otter-shaped head and a lively, friendly expression.", + "The Border Terrier has a distinctive otter-shaped head with a short, strong muzzle and a wiry, dense coat.", + "Border Terriers have a wiry coat, otter-shaped head, small V-shaped ears, and a short tail with a distinctive grizzled color pattern.", + "A Border Terrier has a wiry coat, otter-like head, small v-shaped ears, and a short tail, typically in tan, grizzle, or blue colors." + ], + "Kerry Blue Terrier": [ + "The Kerry Blue Terrier is a medium-sized dog with a curly blue-gray coat and a distinctive beard and mustache.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head, and a beard that sets it apart.", + "A Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head with a beard, and a muscular medium-sized build.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat and a bearded face unlike most other dog breeds or objects." + ], + "Irish Terrier": [ + "The Irish Terrier has a wiry red coat and a distinctive beard, unlike other objects which lack fur and facial hair.", + "The Irish Terrier has a wiry red coat, a long rectangular head, and a sturdy compact body with a distinctive beard.", + "The Irish Terrier has a distinctive wiry red coat and a long, narrow head with a beard and mustache.", + "An Irish Terrier has a wiry red coat a long head and a sturdy build with a beard and mustache." + ], + "Norfolk Terrier": [ + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact, energetic appearance.", + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact body, often in shades of red or black.", + "The Norfolk Terrier has a wiry, scruffy coat with folded ears and a compact, sturdy body distinct from other breeds.", + "The Norfolk Terrier has a wiry coat, small erect ears, a compact body, and a short tail with a friendly expressive face." + ], + "Norwich Terrier": [ + "A Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a fox-like expression.", + "The Norwich Terrier is a small, compact dog with prick ears, a wiry coat, and a fox-like face, distinguishing it from other objects.", + "The Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a friendly, alert expression.", + "Norwich Terriers are small with wiry coats prick ears and a fox-like expression distinguishing them from other breeds." + ], + "Yorkshire Terrier": [ + "A Yorkshire Terrier is a small dog with long silky blue and tan hair, a compact body, and a perky topknot.", + "Yorkshire Terriers are small long-haired dogs with silky tan and dark fur unlike larger or short-haired breeds and non-dog objects.", + "A Yorkshire Terrier is a small, long-haired dog with a silky blue and tan coat, perky ears, and a compact, elegant appearance.", + "Yorkshire Terriers are small with long silky blue and tan hair, a compact body, and a confident upright posture." + ], + "Wire Fox Terrier": [ + "A Wire Fox Terrier has a wiry white coat with black or tan markings, a narrow face, and a small sturdy body.", + "A Wire Fox Terrier has a wiry white coat with patches of black or tan, a narrow face, and a distinctive beard and eyebrows.", + "The Wire Fox Terrier is a small energetic dog with a wiry coat, pointy ears, and a distinctive white and tan or black pattern.", + "The Wire Fox Terrier has a distinctive wiry coat with dense, curly fur and a prominent beard and eyebrows." + ], + "Lakeland Terrier": [ + "The Lakeland Terrier is a small, wiry-coated dog with a distinctive beard and eyebrows, unlike smoother or larger animals.", + "A Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a distinctive beard and eyebrows.", + "The Lakeland Terrier has a wiry coat, small pointed ears, a rectangular body, and a distinctive beard and eyebrows.", + "The Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a confident, alert expression." + ], + "Sealyham Terrier": [ + "The Sealyham Terrier is a small white dog with a long body short legs and a wiry coat unlike most other objects.", + "The Sealyham Terrier is a small sturdy dog with a long white coat folded ears and a rectangular head.", + "The Sealyham Terrier is a small white dog with a long head, folded ears, and a wiry coat.", + "The Sealyham Terrier has a long white coat, short legs, a broad head, and distinctive drop ears with a sturdy, compact body." + ], + "Airedale Terrier": [ + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a bearded face.", + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a distinctive beard and mustache.", + "The Airedale Terrier has a wiry tan and black coat with a long muzzle and a distinctive beard and mustache.", + "The Airedale Terrier has a distinctive wiry coat with a black saddle and tan markings on its head and legs." + ], + "Cairn Terrier": [ + "A Cairn Terrier is a small, wiry-coated dog with a fox-like face, pointed ears, and a sturdy, compact body.", + "Cairn Terriers are small rough-coated dogs with pointed ears and short legs unlike smoother or larger breeds.", + "A Cairn Terrier is a small rough-coated dog with a fox-like face pointed ears and a shaggy brow.", + "A Cairn Terrier has a shaggy wiry coat, small pointed ears, a short broad head, and a compact sturdy body with a bushy tail." + ], + "Australian Terrier": [ + "The Australian Terrier is a small, rough-coated dog with pointed ears and a sturdy build, unlike smoother or larger animals.", + "The Australian Terrier is a small, sturdy dog with a rough coat, erect ears, and a long head, often in blue and tan colors.", + "The Australian Terrier is a small, sturdy dog with a rough coat, pointed ears, and a confident, alert expression.", + "The Australian Terrier has a small wiry coat, pointed ears, a long muzzle, and a distinctive topknot of softer fur." + ], + "Dandie Dinmont Terrier": [ + "The Dandie Dinmont Terrier is a small long-bodied dog with short legs a large domed head and a distinctive fluffy topknot.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a fluffy topknot unlike most other dog breeds.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a topknot of hair on its head.", + "The Dandie Dinmont Terrier has a distinctive topknot of hair, long body, short legs, and large expressive eyes." + ], + "Boston Terrier": [ + "A Boston Terrier is a small, muscular dog with a smooth coat, large round eyes, and distinctive tuxedo-like black and white markings.", + "Boston Terriers have a compact muscular body large round eyes short muzzle and distinctive tuxedo-like black and white coat markings.", + "Boston Terriers are small muscular dogs with a short coat, flat face, and large round eyes, distinct from other breeds.", + "A Boston Terrier has a compact muscular body, large round eyes, short muzzle, and distinct tuxedo-like black and white markings." + ], + "Miniature Schnauzer": [ + "Miniature Schnauzers are small dogs with wiry coats, bushy eyebrows, and beards, unlike smooth-coated or larger dog breeds and non-dog objects.", + "Miniature Schnauzers are recognized by their small size square build bushy eyebrows beard and wiry coat in salt pepper or black colors.", + "A Miniature Schnauzer has a square-shaped body, bushy eyebrows, a beard, and a wiry coat, usually in salt-and-pepper, black, or black-and-silver colors.", + "A Miniature Schnauzer is a small dog with a square build, bushy eyebrows, a beard, and a wiry coat in salt-and-pepper or solid colors." + ], + "Giant Schnauzer": [ + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "Giant Schnauzers have a large square build, wiry double coat, bushy eyebrows, and a distinctive beard and mustache.", + "The Giant Schnauzer is a large, robust dog with a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or smaller breeds." + ], + "Standard Schnauzer": [ + "A Standard Schnauzer has a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or less facial-haired animals.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, beard, and a square-shaped body with a docked tail.", + "A Standard Schnauzer has a square-shaped body, wiry coat, bushy eyebrows, and a distinctive beard and mustache." + ], + "Scottish Terrier": [ + "The Scottish Terrier has a distinctive long beard and eyebrows with a compact body and short legs.", + "A Scottish Terrier is a small, sturdy dog with short legs, a wiry coat, pointed ears, and a distinctive beard and eyebrows.", + "A Scottish Terrier has a compact body, short legs, a wiry coat, pointed ears, and a long head with a distinctive beard.", + "Scottish Terriers have a distinctive wiry coat, short legs, pointed ears, and a long head with a beard and eyebrows." + ], + "Tibetan Terrier": [ + "The Tibetan Terrier is a medium-sized dog with a shaggy double coat, round eyes, and a friendly expressive face.", + "The Tibetan Terrier has a shaggy double coat, a square-shaped body, and long hair covering its eyes and face.", + "The Tibetan Terrier has a long, shaggy coat, a square-shaped body, and a distinctive beard, unlike smoother or shorter-haired breeds.", + "The Tibetan Terrier has a medium-sized, square-shaped body with long, shaggy hair covering its eyes and a curled tail." + ], + "Australian Silky Terrier": [ + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat and a perky alert expression.", + "The Australian Silky Terrier is a small dog with a long silky blue and tan coat straight hair and perky ears.", + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat, distinct from other objects.", + "The Australian Silky Terrier has a distinctive long, silky, straight coat that parts down the middle of its back." + ], + "Soft-coated Wheaten Terrier": [ + "The Soft-coated Wheaten Terrier is a medium-sized dog with a silky, wavy coat that ranges from pale beige to golden wheat color.", + "The Soft-coated Wheaten Terrier has a silky, wavy coat and a rectangular-shaped head, unlike smoother or shorter-haired breeds.", + "The Soft-coated Wheaten Terrier has a distinctive silky, wavy, wheat-colored coat that sets it apart from other dog breeds.", + "A Soft-coated Wheaten Terrier has a silky, wavy, wheat-colored coat, a square body, and a friendly, expressive face with beard-like fur." + ], + "West Highland White Terrier": [ + "A West Highland White Terrier is a small fluffy white dog with pointy ears and a bright alert expression.", + "The West Highland White Terrier is a small white dog with a fluffy coat and pointed ears, unlike larger or differently colored animals.", + "A West Highland White Terrier is a small white dog with a fluffy coat pointy ears and a black nose.", + "The West Highland White Terrier has a distinctive pure white coat with a compact body and pointed ears." + ], + "Lhasa Apso": [ + "The Lhasa Apso is a small long-haired dog with a dense coat often covering its eyes and a sturdy compact body.", + "A Lhasa Apso is a small long-haired dog with a dense coat covering its eyes and a tail curled over its back.", + "The Lhasa Apso has a long, flowing coat that often covers its eyes and reaches the ground.", + "The Lhasa Apso has a long, flowing coat, distinctive facial hair, and a compact, sturdy body with a slightly arched back." + ], + "Flat-Coated Retriever": [ + "Flat-Coated Retrievers have sleek black or liver coats, long feathered tails, and friendly expressions, unlike most non-dog objects.", + "A Flat-Coated Retriever is a medium to large black or liver-colored dog with a sleek coat and friendly expressive face.", + "A Flat-Coated Retriever has a sleek black or liver coat, a long head, and a wagging tail with a friendly, energetic expression.", + "The Flat-Coated Retriever has a sleek, all-black or all-liver coat with a distinctive long, feathered tail and a wedge-shaped head." + ], + "Curly-coated Retriever": [ + "A Curly-coated Retriever is a medium to large dog with a distinctive tight, curly black or liver-colored coat and a sleek athletic build.", + "The Curly-coated Retriever has a tight, curly coat unlike most retrievers which have smooth or wavy fur.", + "A Curly-coated Retriever has a distinctive tight, crisp coat of small curls covering its entire body except the face and legs.", + "The Curly-coated Retriever has a dense, tight coat of small curls covering its entire body, distinguishing it from other retrievers." + ], + "Golden Retriever": [ + "A Golden Retriever is a medium to large dog with a golden coat, floppy ears, and a friendly, expressive face.", + "Golden Retrievers are medium to large dogs with long golden coats floppy ears and friendly expressive faces.", + "Golden Retrievers have a medium to large size, long golden coat, friendly face, floppy ears, and a feathery tail.", + "Golden Retrievers have a distinct dense, water-repellent golden coat with feathering on the legs, chest, and tail." + ], + "Labrador Retriever": [ + "A Labrador Retriever is a medium to large dog with a short dense coat broad head and otter like tail often in black yellow or chocolate.", + "A Labrador Retriever is a medium to large dog with a sturdy build, short dense coat, and a friendly expressive face.", + "Labrador Retrievers have a sturdy build, short dense coat, otter-like tail, and friendly expression with expressive eyes and floppy ears.", + "Labrador Retrievers have a muscular build short dense coat and otter like tail unlike most other objects which lack these animal features." + ], + "Chesapeake Bay Retriever": [ + "A Chesapeake Bay Retriever is a medium-sized dog with a wavy brown coat, muscular build, and a broad head with amber eyes.", + "The Chesapeake Bay Retriever has a distinctive dense, oily, wavy coat that repels water and provides insulation in cold conditions.", + "The Chesapeake Bay Retriever has a wavy waterproof coat and amber eyes, distinguishing it from other retrievers with smoother fur and darker eyes.", + "The Chesapeake Bay Retriever has a wavy waterproof coat, amber eyes, and a muscular build with a broad skull." + ], + "German Shorthaired Pointer": [ + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white coat and a muscular athletic build.", + "German Shorthaired Pointers have a sleek coat with liver or liver-and-white patches, long floppy ears, and a muscular athletic build.", + "The German Shorthaired Pointer has a sleek short coat, webbed feet, and a distinctive brown and white spotted or solid pattern.", + "The German Shorthaired Pointer has a distinctive liver and white speckled coat with a solid liver-colored head." + ], + "Vizsla": [ + "A Vizsla is a sleek medium-sized dog with short golden rust coat long ears and a slender muscular build.", + "A Vizsla is a sleek golden-brown dog with a short coat long ears and a slender athletic build.", + "The Vizsla has a sleek golden-rust coat and distinctive short smooth fur that sets it apart from other breeds.", + "A Vizsla is recognized by its sleek golden rust coat slender muscular build and gentle expressive face with floppy ears." + ], + "English Setter": [ + "The English Setter is a medium-sized dog with a speckled coat long ears and a feathered tail.", + "English Setters have long feathered coats with distinctive speckled patterns and elegant, athletic builds.", + "The English Setter has a white coat with flecked or speckled patches of color long feathered ears and a graceful athletic build.", + "English Setters have a distinctive speckled coat, long feathered ears, and a lean athletic build unlike most other objects." + ], + "Irish Setter": [ + "An Irish Setter is a medium to large dog with a sleek red coat long ears and a graceful athletic build.", + "An Irish Setter is a medium to large dog with a sleek, mahogany or chestnut red coat, long feathery ears, and a slender build.", + "The Irish Setter has a distinctive long, silky, mahogany-red coat that sets it apart from all other objects.", + "The Irish Setter has a sleek mahogany or chestnut coat, long feathered ears, and a slender, athletic build with a graceful stance." + ], + "Gordon Setter": [ + "A Gordon Setter is a large black and tan dog with long feathered fur and distinctive markings above the eyes.", + "The Gordon Setter is a black and tan dog with long, silky fur, feathered legs, and a distinctive feathered tail.", + "The Gordon Setter is recognized by its black and tan coat, feathered legs, long ears, and sturdy muscular build.", + "The Gordon Setter is a large black and tan dog with a feathered coat long ears and a noble expressive face." + ], + "Brittany dog": [ + "Brittany dogs have a medium-sized athletic build with wavy or flat coats, typically white with orange or liver markings.", + "The Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat and floppy ears.", + "A Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat, floppy ears, and a feathered tail.", + "The Brittany dog has a distinctive white and orange or liver-colored coat with feathering on the legs and ears." + ], + "Clumber Spaniel": [ + "A Clumber Spaniel is a large, heavy-boned dog with a white coat, lemon or orange markings, a broad head, and droopy eyes.", + "The Clumber Spaniel has a distinctive heavy brow and deep chest with a low-slung, muscular body and dense white coat.", + "The Clumber Spaniel is a sturdy, low-slung dog with a dense white coat, lemon or orange markings, and a gentle, expressive face.", + "The Clumber Spaniel has a heavy brow, deep chest, short legs, and a dense white coat with lemon or orange markings." + ], + "English Springer Spaniel": [ + "The English Springer Spaniel is a medium-sized dog with long floppy ears a wavy coat and expressive eyes often white with brown or black markings.", + "The English Springer Spaniel has a medium-sized body with long floppy ears a wavy coat and expressive eyes often in white with brown or black patches.", + "English Springer Spaniels have long floppy ears wavy fur and a medium build with expressive eyes often white with brown or black patches.", + "The English Springer Spaniel has long floppy ears a medium build and a wavy coat often with white and brown or black markings." + ], + "Welsh Springer Spaniel": [ + "The Welsh Springer Spaniel has a rich red and white coat with distinctively feathered ears and legs.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium-sized athletic build.", + "The Welsh Springer Spaniel is a medium-sized dog with a rich red and white coat, long ears, and a friendly expressive face.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium build unlike most other objects." + ], + "Cocker Spaniel": [ + "A Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive round eyes often in various colors.", + "Cocker Spaniels have long floppy ears a silky coat expressive eyes and a compact body with a wagging tail.", + "Cocker Spaniels have long floppy ears a silky coat and a rounded head with expressive dark eyes.", + "Cocker Spaniels have long floppy ears, a rounded head, and a silky coat, unlike most objects which lack these distinct dog features." + ], + "Sussex Spaniel": [ + "The Sussex Spaniel is a low, long, golden liver-colored dog with a heavy body, droopy ears, and a gentle expression.", + "The Sussex Spaniel has a distinctive low long body with rich golden liver-colored fur and heavy brows.", + "The Sussex Spaniel has a long low body, golden liver coat, and heavy brows, unlike most dogs or objects.", + "The Sussex Spaniel has a long low body golden liver coat droopy ears and a solemn expression with a distinctive waddling gait." + ], + "Irish Water Spaniel": [ + "The Irish Water Spaniel is a medium-sized curly-coated dog with a distinctive rat-like tail and a liver-colored waterproof coat.", + "The Irish Water Spaniel has a distinctive dense curly liver-colored coat and a smooth rat-like tail.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a long topknot on its head.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a topknot of long curls on its head." + ], + "Kuvasz": [ + "The Kuvasz is a large white dog with a muscular build, thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a thick double coat and muscular build, distinct from smaller or differently colored breeds.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a noble, alert expression." + ], + "Schipperke": [ + "A Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive fluffy coat around the neck.", + "The Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive tailless or short-tailed rear.", + "A Schipperke is a small black dog with a fox-like face pointed ears and a fluffy tail often docked short.", + "The Schipperke has a small black fox-like face, pointed ears, a tailless or short-tailed rear, and a thick double coat." + ], + "Groenendael dog": [ + "The Groenendael dog is a black long-haired Belgian Shepherd with a sleek coat and elegant posture.", + "The Groenendael dog has a solid long black coat with no markings and a distinctive elegant slender build.", + "The Groenendael is a long-haired black Belgian sheepdog with a sleek uniform coat unlike other dogs or objects.", + "The Groenendael dog is a sleek black Belgian Shepherd with a long coat pointed ears and an alert elegant stance." + ], + "Malinois": [ + "A Malinois is a sleek medium-sized dog with a short tan coat black mask and pointed ears resembling a German Shepherd.", + "Malinois are medium-sized dogs with short fawn coats, black masks, and erect triangular ears resembling German Shepherds but leaner.", + "The Malinois is a sleek tan dog with a black mask and short coat, distinct from other breeds and objects.", + "The Malinois has a sleek fawn coat with a distinctive black mask and ears." + ], + "Briard": [ + "A Briard is a large, long-haired dog with a shaggy coat, often black or fawn, and a distinctive beard and eyebrows.", + "A Briard is a large, long-haired herding dog with a shaggy coat, often in shades of black, gray, or tawny.", + "A Briard is a large, long-haired dog with a shaggy coat and beard, distinct from other breeds by its size and fur texture.", + "The Briard has a distinctive long shaggy coat with a slight wave and beard-like facial hair." + ], + "Australian Kelpie": [ + "The Australian Kelpie is a medium-sized, athletic dog with a short double coat, pricked ears, and a keen, intelligent expression.", + "The Australian Kelpie is a medium-sized, athletic dog with a short coat, pointed ears, and a lean, agile build.", + "The Australian Kelpie is a medium-sized dog with a muscular build, pointed ears, and a short coat, unlike other objects.", + "The Australian Kelpie has distinctive pricked ears and an alert expression with a sleek, athletic body built for herding." + ], + "Komondor": [ + "The Komondor has long white cords of hair resembling dreadlocks covering its entire body.", + "The Komondor is easily recognized by its long, corded white coat resembling thick dreadlocks covering its entire body.", + "The Komondor is a large white dog with a unique long corded coat resembling thick dreadlocks or mop strings.", + "The Komondor is easily recognized by its unique long, corded white coat resembling mop strings covering its entire body." + ], + "Old English Sheepdog": [ + "The Old English Sheepdog is a large fluffy dog with a shaggy gray and white coat and a distinctive bear-like gait.", + "The Old English Sheepdog has a shaggy gray and white coat, a bear-like gait, and often has its eyes hidden by fur.", + "The Old English Sheepdog has a shaggy double coat, a bear-like gait, and no tail, unlike most other dog breeds or objects.", + "The Old English Sheepdog has a distinctive shaggy coat covering its eyes and face completely." + ], + "Shetland Sheepdog": [ + "Shetland Sheepdogs have a long fluffy coat pointed ears and a fox-like face unlike most objects which are simpler and less furry.", + "The Shetland Sheepdog is a small, long-haired dog with a pointed muzzle, erect ears, and a fluffy coat often in sable or tricolor.", + "A Shetland Sheepdog has a long coat, pointed muzzle, erect ears, and a fluffy tail, resembling a small rough collie.", + "The Shetland Sheepdog has a distinctive long, flowing double coat with a mane-like ruff around its neck." + ], + "collie": [ + "A collie is a medium to large dog with a long narrow snout pointed ears and a thick furry coat often in sable or tricolor.", + "A collie has a long narrow snout, pointed ears, and a fluffy coat often with a white chest and sable or tricolor fur.", + "The collie's long narrow snout and distinctive fluffy mane around the neck set it apart from other objects.", + "Collies have a long narrow snout, pointed ears, and a fluffy coat with distinctive markings around the face and neck." + ], + "Border Collie": [ + "A Border Collie is a medium-sized dog with a sleek coat, often black and white, and a keen, intelligent expression.", + "Border Collies have a medium-sized athletic build with a thick double coat, often black and white, and expressive almond-shaped eyes.", + "Border Collies have a medium-sized athletic build with a thick double coat often black and white and intense alert eyes.", + "Border Collies have a distinctive white blaze on their face combined with a black and white coat pattern." + ], + "Bouvier des Flandres dog": [ + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a beard, resembling a sturdy farm dog.", + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a distinctive beard.", + "The Bouvier des Flandres is a large, rough-coated dog with a shaggy beard and eyebrows, unlike smoother or smaller animals.", + "The Bouvier des Flandres has a large, rugged body with a thick, shaggy coat and a distinctive beard and eyebrows." + ], + "Rottweiler": [ + "Rottweilers are large black dogs with tan markings on their face, chest, and legs, and a muscular, powerful build.", + "A Rottweiler is a large, muscular black and tan dog with a broad head, strong jaws, and a confident, powerful stance.", + "Rottweilers are large black and tan dogs with muscular builds and short coats, distinct from other breeds and objects.", + "Rottweilers have a muscular black body with distinct tan markings on the face, chest, and legs." + ], + "German Shepherd Dog": [ + "German Shepherds have a pointed muzzle erect ears and a black saddle marking on their tan or black coat.", + "A German Shepherd Dog is a large strong agile dog with a pointed muzzle erect ears and a black and tan coat.", + "German Shepherd Dogs have a wolf-like face, pointed ears, and a tan-and-black or all-black coat with a bushy tail.", + "A German Shepherd Dog has a tan and black coat pointed ears a long muzzle and a strong muscular build." + ], + "Dobermann": [ + "A Dobermann is a sleek muscular dog with a short coat long legs and a pointed muzzle often black or brown with tan markings.", + "Dobermanns have a sleek muscular body pointed ears long tail and a short black or brown coat with tan markings.", + "Dobermanns are sleek muscular dogs with short coats long legs and a distinctive wedge-shaped head unlike most other objects.", + "A Dobermann is a sleek muscular dog with a short black or brown coat long legs and a pointed muzzle often with cropped ears." + ], + "Miniature Pinscher": [ + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular body often in black tan or chocolate colors.", + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular build resembling a tiny Doberman.", + "The Miniature Pinscher is a small sleek dog with short fur erect ears and a compact muscular build unlike larger or fluffier breeds.", + "The Miniature Pinscher has a sleek short coat, compact muscular body, erect ears, and a confident high-stepping gait." + ], + "Greater Swiss Mountain Dog": [ + "Look for a large sturdy dog with a black white and rust coat a broad head and a thick muscular build.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat distinct from smaller or differently colored animals.", + "The Greater Swiss Mountain Dog has a large sturdy body with a short tricolor coat and distinctive white chest markings.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat of black white and rust markings." + ], + "Bernese Mountain Dog": [ + "A Bernese Mountain Dog is a large sturdy tri colored dog with a black coat white chest and rust markings.", + "The Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and legs.", + "A Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and on the legs.", + "Bernese Mountain Dogs have a large tri-colored coat with black white and rust markings and a sturdy muscular build." + ], + "Appenzeller Sennenhund": [ + "The Appenzeller Sennenhund is a medium-sized tri-color dog with a muscular build, short coat, and distinctive facial markings.", + "The Appenzeller Sennenhund is a medium-sized tricolor dog with a muscular build, short coat, and distinctive white markings on its face and chest.", + "The Appenzeller Sennenhund has a distinctive tricolor coat with a muscular build and a curled tail unlike most other objects.", + "The Appenzeller Sennenhund has a tricolor coat, muscular build, and a curled tail, distinguishing it from other breeds and objects." + ], + "Entlebucher Sennenhund": [ + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build, short coat, and distinctive white markings on face and chest.", + "The Entlebucher Sennenhund is a medium-sized tri-color dog with a muscular build and a short dense coat, distinct from other objects.", + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build short coat and expressive brown eyes.", + "The Entlebucher Sennenhund has a short tricolor coat with distinct black tan and white markings and a muscular compact build." + ], + "Boxer": [ + "A Boxer is a medium-sized, muscular dog with a short coat, square muzzle, and distinctive wrinkled forehead.", + "A Boxer has a muscular build, short coat, square jaw, and a distinctive pushed-in nose with a wrinkled forehead.", + "Boxers are muscular dogs with short coats, square heads, and strong jaws, unlike other objects which lack these animal features.", + "Boxers have a muscular build, short coat, square muzzle, and distinctive underbite with a strong, broad head and wrinkled forehead." + ], + "Bullmastiff": [ + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask on a fawn or brindle body.", + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask unlike smaller or less bulky animals.", + "A Bullmastiff is a large muscular dog with a short coat, broad wrinkled face, and a dark mask around its eyes.", + "Bullmastiffs are large muscular dogs with a short coat broad wrinkled face and a black mask around their eyes." + ], + "Tibetan Mastiff": [ + "A Tibetan Mastiff is a large, powerful dog with a thick mane-like coat, broad head, and deep-set eyes, often black or golden in color.", + "The Tibetan Mastiff is a large, powerful dog with a thick coat, heavy mane, and a strong, imposing presence.", + "The Tibetan Mastiff has a thick double coat with a distinctive lion-like mane around its neck and shoulders.", + "The Tibetan Mastiff is a large, thick-coated dog with a lion-like mane, much bigger and hairier than most other dog breeds." + ], + "French Bulldog": [ + "French Bulldogs have a compact muscular body, bat-like ears, and a flat wrinkled face unlike most other objects.", + "French Bulldogs have a compact muscular body large bat ears a short wrinkled face and a smooth coat in various colors.", + "A French Bulldog is a small muscular dog with a flat face bat ears and a smooth coat in various colors.", + "French Bulldogs are small with muscular bodies, bat-like ears, wrinkled faces, and short smooth coats in various colors." + ], + "Great Dane": [ + "Great Danes are very large muscular dogs with tall slender bodies long legs and short smooth coats in various colors.", + "Great Danes are very large dogs with tall slender bodies long legs and short coats unlike smaller or differently shaped animals.", + "A Great Dane is a very large and muscular dog with a short coat long legs and a noble elegant appearance.", + "Great Danes are recognized by their massive size, tall slender build, short coat, long legs, and gentle yet imposing facial expression." + ], + "St. Bernard": [ + "A St Bernard is a large, strong dog with a thick coat, floppy ears, and often has white with brown or red markings.", + "St Bernards are large dogs with thick fur, droopy faces, and often have white coats with brown or black markings.", + "St. Bernards are large dogs with thick fur, droopy faces, and a white and brown or reddish coat.", + "St Bernards are large dogs with thick fur, droopy faces, and often wear small barrels around their necks." + ], + "husky": [ + "A husky is a medium-sized dog with thick fur, pointed ears, and distinctive facial masks often in gray or black and white.", + "Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack fur and animal features.", + "Huskies are medium-sized dogs with thick fur, pointed ears, bushy tails, and distinctive facial masks often in black and white or gray.", + "Huskies have striking blue or multicolored eyes combined with a thick fur coat and distinctive facial mask patterns." + ], + "Alaskan Malamute": [ + "The Alaskan Malamute is a large fluffy dog with a thick coat, pointed ears, and a bushy tail unlike most other objects.", + "The Alaskan Malamute is a large, powerful dog with a thick coat, pointed ears, and a bushy tail, resembling a wolf.", + "The Alaskan Malamute has a distinctive thick, plumed tail that curls over its back unlike most other dog breeds.", + "The Alaskan Malamute is a large, powerful dog with a thick double coat, erect ears, and a bushy tail curled over its back." + ], + "Siberian Husky": [ + "Siberian Huskies have thick fur, erect triangular ears, distinctive facial masks, and often blue or multicolored eyes.", + "Siberian Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack these animal features.", + "Siberian Huskies have striking blue or multicolored eyes, a thick double coat, and distinctive facial masks with pointed ears.", + "A Siberian Husky is a medium-sized dog with a thick fur coat, erect triangular ears, and distinctive facial markings often in black and white." + ], + "Dalmatian": [ + "A Dalmatian has a white coat with black spots, a sleek muscular body, and a distinctively elegant and athletic appearance.", + "A Dalmatian is a white dog with distinct black spots, a sleek body, and a friendly, alert expression.", + "Dalmatians have a white coat with distinct black spots that are evenly spaced and vary in size.", + "Dalmatians are recognized by their white coat with black or liver spots and sleek muscular build." + ], + "Affenpinscher": [ + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, unlike smoother or larger animals or objects.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a short muzzle.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a sturdy, compact body.", + "The Affenpinscher has a shaggy wiry coat a monkey like face small size and a distinctive beard and mustache." + ], + "Basenji": [ + "The Basenji is a small sleek dog with a short coat curled tail pointed ears and a wrinkled forehead.", + "The Basenji is a sleek medium-sized dog with a short coat pointed ears and a tightly curled tail.", + "The Basenji has a short coat, tightly curled tail, wrinkled forehead, and upright ears with a sleek athletic build.", + "The Basenji is a small, short-haired dog with a wrinkled forehead, curled tail, and upright ears, unlike most other objects." + ], + "pug": [ + "A pug is a small, wrinkly-faced dog with a short muzzle, curled tail, and a compact, muscular body.", + "Pugs have a wrinkled face, short muzzle, curled tail, and compact muscular body with a fawn or black coat.", + "The pug's distinctively wrinkled, flat face and curled tail set it apart from all other objects.", + "Pugs have wrinkled faces, short muzzles, and curled tails, unlike most objects which lack these distinct facial and body features." + ], + "Leonberger": [ + "A Leonberger is a large dog with a thick golden or brown coat, a black mask, and a gentle, lion-like appearance.", + "The Leonberger is a large fluffy dog with a thick mane broad muzzle and gentle expression resembling a lion.", + "The Leonberger is a large, long-haired dog with a lion-like mane, distinguishing it from smaller or short-haired breeds.", + "The Leonberger has a large size with a thick mane-like fur around its neck and chest." + ], + "Newfoundland dog": [ + "Newfoundland dogs are large with thick black or brown coats webbed feet and a gentle expression.", + "The Newfoundland dog is a large, muscular breed with a thick black or brown coat, webbed feet, and a gentle expression.", + "Newfoundland dogs are large, fluffy, and have thick water-resistant coats, unlike most objects which are smaller and lack fur.", + "The Newfoundland is a large, strong dog with a thick water-resistant coat, webbed feet, and a gentle, friendly expression." + ], + "Great Pyrenees dog": [ + "Great Pyrenees are large white dogs with fluffy coats, gentle expressions, and often a slight tan or gray shading around the ears.", + "The Great Pyrenees is a large white fluffy dog with a thick double coat, distinct from smaller or non-fluffy animals.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a gentle bear-like face.", + "The Great Pyrenees is a large white fluffy dog with a gentle expression and a thick double coat." + ], + "Samoyed": [ + "Samoyeds are fluffy white dogs with a distinctive smiling face and curly tail unlike other animals or objects.", + "A Samoyed is a fluffy white dog with a thick coat, curled tail, and a friendly smiling face.", + "Samoyeds are fluffy white dogs with smiling faces pointed ears and a curly tail often looking happy and friendly.", + "Samoyeds are fluffy white dogs with a thick double coat, curled tail, and a smiling expression due to upturned mouth corners." + ], + "Pomeranian": [ + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors.", + "Pomeranians are small fluffy dogs with a fox-like face pointed ears and a thick double coat in various colors.", + "Pomeranians are small fluffy dogs with fox-like faces and thick double coats unlike larger or less furry animals.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat often in orange or cream." + ], + "Chow Chow": [ + "The Chow Chow is a fluffy medium-sized dog with a lion-like mane, deep-set eyes, and a distinctive blue-black tongue.", + "The Chow Chow has a distinctive thick double coat, blue-black tongue, and lion-like mane, unlike most other dog breeds.", + "The Chow Chow has a distinctive lion-like mane, deep-set eyes, a blue-black tongue, and a thick double coat in red or cream.", + "The Chow Chow is recognized by its thick double coat, deep-set eyes, blue-black tongue, and lion-like mane." + ], + "Keeshond": [ + "A Keeshond is a fluffy medium-sized dog with a thick gray and black coat, a fox-like face, and distinctive spectacles around its eyes.", + "The Keeshond has a distinctive thick gray and black fur, a fox-like face, and a plumed tail, unlike most other objects.", + "A Keeshond is a medium-sized dog with a thick gray and black coat, distinctive spectacles around the eyes, and a plumed tail.", + "The Keeshond has distinctive thick gray and black fur with striking spectacles-like markings around its eyes." + ], + "brussels griffon": [ + "A Brussels Griffon is a small dog with a short muzzle, large expressive eyes, and a distinctive beard-like fur around its face.", + "A Brussels Griffon is a small, sturdy dog with a short muzzle, large expressive eyes, and a rough or smooth coat.", + "Brussels griffons have a small, sturdy body with a flat face, large eyes, and a distinctive beard compared to other dog breeds.", + "The Brussels Griffon has a distinctive short muzzle large expressive eyes and a prominent chin with a wiry or smooth coat." + ], + "Pembroke Welsh Corgi": [ + "Pembroke Welsh Corgis are short-legged with pointed ears and a fox-like face unlike most objects which lack these distinct animal features.", + "Pembroke Welsh Corgis have short legs, pointed ears, a fox-like face, and a long body with no tail or a very short tail.", + "Pembroke Welsh Corgis are small short-legged dogs with pointed ears a fox-like face and a tailless or short tail.", + "The Pembroke Welsh Corgi is a small, sturdy dog with short legs, pointed ears, and a fox-like face." + ], + "Cardigan Welsh Corgi": [ + "The Cardigan Welsh Corgi is a small, long-bodied dog with short legs, large ears, and a fluffy tail.", + "The Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with a distinct fox-like face.", + "A Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with short legs and a fox-like face.", + "The Cardigan Welsh Corgi has a long tail, short legs, and a sturdy body, unlike many other dog breeds or objects." + ], + "Toy Poodle": [ + "A Toy Poodle is a small curly-haired dog with a rounded head perky ears and a fluffy tail.", + "A toy poodle is small with curly dense fur a rounded head and a slender muzzle often groomed in distinctive fluffy styles.", + "Toy poodles are small curly-haired dogs with fluffy rounded features unlike most objects which are hard angular or non-living.", + "Toy Poodles have a small curly coat round face and slender legs with a proud upright posture and expressive eyes." + ], + "Miniature Poodle": [ + "Miniature Poodles have curly dense fur a small size and a distinctive elegant posture with a rounded head and long slender legs.", + "Miniature Poodles have a distinctive curly dense coat with a rounded pom-pom tail and fluffy face and legs.", + "A Miniature Poodle is a small curly-haired dog with a slender build and an elegant poised stance.", + "Miniature Poodles have curly dense fur, long legs, and a distinctive poofy tail, unlike most objects which lack organic shapes and textures." + ], + "Standard Poodle": [ + "A Standard Poodle is a tall elegant dog with a curly dense coat often groomed in distinctive stylish patterns.", + "A Standard Poodle has a curly dense coat long legs an elegant stance and a distinctive poofy tail and topknot.", + "Standard Poodles have a curly dense coat, long legs, and a proud elegant posture with a distinctive rounded head and floppy ears.", + "Standard Poodles have curly fur, long legs, and a distinctive poofy tail, unlike most objects which are rigid or lack fur." + ], + "Mexican hairless dog (xoloitzcuintli)": [ + "The Mexican hairless dog has smooth mostly hairless skin wrinkles on the head and a slender body with large upright ears.", + "The Mexican hairless dog has smooth mostly hairless skin and a slender body unlike furry or feathered animals and non-living objects.", + "The Mexican hairless dog has smooth wrinkled skin large ears and a lean muscular body with little to no hair.", + "The Mexican hairless dog is a sleek slender canine with wrinkled skin large ears and little to no hair." + ], + "grey wolf": [ + "Grey wolves have a bushy tail, pointed ears, and a thick fur coat, unlike smoother or less furry animals.", + "Grey wolves have a bushy tail pointed ears thick fur and a narrow muzzle with a mix of grey brown and white fur.", + "A grey wolf is a large canine with thick fur, pointed ears, a bushy tail, and a lean, muscular body.", + "The grey wolf has a distinctive bushy tail with black tips and a mix of grey and brown fur." + ], + "Alaskan tundra wolf": [ + "The Alaskan tundra wolf has a thick white or light gray coat with a robust build and distinct facial markings.", + "The Alaskan tundra wolf has a thick gray or white coat, a robust build, and a broad face with strong jaws.", + "The Alaskan tundra wolf is a large grayish white canine with a thick fur coat and sturdy build resembling wild dogs.", + "The Alaskan tundra wolf has a thick gray-white coat, pointed ears, and a lean, muscular build, unlike most other animals or objects." + ], + "red wolf or maned wolf": [ + "Look for a reddish-brown coat with long legs and a narrow face resembling a fox for maned wolf or a stocky gray-red mix for red wolf.", + "The red wolf is a medium-sized canine with reddish fur and a slender build resembling a coyote or domestic dog.", + "Red wolves and maned wolves have slender legs, reddish fur, and distinct facial markings unlike most other animals.", + "The red wolf has a distinctive reddish-tawny coat, while the maned wolf has long black legs and a fox-like appearance." + ], + "coyote": [ + "Coyotes have slender bodies, pointed ears, bushy tails, and grayish-brown fur, distinguishing them from similar animals like wolves or dogs.", + "Coyotes have slender bodies pointed ears bushy tails and grayish brown fur often seen in wild open landscapes.", + "Coyotes have a slender pointed muzzle upright ears and a bushy tail with a black tip.", + "A coyote looks like a medium-sized wild dog with grayish-brown fur, pointed ears, a bushy tail, and a slender snout." + ], + "dingo": [ + "Dingoes are medium-sized wild dogs with sandy or reddish coats, pointed ears, and a bushy tail resembling a domestic dog.", + "Dingoes are medium-sized wild dogs with lean bodies, pointed ears, and reddish or sandy coats, unlike domestic dogs or wolves.", + "Dingoes have a lean body, pointed ears, bushy tail, and reddish or sandy fur with white markings on paws and chest.", + "A dingo looks like a medium-sized wild dog with a lean body, pointed ears, and a bushy tail, often sandy-colored." + ], + "dhole": [ + "The dhole is a wild dog with a reddish coat, bushy tail, and pointed ears, resembling a fox but larger and more robust.", + "The dhole is a wild dog with a reddish coat, bushy tail, and rounded ears, distinct from domestic dogs and wolves.", + "Dholes have reddish coats, bushy tails, rounded ears, and a distinctive black-tipped tail with a white underside.", + "The dhole has a distinctive reddish coat with a bushy black tail and white underside." + ], + "African wild dog": [ + "African wild dogs have unique patchy fur patterns with irregular brown black and yellow spots unlike solid-colored animals or man-made objects.", + "African wild dogs have unique patchy coats with irregular black brown and yellow patterns and large rounded ears.", + "African wild dogs have unique mottled fur patterns with irregular patches of yellow black and white and large rounded ears.", + "African wild dogs have a mottled coat with patches of yellow black and white large rounded ears and a slender build." + ], + "hyena": [ + "Hyenas have a dog-like shape with sloping backs large ears spotted or striped fur and strong jaws for crushing bones.", + "Hyenas are dog-like mammals with strong builds, short fur, rounded ears, and powerful jaws for crushing bones.", + "Hyenas have a sloping back, strong jaws, and spotted or striped fur unlike most animals which have straight backs and uniform coats.", + "Hyenas have a distinctive sloping back with powerful front legs and a spotted coat." + ], + "red fox": [ + "A red fox is a small canine with reddish fur, a bushy tail, pointed ears, and a slender snout.", + "The red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "A red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "Red foxes have a slender body, bushy tail, pointed ears, and reddish-orange fur, unlike most other animals." + ], + "kit fox": [ + "A kit fox is a small, slender, sandy-colored wild canine with large ears, a bushy tail, and pointed muzzle.", + "The kit fox has a small slender body large ears and a bushy tail unlike similar animals which may vary in size fur and ear shape.", + "The kit fox has large ears relative to its head size and a slender body with a bushy tail.", + "A kit fox has large ears, a slender body, grayish or yellowish fur, and a bushy tail with a black tip." + ], + "Arctic fox": [ + "The Arctic fox is a small white or gray furry animal with a bushy tail and pointed ears.", + "The Arctic fox has a white winter coat and smaller size compared to similar animals like the red fox or wolves.", + "The Arctic fox has thick white winter fur, a small round face, and short ears for surviving cold climates.", + "The Arctic fox has pure white winter fur that blends seamlessly with snowy landscapes." + ], + "grey fox": [ + "The grey fox is a small canine with grizzled grey fur a black stripe on its tail and a reddish neck.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish legs, unlike most animals with solid or less distinct markings.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown markings on its neck and legs.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown accents on its neck and legs." + ], + "tabby cat": [ + "Tabby cats have striped, dotted, or swirled fur patterns and a distinctive M-shaped mark on their forehead.", + "Tabby cats have striped, dotted, lined, or swirled patterns on their fur with a distinctive M-shaped mark on their forehead.", + "A tabby cat has distinctive striped, dotted, or swirled fur patterns often with an M-shaped mark on its forehead.", + "A tabby cat has a striped, spotted, or swirled coat pattern with an M-shaped mark on its forehead and often green or yellow eyes." + ], + "tiger cat": [ + "A tiger cat has a striped or spotted coat resembling a small tiger with a slender body and pointed ears.", + "Tiger cats have striped fur and a feline shape unlike other objects which vary in color texture and form.", + "Tiger cats have distinctive striped or spotted fur patterns resembling a tiger with a small domestic cat body shape.", + "Tiger cats have distinctive dark stripes and spots on a lighter background unlike other cats and objects." + ], + "Persian cat": [ + "Persian cats have long fluffy fur a flat face round eyes and a stocky body making them stand out.", + "Persian cats have long fluffy fur round faces short noses and large round eyes often with a flat face.", + "Persian cats have long fluffy fur flat faces and round eyes unlike most other objects which are not living animals.", + "A Persian cat is a fluffy long-haired cat with a round face short muzzle and large expressive eyes among all objects." + ], + "Siamese cat": [ + "Siamese cats have sleek bodies, blue almond-shaped eyes, short coats with color points on ears face paws and tail.", + "Siamese cats have sleek bodies, pointed color patterns on ears face paws and tail and striking blue almond-shaped eyes.", + "Siamese cats have striking blue almond-shaped eyes, short sleek coats with color points on ears face paws and tail.", + "A Siamese cat has a sleek body with blue almond-shaped eyes and distinctive pointed color patterns on its ears face paws and tail." + ], + "Egyptian Mau": [ + "The Egyptian Mau is a sleek spotted cat with a muscular body large green eyes and a graceful agile appearance.", + "The Egyptian Mau has a sleek spotted coat and distinctive mascara-like markings unlike other cats or objects.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau has a spotted coat, green eyes, and a distinctive mascara-like marking around its eyes." + ], + "cougar": [ + "A cougar is a large tan or brown cat with a long tail and a muscular body resembling a big domestic cat.", + "A cougar is a large tan cat with a long tail, slender body, and no distinct markings like spots or stripes.", + "A cougar has a uniform tan coat with no markings and a long thick tail relative to other big cats.", + "A cougar has a tan coat, muscular body, long tail, and a small head with rounded ears distinguishing it from other animals." + ], + "lynx": [ + "A lynx is a medium-sized wild cat with tufted ears, a short tail, and a spotted or striped coat.", + "Lynx are medium-sized wild cats with tufted ears, short tails, and spotted or streaked fur often seen in forested areas.", + "Lynx have tufted ears, short tails, and spotted coats with long legs and large paws for snowy habitats.", + "The lynx has distinctive long black tufts of hair on the tips of its ears." + ], + "leopard": [ + "Leopards have golden yellow fur with black rosettes and are sleek muscular cats smaller than lions and tigers.", + "A leopard is a large spotted cat with a golden coat and black rosettes, known for its strength and agility.", + "Leopards have golden coats with black rosettes and spots, sleek bodies, and long tails for climbing and balance.", + "Leopards have golden yellow fur with black rosette spots and a muscular slender body with a long tail." + ], + "snow leopard": [ + "A snow leopard is a large, pale gray cat with dark spots and a long, thick tail, living in mountainous regions.", + "Snow leopards have thick fur, rosette patterns, and a long tail, unlike other animals with plain coats or different body shapes.", + "Snow leopards have thick gray fur with black rosettes and spots, a long bushy tail, and a stocky build for mountain habitats.", + "A snow leopard has thick gray fur with black spots and rosettes, a long tail, and a muscular body built for cold mountains." + ], + "jaguar": [ + "Jaguars have a golden-yellow coat with black rosettes and a muscular build unlike other big cats or vehicles.", + "A jaguar is a large, muscular wild cat with a golden-yellow coat covered in dark rosettes and spots.", + "Jaguars have a golden-yellow coat with black rosettes and a muscular build, distinguishing them from other big cats and animals.", + "A jaguar has a golden-yellow coat with black rosettes and spots, a muscular build, and a large head with powerful jaws." + ], + "lion": [ + "A lion has a distinctive thick mane around its head which no other object or animal has.", + "Lions have a distinctive mane, muscular body, tawny fur, and a tail with a tuft unlike most other animals.", + "A lion is a large golden-brown cat with a mane around its head, sharp claws, and a muscular body.", + "A lion is a large tawny cat with a shaggy mane for males and a muscular body with a long tail." + ], + "tiger": [ + "Tigers have orange fur with black stripes, a muscular body, and a distinctive face with white markings and powerful jaws.", + "A tiger is a large striped orange and black cat with a powerful body sharp claws and a long tail.", + "Tigers have bold black stripes on orange fur, a white underside, and a powerful muscular body with a distinctive face.", + "A tiger has orange fur with black stripes, a white belly, and a muscular body with a long tail and sharp claws." + ], + "cheetah": [ + "Cheetahs have slender bodies black tear marks and spotted coats built for speed with long tails and small heads.", + "A cheetah is a sleek, spotted big cat with a slender body, long legs, and a distinctive black tear stripe on its face.", + "Cheetahs have slender bodies, black spots, and distinctive black tear marks on their faces unlike other big cats or animals.", + "Cheetahs are slender big cats with black spots, a long tail, and distinctive black tear marks on their faces." + ], + "brown bear": [ + "A brown bear is a large furry animal with a bulky body, round ears, and thick brown fur.", + "Brown bears are large furry mammals with a humped shoulder and long claws, unlike most objects which are smaller and less hairy.", + "Brown bears have a distinctive hump on their shoulders not found in other bear species or animals.", + "Brown bears are large with thick brown fur a muscular hump on their shoulders and long curved claws." + ], + "American black bear": [ + "The American black bear is a large, furry mammal with a stocky body, short tail, and round ears, usually dark brown or black.", + "American black bears have a stocky body, short tail, rounded ears, and thick black fur distinguishing them from other objects.", + "The American black bear has a stocky body, short tail, rounded ears, and fur ranging from black to light brown.", + "American black bears are medium-sized with black fur, a straight facial profile, and no shoulder hump like brown bears." + ], + "polar bear": [ + "Polar bears are large white bears with long necks small ears and black noses living in snowy Arctic regions.", + "Polar bears have thick white fur a large body and a long neck distinguishing them from other animals and objects.", + "A polar bear is a large white furry bear with a long neck and black nose living in icy Arctic regions.", + "Polar bears are large white bears with thick fur and black skin, unlike most other animals or objects in color and size." + ], + "sloth bear": [ + "The sloth bear is a shaggy black bear with a long snout, white muzzle, and curved claws for digging insects.", + "Sloth bears have shaggy black fur a white V on their chest and long curved claws unlike smoother shorter clawed bears.", + "The sloth bear has a distinct long shaggy black coat and a white V-shaped mark on its chest.", + "Sloth bears have shaggy black fur, a white V-shaped chest mark, and a long snout for sucking insects." + ], + "mongoose": [ + "A mongoose is a small slender furry mammal with a pointed face short legs and a long tail often brown or gray.", + "Mongooses are small slender mammals with pointed noses long tails short legs and often gray or brown fur.", + "Mongooses are small slender mammals with pointed faces short legs long tails and often a grizzled or speckled fur pattern.", + "Mongooses are small slender mammals with pointed faces and long tails unlike most other objects which are not animals." + ], + "meerkat": [ + "Meerkats have slender bodies, pointed faces, dark eye patches, and stand upright on their hind legs often in groups.", + "A meerkat is a small slender mongoose with a pointed face, short legs, and a long tail, often standing upright.", + "Meerkats are small slender mongooses with pointed faces, short legs, long tails, and dark eye patches on light brown fur.", + "Meerkats are small slender mongooses with pointed faces long tails and distinctive dark eye patches unlike most other animals." + ], + "tiger beetle": [ + "Tiger beetles have long legs, large eyes, and metallic-colored bodies with distinct patterns unlike most other insects and objects.", + "Tiger beetles have large bulging eyes and long slender legs that distinguish them from other insects and objects.", + "Tiger beetles are small, colorful, fast-moving insects with long legs, large eyes, and metallic or patterned bodies resembling tiny vibrant beetles.", + "Tiger beetles are recognized by their metallic colors, large eyes, long legs, and fast running speed among insects." + ], + "ladybug": [ + "Ladybugs are small round beetles with bright red or orange shells and black spots unlike most other insects or objects.", + "A ladybug is a small round beetle with bright red or orange wings and black spots, often found on plants.", + "Ladybugs are small round beetles with bright red or orange shells and black spots on their backs.", + "Ladybugs are recognized by their small round red bodies with black spots and shiny dome-shaped wing covers." + ], + "ground beetle": [ + "Ground beetles are small, shiny, and have hard wing covers with distinct ridges, unlike most other insects or objects.", + "Ground beetles are small shiny black or metallic insects with hard wing covers and long legs often found under rocks.", + "Ground beetles are small, shiny, dark-colored insects with hard wing covers and long legs, often found under rocks or logs.", + "Ground beetles are recognized by their shiny elongated bodies, ridged wing covers, and fast legs adapted for running." + ], + "longhorn beetle": [ + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical bodies with distinctive bold patterns or colors.", + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical shapes unlike most other beetles or insects.", + "Longhorn beetles have extremely long antennae often longer than their bodies distinguishing them from other insects and objects.", + "Longhorn beetles are recognized by their extremely long antennae often longer than their bodies and cylindrical elongated bodies." + ], + "leaf beetle": [ + "Leaf beetles are small, shiny, oval-shaped insects with bright colors or metallic sheen often found on leaves.", + "Leaf beetles are small, shiny, and often brightly colored with hard wing covers, unlike most other beetles which are duller or larger.", + "Leaf beetles are small, oval-shaped insects with bright, often metallic colors and hard wing covers, resembling tiny, shiny jewels on plants.", + "Leaf beetles are recognized by their small oval bodies, bright metallic colors, and distinct patterns on their wing covers." + ], + "dung beetle": [ + "A dung beetle is a small dark oval-shaped insect with a hard shell and strong legs for rolling dung balls.", + "Dung beetles are small dark oval-shaped insects with strong legs often seen rolling balls of dung.", + "Dung beetles are small, oval-shaped insects with hard shells and often have shiny black or metallic colors unlike most other objects.", + "Dung beetles are recognized by their oval body, shiny black or brown shell, and strong legs for rolling dung balls." + ], + "rhinoceros beetle": [ + "The rhinoceros beetle is a large dark insect with a prominent horn on its head resembling a rhino's horn.", + "A rhinoceros beetle has a large horn on its head and a shiny dark body with a hard shell.", + "Rhinoceros beetles have a large horn on their head and a thick armored body making them easy to recognize.", + "Rhinoceros beetles have a large horn on their head and a hard shiny shell unlike most other insects or objects." + ], + "weevil": [ + "Weevils are small beetles with elongated snouts and often have a hard shell compared to other insects or objects.", + "Weevils are small beetles with elongated snouts and often have a hard shell with a slightly curved or bent body shape.", + "Weevils have elongated snouts, small round bodies, and distinctive antennae often bent at an angle.", + "Weevils are small beetles with elongated snouts and often have a hard shell and segmented antennae." + ], + "fly": [ + "Flies are small with transparent wings, large eyes, and a slender body often seen near food or waste.", + "A fly is a small winged insect with a dark slender body large eyes and transparent veined wings.", + "Flies have small slender bodies transparent wings large eyes and six legs often seen hovering or resting on surfaces.", + "Flies have small, slender bodies with transparent wings and large compound eyes unlike most other objects in ImageNet." + ], + "bee": [ + "A bee is a small flying insect with a fuzzy striped body, transparent wings, and often seen near flowers.", + "Bees have striped yellow and black bodies, transparent wings, and are smaller than most similar flying insects like wasps or hornets.", + "Bees are small flying insects with yellow and black striped bodies, transparent wings, and often seen near flowers.", + "Bees have distinctive black and yellow striped bodies with translucent wings and fuzzy hair covering their thorax." + ], + "ant": [ + "Ants are small with six legs, a segmented body, and antennae, unlike most objects which lack these distinct insect features.", + "An ant is a small, slender insect with six legs, a segmented body, and often black or reddish-brown in color.", + "Ants have a distinct segmented body with a narrow waist and bent antennae unlike most other insects or objects.", + "Ants are small, six-legged insects with segmented bodies, thin waists, and bent antennae, often seen crawling in lines or carrying food." + ], + "grasshopper": [ + "Grasshoppers have long hind legs for jumping, slender bodies, and antennae, unlike most other insects and objects.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and antennae, often green or brown to blend into grass.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and wings, often green or brown for camouflage.", + "Grasshoppers have long hind legs for jumping and segmented bodies with large eyes and antennae." + ], + "cricket insect": [ + "Crickets are small, slender insects with long antennae, strong hind legs for jumping, and wings that some species use to chirp.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings that lie flat on their backs.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings, unlike most non-insect objects.", + "Crickets have long antennae and powerful hind legs adapted for jumping unlike most other insects and objects." + ], + "stick insect": [ + "Stick insects have long slender bodies resembling twigs or branches with legs that mimic small sticks for camouflage.", + "Stick insects are long and thin resembling twigs while other objects vary widely in shape color and texture.", + "Stick insects look like thin twigs or branches with long slender bodies and legs blending into their surroundings.", + "Stick insects uniquely resemble thin twigs or branches with elongated bodies and legs mimicking plant parts perfectly." + ], + "cockroach": [ + "Cockroaches are dark brown oval-shaped insects with long antennae six legs and a shiny flattened body often found scurrying quickly.", + "Cockroaches have flat oval bodies long antennae and six spiny legs unlike most insects which may have wings or different body shapes.", + "Cockroaches are small dark brown insects with oval flat bodies long antennae and six legs often found in damp places.", + "Cockroaches have flat oval bodies long antennae and six spiny legs often appearing shiny brown or black with a segmented appearance." + ], + "praying mantis": [ + "Praying mantises have long slender bodies triangular heads and folded spiked forelegs used for catching prey.", + "A praying mantis has a long slender green or brown body with large eyes and folded forelegs for catching prey.", + "Praying mantises have long slender bodies triangular heads and front legs adapted for grasping unlike most other insects or objects.", + "Praying mantises have long slender bodies triangular heads and front legs bent like they are praying often green or brown." + ], + "cicada": [ + "Cicadas have large transparent wings, prominent eyes, and a stout body, unlike most insects which are smaller with varied wing shapes.", + "Cicadas have large transparent wings, bulging eyes, and a stout body, often green or brown, with distinctive loud buzzing sounds.", + "Cicadas are small winged insects with large transparent wings bulging eyes and often green or brown bodies.", + "Cicadas have large transparent wings with prominent veins and a distinct body shape among insects." + ], + "leafhopper": [ + "A leafhopper is a small, slender, winged insect with vibrant colors, often green or brown, resembling tiny leaves or grasshoppers.", + "Leafhoppers are small, wedge-shaped insects with colorful or patterned wings and strong hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with colorful, often patterned wings and large hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with vibrant colors, large hind legs for jumping, and often have intricate patterns on their wings." + ], + "lacewing": [ + "Lacewings have delicate transparent veined wings, long antennae, and bright golden eyes, distinguishing them from other insects and objects.", + "Lacewings are delicate insects with transparent veined wings and long antennae, unlike other objects which lack these specific features.", + "Lacewings have delicate transparent wings with intricate veining patterns and a distinctive green or golden body.", + "Lacewings are delicate insects with transparent veined wings, long antennae, and bright green or pale bodies, often found near plants." + ], + "dragonfly": [ + "Dragonflies have long slender bodies, large transparent wings, and bulging eyes unlike most other insects or objects.", + "Dragonflies are recognized by their long slender bodies, large transparent wings, and large multifaceted eyes.", + "Dragonflies have long slender bodies, large transparent wings, and big bulging eyes, often seen near water.", + "A dragonfly has a long slender body large transparent wings and big eyes often seen near water with vibrant colors." + ], + "damselfly": [ + "A damselfly is a slender winged insect with a long body and delicate transparent wings resembling a small dragonfly.", + "Damselflies have slender bodies, delicate wings held together when resting, and long thin abdomens unlike bulkier dragonflies or other flying insects.", + "Damselflies have slender bodies, long thin wings held together when resting, and large widely separated eyes on their heads.", + "Damselflies have long slender bodies with two pairs of similarly sized wings held together when at rest." + ], + "red admiral butterfly": [ + "The red admiral butterfly has dark wings with bold orange-red bands and white spots, making it easily recognizable.", + "The red admiral butterfly has striking black wings with orange-red bands and white spots, unlike most other butterflies or objects.", + "The red admiral butterfly has bold orange-red bands on black wings with white spots near the tips.", + "The red admiral butterfly has black wings with striking orange-red bands and white spots along the wing edges." + ], + "ringlet butterfly": [ + "A ringlet butterfly is a small, dark brown butterfly with circular eye-like spots on its wings and a delicate, fluttering flight.", + "The ringlet butterfly has distinctive small eyespots with white centers on its underwings surrounded by dark rings.", + "Ringlet butterflies have small, dark wings with subtle ring-like patterns, unlike brighter or plainer insects and objects.", + "Ringlet butterflies have small, dark wings with white-ringed spots and a delicate, fluttering flight pattern." + ], + "monarch butterfly": [ + "The monarch butterfly has distinctive bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have vibrant orange and black wings with white spots along the edges and veins.", + "A monarch butterfly has vibrant orange and black wings with white spots and a delicate, slender body among all objects." + ], + "small white butterfly": [ + "Small white butterflies have delicate white wings with faint black or yellow markings, unlike most objects which are bulkier and lack wings.", + "Look for tiny white wings with delicate patterns and thin black edges fluttering near flowers or plants.", + "Small white butterflies have delicate white wings with subtle black tips and faint yellow or greenish undersides.", + "Small white butterflies have delicate white wings with faint black tips and subtle yellow or greenish undersides." + ], + "sulphur butterfly": [ + "A sulphur butterfly is a small yellow or orange butterfly with delicate wings often seen fluttering near flowers.", + "Sulphur butterflies have bright yellow or orange wings with black edges and small dark spots on their forewings.", + "Sulphur butterflies are bright yellow or orange with black wing edges and small dark spots on their wings.", + "Sulphur butterflies have bright yellow or orange wings with distinct black edges and minimal patterns." + ], + "gossamer-winged butterfly": [ + "Gossamer-winged butterflies have delicate, translucent wings with fine scales and slender bodies, unlike bulkier insects or birds with opaque feathers.", + "Gossamer-winged butterflies are small delicate insects with thin translucent wings often displaying vibrant colors and intricate patterns.", + "Gossamer-winged butterflies are small with delicate, translucent wings often showing bright colors or intricate patterns.", + "Gossamer-winged butterflies have delicate, translucent wings with vibrant colors and intricate patterns, often appearing small and fragile." + ], + "starfish": [ + "Starfish have five or more arms radiating from a central body and are often bumpy or spiny with bright colors.", + "Starfish have radial symmetry, five or more arms, rough textured skin, and bright colors or patterns.", + "Starfish have five or more radiating arms with a rough texture and often bright colors unlike smoother symmetrical objects.", + "Starfish are marine creatures with five or more arms radiating from a central body, often colorful and covered in small bumps or spines." + ], + "sea urchin": [ + "Sea urchins are small round spiny creatures with a hard shell often found in ocean habitats.", + "Sea urchins are round spiky marine creatures with a hard shell, unlike most other objects which are smoother or differently shaped.", + "Sea urchins have round spiny shells with radial symmetry and small tube feet between their spines.", + "Sea urchins are small spiny round creatures found in oceans resembling prickly balls with tiny tube feet underneath." + ], + "sea cucumber": [ + "Sea cucumbers are soft elongated tube-shaped marine animals often with leathery skin and small bumps or spines.", + "Sea cucumbers have a distinct elongated cylindrical body with soft leathery skin and small tube feet.", + "Sea cucumbers are elongated soft-bodied marine animals with leathery skin unlike most sea creatures which have shells or hard exoskeletons.", + "Sea cucumbers are recognized by their elongated soft cylindrical bodies and bumpy leathery skin often found on ocean floors." + ], + "cottontail rabbit": [ + "A cottontail rabbit is a small brown or gray furry animal with a fluffy white tail and long ears.", + "Cottontail rabbits have fluffy white tails and brown-gray fur, unlike other objects which lack these specific natural features.", + "Cottontail rabbits have small brown bodies with white fluffy tails and long ears but no black markings like some hares.", + "Cottontail rabbits have a small fluffy white tail, large ears, brown-gray fur, and a compact body with long hind legs." + ], + "hare": [ + "A hare is a fast long-eared mammal resembling a rabbit but larger with longer legs and stronger hindquarters for leaping.", + "Hares have long ears, strong hind legs, short tails, and brown or gray fur with a lean body.", + "Hares have long ears and legs with a lean body and brownish fur unlike similar animals which vary in size color and shape.", + "Hares have long ears, strong hind legs, a lean body, and fast movement, distinguishing them from similar animals like rabbits." + ], + "Angora rabbit": [ + "The Angora rabbit is a fluffy, long-haired rabbit with soft, thick fur that often appears round and woolly.", + "Angora rabbits have long soft fur and floppy ears unlike most objects which are hard smooth or lack fur and ears.", + "Angora rabbits are recognized by their long soft wool floppy ears and round faces with a fluffy compact body shape.", + "Angora rabbits are fluffy with long soft wool often covering their eyes and ears making them look like round fur balls." + ], + "hamster": [ + "Hamsters are small furry rodents with short tails and chubby cheeks unlike other animals or objects in their category.", + "Hamsters have small round bodies with short legs and distinctive cheek pouches for storing food.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive facial markings and whiskers.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive fur patterns or colors." + ], + "porcupine": [ + "Porcupines have long sharp quills covering their bodies which no other animal or object has in such abundance and arrangement.", + "Porcupines have long sharp quills covering their bodies unlike similar animals which have fur or shorter softer spines.", + "Porcupines are medium-sized rodents with sharp quills covering their bodies for protection against predators.", + "Porcupines are easily recognized by their long sharp quills covering their body and their stout slow moving shape." + ], + "fox squirrel": [ + "The fox squirrel is a large tree squirrel with reddish brown fur a bushy tail and a white belly.", + "Fox squirrels are larger with bushy tails and reddish-brown fur, unlike smaller gray squirrels or non-squirrel animals with different colors and shapes.", + "A fox squirrel has a bushy tail, reddish-brown fur, and is larger than most squirrels with a white belly.", + "Fox squirrels have large bushy tails, reddish-brown fur, and are often seen climbing trees or foraging on the ground." + ], + "marmot": [ + "A marmot is a stout, furry rodent with short legs, a bushy tail, and rounded ears, resembling a large ground squirrel.", + "Marmots are stout, furry rodents with short legs, bushy tails, and rounded ears, often seen in rocky or grassy areas.", + "Marmots are large ground-dwelling rodents with stout bodies, short legs, and bushy tails, unlike most similar animals.", + "Marmots are recognized by their stout bodies, short legs, bushy tails, and brown or gray fur often found in rocky mountainous areas." + ], + "beaver": [ + "A beaver is a large brown rodent with a flat tail webbed feet and sharp teeth often seen near water.", + "Beavers are large brown rodents with flat tails, webbed hind feet, and sharp teeth, often found near water.", + "Beavers have flat tails, webbed feet, and brown fur, unlike most animals which lack these specific aquatic adaptations.", + "Beavers have flat scaly tails, webbed hind feet, and large front teeth for gnawing wood near water." + ], + "guinea pig": [ + "Guinea pigs are small furry rodents with round bodies short legs and no tails unlike most other pets or objects.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and smooth fur in various colors and patterns." + ], + "common sorrel horse": [ + "A common sorrel horse has a solid reddish-brown coat with no black points, unlike other animals or objects with varied colors and patterns.", + "The common sorrel horse has a solid reddish-brown coat without black points like mane or tail.", + "A common sorrel horse has a reddish-brown coat with a uniform color, often with a flaxen mane and tail.", + "A common sorrel horse has a solid reddish-brown coat with a similar mane and tail, lacking black markings or other color variations." + ], + "zebra": [ + "Zebras are easily recognized by their black and white striped patterns and horse-like body shape.", + "Zebras have bold black and white stripes covering their entire body unlike any other animal.", + "A zebra is a striped horse-like animal with black and white patterns standing out among other animals and objects.", + "Zebras are recognized by their black and white striped patterns unique among animals and distinct from all other objects." + ], + "pig": [ + "Pigs have stout bodies, short legs, a snout for a nose, and often curly tails with pink or dark skin.", + "Pigs have stout bodies, short legs, flat snouts, and curly tails, unlike most animals which have leaner builds and different facial features.", + "Pigs are stout animals with short legs, a round body, a snout, and often pink skin covered with sparse hair.", + "Pigs have stout bodies, short legs, curly tails, and a distinctive snout used for rooting in the ground." + ], + "wild boar": [ + "Wild boars have dark coarse fur, a long snout, small eyes, and prominent tusks in males, with a sturdy muscular body.", + "Wild boars have coarse fur, tusks, and a stocky build unlike smoother or less muscular animals like pigs or deer.", + "A wild boar is a stocky, hairy animal with a large head, short legs, and prominent tusks, resembling a rugged pig.", + "Wild boars have a stocky body, coarse dark fur, a long snout, and prominent tusks making them easily recognizable." + ], + "warthog": [ + "Warthogs are wild pigs with large curved tusks, coarse gray or brown hair, and distinctive facial warts.", + "A warthog is a wild pig with a stocky body, coarse gray skin, large tusks, and distinctive facial warts.", + "Warthogs have distinctive large tusks, warty facial bumps, and a mane of coarse hair along their back.", + "Warthogs have distinctive large curved tusks and warty facial bumps that set them apart from other animals." + ], + "hippopotamus": [ + "A hippopotamus is a large gray aquatic mammal with a bulky body short legs and a wide mouth with big teeth.", + "Hippopotamuses are large, barrel-shaped with thick gray skin, small ears, wide mouths, and nearly hairless bodies unlike most other animals.", + "A hippopotamus is a large, barrel-shaped animal with thick gray skin, a huge mouth, and small ears and eyes on top of its head.", + "Hippopotamuses have massive barrel-shaped bodies with thick gray skin and tiny ears compared to their huge heads." + ], + "ox": [ + "An ox is a large, sturdy bovine with a muscular body, thick neck, and often has horns and a short coat.", + "Oxen are large, sturdy animals with muscular bodies, long tails, and prominent horns, unlike smaller or hornless livestock and objects.", + "Oxen are large, sturdy animals with broad bodies, thick necks, and curved horns, often seen with a muscular build and short hair.", + "Oxen are recognized by their large sturdy bodies long curved horns and strong muscular shoulders used for labor." + ], + "water buffalo": [ + "A water buffalo is a large, dark, stocky animal with curved horns, a broad muzzle, and a heavy, muscular body.", + "Water buffalo are large, dark gray or black animals with massive curved horns and a stocky, muscular body.", + "Water buffaloes are large, stocky animals with curved horns, dark gray or black skin, and a heavy build compared to similar animals.", + "Water buffalo have large curved horns that sweep back and up forming a distinctive crescent shape." + ], + "bison": [ + "Bison are large, shaggy brown mammals with massive heads, short horns, and humped shoulders, resembling wild cattle or buffalo.", + "Bison are large, shaggy-haired mammals with massive heads and humped shoulders, unlike most animals which are smaller or smoother.", + "Bison are large, shaggy brown mammals with massive heads, short curved horns, and a pronounced hump on their shoulders.", + "Bison have a massive humped shoulder and a thick shaggy mane that distinguishes them from other animals." + ], + "ram (adult male sheep)": [ + "A ram is a sturdy adult male sheep with large curved horns, a thick woolly coat, and a muscular build.", + "The ram has large curved horns that are thicker and more spiraled than other horned animals.", + "Rams have large curved horns a thick woolly coat and a muscular build distinguishing them from other animals.", + "Look for a large sturdy animal with curved horns thick wool a short tail and a muscular build compared to female sheep." + ], + "bighorn sheep": [ + "Bighorn sheep have large curved horns, stocky bodies, and brown fur, unlike most animals or objects which lack these distinct features.", + "Bighorn sheep have large curved horns a stocky brown body and white rump distinguishing them from other animals.", + "Bighorn sheep are large brown wild sheep with massive curved horns and a muscular body adapted for rugged mountainous terrain.", + "Bighorn sheep are recognized by their large curved horns muscular build brown-gray fur and preference for rocky mountainous habitats." + ], + "Alpine ibex": [ + "The Alpine ibex is a large wild goat with long curved horns a shaggy brown coat and a sturdy muscular body.", + "Alpine ibex are wild goats with long curved horns a light brown coat and a sturdy muscular build living in rocky mountains.", + "Alpine ibex have long curved horns with prominent ridges and a distinctive backward sweep.", + "Alpine ibex have long curved horns ridged rings and a sturdy grey brown body adapted for mountainous terrain." + ], + "hartebeest": [ + "Hartebeest are large antelopes with long narrow faces sloping backs and short twisted horns in both males and females.", + "A hartebeest is a large antelope with a long face, steeply sloping back, and ringed curved horns.", + "Hartebeests have long faces, short necks, and high shoulders, unlike other antelopes which are more streamlined or have different horn shapes.", + "Hartebeests have long narrow faces steeply sloping foreheads and short twisted horns with a reddish brown coat and long legs." + ], + "impala (antelope)": [ + "An impala is a slender, medium-sized antelope with reddish-brown fur, white underparts, and distinctive black markings on its face and tail.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impala have slender bodies, long legs, reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinct black stripes on their tails and hind legs." + ], + "gazelle": [ + "Gazelles are slender with long legs, short tails, and curved horns, often tan or light brown with white underbellies.", + "Gazelles are slender with long legs and horns while similar animals vary in size shape or lack horns.", + "Gazelles have slender bodies long legs and distinctive curved horns with a smooth glossy coat and white underbelly.", + "Gazelles are slender, long-legged antelopes with smooth coats, short tails, and often curved horns, built for speed in open grasslands." + ], + "arabian camel": [ + "The Arabian camel has a single hump while other camels have two humps.", + "The Arabian camel has a single hump, long legs, and a slender body compared to other camels and animals.", + "The Arabian camel has a long curved neck, a single hump, and a sandy-colored coat with long slender legs.", + "The Arabian camel has a single hump, long curved neck, slender legs, and a short coat, distinguishing it from other camels and animals." + ], + "llama": [ + "Llamas have long necks, slender legs, and woolly coats, unlike most animals which are shorter or have smoother fur.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas are tall furry mammals with long necks slender legs and a distinctive face resembling a camel but smaller and woolly." + ], + "weasel": [ + "A weasel is a small slender furry animal with short legs a long body and a pointed snout.", + "Weasels are small slender mammals with long bodies short legs pointed snouts and brown or white fur often with black tips.", + "Weasels have long slender bodies short legs pointed faces and brown or white fur often with a black-tipped tail.", + "Weasels are small slender mammals with long bodies short legs and brown fur while similar animals vary in size shape and color." + ], + "mink": [ + "Minks are small slender mammals with short legs, pointed snouts, and thick glossy fur, unlike most other animals.", + "Minks are small slender mammals with glossy dark brown fur short legs and a long tail.", + "A mink is a small sleek furry animal with a long body short legs and a pointed face resembling a weasel.", + "The mink has a sleek, elongated body with glossy dark brown fur and a small pointed face." + ], + "European polecat": [ + "The European polecat is a small, slender, dark-furred mammal with a white face mask and a long, bushy tail.", + "The European polecat has a dark brown coat with lighter underfur and a distinctive white face mask and dark legs.", + "The European polecat has a slender body, dark fur with a white face mask, and a bushy tail, unlike similar animals.", + "European polecats have slender bodies, dark masks around their eyes, and a mix of dark brown and cream fur with a bushy tail." + ], + "black-footed ferret": [ + "The black-footed ferret is a slender, long-bodied animal with dark legs, a pale body, and a distinctive black mask.", + "The black-footed ferret has a slender body with a black mask, black feet, and a tan coat with white underparts.", + "The black-footed ferret has a slender body, black mask, and dark feet, unlike similar animals with different markings or body shapes.", + "The black-footed ferret has distinctive dark markings on its feet and a black mask around its eyes." + ], + "otter": [ + "Otters have sleek furry bodies long tails webbed feet and small rounded ears unlike most aquatic or land animals.", + "Otters are sleek furry mammals with long tails webbed feet and whiskers often seen swimming or floating on water.", + "Otters are sleek furry mammals with long bodies short legs webbed feet and whiskers often seen swimming or holding hands.", + "Otters have a sleek streamlined body with webbed feet and a long tapered tail for swimming." + ], + "skunk": [ + "A skunk is a black and white furry mammal with a bushy tail and distinctive stripes, often emitting a strong odor.", + "Skunks are small black and white mammals with a bushy tail and distinctive white stripes or spots on their fur.", + "Skunks are recognized by their black fur with bold white stripes or spots and a bushy tail.", + "Skunks have distinctive black and white fur patterns and a bushy tail unlike most animals which have more uniform colors." + ], + "badger": [ + "Badgers are stout furry animals with short legs, black and white striped faces, and strong claws for digging.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws unlike most similar animals.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws for digging.", + "Badgers are stocky with short legs, black and white striped faces, and grayish fur on their low slung bodies." + ], + "armadillo": [ + "An armadillo is a small armored mammal with a hard bony shell, short legs, and a pointed snout.", + "Armadillos have a unique armored shell made of bony plates unlike most animals which have fur scales or smooth skin.", + "Armadillos have a distinctive leathery armored shell made of bony plates covering their back and sides.", + "Armadillos have a unique armored shell made of bony plates covering their back, head, legs, and tail." + ], + "three-toed sloth": [ + "Three-toed sloths have long limbs, curved claws, and a slow-moving, shaggy brown or gray fur coat unlike most other animals.", + "A three-toed sloth is a slow-moving, furry mammal with long limbs, curved claws, and a distinctive face, often hanging upside down in trees.", + "Three-toed sloths have long limbs, curved claws, a round face with a permanent smile, and shaggy gray-brown fur.", + "Three-toed sloths have a round face with a stubby snout, long limbs with three claws, and shaggy gray-brown fur." + ], + "orangutan": [ + "An orangutan is a large reddish brown ape with long arms shaggy hair and a distinctive face resembling humans.", + "Orangutans have long reddish-brown hair, large bodies, and no tails with prominent cheek pads on adult males.", + "Orangutans have long reddish-brown fur and distinctive cheek pads in males.", + "Orangutans have long reddish hair, large bodies, and no tails, unlike most animals and objects in ImageNet." + ], + "gorilla": [ + "A gorilla is a large, dark-haired primate with a muscular body, broad chest, and a strong, expressive face.", + "Gorillas are large black-haired primates with broad shoulders and no tails unlike many other animals and objects.", + "Gorillas are recognized by their large size, dark fur, broad shoulders, and distinctive facial features like a pronounced brow ridge.", + "Gorillas are large black-haired primates with broad chests, muscular arms, and a distinctively shaped head with a prominent brow ridge." + ], + "chimpanzee": [ + "Chimpanzees have black fur, long arms, hairless faces with large ears, and prominent brows, resembling humans but covered in coarse hair.", + "Chimpanzees are hairy primates with long arms, dark faces, and expressive eyes resembling humans but covered in coarse black or brown fur.", + "Chimpanzees have dark fur, long arms, expressive faces, and no tails unlike many animals and objects in ImageNet.", + "Chimpanzees have dark hairy bodies long arms expressive faces and opposable thumbs distinguishing them from other animals and objects." + ], + "gibbon": [ + "Gibbons are small slender apes with long arms no tails and fur ranging from black to light brown or cream.", + "Gibbons are small apes with long arms and no tail, unlike monkeys which often have tails and shorter limbs.", + "Gibbons are small apes with long arms, no tail, and a slender body, often seen swinging in trees.", + "Gibbons have long arms small bodies no tails and are often seen swinging in trees with their distinctive slender frames." + ], + "siamang": [ + "A siamang is a large black gibbon with long arms, a throat sac, and shaggy fur, resembling a small ape.", + "Siamangs are black-furred apes with long arms, large throat pouches, and no tail, unlike most primates and other animals.", + "Siamangs are large black gibbons with long arms, shaggy fur, and a distinctive throat sac that inflates when they vocalize.", + "Siamangs are recognized by their large size, long arms, black fur, and distinctive throat sacs used for loud vocalizations." + ], + "guenon": [ + "Guenons are small monkeys with colorful fur, long tails, and distinct facial markings unlike most other animals or objects.", + "A guenon is a colorful, slender monkey with a long tail, distinctive facial markings, and often a white or bright nose.", + "Guenons are small monkeys with colorful fur, long tails, and distinctive facial markings like mustaches or bright nose spots.", + "Guenons are recognized by their colorful fur patterns, long tails, and distinctive facial markings like mustaches or bright nose spots." + ], + "patas monkey": [ + "Patas monkeys are slender with long limbs reddish fur white bellies and distinctive black facial markings.", + "Patas monkeys have long slender limbs reddish fur white bellies and distinctive black facial markings for easy recognition.", + "Patas monkeys have long limbs reddish fur and white bellies unlike other monkeys which often have darker fur and different body shapes.", + "The patas monkey has a slender body, long limbs, reddish-brown fur, a white belly, and a distinctive black face with a white mustache." + ], + "baboon": [ + "Baboons have distinctive dog-like snouts, long tails, and fur-covered bodies unlike most primates and other animals.", + "A baboon is a large monkey with a long muzzle, bare face, and a short tail, often seen in groups.", + "Baboons have dog-like muzzles long tails and colorful hairless faces with distinctive fur patterns on their bodies.", + "Baboons have distinctive long dog-like muzzles and brightly colored hairless patches on their faces and rumps." + ], + "macaque": [ + "Macaques have fur, long tails, and expressive faces, unlike objects which lack organic features and movement.", + "Macaques are medium-sized monkeys with brown or gray fur, long tails, and expressive faces resembling humans with cheek pouches.", + "Macaques are medium-sized monkeys with brown or gray fur, expressive faces, long tails, and often seen sitting or climbing.", + "Macaques have distinctive pink or light-colored faces and rumps with expressive eyes and short tails." + ], + "langur": [ + "Langurs are slender long-tailed monkeys with distinct facial markings and fur colors unlike most animals or objects.", + "Langurs are slender, long-tailed monkeys with black faces, often gray or golden fur, and distinctive white markings around their eyes.", + "A langur is a slender, long-tailed monkey with a black face and gray or golden fur, often seen in trees.", + "Langurs have long tails slender bodies and distinctive facial markings often with light fur around their dark faces." + ], + "black-and-white colobus": [ + "Black-and-white colobus monkeys have striking black fur with long white mantles and tails unlike most animals or objects.", + "The black-and-white colobus is a monkey with striking black fur and long white mantle and tail.", + "Black and white colobus monkeys have striking black fur with long white mantles and tails, often seen in trees.", + "The black-and-white colobus has striking long white fur and a black face with a white mantle and tail." + ], + "proboscis monkey": [ + "The proboscis monkey has a large, long nose, a pot belly, and reddish-brown fur with a pale face and tail.", + "The proboscis monkey has a large, protruding nose, a potbelly, and reddish-brown fur with a long tail.", + "The proboscis monkey has a large nose potbelly and webbed feet unlike most other monkeys or animals.", + "The proboscis monkey has a large nose potbelly reddish fur and long tail living in trees near water." + ], + "marmoset": [ + "A marmoset is a small monkey with a furry body, long tail, and distinctive facial markings resembling a tiny lion.", + "Marmosets are small monkeys with fluffy fur, long tails, and distinctive white ear tufts or facial markings.", + "Marmosets are small monkeys with fluffy fur long tails and distinct facial markings unlike most other animals or objects.", + "Marmosets are recognized by their small size, claw-like nails, and distinctive white ear tufts or facial markings." + ], + "white-headed capuchin": [ + "The white-headed capuchin is a small monkey with a white face and chest and a dark brown body.", + "The white-headed capuchin has a distinctive white face and chest with a dark body and a prehensile tail.", + "The white-headed capuchin has a distinctive black body with a white face and chest, unlike most animals and objects.", + "The white-headed capuchin has a distinctive white face and chest with a black body and limbs." + ], + "howler monkey": [ + "Howler monkeys have shaggy fur, long tails, and large throats, unlike most objects which are smoother and lack these distinct animal features.", + "Howler monkeys have a distinctive thick beard and long prehensile tail not found in other similar primates.", + "Howler monkeys are large, dark-furred primates with wide faces, strong limbs, and prehensile tails, often seen in trees.", + "Howler monkeys are recognized by their large size, dark fur, prehensile tails, and loud vocalizations in dense forest habitats." + ], + "titi monkey": [ + "Titi monkeys are recognized by their small size long tails and soft fur often with reddish or grayish tones.", + "Titi monkeys are small primates with fluffy fur, long tails, and round faces unlike most non-primate objects.", + "Titi monkeys are small with fluffy fur, long tails, and rounded faces often in shades of brown gray or black.", + "Titi monkeys have distinctive long fluffy tails and small round faces with soft fur." + ], + "Geoffroy's spider monkey": [ + "Geoffroy's spider monkey has long limbs, a prehensile tail, and a dark face, unlike most objects which lack such distinct biological features.", + "Geoffroy's spider monkey has long limbs and a prehensile tail with a slender dark brown or black furry body.", + "Geoffroy's spider monkey has long limbs, a prehensile tail, and black fur with a lighter face and chest.", + "Geoffroy's spider monkey has long slender limbs a prehensile tail and a small head with a black face and light fur." + ], + "common squirrel monkey": [ + "Look for a small monkey with a white face, dark muzzle, and yellowish orange fur on its back and limbs.", + "The common squirrel monkey is a small, agile primate with short fur, a long tail, and a white face with dark eyes.", + "The common squirrel monkey has a small, agile body with a short grayish coat, black muzzle, and distinctive white face markings.", + "The common squirrel monkey has a distinctive white face with black muzzle and yellow-orange arms." + ], + "ring-tailed lemur": [ + "A ring-tailed lemur has a slender body, long black-and-white striped tail, pointed face, and large yellow eyes.", + "Ring-tailed lemurs have long striped tails and pointed faces unlike most animals which lack such distinct tail patterns and facial features.", + "The ring-tailed lemur has a long black and white striped tail and a pointed fox-like face.", + "The ring-tailed lemur has a long black and white striped tail and a pointed face with bright yellow eyes." + ], + "indri": [ + "The indri is a large lemur with black and white fur, short ears, and no tail unlike most other primates.", + "The indri is a large black and white lemur with a round face, small ears, and a short tail.", + "The indri has distinctive black and white fur with large greenish eyes and no visible tail.", + "Indri are large black and white lemurs with round ears, long limbs, and no tail, often seen clinging to tree trunks." + ], + "Asian elephant": [ + "An Asian elephant is a large gray animal with a long trunk small ears and a humped back.", + "Asian elephants have smaller ears relative to their head size compared to African elephants.", + "Asian elephants have smaller ears, a single finger-like projection on their trunk, and a more arched back compared to African elephants.", + "Asian elephants have smaller ears rounded at the top and a single dome-shaped head compared to African elephants' larger ears." + ], + "African bush elephant": [ + "African bush elephants are recognized by their large size long curved tusks big ears and wrinkled gray skin.", + "African bush elephants have large ears shaped like the African continent and long curved tusks.", + "The African bush elephant is a massive gray animal with large ears, a long trunk, and prominent tusks.", + "African bush elephants are large gray animals with long trunks big ears and tusks unlike most other objects or animals." + ], + "red panda": [ + "A red panda is a small furry mammal with reddish brown fur a long tail and white face markings.", + "A red panda has reddish-brown fur, a long bushy tail, white face markings, and is smaller than a giant panda.", + "Red pandas have reddish-brown fur, bushy ringed tails, white face markings, and a bear-like body shape with short legs.", + "Red pandas are small, reddish-brown mammals with bushy tails and white facial markings, unlike most other animals or objects." + ], + "giant panda": [ + "A giant panda is a large black and white bear with round ears and distinctive black patches around its eyes.", + "Giant pandas have distinctive black and white fur with round faces and large black patches around their eyes and ears.", + "The giant panda has distinctive black and white fur patches around its eyes ears and body unlike any other animal.", + "Giant pandas are recognized by their black and white fur, black eye patches, round face, and large body with a black and white pattern." + ], + "snoek fish": [ + "The snoek fish has a long slender body with a distinct protruding lower jaw and sharp teeth.", + "Snoek fish are long slender silver fish with pointed snouts unlike rounder bulkier fish or non-fish objects.", + "Snoek fish are long slender silver fish with a pointed snout and a distinct dark stripe along their back.", + "The snoek fish is a long slender silver fish with a pointed snout and dark stripes along its back." + ], + "eel": [ + "Eels are long, slender, and snake-like with smooth skin, unlike most fish which have scales and more varied body shapes.", + "Eels have long slender snake-like bodies smooth skin and lack pelvic fins distinguishing them from fish and other aquatic creatures.", + "Eels are long slender snake-like fish with smooth slippery skin and no visible scales or fins.", + "An eel is a long, slender, snake-like fish with smooth, slippery skin and a fin running along its back and tail." + ], + "silver salmon": [ + "Silver salmon have sleek silver bodies with black spots and a slightly forked tail unlike most other fish or objects.", + "Silver salmon have a distinct bright silver body with small black spots on their back and tail.", + "Silver salmon have a metallic silver body with black spots on their back and tail and a slightly forked tail fin.", + "Silver salmon are shiny, silvery fish with black spots on their back and tail, often found in freshwater and coastal waters." + ], + "rock beauty fish": [ + "Rock beauty fish have bright yellow bodies with dark blue edges and a black spot near the tail.", + "The rock beauty fish has bright yellow and black patterns with a round body unlike most other fish or objects.", + "The rock beauty fish has a bright yellow body with a dark black patch and blue accents around its face and tail.", + "The rock beauty fish has a striking bright yellow body with a bold black band from its dorsal fin to its belly." + ], + "clownfish": [ + "Clownfish are small, brightly colored orange fish with white stripes and often found near sea anemones.", + "Clownfish are small, brightly colored orange fish with white stripes, often found near sea anemones, unlike most other fish.", + "Clownfish are small, bright orange fish with white stripes and black outlines often seen near sea anemones.", + "Clownfish have bright orange bodies with white stripes outlined in black and often live among sea anemones." + ], + "sturgeon": [ + "Sturgeons are long slender fish with bony plates, pointed snouts, and whisker-like barbels near their mouths.", + "Sturgeons have long slender bodies, bony plates instead of scales, and elongated snouts with whisker-like barbels.", + "Sturgeons have long pointed snouts and rows of bony plates called scutes along their bodies.", + "Sturgeons have long slender bodies with bony plates and pointed snouts unlike most fish which are smoother and more rounded." + ], + "gar fish": [ + "Gar fish have long slender bodies needle-like snouts and diamond-shaped scales unlike most other fish which are shorter and rounder.", + "Gar fish are long slender fish with needle-like snouts sharp teeth and diamond-shaped scales often green or brown.", + "Gar fish have long slender bodies pointed snouts and diamond-shaped scales making them easily recognizable.", + "The gar fish is a long slender fish with sharp teeth and armor-like scales resembling a prehistoric reptile." + ], + "lionfish": [ + "Lionfish have long, flowing, venomous spines that fan out distinctively from their bodies unlike any other creature.", + "Lionfish have striking red and white striped bodies with long, venomous spines and fan-like pectoral fins.", + "Lionfish have striking striped bodies with long venomous spines unlike most fish which are smoother and lack such dramatic patterns.", + "Lionfish have striped red, white, and brown bodies with long, venomous spines and fan-like pectoral fins." + ], + "pufferfish": [ + "Pufferfish are round, spiky fish that inflate into a ball shape when threatened, with small fins and large eyes.", + "Pufferfish are round with spiky skin, small fins, and can inflate into a ball shape when threatened.", + "Pufferfish are round with spiky skin and can inflate into a ball shape when threatened.", + "Pufferfish have round, spiky bodies that inflate when threatened, unlike most fish which stay streamlined and smooth." + ], + "abacus": [ + "An abacus is a rectangular frame with rows of beads on rods used for counting and calculations.", + "An abacus is a rectangular frame with rows of beads sliding on rods used for counting and calculations.", + "An abacus has rows of beads on rods in a frame, unlike calculators or counting tools which have buttons or digital displays.", + "An abacus has rows of beads on rods in a frame used for counting unlike any other object." + ], + "abaya": [ + "An abaya is a long loose flowing black robe worn by some women often paired with a headscarf.", + "The abaya is a long flowing black robe often with intricate embroidery or embellishments worn as traditional Islamic clothing.", + "An abaya is a long loose flowing black robe worn by some women often with intricate embroidery or simple designs.", + "An abaya is a long, loose black robe worn over clothes, differing from other garments by its simplicity and full-body coverage." + ], + "academic gown": [ + "An academic gown is a long flowing robe typically black with wide sleeves worn during graduation ceremonies by scholars and students.", + "Academic gowns are long flowing robes with wide sleeves, often black and worn over clothes, unlike regular coats or dresses.", + "Academic gowns are long flowing robes with wide sleeves often black or dark colored and worn with a square academic cap.", + "Academic gowns are long flowing robes with wide sleeves often featuring distinctive colors or hoods indicating academic achievements." + ], + "accordion": [ + "An accordion is a boxy musical instrument with a folded central bellows and buttons or piano keys on both sides.", + "An accordion is a boxy musical instrument with a folding bellows and buttons or keys on both sides.", + "An accordion has a boxy shape with pleated bellows and buttons or keys, unlike most instruments which are solid and smooth.", + "An accordion has a boxy shape with a pleated bellows, piano keys or buttons, and straps for holding it while playing." + ], + "acoustic guitar": [ + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long neck.", + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long narrow neck.", + "An acoustic guitar has a hollow wooden body with a sound hole, a long neck with frets, and six strings stretched from head to base.", + "An acoustic guitar has a hollow wooden body with a sound hole and a long neck with strings stretched from head to body." + ], + "aircraft carrier": [ + "An aircraft carrier is a massive warship with a long flat deck for launching and recovering military aircraft.", + "Aircraft carriers have a long flat deck with a distinctive runway for launching and landing military aircraft.", + "Aircraft carriers are massive flat-decked ships with runways, distinct from other vessels by their size and flight operations area.", + "Aircraft carriers are massive flat-topped ships with a long runway and often have many parked planes on their deck." + ], + "airliner": [ + "Airliners are recognized by their long tubular fuselage, high-mounted swept wings, and multiple jet engines under the wings.", + "An airliner is a large commercial jet with a long cylindrical body, swept wings, and multiple engines under the wings.", + "Airliners are large elongated aircraft with multiple windows, swept wings, and jet engines, unlike smaller or propeller-driven planes.", + "Airliners are large elongated aircraft with swept wings multiple windows underbelly engines and a pointed nose for passenger transport." + ], + "airship": [ + "An airship is a large elongated balloon with a gondola underneath and often has propellers or fins for steering.", + "An airship is a large elongated balloon with a cabin underneath, resembling a blimp or dirigible floating in the sky.", + "An airship is a large elongated balloon with a gondola, distinct from airplanes by its lack of wings and slower movement.", + "An airship is recognized by its large elongated gas-filled balloon with a gondola underneath and often has propellers or fins." + ], + "altar": [ + "An altar typically has a flat surface for offerings and may include religious symbols unlike other furniture or decorative objects.", + "An altar is a flat elevated structure often made of stone or wood used for religious ceremonies and offerings.", + "An altar typically has a flat elevated surface often decorated with religious symbols candles or offerings for worship ceremonies.", + "An altar typically has a flat raised surface often decorated with religious symbols candles or offerings standing out in sacred settings." + ], + "ambulance": [ + "Ambulances are large white vehicles with red crosses flashing lights and sirens unlike regular cars or trucks.", + "Ambulances are typically white or yellow with red crosses flashing lights and bold lettering making them stand out.", + "An ambulance is a large white vehicle with bold red crosses and flashing lights used for emergency medical transport.", + "Ambulances are recognized by their white and red colors, flashing lights, sirens, and prominent medical cross or star symbols." + ], + "amphibious vehicle": [ + "Amphibious vehicles have a boat-like hull and wheels or tracks allowing both land and water travel unlike regular cars or boats.", + "Amphibious vehicles have boat-like hulls, wheels or tracks, and often a flat front for water and land movement.", + "Amphibious vehicles have both wheels for land and a boat-like hull for water in one compact design.", + "Amphibious vehicles have both wheels for land and boat-like hulls for water with visible propellers or water jets." + ], + "analog clock": [ + "An analog clock has hour and minute hands that rotate around a fixed dial to show time.", + "An analog clock has a round face with numbers and moving hour minute and second hands to show time.", + "Analog clocks have a round face with numbers and moving hour and minute hands to show time.", + "An analog clock is a round face with numbers and moving hour, minute, and second hands to show time." + ], + "apiary": [ + "An apiary is a collection of beehives, often wooden boxes stacked together, unlike single natural beehives or unrelated objects like buildings or trees.", + "An apiary is a collection of beehives often seen as wooden boxes stacked together in a field or garden.", + "An apiary typically consists of stacked wooden boxes with small entrance holes where bees enter and exit frequently.", + "Apiaries are recognized by wooden beehive boxes stacked in rows, often with bees flying around and nearby beekeeping equipment." + ], + "apron": [ + "An apron is a cloth garment tied at the waist covering the front of the body often used for cooking or cleaning.", + "An apron is a protective garment covering the front of the body typically tied around the waist and often made of cloth or leather.", + "An apron is a piece of cloth worn over clothes to protect them, typically tied around the waist and covering the front.", + "An apron is recognized by its front-facing fabric panel tied around the waist and neck, often covering the torso and legs." + ], + "trash can": [ + "A trash can is typically a metal or plastic container with an open top and sometimes a lid for holding waste.", + "Trash cans are typically cylindrical or rectangular with an open top and often made of metal or plastic for holding waste.", + "A trash can is typically a container with an open top, often made of metal or plastic, and may have a lid or pedal.", + "A trash can is typically a cylindrical or rectangular container with an open top for discarding waste, often made of metal or plastic." + ], + "assault rifle": [ + "Assault rifles are long guns with a pistol grip, detachable magazine, and often a barrel shroud or muzzle device.", + "Assault rifles have a long barrel, pistol grip, detachable magazine, and often a shoulder stock for stability and control.", + "Assault rifles are long with a barrel, stock, and magazine, unlike shorter handguns or non-gun objects lacking these features.", + "An assault rifle is a long black firearm with a magazine grip and barrel designed for rapid fire and military use." + ], + "backpack": [ + "Backpacks have straps, a main storage compartment, and often pockets, distinguishing them from other bags and objects.", + "Backpacks have two adjustable shoulder straps designed to be worn on the back for carrying items.", + "A backpack is a sturdy fabric bag with shoulder straps, often rectangular, used to carry items on one's back.", + "Backpacks have straps and a pouch for carrying items while other objects lack these specific features for storage and transport." + ], + "bakery": [ + "A bakery typically features bread loaves pastries cakes ovens counters and display cases with baked goods arranged neatly.", + "Baked goods like bread and pastries have golden-brown crusts, soft interiors, and flour dusting on surfaces.", + "Bakeries typically display multiple baked goods like bread and pastries in a shop setting with counters and shelves unlike single food items.", + "A bakery can be identified by its display of bread loaves pastries cakes and often a counter with glass cases." + ], + "balance beam": [ + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances.", + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances and routines.", + "A balance beam is a long narrow rectangular object while similar items like benches or logs are often thicker or irregularly shaped.", + "A long narrow rectangular beam elevated on supports used in gymnastics for balance and acrobatic performances." + ], + "balloon": [ + "A balloon is a colorful, inflatable, rubber or latex object often round or oval, floating when filled with air or gas.", + "Balloons are typically round, smooth, and brightly colored, often filled with air or gas, making them lighter and more flexible than most objects.", + "Balloons are recognized by their smooth, rounded, inflatable shapes and bright, often shiny colors floating in air or tied with strings.", + "Balloons are typically round, smooth, and brightly colored with a shiny or matte surface, often inflated and tied with a string." + ], + "ballpoint pen": [ + "A ballpoint pen is a slender cylindrical object with a pointed tip and a cap or click mechanism for writing.", + "A ballpoint pen is slim, cylindrical, and has a pointed tip, unlike bulkier or differently shaped objects like markers or pencils.", + "A ballpoint pen is a slim cylindrical object with a pointed tip and often has a clip near the top.", + "A ballpoint pen has a slim cylindrical shape with a tapered tip and often a clip near the top for easy attachment." + ], + "Band-Aid": [ + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors like red or blue.", + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors.", + "Band-Aids are small, flat, rectangular adhesive strips with a central pad, often flesh-colored or patterned, unlike bulkier medical items or plain tapes.", + "A Band-Aid is a small rectangular strip with a sticky adhesive backing and a soft padded center for covering wounds." + ], + "banjo": [ + "A banjo is a stringed instrument with a round body, long neck, and typically four or five strings.", + "A banjo has a round body with a stretched skin head and a long neck with strings and metal frets.", + "The banjo has a distinctive circular body with a tightly stretched membrane and a long fretted neck.", + "A banjo has a round body with a stretched membrane and a long neck with strings, unlike guitars or ukuleles." + ], + "baluster / handrail": [ + "Balusters and handrails are long vertical or horizontal bars often made of wood or metal supporting or edging stairs and railings.", + "Balusters and handrails are long thin vertical or horizontal rods often found in rows supporting or alongside staircases and railings.", + "A baluster or handrail is a vertical or horizontal support pillar or rail often found on staircases or balconies.", + "Balusters and handrails are long, slender, often vertical or slightly curved supports typically found alongside stairs or balconies." + ], + "barbell": [ + "A barbell is a long metal bar with heavy round weights attached at both ends used for weightlifting.", + "A barbell is a long metal bar with heavy round weights on both ends used for weightlifting exercises.", + "Barbells have a long metal bar with weights on both ends unlike other objects which lack this specific symmetrical weighted design.", + "A barbell has a long metal bar with symmetrical weighted discs on both ends used for weightlifting." + ], + "barber chair": [ + "A barber chair has a tall back, adjustable height, footrest, often leather upholstery, and sometimes a headrest or armrests.", + "A barber chair has a tall backrest, adjustable height, footrest, often leather upholstery, and sometimes a headrest or reclining feature.", + "A barber chair is a tall, padded seat with a high back, armrests, and often a footrest and adjustable height mechanism.", + "A barber chair has a tall back, adjustable height, footrest, and often a reclining feature, unlike regular chairs or furniture." + ], + "barbershop": [ + "A barbershop typically has barber chairs, mirrors, and hair cutting tools, unlike other places which lack these specific grooming features.", + "Barbershops are recognized by barber chairs, striped poles, mirrors, scissors, combs, and customers getting haircuts.", + "A barbershop can be identified by its striped pole, chairs with headrests, mirrors, and shelves with hair products.", + "A barbershop typically features barber chairs, mirrors, scissors, razors, and hair products in a clean, organized setting." + ], + "barn": [ + "Barns are large rectangular buildings with sloped roofs often made of wood or metal unlike smaller or differently shaped structures.", + "Barns are large rectangular structures with high pitched roofs often made of wood or metal and found in rural areas.", + "A barn is a large, sturdy, rectangular farm building with a high-pitched roof, often made of wood or metal, typically red or brown.", + "A barn is uniquely identified by its large, sloped roof and prominent doors designed for storing farm equipment and housing livestock." + ], + "barometer": [ + "A barometer is a small round or rectangular device with a dial and needle to measure atmospheric pressure.", + "A barometer typically has a round dial with measurement markings and a glass cover often mounted on a wooden or metal base.", + "A barometer typically has a round dial with pressure markings and a needle, unlike similar objects which lack these specific features.", + "A barometer has a round dial with pressure markings and a needle, often mounted on a wooden or metal base." + ], + "barrel": [ + "Barrels are recognized by their cylindrical shape, rounded sides, and often wooden or metal construction with horizontal bands.", + "A barrel is a large cylindrical container with rounded sides, typically made of wood or metal, used for storing liquids or goods.", + "A barrel is a cylindrical container with a rounded belly, often made of wood or metal, and typically wider in the middle than at the ends.", + "Barrels are cylindrical with rounded sides and often have metal bands while similar objects may be differently shaped or lack bands." + ], + "wheelbarrow": [ + "A wheelbarrow is a small cart with one wheel at the front and two handles at the back for carrying loads.", + "A wheelbarrow has a single wheel at the front, a deep tray for carrying loads, and two handles at the back for pushing.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying loads.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying materials." + ], + "baseball": [ + "A baseball is a small white round object with red stitching typically seen in sports settings or with gloves and bats.", + "A baseball is a small white sphere with red stitching forming two curved lines around its surface.", + "The unique visual cue for baseball is the red stitching pattern on the white leather surface of the ball.", + "Baseballs are white with red stitching, small and round, unlike bats which are long or gloves which are larger and padded." + ], + "basketball": [ + "A basketball is a large orange sphere with black lines forming a symmetrical pattern around its surface.", + "A basketball is a large orange sphere with black lines and a textured surface used in the sport of basketball.", + "Basketballs are orange with black lines and a bumpy texture unlike smoother round objects like soccer balls or volleyballs.", + "A basketball is recognized by its orange color, black lines forming a symmetrical pattern, and spherical shape with a textured surface." + ], + "bassinet": [ + "A bassinet is a small, high-sided baby bed with short legs or a stand, often hooded, unlike larger cribs or cradles.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for newborns to sleep in.", + "A bassinet has a small, high-walled, often hooded design for infants, typically on a stand or with rocking features.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for infants and typically on a stand or wheels." + ], + "bassoon": [ + "A bassoon is a long wooden wind instrument with a curved metal tube and many keys along its body.", + "A bassoon is a long wooden wind instrument with a curved metal tube and double reed at the top.", + "The bassoon has a long wooden body with a curved metal tube called a bocal at the top.", + "The bassoon is a long wooden wind instrument with a curved metal tube and multiple keys, unlike simpler or differently shaped objects." + ], + "swimming cap": [ + "A swimming cap is a smooth, tight-fitting, often brightly colored or shiny head covering made of latex, silicone, or lycra.", + "A swimming cap is a tight, smooth, often colorful silicone or latex head covering that reduces drag in water.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, covering the head snugly with a rubbery or silicone texture.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, unlike looser or textured headwear like hats or helmets." + ], + "bath towel": [ + "Bath towels are typically rectangular, made of absorbent fabric, and often have textured surfaces unlike other objects which vary widely in shape and material.", + "A bath towel is a large rectangular piece of soft absorbent fabric often with colorful patterns or solid pastel colors.", + "A bath towel is typically rectangular, made of soft absorbent fabric, often with a textured surface and comes in various colors or patterns.", + "Bath towels are rectangular with a soft textured surface often featuring fringed edges and come in various solid or patterned colors." + ], + "bathtub": [ + "A bathtub is a large open container with smooth curved sides designed for holding water unlike sinks or buckets which are smaller.", + "A bathtub is a large rectangular or oval container with smooth sides designed to hold water for bathing.", + "A bathtub is recognized by its large open rectangular or oval basin designed for holding water and fitting a human body.", + "A bathtub is a large rectangular or oval container with smooth curved sides designed to hold water for bathing." + ], + "station wagon": [ + "Station wagons are longer than sedans with a extended rear roof and more cargo space but shorter than minivans.", + "Station wagons have a long roof extending to the rear with a spacious cargo area and typically four doors like sedans.", + "A station wagon is a long car with a flat roof and a rear hatchback extending from the trunk to the roofline.", + "A station wagon is a long car with a flat roof and a large rear cargo area behind the back seats." + ], + "lighthouse": [ + "A lighthouse is a tall tower with a bright light on top, often near water, unlike most other structures.", + "A lighthouse is a tall tower with a bright light on top often found near coastlines to guide ships.", + "A lighthouse is a tall tower with a bright light on top, often striped or white, near water to guide ships.", + "A lighthouse has a tall tower with a bright rotating light at the top to guide ships at night." + ], + "beaker": [ + "A beaker is a clear cylindrical glass or plastic container with a flat bottom and a small spout for pouring.", + "A beaker is a cylindrical glass container with a flat bottom and a small spout, unlike cups or bowls which lack spouts.", + "A beaker is a tall cylindrical glass container with a flat base and a small spout used in laboratories for holding liquids.", + "A beaker has a cylindrical shape with a flat bottom and a small spout for pouring liquids." + ], + "military hat (bearskin or shako)": [ + "Military hats like bearskins and shakos are tall rigid and often furred or plumed unlike regular hats which are shorter and softer.", + "Military hats like bearskins or shakos are tall, rigid, and often have plumes, badges, or distinctive shapes setting them apart from regular headwear.", + "Military hats like bearskins or shakos are tall rigid often furred or plumed with a distinct formal uniformed appearance.", + "A military hat like a bearskin or shako is tall, rigid, and ornate, often with plumes or badges, standing out among other headwear." + ], + "beer bottle": [ + "A beer bottle is a tall glass container with a narrow neck, often brown or green, labeled and sometimes capped with metal or cork.", + "Beer bottles are typically tall cylindrical glass containers with narrow necks and labels, often brown or green, unlike wider or differently shaped objects.", + "Beer bottles are recognized by their elongated glass shape with a narrow neck and often have labels or logos.", + "A beer bottle is typically tall with a narrow neck, made of glass or aluminum, often labeled and colored green or brown." + ], + "beer glass": [ + "A beer glass typically has a tall cylindrical shape with a handle and is often filled with golden bubbly liquid.", + "A beer glass is typically tall, clear, cylindrical or tapered, with a handle or stem, often frosted or filled with golden liquid.", + "A beer glass is a tall transparent vessel with a handle or stem, often cylindrical or tapered, used for serving beer.", + "A beer glass is typically tall and cylindrical with a handle or stem often made of clear glass showing golden liquid inside." + ], + "bell tower": [ + "A bell tower is a tall structure with open sides or windows, housing bells, often part of a church or municipal building.", + "A bell tower is a tall structure with open sides and a peaked roof, often holding bells, unlike solid buildings or shorter towers.", + "A bell tower is tall and narrow with a peaked roof often featuring arches or openings for bells to be visible or heard.", + "A bell tower is tall and narrow with a peaked roof and open arches or windows housing bells for ringing." + ], + "baby bib": [ + "A baby bib is a small cloth or plastic item worn around a baby's neck to catch spills and food during feeding.", + "A baby bib is a small piece of fabric or plastic worn around a baby's neck to catch spills and drool.", + "Baby bibs are small cloth or plastic garments with fasteners designed to catch spills, unlike larger clothing or non-wearable items.", + "Baby bibs are small cloth or plastic coverings tied around a baby's neck to catch spills during feeding." + ], + "tandem bicycle": [ + "A tandem bicycle has two seats two sets of pedals and a longer frame than a regular bicycle.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame than a regular bicycle for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a long frame with two wheels, designed for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame compared to single-rider bikes or other vehicles." + ], + "bikini": [ + "A bikini is a two-piece swimsuit with minimal fabric, while other objects vary widely in shape, size, and material.", + "A bikini is a small two-piece swimsuit typically made of colorful fabric with triangular or rectangular top and bottom parts.", + "Bikinis are small two-piece swimsuits with distinct shapes and bright colors often worn at beaches or pools.", + "A bikini is a two-piece swimsuit with a top covering the chest and bottom covering the hips, often brightly colored or patterned." + ], + "ring binder": [ + "A ring binder has a rectangular shape with two or three metal rings inside that open and close to hold papers.", + "Ring binders have a distinctive rectangular shape with metal rings inside and a spine that opens and closes for holding papers securely.", + "A ring binder is a sturdy folder with metal rings inside that snap open and shut to hold loose papers securely.", + "A ring binder has metal rings and a spine to hold papers, unlike other objects which lack these specific binding features." + ], + "binoculars": [ + "Binoculars are handheld twin telescopes with a central hinge used for magnifying distant objects clearly with both eyes.", + "Binoculars have two parallel tubes with lenses for each eye unlike single-lens devices or non-optical objects.", + "Binoculars have two parallel tubes with lenses, a central hinge, and often a neck strap for easy carrying and use.", + "Binoculars are identified by two parallel tubes with lenses at each end and often have a central hinge for adjustment." + ], + "birdhouse": [ + "A birdhouse is a small enclosed structure with an entrance hole designed for birds to nest, unlike other objects.", + "A birdhouse is a small man-made structure with an entrance hole designed for birds to nest, often mounted on poles or trees.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to shelter birds.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to attract nesting birds." + ], + "boathouse": [ + "A boathouse is a small building by water with a roof and open sides to store boats and docking equipment.", + "A boathouse is a small building by water with large doors to store boats unlike regular houses or sheds.", + "A boathouse is a small building by water with large doors for storing boats and often has a dock or deck.", + "A boathouse is uniquely characterized by its structure built over water with direct access for boats underneath or inside." + ], + "bobsleigh": [ + "A bobsleigh is a long narrow streamlined sled with a rounded front and low sides used for racing on ice.", + "A bobsleigh is a long, narrow, aerodynamic sled with a rounded front and low seating area for multiple riders.", + "A bobsleigh has a long narrow aerodynamic sled with two pairs of runners and a steering mechanism for high-speed ice tracks.", + "A bobsleigh is recognized by its long narrow aerodynamic sled with two pairs of runners and a steering mechanism for icy tracks." + ], + "bolo tie": [ + "A bolo tie is a decorative cord with metal tips and a sliding clasp, unlike neckties or jewelry which lack its distinctive adjustable design.", + "A bolo tie is a decorative cord with metal tips and a sliding clasp, often worn like a necktie with Western-style clothing.", + "A bolo tie has a decorative metal clasp and braided leather cords with sliding tips worn as a neckpiece.", + "A bolo tie has a decorative metal clasp and a braided leather cord with metal tips worn like a necktie." + ], + "poke bonnet": [ + "A poke bonnet is a large, stiff, and deep bonnet with a wide brim that frames the face and extends forward.", + "A poke bonnet has a large stiff brim projecting forward and a deep crown often tied under the chin with ribbons.", + "A poke bonnet has a stiff, projecting brim framing the face, unlike other hats with smaller or flexible brims.", + "A poke bonnet has a large stiff brim projecting forward to shade the face often with ribbons or decorative trim." + ], + "bookcase": [ + "Bookcases are recognized by their tall rectangular shape with multiple horizontal shelves for storing books and other items.", + "Bookcases are tall rectangular furniture with multiple horizontal shelves designed to store books, unlike cabinets or dressers which have doors or drawers.", + "A bookcase is a tall wooden or metal shelf with multiple horizontal levels designed to hold books and other items.", + "A bookcase is a tall rectangular furniture piece with multiple horizontal shelves designed to hold books and other items." + ], + "bookstore": [ + "Bookstores have shelves filled with books, often arranged neatly in rows, distinguishing them from other retail spaces with varied merchandise displays.", + "A bookstore typically has shelves filled with books, a checkout counter, and reading areas with chairs or tables.", + "Bookstores feature rows of shelves packed with books, often with reading areas and checkout counters, distinct from libraries by selling items.", + "A bookstore typically has shelves filled with books, reading areas, and a cozy atmosphere with customers browsing or purchasing." + ], + "bottle cap": [ + "A bottle cap is a small round or cylindrical object typically made of metal or plastic that seals bottle openings.", + "A bottle cap is small round and often has ridges or a flat top with a threaded or snap-on design.", + "Bottle caps have a small round shape with ridges or grooves on the side for grip and a flat top.", + "Bottle caps are small, round, and flat with ridged edges, often made of metal or plastic, unlike larger or differently shaped objects." + ], + "hunting bow": [ + "A hunting bow is a curved or straight weapon with a taut string, used to shoot arrows, typically made of wood or composite materials.", + "A hunting bow has a curved shape with a string and limbs, distinct from straight tools or weapons like arrows or rifles.", + "A hunting bow has a curved shape with a string stretched between two ends and often includes arrows and a grip.", + "A hunting bow has a curved or straight rigid frame with a taut string and often includes arrow rests and camouflage patterns." + ], + "bow tie": [ + "A bow tie is a small symmetrical fabric knot worn at the neck unlike larger or asymmetrical neckwear like scarves or neckties.", + "A bow tie is a small symmetrical fabric knot with two loops worn around the neck for formal occasions.", + "Bow ties have a symmetrical, narrow fabric knot with two distinctive triangular or butterfly-shaped ends.", + "A bow tie is a small symmetrical fabric knot with two loops worn at the neck, distinct from neckties by its shape." + ], + "brass memorial plaque": [ + "A brass memorial plaque is flat, rectangular, often engraved with text, has a shiny golden-brown finish, and is mounted on walls or surfaces.", + "A brass memorial plaque is a flat rectangular metal plate with engraved text often mounted on walls or stone surfaces.", + "Brass memorial plaques are flat rectangular metal plates with engraved text often mounted on walls or stone for commemorative purposes.", + "Brass memorial plaques are flat, rectangular, often engraved with text or images, and have a shiny golden-brown metallic finish." + ], + "bra": [ + "A bra is a soft undergarment with cups straps and hooks designed to support and cover the breasts.", + "A bra typically has straps cups and clasps made of soft fabric unlike most other clothing or objects in shape and structure.", + "Bras have distinctive cup shapes, straps, hooks, lace or fabric textures, and are often symmetrical with smooth curves and padding.", + "A bra has two rounded cups connected by a center piece and straps designed to support the breasts." + ], + "breakwater": [ + "A breakwater is a long, sturdy structure made of rocks or concrete, extending into water to protect shores from waves.", + "A breakwater is a long, sturdy structure built offshore, typically made of rocks or concrete, to protect the coast from waves.", + "Breakwaters are long narrow structures made of rocks or concrete extending into water to protect shorelines from waves.", + "A breakwater looks like a long, sturdy wall or pile of rocks extending into the water to protect the shore." + ], + "breastplate": [ + "A breastplate is a piece of armor that covers the torso, typically made of metal or leather, often with decorative or protective details.", + "A breastplate is a curved metal armor piece covering the torso, often shiny with straps or buckles for securing it.", + "A breastplate is a curved metal armor piece covering the torso, unlike other objects which vary in shape, material, and purpose.", + "A breastplate is recognized by its curved metal shape covering the torso often with straps and decorative engravings." + ], + "broom": [ + "A broom has a long handle with dense bristles at one end used for sweeping floors.", + "A broom has a long handle with dense bristles or fibers at one end used for sweeping.", + "A broom has a long handle with dense bristles clustered at one end for sweeping.", + "A broom typically has a long handle with bristles at one end used for sweeping floors and cleaning debris." + ], + "bucket": [ + "A bucket is a round or cylindrical container with an open top and a handle, usually made of metal or plastic.", + "A bucket is recognized by its open top, cylindrical or tapered shape, and sturdy handle for carrying liquids or materials.", + "A bucket is typically a cylindrical or tapered container with an open top and a handle on the side.", + "Buckets are typically cylindrical with a handle, open top, and sturdy material, unlike similar objects which may vary in shape and function." + ], + "buckle": [ + "Buckles have a small, rigid frame with a movable pin or clasp, often metallic and decorative, used to fasten straps or belts.", + "A buckle is a small metal or plastic clasp with a frame and prong used to fasten straps or belts securely.", + "Look for a small metal or plastic clasp with a frame and prong used to fasten straps or belts together.", + "Buckles are small metal or plastic fasteners with a frame, prong, and often decorative designs unlike larger or simpler objects." + ], + "bulletproof vest": [ + "A bulletproof vest is a flat, often padded garment with straps and panels, unlike rigid or bulky protective gear.", + "Bulletproof vests are recognized by their rectangular padded panels, straps, and often a tactical or military-style appearance.", + "Bulletproof vests have a distinctive layered panel design often with visible stitching or straps for adjustable fit.", + "A bulletproof vest is a sleeveless padded garment with thick panels designed to protect the torso from gunfire and sharp objects." + ], + "high-speed train": [ + "High-speed trains are long, sleek, and aerodynamic with smooth surfaces and minimal protruding parts compared to other vehicles or objects.", + "High-speed trains have a long streamlined aerodynamic body with a pointed nose to reduce air resistance at high speeds.", + "High-speed trains have sleek aerodynamic designs long bodies and often bright colors with distinct branding on the front.", + "A high-speed train is a sleek, elongated vehicle with a pointed front, smooth metallic body, and often multiple connected carriages." + ], + "butcher shop": [ + "A butcher shop can be identified by raw meat cuts, display counters, hanging carcasses, and tools like cleavers and saws.", + "A butcher shop typically displays raw meat cuts and tools, unlike other stores which show packaged goods or different products.", + "Butcher shops feature raw meat displays, cutting tools, hanging carcasses, and white-coated workers behind counters.", + "The presence of raw meat cuts and cleavers displayed together is unique to a butcher shop." + ], + "taxicab": [ + "Taxicabs are typically yellow or black cars with rooftop signs and sometimes checkered patterns unlike regular cars.", + "A taxicab is typically a yellow or black car with a roof sign, clear markings, and sometimes a checkered pattern.", + "A taxicab is a yellow or black car with a roof sign, often marked with company logos and numbers.", + "A taxicab is recognized by its boxy shape, bright colors, rooftop taxi sign, and often has company logos or numbers." + ], + "cauldron": [ + "A cauldron is a large metal pot with a rounded bottom and handles, often used for boiling or cooking over an open fire.", + "A cauldron is a large metal pot with a rounded shape and handles, often used for boiling or cooking over a fire.", + "A cauldron is a large deep metal pot with a rounded bottom and a handle often used for boiling or cooking over fire.", + "A cauldron is recognized by its large round pot shape with a heavy base and handles often used for boiling or cooking." + ], + "candle": [ + "A candle is recognized by its slender wax body with a wick on top, often burning with a small flame.", + "A candle has a burning wick with a small flame that emits light and melts wax around it.", + "A candle is a slender wax stick with a wick in the center often burning with a small flame at the top.", + "Candles are slender wax sticks with a wick, often tapered or cylindrical, unlike broader or differently shaped objects like lamps or lanterns." + ], + "cannon": [ + "A cannon is a large metal tube on wheels designed to fire heavy projectiles over long distances.", + "Cannons are large metal tubes with a wide barrel opening, often mounted on wheels, unlike smaller or differently shaped weapons and objects.", + "A cannon is a large metal tube on wheels with a wide barrel opening used for firing heavy projectiles.", + "A cannon has a long metal barrel, large cylindrical body, and wheels, often with a distinctive shape for launching projectiles." + ], + "canoe": [ + "A canoe is a narrow lightweight boat with pointed ends, often open on top and propelled by paddles.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often propelled by paddles.", + "A canoe has a long narrow open-top boat shape with pointed ends and no keel.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often paddled by one or more people." + ], + "can opener": [ + "A can opener is a small handheld or electric tool with a rotating blade and handle used to cut open metal cans.", + "A can opener has a sharp rotating wheel and a lever handle designed specifically to cut and lift metal can lids.", + "A can opener typically has a metal cutting wheel and a handle, unlike most kitchen tools which are solid or smooth.", + "A can opener has a rotating cutting wheel, a handle for turning, and a serrated edge to grip and open metal cans." + ], + "cardigan": [ + "A cardigan is a knitted sweater with an open front, usually buttoned or zipped, resembling a jacket but made of soft fabric.", + "A cardigan is a knitted sweater with an open front, usually with buttons or a zipper, and often has long sleeves.", + "A cardigan is a knitted sweater with an open front and buttons or a zipper unlike pullovers which are closed and lack fasteners.", + "A cardigan has a V-neckline with an open front fastened by buttons or a zipper unlike most other garments." + ], + "car mirror": [ + "A car mirror is a small reflective surface attached to the side or front of a car often rectangular or rounded with a sleek frame.", + "A car mirror has a reflective surface mounted on a thin adjustable arm attached to the vehicle's side or interior.", + "A car mirror is a small reflective surface attached to vehicles for visibility, often rectangular or rounded with a sleek metallic frame.", + "Car mirrors are typically small, reflective, and mounted on vehicles, unlike other objects which vary widely in size, shape, and function." + ], + "carousel": [ + "A carousel is a large circular platform with rotating seats often shaped like horses or other animals for amusement rides.", + "A carousel has rotating platforms with seats like horses or benches often found in amusement parks and decorated brightly.", + "A carousel is a large circular ride with rotating platforms, decorative horses or animals, and bright colorful lights.", + "A carousel is a large rotating platform with seats like animals or chairs unlike static objects or single moving vehicles." + ], + "tool kit": [ + "Tool kits typically include multiple small organized items like screws and wrenches unlike single larger objects such as hammers or saws.", + "A tool kit typically includes various handheld tools like wrenches, screwdrivers, and pliers, often stored in a case or box.", + "Tool kits are recognized by their organized collection of varied handheld tools often stored in cases or boxes for practical use.", + "A tool kit typically appears as a compact case or pouch containing various small hand tools like screwdrivers, wrenches, and pliers." + ], + "cardboard box / carton": [ + "Cardboard boxes are flat, rectangular, and made of dull brown material, unlike other objects which vary in shape, color, and texture.", + "A cardboard box is a rigid rectangular container made of thick brown paper, often with folds and seams for storage or shipping.", + "Cardboard boxes are rectangular with flat surfaces, uniform edges, and often have printed labels or tape on their sides.", + "Cardboard boxes are rectangular with flat surfaces, often brown or plain colored, and have visible seams or folds on the edges." + ], + "car wheel": [ + "Car wheels are round with a central hub and often have spokes or rims and are made of metal or alloy materials.", + "Car wheels are round with a central hub and spokes or solid design, often made of metal or alloy, unlike most objects.", + "A car wheel is round with a hub in the center and often has spokes or a solid design with a rubber tire around it.", + "A car wheel has a circular rim with evenly spaced holes or spokes around a central hub." + ], + "automated teller machine": [ + "Automated teller machines are typically freestanding rectangular boxes with a screen keypad and card slot unlike most other objects.", + "An automated teller machine is a freestanding rectangular box with a screen, keypad, card slot, and cash dispenser, often branded by a bank.", + "Automated teller machines have a rectangular screen, keypad, card slot, and cash dispenser often in a standalone metal or plastic enclosure.", + "An automated teller machine is a rectangular metal box with a screen, keypad, and card slot, often found in banks or public spaces." + ], + "cassette": [ + "Cassettes are flat rectangular plastic cases with reels inside and labels, unlike CDs or records which are round and shiny.", + "A cassette is a small rectangular plastic case with two exposed reels inside and a central spindle hole.", + "A cassette is a small rectangular plastic case with two reels of magnetic tape visible through a clear window.", + "Cassettes are small rectangular plastic cases with reels inside and a magnetic tape visible through a clear window." + ], + "cassette player": [ + "A cassette player is a rectangular electronic device with buttons, a slot for tapes, and often a handle for portability.", + "A cassette player has a rectangular shape with buttons, a tape compartment, and often a headphone jack or volume control.", + "A cassette player has a rectangular shape with buttons, a tape slot, and often a handle, unlike most other electronic devices.", + "A cassette player typically has rectangular shape with buttons, a tape compartment, and often a speaker or headphone jack." + ], + "castle": [ + "Castles are large stone structures with towers and walls, unlike smaller or simpler buildings without such grand defensive features.", + "A castle is a large fortified stone building with towers, high walls, and often a grand entrance, resembling a medieval fortress.", + "Castles are large stone structures with tall walls towers and often a grand entrance typically found on elevated or strategic locations.", + "Castles are large stone structures with tall walls, towers, and often a central keep, standing out for their historical and fortified appearance." + ], + "catamaran": [ + "A catamaran has two parallel hulls while most other boats have a single hull or different shapes like pontoons or sails.", + "A catamaran has two parallel hulls and a wide deck, making it distinct from single-hulled boats and other watercraft.", + "A catamaran is a twin-hulled boat with a wide flat deck, often used for sailing or cruising on water.", + "A catamaran is recognized by its twin parallel hulls connected by a frame, distinct from single-hull boats." + ], + "CD player": [ + "A CD player is a rectangular device with a sliding tray or top lid buttons and a display screen for track information.", + "A CD player is a rectangular electronic device with a slot or tray for discs, buttons, and often a small display screen.", + "A CD player is a rectangular device with a disc tray, buttons, and a display screen, unlike other objects which vary widely in shape and function.", + "A CD player has a rectangular shape with a disc tray, control buttons, and a display screen for track information." + ], + "cello": [ + "The cello has a large wooden body with a distinctive curved shape and strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body and tall neck played upright between the knees.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow." + ], + "mobile phone": [ + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "Mobile phones are small rectangular devices with screens, buttons or touchscreens, cameras, and often a sleek metallic or plastic body.", + "Mobile phones are flat rectangular devices with screens and buttons or touchscreens, smaller than laptops but larger than credit cards." + ], + "chain": [ + "A chain is a series of interlinked metal rings used for fastening, pulling, or securing objects together.", + "Chains are identified by their interlinked metal loops forming a flexible, linear structure often used for binding or hanging.", + "A chain consists of interlinked metal rings forming a flexible linear series.", + "Chains have interlocking metal loops forming a flexible linear structure often used for binding or hanging objects." + ], + "chain-link fence": [ + "A chain-link fence is a metal grid of interwoven wires forming a diamond pattern used for barriers or enclosures.", + "Chain-link fences have a distinctive diamond-shaped wire mesh pattern formed by interwoven metal wires.", + "Chain-link fences have a grid of interwoven metal wires forming diamond-shaped patterns and are typically silver or black in color.", + "A chain-link fence has a grid of interwoven metal wires forming diamond patterns, unlike solid walls or wooden fences." + ], + "chain mail": [ + "Chain mail has a distinctive interlocking metal ring pattern that creates a flexible, textured, and shiny surface unlike other fabrics or armors.", + "Chain mail is a flexible metal armor made of interlocking small rings forming a mesh-like protective garment.", + "Chain mail consists of interlinked metal rings forming a flexible mesh, unlike solid armor or fabric which are smooth or woven.", + "Chain mail appears as a flexible metal mesh made of interlinked small rings forming a shiny, textured, and often silver or gray surface." + ], + "chainsaw": [ + "A chainsaw has a long body with a toothed blade, a handle, and often an engine or motor at one end.", + "A chainsaw has a long body with a toothed blade and a handle, unlike most tools which are simpler and lack moving parts.", + "A chainsaw has a long toothed blade, a motor or engine, and a handle, often seen cutting wood with visible teeth and exhaust.", + "A chainsaw is a handheld power tool with a toothed rotating blade used for cutting wood, featuring a long body and a motor." + ], + "storage chest": [ + "A storage chest is a large rectangular box with a hinged or removable lid often made of wood or metal.", + "A storage chest typically has a large hinged lid and sturdy construction for holding items inside securely.", + "Storage chests are recognized by their large rectangular shape, hinged lid, sturdy handles, and often wooden or metal construction.", + "Storage chests are typically larger, boxier, and have lids for opening, unlike shelves or cabinets which have doors or open compartments." + ], + "chiffonier": [ + "A chiffonier is a tall narrow chest of drawers often with a mirror and ornate details typically used for storing clothes.", + "A chiffonier is a tall narrow chest of drawers often with a mirror and decorative details typically used in bedrooms.", + "A chiffonier is a tall narrow chest of drawers, often with a mirror, while similar items like dressers are wider and lower.", + "A chiffonier is recognized by its tall narrow design with multiple drawers and often a mirror, resembling a stylish bedroom or dining room cabinet." + ], + "bell or wind chime": [ + "Bells and wind chimes are hanging metal or wooden objects that produce sound when moved by wind or touch.", + "Bell or wind chime features include hanging hollow tubes or bells that produce sound when moved by wind or touch.", + "Look for hanging hollow tubes or objects that sway and make sound when moved by wind or touch.", + "Bells and wind chimes are hollow with hanging parts that produce sound when struck or moved unlike solid static objects." + ], + "china cabinet": [ + "A china cabinet is a tall wooden furniture piece with glass doors and shelves for displaying dishes and decorative items.", + "A china cabinet is a tall wooden furniture piece with glass doors and shelves displaying dishes and decorative items.", + "A china cabinet has glass doors, shelves for displaying dishes, and often ornate woodwork or carvings.", + "A china cabinet has glass doors and shelves to display dishes, unlike other cabinets which are usually solid and used for storage." + ], + "Christmas stocking": [ + "A Christmas stocking is a long, sock-shaped fabric pouch often decorated with festive patterns like snowflakes or Santa.", + "A Christmas stocking is a long decorative sock often with festive patterns, filled with gifts and hung by a fireplace.", + "A Christmas stocking is a festive fabric sock often red and white decorated with holiday patterns and filled with small gifts.", + "A Christmas stocking is uniquely shaped like a long sock often decorated with festive patterns and hung for holiday gifts." + ], + "church": [ + "Churches are large buildings with steeples, stained glass windows, and often a cross, unlike smaller or simpler structures.", + "Churches typically have tall steeples, arched windows, large wooden doors, and cross symbols on their rooftops or facades.", + "Churches often have tall steeples, arched windows, and large wooden doors with religious symbols or crosses on the building.", + "A church is a tall building with a pointed roof, often featuring a cross, stained glass windows, and a large entrance door." + ], + "movie theater": [ + "A movie theater is a large building with a marquee, ticket booth, rows of seats, and a big screen for showing films.", + "A movie theater has a large entrance with marquee lights, posters, ticket counters, and rows of seats facing a big screen.", + "A movie theater is recognized by rows of seats, a large screen, dim lighting, and often a projector booth at the back.", + "A movie theater typically has a large facade with marquee signs and posters while other objects vary widely in shape and design." + ], + "cleaver": [ + "A cleaver is a large rectangular knife with a thick heavy blade used for chopping meat and bones.", + "A cleaver is a large rectangular knife with a thick heavy blade and a broad handle for chopping tough materials.", + "A cleaver has a large rectangular blade with a thick spine designed for heavy chopping tasks.", + "A cleaver has a large rectangular blade, thick spine, and heavy weight for chopping through meat and bones." + ], + "cliff dwelling": [ + "Cliff dwellings are built into rock faces with visible stone walls and openings, unlike freestanding structures or natural rock formations.", + "Cliff dwellings are uniquely built into or on the sides of steep rock faces or cliffs.", + "Cliff dwellings are ancient homes built into rock faces often appearing as small rectangular structures with natural stone walls.", + "Cliff dwellings are stone structures built into rock faces with visible rooms and walls blending into the natural cliff." + ], + "cloak": [ + "A cloak is a long loose outer garment without sleeves that drapes over the body unlike coats or jackets which are more fitted.", + "A cloak is a long loose outer garment without sleeves that drapes over the shoulders and hangs down the body.", + "A cloak is a long loose outer garment that drapes over the shoulders and hangs down to cover the body.", + "A cloak is a long loose outer garment often with a hood draping over the body and flowing when in motion." + ], + "clogs": [ + "Clogs have a distinctive wooden sole with an open back and often a closed toe.", + "Clogs are wooden shoes with a thick sole and open back, unlike other shoes which are usually fully enclosed and made of softer materials.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors." + ], + "cocktail shaker": [ + "A cocktail shaker is a metal container with a tapered top, a strainer lid, and often a cap or smaller mixing cup.", + "A cocktail shaker is a metal container with a tight lid and strainer, often cylindrical or conical, unlike other kitchen tools.", + "A cocktail shaker is a sleek metal container with a tapered top, strainer lid, and often a cap for mixing drinks.", + "A cocktail shaker uniquely has a tightly sealed metal container with a built-in strainer and often a cap for mixing drinks." + ], + "coffee mug": [ + "A coffee mug is typically a cylindrical cup with a handle often made of ceramic or porcelain and holds hot beverages.", + "A coffee mug typically has a cylindrical shape with a handle and is smaller than a cup designed for other beverages.", + "Coffee mugs typically have a handle and cylindrical shape designed for holding hot beverages unlike bowls or cups which may lack handles.", + "A coffee mug is a cylindrical cup with a handle, typically made of ceramic or porcelain, often featuring simple designs or logos." + ], + "coffeemaker": [ + "A coffeemaker is a small appliance with a water reservoir, filter basket, and carafe, often rectangular with buttons or a dial.", + "Coffeemakers typically have a water reservoir, brewing basket, and carafe, unlike other appliances which lack these specific components.", + "A coffeemaker typically has a water reservoir, a filter basket, a carafe, and buttons or dials for brewing control.", + "A coffeemaker typically has a water reservoir, filter basket, carafe, and heating element with buttons or dials for operation." + ], + "spiral or coil": [ + "Spiral or coil shapes have continuous curved lines that loop around a central point distinguishing them from straight or angular forms.", + "Spirals and coils have continuous curved or circular shapes that wind inward or outward unlike straight or angular objects.", + "A spiral or coil has a continuous curved line that winds around a central point while gradually moving outward or inward.", + "Look for curved shapes that wind around a central point or axis in a continuous looping pattern." + ], + "combination lock": [ + "A combination lock is a small metal or plastic device with a numbered dial that opens when turned to the correct sequence.", + "A combination lock has a numbered dial or rotating wheels and a shackle, unlike most objects which lack these mechanical features.", + "A combination lock has a small rotating dial with numbers and a metal shackle for securing items.", + "A combination lock has a rotating dial with numbered markings used to set a specific sequence for opening." + ], + "computer keyboard": [ + "A computer keyboard is a rectangular device with rows of small square or rectangular keys labeled with letters, numbers, and symbols.", + "Computer keyboards have a flat rectangular shape with many small square or rectangular keys arranged in orderly rows.", + "A computer keyboard is flat with many rectangular keys arranged in rows and often has letters numbers and symbols on the keys.", + "A computer keyboard has a grid of rectangular keys with letters, numbers, and symbols arranged in a specific layout." + ], + "candy store": [ + "Candy stores are recognized by colorful displays of sweets, glass jars, shelves packed with treats, and often a counter for serving.", + "A candy store has colorful displays of various sweets in jars or bins unlike other shops with uniform or non-edible items.", + "Candy stores are colorful with bright displays of sweets, glass jars, shelves full of candy, and often a counter for service.", + "A candy store is colorful with shelves full of sweets like jars of candies lollipops and chocolates in bright displays." + ], + "container ship": [ + "Container ships are long rectangular vessels with stacked cargo containers, unlike other ships which have varied shapes and no container stacks.", + "Container ships are long rectangular vessels with stacked colorful metal containers and a flat deck for easy loading and unloading.", + "A container ship is a massive elongated vessel with stacked rectangular containers, often colorful, floating on water with a prominent bow and stern.", + "Container ships are uniquely identified by their massive rectangular hulls stacked with uniformly colored shipping containers in rows." + ], + "convertible": [ + "A convertible has a retractable roof, open-top design, and often a sleek, sporty body with two doors and low seating.", + "A convertible is a car with a retractable roof, often sleek and sporty, resembling other vehicles but with an open-top design.", + "Convertibles have a retractable roof and open-top design unlike regular cars which have fixed roofs and enclosed cabins.", + "A convertible has a retractable roof that can be folded down to open the car to the outdoors." + ], + "corkscrew": [ + "A corkscrew has a distinctive spiral metal rod designed to twist into cork for removal.", + "A corkscrew is a small metal tool with a spiral tip and handle, used for pulling corks from bottles.", + "A corkscrew has a spiral metal rod with a handle, often T-shaped, used to pull corks from bottles.", + "A corkscrew has a spiral metal helix and handle, unlike other objects which lack this twisting design for opening bottles." + ], + "cornet": [ + "A cornet is a brass instrument resembling a small trumpet with a conical bore and compact shape.", + "A cornet looks like a small brass trumpet with a conical bore, compact shape, and a mellow tone.", + "A cornet looks like a small brass trumpet with a compact shape and a conical bore.", + "The cornet has a distinctive conical metal tube shape with valves and a flared bell, resembling a small trumpet." + ], + "cowboy boot": [ + "Cowboy boots have a tall shaft pointed toe high heel and often decorative stitching or patterns on the leather.", + "Cowboy boots have tall shafts, angled heels, pointed toes, and decorative stitching or patterns on the leather.", + "Cowboy boots are tall leather boots with pointed toes high heels and decorative stitching often with a slanted shaft.", + "Cowboy boots have a tall shaft with distinctive decorative stitching and a slanted heel not found on other footwear." + ], + "cowboy hat": [ + "A cowboy hat has a wide brim and tall crown, unlike other hats which are often smaller or differently shaped.", + "A cowboy hat is a wide-brimmed high-crowned hat typically made of felt or leather with a distinctive curved shape.", + "A cowboy hat has a wide brim curved up at the sides and a tall rounded or pinched crown.", + "The wide brim and high crown shape are unique to cowboy hats among all objects." + ], + "cradle": [ + "A cradle is a small bed with high sides that rocks, unlike regular beds or furniture which are larger and stationary.", + "A cradle is a small bed with high curved sides and often rocking legs for holding and soothing a baby.", + "A cradle is a small bed with high sides that rocks gently to soothe a baby, often made of wood or wicker.", + "A cradle has a curved base and sides designed to rock, typically holding a baby, with a distinct elongated oval shape." + ], + "construction crane": [ + "A construction crane is a tall metal structure with a long horizontal arm and cables, used for lifting heavy materials at building sites.", + "A construction crane has a tall vertical tower with a horizontal jib that can rotate and lift heavy loads.", + "Construction cranes are recognized by their tall steel lattice towers, long horizontal jibs, and cables used for lifting heavy materials.", + "Construction cranes have tall vertical towers with long horizontal booms and cables, unlike most objects which are smaller and lack such structures." + ], + "crash helmet": [ + "A crash helmet is a hard rounded protective headgear often with a visor and straps, usually made of tough plastic or composite materials.", + "A crash helmet is a hard, rounded headgear with a smooth outer shell, often featuring a visor and straps for secure fastening.", + "A crash helmet has a hard outer shell, padding inside, a chin strap, and often a visor, unlike hats or caps.", + "A crash helmet has a hard outer shell, smooth rounded shape, chin strap, and often bright colors or reflective surfaces for visibility." + ], + "crate": [ + "Crates are typically wooden or plastic boxes with slatted sides, unlike solid containers or bags, making them look open and structured.", + "A crate is a sturdy wooden or plastic box with slatted sides used for storage or shipping various items.", + "A crate is a sturdy rectangular box typically made of wood or plastic with slatted sides for ventilation and easy handling.", + "Crates are recognized by their rectangular wooden slats, open structure, and sturdy construction for holding items." + ], + "infant bed": [ + "An infant bed is smaller with high protective sides and often has soft padding unlike regular beds or cribs.", + "An infant bed is a small rectangular crib with raised sides and often has soft padding or bars for safety.", + "An infant bed has high protective sides to prevent babies from falling out.", + "An infant bed is small with high side rails often made of wood or plastic and has a soft mattress inside." + ], + "Crock Pot": [ + "A Crock Pot is a slow cooker with a round or oval ceramic pot inside a metal casing and a lid.", + "A crock pot has a round or oval shape with a removable lid and handles, often made of ceramic or metal.", + "A Crock Pot is a round or oval electric slow cooker with a removable stoneware pot and a lid, often with a handle.", + "A Crock Pot is a large electric pot with a removable stoneware insert and a lid, unlike most pots which are metal and stovetop." + ], + "croquet ball": [ + "A croquet ball is smooth, uniformly colored, and slightly smaller than a bowling ball but larger and less fuzzy than a tennis ball.", + "A croquet ball is a smooth, hard sphere, typically brightly colored with stripes or patterns, similar to a bocce ball but smaller.", + "Croquet balls are smooth hard spheres with bright solid colors and no seams or markings.", + "Croquet balls are smooth hard spheres with bright solid colors often featuring stripes or patterns for easy identification." + ], + "crutch": [ + "A crutch is a long stick with a padded top and often a crossbar to support underarm weight for walking assistance.", + "Crutches have long vertical shafts with horizontal hand grips and arm supports, often with rubber tips at the bottom.", + "Crutches are long narrow objects with padded tops and rubber tips often seen under arms for support.", + "Crutches have long straight shafts with handles and arm supports, unlike canes or walkers which are shorter or lack arm supports." + ], + "cuirass": [ + "A cuirass is a form-fitting metal chest plate with smooth surfaces and defined edges unlike fabric or flexible armor pieces.", + "A cuirass is a piece of armor that covers the torso, typically made of metal and shaped to fit the chest and back.", + "A cuirass is a form-fitting metal chest armor with smooth surfaces, often shiny, and sometimes decorated with ridges or engravings.", + "A cuirass is recognized by its smooth, curved metal chest plate covering the torso, often with shoulder straps and decorative engravings." + ], + "dam": [ + "Dams are large concrete or earthen barriers built across rivers to hold back water and create reservoirs.", + "Dams are large solid barriers made of concrete or earth that block water flow unlike natural formations or smaller man-made structures.", + "A dam is a large concrete or earthen wall built across a river to hold back water and create a reservoir.", + "Dams are large solid barriers built across rivers with straight edges and massive concrete or earthen walls holding back water." + ], + "desk": [ + "Desks are flat surfaces with legs often used for work or study typically found in offices or homes.", + "A desk is a flat rectangular surface with legs often made of wood or metal used for working or studying.", + "A desk is a flat-surfaced furniture piece with legs, often made of wood or metal, used for working or studying.", + "Desks are flat surfaces with legs for working while similar objects like tables or benches may lack storage or have different heights." + ], + "desktop computer": [ + "Desktop computers are rectangular with screens and keyboards, unlike most objects which lack these electronic components and flat surfaces.", + "A desktop computer is a boxy device with a monitor, keyboard, and often a mouse on a flat surface like a desk.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact base with visible ports and cables.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact case with visible ports and cables." + ], + "rotary dial telephone": [ + "A rotary dial telephone has a circular dial with numbered holes and a finger stop, unlike push-button phones or cordless models.", + "A rotary dial telephone has a circular dial with finger holes numbers around it and a handset on a cord.", + "A rotary dial telephone has a circular dial with finger holes numbered around it and a handset on a curved base.", + "A rotary dial telephone has a circular dial with numbered holes and a handset resting on a boxy base with a cord." + ], + "diaper": [ + "Diapers are soft, rectangular, and often white with elastic edges, unlike most objects which are rigid or differently shaped.", + "A diaper is typically a soft, rectangular, white or pastel-colored pad with elastic edges and adhesive tabs for fastening.", + "A diaper is a soft folded rectangular pad with fasteners made of absorbent material often white or pastel colored.", + "Diapers are rectangular with a soft, padded texture and often have fastening tabs or elastic edges for a snug fit." + ], + "digital clock": [ + "A digital clock is a small rectangular device with a screen displaying bright numbers showing the current time.", + "Digital clocks display numeric time digitally on a screen while other objects vary in shape color and function without showing time.", + "A digital clock has a flat rectangular screen displaying numeric digits in a segmented or pixelated format often with a dark background.", + "Digital clocks display numeric digits on a screen with clear segments or pixels showing time in a digital format." + ], + "digital watch": [ + "A digital watch has a small screen displaying numbers and buttons, unlike analog watches with hands or clocks with larger faces.", + "A digital watch is a small rectangular device with a screen displaying numbers for time, often with buttons on the sides.", + "A digital watch has a screen displaying numbers for time often with buttons and a rectangular or square shape.", + "Digital watches have a small rectangular screen displaying numbers or time with buttons or a touch interface on a wristband." + ], + "dining table": [ + "Dining tables are typically large flat surfaces with legs designed to seat multiple people unlike smaller or single-purpose furniture items.", + "Dining tables are large flat surfaces supported by legs often surrounded by chairs and used for meals or gatherings.", + "A dining table is a large flat surface with legs, often made of wood or glass, designed for meals and gatherings.", + "A dining table typically has a flat rectangular or oval surface surrounded by chairs for seating during meals." + ], + "dishcloth": [ + "A dishcloth is a small, flat, rectangular piece of fabric or textured material, often with a slightly rough surface for cleaning.", + "Dishcloths have a distinctive loose, woven texture designed for scrubbing and absorbing liquids.", + "A dishcloth is typically a small, flat, rectangular piece of fabric, often textured or slightly rough, unlike larger or rigid cleaning tools.", + "A dishcloth is typically a small, rectangular, soft, and often textured fabric piece, usually in plain colors or simple patterns." + ], + "dishwasher": [ + "Dishwashers are rectangular kitchen appliances with control panels, racks inside, and a front door, unlike smaller or differently shaped kitchen tools.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish in kitchens.", + "A dishwasher is a rectangular kitchen appliance with a front-loading door, control panel, and racks inside for holding dishes.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish or racks inside." + ], + "disc brake": [ + "A disc brake is a round metal rotor with a caliper that clamps onto it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers gripping it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers and pads visible often seen on vehicles and bikes for slowing motion.", + "Disc brakes have a round metal rotor and caliper while other objects lack this distinct flat circular shape and mechanical housing." + ], + "dock": [ + "Docks are long flat structures extending into water made of wood or metal for boats to moor or load.", + "A dock is a flat wooden or metal structure extending over water for boats to moor or people to walk on.", + "Docks are long flat structures extending over water made of wood or metal unlike boats or piers which are shorter or floating.", + "Docks are uniquely characterized by their long wooden or concrete platforms extending over water for boats to moor." + ], + "dog sled": [ + "A dog sled is a long narrow vehicle with runners, pulled by dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by harnessed dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by dogs, unlike other objects which lack this specific shape and function.", + "A dog sled has long narrow runners with a platform pulled by harnessed dogs in snow or icy terrain." + ], + "dome": [ + "A dome is a rounded vault forming the roof of a building or structure, often hemispherical in shape.", + "Domes are rounded, curved structures with a hemispherical shape, unlike flat or angular objects.", + "A dome is recognized by its rounded, hemispherical shape that curves uniformly upward from a circular base.", + "A dome is a rounded, curved, and often symmetrical structure that bulges outward like a half-sphere on top of buildings or objects." + ], + "doormat": [ + "A doormat is a flat rectangular or oval textile with coarse fibers often placed at entrances for wiping shoes.", + "Doormats are flat rectangular often textured or bristled surfaces designed for wiping shoes unlike other mats which may be softer or decorative.", + "A doormat is typically flat rectangular textured and often has welcome messages or rough surfaces for cleaning shoes.", + "Doormats are flat rectangular textiles with coarse textures often placed at entrances featuring welcome messages or geometric patterns." + ], + "drilling rig": [ + "A drilling rig is a tall, large structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "Drilling rigs are tall with large, complex structures and heavy machinery, unlike simpler or smaller objects like trucks or cranes.", + "A drilling rig is a large, towering structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "A drilling rig has a tall derrick, rotating drill pipe, and large platform with heavy machinery for extracting underground resources." + ], + "drum": [ + "Drums are recognized by their cylindrical shape, stretched membrane top, and often have a round base or stand.", + "A drum is a cylindrical musical instrument with a hollow body and stretched membranes on one or both ends.", + "Drums are typically cylindrical with a flat top and bottom, often covered by stretched material and may have metal rims.", + "Drums are cylindrical with a stretched membrane on top while similar objects lack this distinct shape and drumhead feature." + ], + "drumstick": [ + "A drumstick is a long thin wooden stick with a rounded tip used for hitting drums distinguishing it from other objects.", + "Drumsticks are long slender sticks with tapered ends used to strike drums often made of wood or metal.", + "Drumsticks are long thin wooden sticks with tapered ends used for drumming unlike other objects which vary in shape and material.", + "A drumstick is a long thin piece of meat from a chicken leg with a rounded end and a narrow bone inside." + ], + "dumbbell": [ + "A dumbbell is identified by a short bar with symmetrical weighted ends often made of metal or rubber.", + "Dumbbells are recognized by their short bar with symmetrical weighted ends often textured for grip and made of metal or rubber.", + "A dumbbell is a short metal bar with heavy round weights on each end used for exercise and strength training.", + "Dumbbells have a short bar with weights on both ends, unlike similar objects which may lack symmetry or have different shapes." + ], + "Dutch oven": [ + "A Dutch oven is a heavy pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls and a tight-fitting lid often made of cast iron or ceramic.", + "A Dutch oven is a heavy pot with thick walls and a tight-fitting lid, often made of cast iron or ceramic." + ], + "electric fan": [ + "Electric fans have rotating blades mounted on a base or stand, often with protective grilles, unlike most household objects which lack moving parts.", + "An electric fan typically has rotating blades mounted on a base or stand often with a protective grille and a motor.", + "Electric fans have rotating blades enclosed in a protective grill mounted on a stand or base for airflow.", + "An electric fan has rotating blades enclosed in a protective grill mounted on a base or stand for airflow." + ], + "electric guitar": [ + "Electric guitars have a long narrow body with strings, pickups, and a headstock with tuning pegs distinguishing them from other objects.", + "An electric guitar has a long neck with frets, a solid body, and pickups, unlike most objects which lack these musical instrument features.", + "An electric guitar has a long thin neck, solid body, six strings, pickups, and control knobs distinguishing it from other objects.", + "An electric guitar has a long wooden body with six strings, pickups, and metal knobs, often with a sleek and angular design." + ], + "electric locomotive": [ + "Electric locomotives are long, boxy vehicles with pantographs on top and no wheels visible, unlike cars or buses.", + "An electric locomotive is a large rectangular train engine with a smooth streamlined body and pantographs on top for power lines.", + "Electric locomotives have a pantograph on top that collects power from overhead wires.", + "Electric locomotives have a long rectangular body with a pantograph on top and often multiple windows along the front and sides." + ], + "entertainment center": [ + "An entertainment center is a large cabinet or stand holding a TV and other media devices like speakers and gaming consoles.", + "Entertainment centers are large furniture units with shelves, compartments, and space for TVs and electronic devices.", + "An entertainment center is a large cabinet with shelves or compartments for electronics like TVs and speakers, often made of wood or metal.", + "An entertainment center is a large cabinet with shelves and compartments designed to hold TVs and media equipment, unlike simpler furniture." + ], + "envelope": [ + "An envelope is a flat rectangular paper container with a sealed flap, often with printed addresses and stamps.", + "An envelope has a rectangular paper flap that folds over to seal the contents inside.", + "An envelope is a flat rectangular paper container with a sealable flap, unlike books or boxes which are thicker and rigid.", + "An envelope is a flat rectangular paper container with a sealable flap, typically used for holding letters or documents." + ], + "espresso machine": [ + "Espresso machines have a distinctive portafilter, steam wand, and water tank making them easily recognizable among kitchen appliances.", + "Espresso machines are shiny metal appliances with a portafilter, steam wand, and buttons or dials on a compact rectangular body.", + "An espresso machine is a sleek metal appliance with buttons, a portafilter, and steam wand for making coffee.", + "Espresso machines are compact with a portafilter steam wand and control panel unlike coffee makers which are simpler and lack these features." + ], + "face powder": [ + "Face powder is a fine, loose or pressed powder with a matte or shimmery texture, unlike solid or liquid cosmetics.", + "Face powder has a fine, powdery texture that appears as a soft, matte layer on skin, unlike other objects.", + "Face powder appears as a fine, light-colored powder often in small containers or compacts with a soft, smooth texture.", + "Face powder appears as a small compact or loose container filled with fine, pale, powdery substance often with a soft puff applicator." + ], + "feather boa": [ + "A feather boa is a fluffy, long, and soft accessory made of many colorful or monochrome feathers strung together.", + "Feather boas are long fluffy accessories made of soft feathers, unlike other objects which are usually solid or less textured.", + "Feather boas are recognized by their long fluffy strands made of soft feathers often in bright colors and wrapped loosely.", + "A feather boa is a fluffy, colorful, and often long scarf-like accessory made from soft feathers, usually worn around the neck." + ], + "filing cabinet": [ + "A filing cabinet is a tall rectangular metal or wooden box with drawers for storing documents and folders.", + "Filing cabinets are rectangular metal or wooden boxes with multiple horizontal drawers and often a lock or handle on each drawer.", + "Filing cabinets are tall rectangular metal or wooden boxes with multiple horizontal drawers and often a lockable top drawer.", + "Filing cabinets are recognized by their rectangular shape, multiple stacked drawers, and metallic or wooden texture with horizontal handles." + ], + "fireboat": [ + "Fireboats are recognized by their water cannons bright colors and large size designed for spraying water to fight fires on ships or docks.", + "A fireboat is a large watercraft with powerful water cannons and bright red coloring designed for fighting fires on ships and docks.", + "A fireboat is a large watercraft with multiple water cannons and bright red coloring for firefighting on water.", + "A fireboat has water cannons, a large hull, and bright red or yellow colors unlike regular boats or ships." + ], + "fire truck": [ + "Fire trucks are large red vehicles with ladders, flashing lights, and emergency markings like \"FIRE\" or \"RESCUE\" on them.", + "Fire trucks are large red vehicles with ladders, flashing lights, sirens, and bold white lettering for emergency identification.", + "Fire trucks are large red vehicles with ladders, hoses, flashing lights, and emergency markings unlike regular cars or trucks.", + "A fire truck is a large red vehicle with ladders, hoses, flashing lights, and often bold lettering for emergency visibility." + ], + "fire screen": [ + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh barrier placed in front of a fireplace to block sparks and embers.", + "A fire screen is a mesh or glass barrier with a decorative frame, unlike other objects which lack these protective and ornamental features." + ], + "flagpole": [ + "A flagpole is a tall slender vertical pole often topped with a finial and designed to hold a flag unlike other objects.", + "A flagpole is a tall slender vertical pole often made of metal or wood with a flag attached at the top.", + "A flagpole is a tall slender vertical pole often topped with a decorative finial and used to display flags.", + "A flagpole is a tall slender vertical structure with a flag attached, often standing alone or atop buildings." + ], + "flute": [ + "A flute is recognized by its long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a slender, shiny, metal or wooden tube with holes and keys, often held sideways when played.", + "The flute has a long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a long thin tube with holes while similar objects like recorders have mouthpieces and clarinets have reeds." + ], + "folding chair": [ + "A folding chair is a lightweight portable seat with a collapsible frame and often a fabric or plastic seat and backrest.", + "Folding chairs have collapsible frames and often a fabric or plastic seat, unlike rigid chairs or stools with fixed structures.", + "Folding chairs have a collapsible frame with a seat and backrest that fold flat for easy storage and portability.", + "Folding chairs are lightweight with a collapsible frame, often having a fabric or plastic seat and metal legs that fold flat." + ], + "football helmet": [ + "A football helmet is a hard, rounded protective gear with a facemask and team colors or logos on its smooth outer shell.", + "A football helmet has a hard outer shell with a face mask and padding, unlike most objects which lack these protective features.", + "A football helmet has a hard shell with a facemask, ear holes, and team logos or colors for player identification and protection.", + "Football helmets have a hard outer shell with a face mask and chin strap designed for player protection during the game." + ], + "forklift": [ + "A forklift is a small industrial vehicle with a forked platform used to lift and move heavy loads.", + "A forklift has two parallel horizontal forks at the front used for lifting and moving heavy loads.", + "Forklifts have a distinct upright mast with forks and a small cab, unlike most vehicles which lack lifting mechanisms.", + "A forklift has a tall vertical mast with forks at the front and a small cab for the operator." + ], + "fountain": [ + "Fountains are water structures with sprays or streams, unlike solid objects like statues or buildings which lack flowing water features.", + "A fountain is identified by water spraying or flowing from a decorative structure often with a basin or pool below.", + "Fountains are recognized by their water jets or sprays often in decorative structures with basins or pools.", + "A fountain is a decorative structure that sprays water into the air, often found in parks or plazas with sculpted designs." + ], + "fountain pen": [ + "Fountain pens have a slender body with a pointed nib and often an ink-filled barrel distinguishing them from bulkier writing tools.", + "A fountain pen is a slender writing tool with a pointed nib, ink reservoir, and often a decorative cap.", + "A fountain pen has a long slender body with a pointed nib and often a cap or clip for carrying.", + "A fountain pen has a slender cylindrical body with a pointed nib and often an ink reservoir or cap." + ], + "four-poster bed": [ + "A four-poster bed has tall vertical posts at each corner often with curtains or a canopy framing the bed.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains at the top.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains unlike other beds or furniture.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains for a distinctive enclosed look." + ], + "freight car": [ + "A freight car is a large rectangular box on wheels used to transport goods by rail, typically made of metal.", + "Freight cars are long rectangular containers on wheels often seen on trains used for transporting goods in bulk.", + "Freight cars are long rectangular metal containers on wheels used for transporting goods by rail unlike other vehicles or objects.", + "Freight cars are long rectangular metal containers on wheels often seen in trains used for transporting goods." + ], + "French horn": [ + "The French horn is a large brass instrument with a coiled tube, wide bell, and valves, often gold or silver in color.", + "The French horn has a large coiled brass tube with a flared bell and is played by inserting a hand into the bell.", + "The French horn has a distinctive large coiled brass tube with a flared bell and funnel-shaped mouthpiece.", + "The French horn has a large coiled brass body with a wide flared bell and three rotary valves." + ], + "frying pan": [ + "A frying pan has a flat round surface with a long handle, unlike pots or skillets which may be deeper or have different shapes.", + "A frying pan is a round flat metal cooking tool with a long handle and shallow sides for frying food.", + "A frying pan has a flat circular bottom with a shallow depth and a long handle extending from one side.", + "A frying pan has a flat circular cooking surface with a long handle and shallow curved sides for easy flipping and stirring." + ], + "fur coat": [ + "Fur coats are long thick hairy garments while other objects vary in shape texture and material like smooth plastic or hard metal.", + "A fur coat is identified by its thick soft hairy texture and animal skin appearance often with long shaggy or smooth fur.", + "A fur coat is a thick, soft garment made from animal pelts, often fluffy and luxurious in appearance.", + "Fur coats have long dense hair covering the entire outer surface unlike most other garments or objects." + ], + "garbage truck": [ + "A garbage truck is a large vehicle with a compacting mechanism and often has a distinctive shape and bright colors.", + "Garbage trucks are large boxy vehicles with mechanical arms or compactors, distinct from regular trucks due to their waste collection features.", + "A garbage truck is large, boxy, often green or white, with a mechanical arm or rear compactor and labeled for waste collection.", + "A garbage truck has a large hydraulic lifting mechanism on the back for emptying trash bins." + ], + "gas mask or respirator": [ + "A gas mask or respirator has a face-covering mask with filters or tubes and often a clear eye window.", + "A gas mask or respirator is a face-covering device with filters and straps designed to protect against harmful air.", + "A gas mask or respirator has a large round facepiece with filters on the sides and straps for securing it tightly.", + "Gas masks and respirators cover the mouth and nose with filters and straps unlike most objects which lack protective face features." + ], + "gas pump": [ + "A gas pump is typically a tall metal machine with a hose nozzle and digital display for fueling vehicles at stations.", + "A gas pump is a tall metal device with a hose and nozzle for dispensing fuel, often seen at service stations.", + "Gas pumps have a distinct nozzle, hose, and digital display panel unlike most objects which lack these specific fueling components.", + "Gas pumps have a tall vertical body with a hose, nozzle, and digital display for fuel selection and payment." + ], + "goblet": [ + "A goblet is a stemmed drinking cup with a wide bowl, distinguishing it from other cups or vessels without stems or with different shapes.", + "A goblet is recognized by its stemmed cup shape with a wide bowl narrow base and often decorative details.", + "A goblet is a stemmed drinking cup with a wide bowl, often made of glass or metal, and usually taller than it is wide.", + "A goblet is a decorative drinking cup with a stem and base, often made of glass or metal, resembling a fancy wine glass." + ], + "go-kart": [ + "A go-kart is a small open-wheel racing car with a low frame, no roof, and a simple design for speed and agility.", + "A go-kart has a small open-wheel frame with no suspension and a low seat close to the ground.", + "A go-kart is a small open-wheel vehicle with a low frame, no suspension, and a single seat, often brightly colored.", + "Go-karts are small open-wheel vehicles with low frames no doors roll cages and often bright colors used for racing." + ], + "golf ball": [ + "A golf ball is small, white, dimpled, and round, often seen on grassy fields or near golf clubs.", + "A golf ball is small, white, dimpled, and spherical, often found on grassy courses or near clubs and tees.", + "Golf balls have a distinctive dimpled surface pattern that no other object has for aerodynamics and distance control.", + "Golf balls are small, white, dimpled spheres, unlike most objects which vary in color, texture, and shape." + ], + "golf cart": [ + "A golf cart has a small open vehicle design with seats and a bag holder for golf clubs.", + "A golf cart is a small open vehicle with seats and a roof designed for carrying golfers and their equipment around a course.", + "Golf carts are small open vehicles with seats and a roof, unlike cars or trucks, designed for short distances on golf courses.", + "Golf carts are small vehicles with open sides, a roof, and a simple rectangular shape, often seen on golf courses." + ], + "gondola": [ + "A gondola is a long narrow boat with a flat bottom and high curved ends, unlike other boats which are wider or differently shaped.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and curved ends used in Venice canals." + ], + "gong": [ + "A gong is a large, flat, circular metal disc that produces a resonant sound when struck with a mallet.", + "A gong is a large flat metal disc with a raised center and often ornate designs, unlike smaller or differently shaped percussion instruments.", + "A gong is a large flat metal disc with a raised center and often has ornate designs or engravings on its surface.", + "A gong is recognized by its large flat circular metal disc often with a raised center and struck with a mallet." + ], + "gown": [ + "A gown is a long flowing formal dress often worn for special occasions like weddings or ceremonies.", + "A gown is a long flowing dress often worn for formal events with elegant fabrics and intricate designs.", + "A gown is a long flowing dress typically worn for formal occasions unlike shorter casual dresses or other clothing items.", + "Gowns are long flowing garments with loose draping fabric often featuring elegant designs and formal embellishments." + ], + "grand piano": [ + "The grand piano has a distinctive large curved body with a horizontal lid that opens upwards.", + "A grand piano has a large curved body with a lid and strings inside, unlike upright pianos which are tall and straight.", + "A grand piano is a large musical instrument with a curved wooden body, open lid, and black and white keys.", + "A grand piano has a large curved body with a lid that opens upwards and a row of black and white keys." + ], + "greenhouse": [ + "Greenhouses are recognized by their transparent glass or plastic walls and roofs designed to let sunlight in for growing plants.", + "Greenhouses are typically made of transparent glass or plastic walls and roofs to let sunlight in, unlike most solid-walled structures.", + "A greenhouse is a glass or transparent structure for growing plants, often rectangular with a peaked or curved roof.", + "Greenhouses are typically transparent or glass structures with metal or plastic frames, often containing visible plants inside." + ], + "radiator grille": [ + "A radiator grille is a metal or plastic grid on a vehicle's front that allows airflow while protecting the radiator.", + "A radiator grille is a grid-like front panel on vehicles with horizontal or vertical slats for airflow and cooling the engine.", + "A radiator grille has evenly spaced vertical or horizontal slats designed for airflow, unlike solid or differently patterned surfaces on other objects.", + "A radiator grille has a repeating grid or mesh pattern often with horizontal or vertical bars for airflow and vehicle branding." + ], + "grocery store": [ + "Grocery stores are recognized by shelves stocked with packaged goods, shopping carts, checkout counters, and aisles with food products.", + "Grocery stores have shelves stocked with various packaged goods and fresh produce unlike single-item objects or uniform environments.", + "A grocery store is a large organized space with shelves stocked full of packaged foods fresh produce and household items.", + "Grocery stores have aisles filled with shelves stocked with various packaged foods and household products." + ], + "guillotine": [ + "A guillotine has a tall upright frame with a sharp angled blade that slides down to cut, distinct for its execution purpose.", + "A guillotine has a tall wooden frame with a diagonal blade, unlike most objects which lack such a distinct sharp cutting mechanism.", + "A guillotine is a tall wooden frame with a sharp angled blade used for executions by beheading.", + "A guillotine has a tall wooden frame with a diagonal blade at the top and a base to hold the victim." + ], + "hair clip": [ + "Hair clips are small, often curved or decorative, and designed to hold hair in place with a clasp or spring mechanism.", + "A hair clip is small, often curved or hinged, and designed to hold hair in place unlike larger or rigid objects.", + "A hair clip is a small, often decorative clasp with hinged or sliding parts designed to hold hair in place.", + "A hair clip is small, often curved or straight, with a clasp or decorative top, used to hold hair in place." + ], + "hair spray": [ + "Hair spray is a small aerosol can with a nozzle, often shiny and labeled, used to style hair.", + "Hair spray is a small aerosol can with a nozzle while similar items like perfumes or deodorants often have different shapes or spray mechanisms.", + "Hair spray is recognized by its aerosol can shape, nozzle, and often colorful or metallic packaging with hair-related branding.", + "Hair spray appears as a small aerosol can with a nozzle and often has colorful labels or branding." + ], + "half-track": [ + "A half-track has both front wheels and rear tank-like tracks, unlike vehicles with only wheels or full tracks.", + "A half-track has a truck-like front with tank-like rear tracks instead of wheels for off-road mobility.", + "A half-track is a rugged military vehicle with front wheels and rear tank-like tracks for off-road mobility.", + "A half-track has a front truck-like section and rear tank-like tracks, combining wheels and continuous tracks for mobility." + ], + "hammer": [ + "A hammer has a long handle with a heavy metal head at one end for striking nails.", + "A hammer has a long handle with a heavy metal head, one flat side for striking and often a claw for pulling nails.", + "A hammer has a long handle with a heavy metal head at one end used for hitting nails or breaking things.", + "Hammers have a long handle and a heavy metal head, unlike most tools which are smaller or have different shapes." + ], + "hamper": [ + "A hamper is typically a large woven or fabric container with handles, often used for holding laundry or clothes.", + "A hamper is typically a large woven or fabric container with a lid, often used for storing laundry.", + "A hamper is recognized by its open-top woven or fabric container shape often used for holding laundry or storage.", + "A hamper is a large woven or fabric basket used for holding laundry or clothes, often with a lid and handles." + ], + "hair dryer": [ + "A hair dryer is a handheld device with a long nozzle, a handle, and vents, often with buttons or switches for controls.", + "A hair dryer is a handheld electric device with a nozzle and buttons, often shaped like a gun or tube for blowing hot air.", + "A hair dryer has a handle, a long nozzle, and a vented body with a cord for electrical power.", + "A hair dryer has a long nozzle and handle with buttons, unlike similar objects like drills or microphones which lack these features." + ], + "hand-held computer": [ + "Hand-held computers are flat rectangular devices with screens and buttons unlike bulkier or irregularly shaped everyday objects.", + "Hand-held computers are small rectangular devices with screens, buttons or touchscreens, and often have visible brand logos or ports.", + "Hand-held computers are small flat rectangular devices with screens, buttons or touchpads, and often a compact keyboard or stylus.", + "A hand-held computer typically has a touchscreen and physical buttons combined in a compact rectangular shape." + ], + "handkerchief": [ + "Handkerchiefs are small square cloths, often plain or patterned, while similar items like napkins or scarves vary in size, material, and use.", + "A handkerchief is a small square or rectangular piece of soft fabric often folded or carried in pockets for personal use.", + "Handkerchiefs are small square cloths often with decorative patterns or monograms used for personal hygiene or fashion accessories.", + "A handkerchief is a small square piece of cloth, often white or patterned, used for personal hygiene or as a fashion accessory." + ], + "hard disk drive": [ + "Hard disk drives are flat rectangular metal boxes with circuit boards and connectors unlike most objects which vary in shape and material.", + "A hard disk drive is a rectangular metal box with circuit boards on one side and smooth surfaces on the others.", + "Hard disk drives are flat rectangular metal boxes with circuit boards on one side and labeled stickers on top.", + "A hard disk drive is a rectangular metal box with circuit boards and connectors, often shiny and flat with labeled stickers." + ], + "harmonica": [ + "A harmonica is a small rectangular wind instrument with metal reeds and air holes in a row.", + "A harmonica is a small rectangular wind instrument with metal reeds and air holes, unlike most objects which lack these features.", + "A harmonica is a small rectangular instrument with metal reeds visible through air holes in a metal or plastic comb.", + "The harmonica has a distinctive row of small rectangular holes for airflow and sound production." + ], + "harp": [ + "A harp has tall vertical strings and a curved neck, unlike most instruments which are smaller and lack such prominent strings.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings stretched from top to bottom.", + "The harp's distinct features are its tall frame, multiple parallel strings, and curved neck, making it easily recognizable among instruments.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings played by plucking with fingers." + ], + "combine harvester": [ + "A combine harvester is a large farm machine with a wide cutting header grain tank and tracks or wheels for harvesting crops efficiently.", + "A combine harvester is a large farm machine with a cutting header, rotating reel, and grain tank for harvesting crops efficiently.", + "A combine harvester is large with a complex structure including a cutting header, threshing drum, and grain tank, unlike simpler farm vehicles.", + "A combine harvester uniquely has a large rotating header at the front that cuts and gathers crops in one pass." + ], + "hatchet": [ + "A hatchet has a short handle with a sharp metal blade on one end for chopping or cutting.", + "A hatchet is a small axe with a short handle and a sharp blade used for chopping wood or other tasks.", + "A hatchet has a sharp blade on one side and a hammerhead on the opposite side of a short handle.", + "A hatchet has a short handle and a sharp metal blade, unlike similar tools which may be longer or have different head shapes." + ], + "holster": [ + "A holster is a pouch or holder typically made of leather or fabric designed to securely carry a gun or tool.", + "A holster is typically a leather or fabric pouch with straps or clips designed to securely hold a gun or tool.", + "A holster is a leather or fabric pouch designed to hold a gun or tool securely on a belt or strap.", + "A holster is recognized by its pouch-like shape designed to snugly hold a firearm, often with a belt clip or strap." + ], + "home theater": [ + "Home theaters are recognized by large screens, multiple speakers, dark surroundings, and comfortable seating arranged for optimal viewing and sound.", + "Home theaters typically include multiple speakers a large screen and media components arranged for immersive viewing unlike simpler single-purpose devices.", + "A home theater resembles a setup with a large screen speakers and seating designed for a cinematic experience in a home.", + "Home theaters typically feature large screens, multiple speakers, and sleek media consoles often arranged in a dedicated room setup." + ], + "honeycomb": [ + "Honeycomb has a distinctive hexagonal pattern made of tightly packed wax cells created by bees.", + "Honeycomb has a distinctive hexagonal pattern with waxy, golden cells often clustered together in a flat or slightly curved structure.", + "Honeycomb has a distinctive hexagonal pattern with small, tightly packed cells, often golden or light brown, resembling a natural geometric grid.", + "Honeycomb has a unique hexagonal pattern of small uniform cells often in a golden or waxy color." + ], + "hook": [ + "A hook has a curved or bent end designed to catch, hold, or pull objects.", + "A hook is a curved or bent tool typically made of metal used for grabbing holding or hanging objects.", + "A hook is recognized by its curved or bent shape designed to catch, hold, or pull objects.", + "A hook has a curved or bent shape that tapers to a point, often with a smooth or sharp end for catching or holding." + ], + "hoop skirt": [ + "A hoop skirt has a rigid, circular frame that creates a wide, bell-shaped silhouette unlike other skirts or garments.", + "A hoop skirt is recognized by its wide, rigid, circular frame that creates a bell-shaped silhouette under fabric.", + "A hoop skirt is a wide, structured skirt with horizontal rings that holds its shape outward from the waist.", + "A hoop skirt has a rigid, bell-shaped frame that visibly extends the fabric outward in a wide circular form." + ], + "gymnastic horizontal bar": [ + "A gymnastic horizontal bar is a long thin metal bar mounted horizontally between two sturdy vertical supports.", + "The gymnastic horizontal bar is a long, thin, metal bar mounted horizontally on upright supports for athletic exercises.", + "The gymnastic horizontal bar is a long thin metal bar mounted horizontally between two upright supports unlike other objects.", + "A long thin horizontal metal bar elevated on upright supports used for gymnastic routines like swings and flips." + ], + "horse-drawn vehicle": [ + "A horse-drawn vehicle is a carriage or cart pulled by horses, typically with wooden wheels and a bench or enclosed seating area.", + "Horse-drawn vehicles have large wheels, a carriage body, and are pulled by horses unlike motorized vehicles or animal riders.", + "Horse-drawn vehicles have wooden wheels, a carriage body, and are pulled by horses, distinguishing them from motorized vehicles and animals alone.", + "Look for a carriage or wagon pulled by horses with large wheels and a driver's seat." + ], + "hourglass": [ + "An hourglass has two glass bulbs connected by a narrow neck with sand flowing between them unlike most objects.", + "An hourglass is a glass device with two bulbous chambers connected by a narrow waist holding sand that flows between them.", + "An hourglass is recognized by its symmetrical glass bulbs connected by a narrow waist with sand flowing between them.", + "An hourglass has two rounded glass bulbs connected by a narrow middle with sand flowing from the top to the bottom." + ], + "iPod": [ + "An iPod is a small rectangular device with a click wheel or touchscreen and a sleek metal or plastic body.", + "iPods are small sleek rectangular devices with a click wheel or touchscreen unlike most objects which vary widely in shape and function.", + "An iPod is a small rectangular device with a smooth surface, a click wheel or touchscreen, and often a white or metallic finish.", + "An iPod is recognized by its small rectangular shape, click wheel, and sleek design with a screen and minimal buttons." + ], + "clothes iron": [ + "A clothes iron is a smooth flat metal base with a handle and a pointed tip used for pressing wrinkles out of fabric.", + "A clothes iron has a flat smooth metal base a handle on top and a tapered pointed front for pressing fabric.", + "A clothes iron has a flat smooth metal plate with a handle and often a pointed tip for pressing wrinkles out of fabric.", + "A clothes iron has a flat heated metal plate with a handle, unlike most objects which lack this smooth surface and grip design." + ], + "carved pumpkin": [ + "Carved pumpkins have hollow interiors with cut-out faces or designs, while other objects are solid or have different surface textures.", + "A carved pumpkin is an orange hollowed-out gourd with a face or design cut into its surface often lit from inside.", + "Carved pumpkins have distinct jagged cut-out facial features and hollow interiors with glowing candlelight visible through the openings.", + "A carved pumpkin has a hollowed-out orange shell with cut-out facial features like eyes and a mouth often lit from inside." + ], + "jeans": [ + "Jeans are recognized by their sturdy blue denim fabric, stitching patterns, and characteristic pockets and metal rivets.", + "Jeans have distinctive parallel stitched seams on the front pockets and along the outer leg edges.", + "Jeans are blue denim pants with stitching details, pockets, and a zipper or button fly.", + "Jeans are sturdy blue denim pants with visible stitching and metal rivets unlike most other clothing or objects." + ], + "jeep": [ + "Jeeps are recognized by their boxy shape, rugged tires, open top or removable roof, and distinctive front grille with round headlights.", + "Jeeps have a boxy shape, rugged tires, open top or removable roof, and a distinctive front grille with round headlights.", + "Jeeps are rugged vehicles with boxy shapes, large tires, open tops or removable doors, and a distinctive front grille.", + "A jeep is a rugged, boxy vehicle with large tires, open top or removable roof, and a distinctive grille." + ], + "T-shirt": [ + "A T-shirt has a short-sleeved or sleeveless design with a round neckline and no buttons or collar.", + "A T-shirt is a soft, short-sleeved, collarless garment made of stretchy fabric, unlike structured or rigid items like jackets or sweaters.", + "A T-shirt is a lightweight, short-sleeved, collarless garment with a round neckline, typically made of soft, stretchy fabric.", + "A T-shirt is recognized by its short sleeves, round neckline, and casual fabric, typically worn as everyday clothing." + ], + "jigsaw puzzle": [ + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns unlike most solid uniform objects.", + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns forming a complete image when assembled correctly.", + "A jigsaw puzzle is a flat, interlocking cardboard piece with colorful, irregular edges forming a complete picture when assembled.", + "Jigsaw puzzles have interlocking pieces with unique irregular edges and colorful fragmented images when incomplete." + ], + "rickshaw": [ + "A rickshaw is a small two or three-wheeled passenger cart pulled by a person or bicycle, unlike motorized vehicles or animal-drawn carriages.", + "A rickshaw is a small three-wheeled passenger vehicle often pulled by a person or powered by a motor with a covered seating area.", + "A rickshaw is a small two or three-wheeled passenger cart often pulled by a person or bicycle with a canopy and seating area.", + "A rickshaw is a small two-wheeled passenger cart pulled by a person or bicycle, often with a canopy for shade." + ], + "joystick": [ + "A joystick is a handheld control device with a stick that pivots on a base and often has buttons.", + "A joystick has a stick-like handle on a base with buttons or triggers for controlling games or machinery.", + "A joystick has a stick-like handle on a base with buttons often used for controlling games or machinery.", + "A joystick has a stick-like handle and buttons, unlike similar objects which may lack the stick or have different control layouts." + ], + "kimono": [ + "Kimonos are recognized by their long flowing sleeves, wide sash belt, and intricate traditional patterns on silk fabric.", + "A kimono is a long, flowing Japanese robe with wide sleeves, often made of silk and featuring intricate patterns.", + "A kimono is a long robe with wide sleeves and a sash belt often featuring intricate patterns and vibrant colors.", + "Kimonos are long flowing robes with wide sleeves and intricate patterns, unlike shorter or simpler garments like shirts or dresses." + ], + "knee pad": [ + "Knee pads are curved padded protectors that strap around the knee, unlike flat or rigid objects like plates or boards.", + "A knee pad is a cushioned protective gear worn around the knee, often made of foam or plastic with straps for securing.", + "Knee pads are typically curved padded gear strapped around knees often seen in sports or construction with protective hard shells or soft cushioning.", + "Knee pads have a curved rigid shell with soft padding designed to fit snugly around the knee joint." + ], + "knot": [ + "A knot appears as a tightly looped and twisted section of rope or string often forming a secure or decorative fastening.", + "Knots are identified by their twisted or looped rope or string shapes often forming tight, irregular bundles or interwoven patterns.", + "Knots are twisted or tied sections of rope or string, unlike straight or loose strands, forming loops or tight bundles.", + "Knots have intertwined loops with visible overlaps and tight bends distinguishing them from straight or loosely tangled objects." + ], + "lab coat": [ + "A lab coat is a long white coat with buttons down the front, typically worn by scientists or medical professionals.", + "A lab coat is a long white coat with buttons, pockets, and a notched collar, typically worn by scientists or doctors.", + "A lab coat is a long white coat with buttons, typically worn by professionals, unlike other jackets or coats in style and purpose.", + "A lab coat is a long white coat with buttons, pockets, and a collar, typically worn by scientists or medical professionals." + ], + "ladle": [ + "A ladle is a large deep spoon with a long handle used for serving soups or stews.", + "A ladle has a long handle and deep round bowl for scooping liquids unlike spoons or cups which are smaller or differently shaped.", + "A ladle has a deep round bowl and a long handle designed for scooping and serving liquids.", + "A ladle has a deep round bowl with a long handle used for scooping and serving liquids like soup or sauce." + ], + "lampshade": [ + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is a conical or cylindrical cover that diffuses light from a bulb, often made of fabric, paper, or glass.", + "Lampshades are typically conical or cylindrical fabric covers that diffuse light, unlike solid objects like vases or bowls." + ], + "laptop computer": [ + "A laptop computer is a flat rectangular device with a screen and keyboard, often thin and portable, sometimes with a hinged lid.", + "A laptop computer is a flat rectangular device with a screen on one side and a keyboard on the other.", + "Laptop computers are flat, rectangular devices with a hinged screen and keyboard, distinguishing them from bulkier or differently shaped electronics.", + "A laptop computer has a hinged screen attached to a keyboard in a single portable flat device." + ], + "lawn mower": [ + "A lawn mower typically has a metal body with rotating blades underneath and wheels for pushing or riding across grass.", + "A lawn mower has a distinct rotating blade, wheels, and a handle, often with a large engine or motor on a rectangular base.", + "A lawn mower typically has a metal or plastic body with rotating blades underneath and often has wheels or handles for pushing.", + "Lawn mowers typically have a distinct cutting deck, wheels, and a handle, unlike similar objects which may lack these features." + ], + "lens cap": [ + "A lens cap is a small flat circular or rectangular cover specifically designed to fit snugly over camera lenses.", + "A lens cap is a small circular or rectangular cover that protects camera lenses from dust and scratches.", + "A lens cap is a small circular or rectangular cover that protects camera lenses by fitting snugly over them.", + "A lens cap is a small round or square flat cover typically black with a clip or groove to attach to cameras." + ], + "letter opener": [ + "A letter opener is a slender flat tool with a pointed or rounded blade often resembling a small knife or decorative paper knife.", + "A letter opener is a slim flat tool with a pointed or blunt end often resembling a small knife or decorative blade.", + "A letter opener is a slim flat blade with a pointed or rounded tip often resembling a small knife or decorative paper knife.", + "A letter opener is typically long thin and flat with a sharp edge unlike bulkier or rounded objects like knives or scissors." + ], + "library": [ + "Libraries are recognized by rows of bookshelves filled with books, study tables, reading lamps, and often a quiet, organized atmosphere.", + "A library typically features shelves filled with books, reading tables, and a quiet, organized space with people studying or browsing.", + "A library can be identified by rows of bookshelves filled with books, often with reading tables and a quiet study atmosphere.", + "Libraries are large buildings with many windows and often columns, while other objects vary widely in size shape and design." + ], + "lifeboat": [ + "Lifeboats are typically bright orange or red, have a rigid or inflatable design, and often include safety rails or oars.", + "Lifeboats are bright orange or red, have a pointed bow, and often display bold letters or numbers for high visibility.", + "A lifeboat is an orange or white floating vessel with a pointed bow, often inflatable or rigid, used for emergency rescues at sea.", + "Lifeboats are typically bright orange or red, boat-shaped, often with a canopy, and marked with rescue labels or numbers." + ], + "lighter": [ + "A lighter is a small handheld device with a metal body and a trigger that produces a flame for lighting fires.", + "A lighter has a small elongated body with a trigger mechanism and a flame outlet for ignition.", + "Look for small handheld objects with metallic bodies and a spark wheel or button on top.", + "Lighters are small handheld devices with a trigger or wheel that produce a flame and often have a metallic or plastic body." + ], + "limousine": [ + "A limousine is a long, sleek, luxury car with a stretched body, often black, shiny, and with tinted windows.", + "A limousine is a long, sleek, luxury car with stretched body, tinted windows, and often a chauffeur-driven black or white design.", + "A limousine is recognized by its elongated body, luxury styling, dark tinted windows, and often a chauffeur-driven appearance.", + "Limousines are longer and more stretched than regular cars with a sleek elegant design and often have a chauffeur partition." + ], + "ocean liner": [ + "Ocean liners are large elongated ships with multiple decks designed for long-distance passenger travel across open seas.", + "An ocean liner is a massive passenger ship with a long sleek hull multiple decks and large smokestacks for long sea voyages.", + "Ocean liners are large elongated ships with multiple decks tall smokestacks and often have a sleek streamlined design for long voyages.", + "Ocean liners are uniquely identified by their massive elongated hulls with multiple passenger decks and prominent smokestacks." + ], + "lipstick": [ + "Lipstick is a small cylindrical cosmetic item with a pointed tip, often in vibrant colors and shiny or matte finishes.", + "Lipstick is a small cylindrical object with a smooth shiny surface and a pointed or rounded tip in vibrant colors.", + "Lipstick has a small cylindrical shape with a smooth shiny surface and often comes in vibrant solid colors.", + "Lipstick is a small cylindrical cosmetic item with a smooth shiny surface and vibrant colors unlike most everyday objects." + ], + "slip-on shoe": [ + "Slip-on shoes are flat, collarless footwear with elastic sides or a loose fit, lacking laces or buckles for easy wearing.", + "A slip-on shoe is a casual footwear without laces, often with elastic sides and a low profile for easy wearing.", + "Slip-on shoes lack laces or fasteners and have an open top for easy sliding of the foot.", + "Slip-on shoes lack laces and have elastic or stretchy openings for easy wearing without fasteners." + ], + "lotion": [ + "Lotion usually comes in bottles or tubes with smooth textures and often has a creamy or slightly translucent appearance.", + "Lotion typically appears as a creamy or liquid substance in a bottle or pump container with a smooth glossy texture.", + "Lotion typically comes in bottles or tubes with smooth creamy textures unlike solid or powdery items like soap or makeup.", + "Lotion typically appears as a small bottle or tube with a smooth texture and often has a creamy or liquid consistency." + ], + "music speaker": [ + "Music speakers are typically box-shaped with grilles or mesh fronts and often have buttons or dials for volume control.", + "Music speakers are typically boxy with grilles or cones, often black or metallic, and may have buttons or lights on the front.", + "Music speakers are recognized by their grille covers, control buttons, and often a cylindrical or rectangular shape with visible drivers inside.", + "Music speakers typically have a boxy shape with grilles or mesh fronts and visible drivers unlike most other objects." + ], + "loupe magnifying glass": [ + "A loupe magnifying glass is a small handheld device with a lens for close-up viewing of fine details.", + "A loupe magnifying glass has a single lens with a handle designed for close-up viewing of small objects.", + "A loupe magnifying glass is smaller, handheld, and often has a single lens, while others are larger or have handles or stands.", + "A loupe magnifying glass is small, handheld, with a single lens for close-up viewing, often used by jewelers or watchmakers." + ], + "sawmill": [ + "A sawmill is a large industrial facility with log piles, conveyor belts, and cutting machinery, unlike smaller tools or natural wood objects.", + "A sawmill is a large industrial facility with logs, saws, conveyor belts, and stacks of lumber, often in a forested area.", + "A sawmill is a large industrial building with logs, sawdust piles, cutting equipment, and stacks of lumber outside.", + "A sawmill has large log piles, cutting machinery, conveyor belts, and stacks of processed lumber in an industrial outdoor setting." + ], + "magnetic compass": [ + "A magnetic compass is a small round device with a needle that points north, often inside a flat case with marked directions.", + "A magnetic compass has a freely rotating needle that always points to the Earth's magnetic north.", + "A magnetic compass has a flat circular dial with a needle that points north, unlike most objects which lack directional indicators.", + "A magnetic compass has a circular dial with a rotating needle that always points north, set in a flat, often handheld case." + ], + "messenger bag": [ + "Messenger bags have a single long strap and a flat rectangular shape designed to hang diagonally across the body.", + "Messenger bags have a single shoulder strap and a flat rectangular shape unlike backpacks or briefcases which have two straps or rigid structures.", + "A messenger bag is a rectangular or trapezoidal bag with a long strap worn diagonally across the body.", + "A messenger bag is a rectangular or trapezoidal shoulder bag with a flap closure and a long strap worn across the body." + ], + "mailbox": [ + "A mailbox is typically a rectangular metal or plastic box with a hinged door or slot for mail, often mounted on a post.", + "A mailbox has a distinctive slot or door for inserting mail, often mounted on a post or attached to a building.", + "A mailbox is a rectangular or cylindrical container with a slot for mail, often mounted on a post near a house.", + "A mailbox typically has a rectangular or cylindrical shape with a slot for letters and often a flag or door for access." + ], + "tights": [ + "Tights are sheer stretchy leg coverings unlike pants or socks which are thicker shorter or less form fitting.", + "Tights are stretchy leg coverings with a smooth texture and tight fit often worn under skirts or as athletic wear.", + "Tights are stretchy leg coverings that are thin, skin-tight, and often sheer, resembling stockings but without feet.", + "Tights are thin stretchy leg coverings that resemble sheer pants often in skin tones or colors reaching from waist to toes." + ], + "one-piece bathing suit": [ + "One-piece bathing suits are tight-fitting, cover the torso, and often have simple designs compared to looser, more varied clothing or objects.", + "A one-piece bathing suit is a tight-fitting garment covering the torso and legs designed for swimming or sunbathing.", + "A one-piece bathing suit is a single tight-fitting garment covering the torso designed for swimming or sunbathing.", + "One-piece bathing suits are form-fitting, cover the torso, and often have unique patterns or solid colors for swimwear." + ], + "manhole cover": [ + "A manhole cover is typically a round, flat, metal disc with a textured or patterned surface, often found on streets or sidewalks.", + "A manhole cover is a heavy round metal lid with patterns or holes, flush with the ground, often found on streets.", + "Manhole covers are typically round metal discs with textured patterns, while similar objects vary in shape material and surface design.", + "Manhole covers are round metal discs with textured patterns and often have city names or logos embossed on them." + ], + "maraca": [ + "Maracas are handheld musical instruments with a round hollow body filled with beads or seeds and a long handle for shaking.", + "A maraca is a handheld musical instrument with a round hollow body filled with beads or seeds that rattle when shaken.", + "Maracas are recognized by their oval hollow bodies with handles and loose beads inside that create sound when shaken.", + "Maracas are handheld shakers with round hollow bodies filled with beads, unlike solid or differently shaped percussion instruments." + ], + "marimba": [ + "A marimba is a large wooden percussion instrument with tuned bars and resonators, resembling a xylophone but deeper in tone.", + "The marimba has wooden bars arranged like a keyboard with resonators underneath, unlike drums or xylophones which lack such tubes.", + "A marimba has long wooden bars arranged like a keyboard with resonators underneath, played with mallets, distinguishing it from other instruments.", + "The marimba has wooden bars arranged in a keyboard layout with resonators underneath each bar." + ], + "mask": [ + "A mask covers the face partially or fully hiding facial features while allowing visibility of the eyes or mouth.", + "Masks cover the face partially or fully while other objects do not typically obscure facial features in the same way.", + "Masks are typically face-sized coverings with straps or loops often showing eye holes and a textured or colored surface.", + "A mask is a facial covering typically made of fabric or plastic, often with straps to secure it over the nose and mouth." + ], + "matchstick": [ + "A matchstick is a small thin wooden or cardboard stick with a coated tip for striking to create fire.", + "A matchstick is a thin wooden stick with a colored tip and often a slightly rough or textured surface.", + "A matchstick has a small wooden stick with a colored tip coated in flammable material for striking.", + "Matchsticks are thin wooden sticks with a colored tip and uniform length, often bundled together in a small box." + ], + "maypole": [ + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with ribbons and flowers, unlike other poles which are usually plain or functional.", + "A maypole is recognized by its tall wooden pole decorated with colorful ribbons, flowers, and often topped with a festive crown." + ], + "maze": [ + "A maze is a complex network of paths or walls designed to confuse and challenge navigation through its intricate patterns.", + "Mazes are recognized by their intricate, interconnected pathways forming complex patterns with no clear straight lines or simple shapes.", + "Mazes are flat complex patterns with interconnected paths while other objects have varied three-dimensional shapes and textures.", + "Mazes are intricate networks of winding paths or walls often forming symmetrical or geometric patterns with clear entry and exit points." + ], + "measuring cup": [ + "A measuring cup typically has a handle, spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup is a kitchen tool with a handle, spout, and marked lines to indicate volume for liquids or dry ingredients.", + "Measuring cups have a handle, pour spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup has clear markings for measurements and a spout, unlike regular cups which are plain and lack these features." + ], + "medicine cabinet": [ + "A medicine cabinet is typically a small mirrored wall-mounted box with a door often found in bathrooms for storing medical items.", + "A medicine cabinet is a small mirrored storage box typically mounted on a wall in bathrooms for holding medicines and toiletries.", + "A medicine cabinet is a small wall-mounted storage unit with a mirrored door and shelves for holding medical supplies and toiletries.", + "A medicine cabinet typically has a mirrored door and shelves designed to store small medical or personal care items." + ], + "megalith": [ + "A megalith is a large ancient stone structure often standing upright or arranged in circles like Stonehenge.", + "Megaliths are large ancient stone structures, often standing upright or stacked, unlike smaller or naturally formed rocks and modern constructions.", + "Megaliths are large ancient stone structures often arranged in patterns or standing alone with rough weathered surfaces and massive scale.", + "Megaliths are large ancient stone structures often standing upright or arranged in circles with rough uneven surfaces and simple shapes." + ], + "microphone": [ + "A microphone is typically a slender device with a round or oval head on a stand or handheld body.", + "Microphones are typically slender with a grille or mesh head and often have a stand or cord unlike most other objects.", + "A microphone has a round mesh grille covering its top end to capture sound waves distinctly.", + "A microphone typically has a slender body with a rounded or mesh-covered top for sound capture and often a stand or base." + ], + "microwave oven": [ + "A microwave oven is a boxy appliance with a glass door, control panel, and often a turntable inside for even heating.", + "A microwave oven is a boxy kitchen appliance with a glass door, control panel, and often a turntable inside for heating food.", + "Microwave ovens have a square door with a window and control panel, unlike other kitchen appliances which vary in shape and features.", + "A microwave oven has a square door with a window, control panel, and handle, often mounted in a kitchen cabinet or countertop." + ], + "military uniform": [ + "Military uniforms have structured designs with badges and camouflage patterns distinguishing them from casual or formal civilian clothing.", + "Military uniforms are structured garments with distinct colors, insignia, and designs, often featuring camouflage, badges, and tailored fits for soldiers.", + "Military uniforms can be identified by their structured design, camouflage patterns, badges, and often include matching pants and jackets.", + "Military uniforms have distinct camouflage patterns, structured designs, badges, and often include headgear like berets or caps for easy recognition." + ], + "milk can": [ + "Milk cans are typically cylindrical with a handle, metallic finish, and a spout or lid for pouring or sealing.", + "A milk can typically has a cylindrical metal body with a handle and tight lid, unlike other containers which may vary in shape and material.", + "A milk can is a cylindrical metal container with a handle and a lid, often painted white or silver.", + "A milk can typically has a distinctive rounded body with a narrow neck and a hinged lid for pouring." + ], + "minibus": [ + "A minibus is a small boxy vehicle with multiple windows, seating rows, and sliding or hinged doors for passenger transport.", + "A minibus has a long rectangular body with multiple side windows for passenger seating and is smaller than a full-size bus.", + "A minibus is recognized by its elongated body, multiple side windows, and passenger seating capacity larger than a car but smaller than a full bus.", + "A minibus is a small passenger vehicle with a boxy shape, multiple windows, and seating for around ten to twenty people." + ], + "miniskirt": [ + "A miniskirt is a very short skirt ending well above the knees often made of lightweight fabric with a flared or straight cut.", + "A miniskirt is a short skirt ending well above the knees unlike longer skirts or dresses which extend below the knees.", + "A miniskirt is a short skirt typically ending well above the knees, often made of fabric and worn as fashionable clothing.", + "A miniskirt is recognized by its short length above the knees tight fit and often flared or pleated design on female clothing." + ], + "minivan": [ + "Minivans are boxy vehicles with sliding rear doors, large windows, and a tall roof for extra passenger and cargo space.", + "A minivan has a tall boxy shape with sliding rear doors and a spacious interior for passengers.", + "Minivans are boxy vehicles with sliding rear doors, high roofs, and spacious interiors designed for family transportation.", + "A minivan is a boxy vehicle with sliding doors, large windows, and a spacious interior designed for families." + ], + "missile": [ + "A missile is a long slender cylindrical object with fins and a pointed nose often seen flying or launching vertically.", + "Missiles are long, cylindrical, and often have fins or wings, unlike most objects which are more varied in shape and size.", + "A missile has a pointed nose cone and fins at the rear for aerodynamic stability.", + "Missiles are long slender tubes with fins or wings and pointed tips often seen flying or launching with a fiery exhaust trail." + ], + "mitten": [ + "Mittens are hand coverings with a single compartment for fingers and a separate one for the thumb, often made of thick warm material.", + "Mittens are small hand coverings with a single space for fingers, often made of wool or fabric, resembling thick stubby gloves.", + "Mittens have a single compartment for all fingers while gloves have individual slots for each finger.", + "Mittens are hand coverings with a single space for fingers and a separate thumb section, usually soft and often knitted or padded." + ], + "mixing bowl": [ + "A mixing bowl is typically round deep and wide with a smooth interior and often has a slight rim or pouring spout.", + "A mixing bowl has a wide shallow shape with a rounded bottom and high sides for easy stirring and mixing.", + "Mixing bowls are wide deep round containers with high curved sides and often a flat bottom for blending ingredients.", + "A mixing bowl is a deep round dish with a wide opening and often has a flat bottom for stability during food preparation." + ], + "mobile home": [ + "A mobile home is a rectangular, trailer-like structure with windows, a door, and often a small porch or steps.", + "A mobile home is a rectangular, elongated structure with windows, a door, and often a pitched roof, typically on wheels or a foundation.", + "Mobile homes are long rectangular structures with wheels, metal siding, and often have a trailer hitch at the front.", + "Mobile homes are long rectangular structures with wheels and a trailer hitch, resembling a small house on a chassis." + ], + "ford model t": [ + "The Ford Model T has a distinct boxy black body with large wheels and an open-top or enclosed cabin unlike most vehicles.", + "The Ford Model T is a classic black car with a boxy shape, large wheels, and a tall upright windshield.", + "The Ford Model T has a distinctive high square black body with large spoked wheels and a curved front hood.", + "The Ford Model T has a distinct boxy black body, large round headlights, and a tall narrow radiator grille." + ], + "modem": [ + "A modem is a small rectangular box with lights on the front and ports on the back for cables.", + "A modem is a small rectangular box with indicator lights and ports, unlike most household objects which lack these technical features.", + "A modem typically has multiple indicator lights and ports for cables on a small rectangular box.", + "A modem typically has a rectangular box shape with multiple ports, indicator lights, and antennas for wireless connectivity." + ], + "monastery": [ + "Monasteries are recognized by their large religious architecture with arched windows tall spires and often secluded peaceful surroundings.", + "A monastery is uniquely identified by its combination of religious architecture, secluded setting, and often a central courtyard or cloister.", + "Monasteries are large religious buildings with distinctive architectural features like domes, spires, and courtyards, unlike smaller or secular structures.", + "A monastery typically appears as a large stone or brick building with arches, towers, and religious symbols surrounded by peaceful gardens." + ], + "monitor": [ + "A monitor has a flat rectangular screen displaying images or text, distinguishing it from other objects.", + "A monitor has a flat rectangular screen with a bezel, often displaying images or text, and is typically placed on a desk or mounted.", + "Monitors are flat rectangular screens with thin bezels while other objects vary widely in shape size and material.", + "Monitors are flat rectangular screens with thin bezels often mounted on stands or attached to walls displaying images or videos." + ], + "moped": [ + "Mopeds have a small motorcycle-like frame with step-through design, small wheels, and often a visible engine or motor.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a compact engine between the wheels.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a small engine often under the seat.", + "Mopeds are small motorized bikes with step-through frames, small wheels, and often have a compact engine and minimal bodywork." + ], + "mortar and pestle": [ + "A mortar is a bowl and a pestle is a heavy club-shaped tool used together for grinding or crushing substances.", + "A mortar is a bowl and a pestle is a club-shaped tool used together for grinding or crushing substances.", + "A mortar is a sturdy bowl and a pestle is a heavy club-shaped tool used together to grind or crush substances.", + "A mortar and pestle is a bowl with a heavy club-like tool, unlike other kitchen items which are usually flat or have handles." + ], + "graduation cap": [ + "A graduation cap has a flat square top with a tassel hanging from the center and is typically worn with a gown.", + "A graduation cap has a flat square top and a tassel, unlike most hats which are rounded or lack a tassel.", + "A graduation cap is a flat square board with a tassel on top, usually black and worn on the head.", + "A graduation cap is a flat square board with a tassel attached to a center button on a skullcap." + ], + "mosque": [ + "Mosques can be identified by their domes minarets and large prayer halls often with intricate designs and arched entrances.", + "A mosque typically has domes minarets and large open prayer halls unlike other buildings which lack these distinct Islamic architectural features.", + "Mosques are recognized by their domes minarets and large prayer halls often with intricate geometric patterns and arched doorways.", + "A mosque typically has domes minarets and large open prayer halls often decorated with intricate geometric patterns and calligraphy." + ], + "mosquito net": [ + "A mosquito net is a fine, lightweight, often white or translucent mesh fabric hung loosely around beds or windows to block insects.", + "Mosquito nets are lightweight, finely woven, and often white or translucent, designed to drape over beds or windows for insect protection.", + "Mosquito nets are lightweight finely woven mesh fabrics typically hung above beds to protect against insects with a delicate see-through texture.", + "A mosquito net is a fine mesh fabric draped over beds or windows to keep insects out while allowing air flow." + ], + "vespa": [ + "Vespas have a distinctive sleek curved body, small wheels, and a prominent front shield with a single headlight.", + "A vespa is a small sleek motor scooter with a rounded body step through frame and often bright colors.", + "Vespas are small scooters with a sleek curved body, rounded front shield, and often bright colors or chrome details.", + "The unique visual cue of a vespa is its distinctive curved body shape with a narrow waist and bold striped coloration." + ], + "mountain bike": [ + "Mountain bikes have wide knobby tires a sturdy frame flat handlebars and a suspension system for rough terrain.", + "Mountain bikes have a sturdy frame, wide knobby tires, and suspension systems for rough terrain unlike smoother road bikes or motorcycles.", + "Mountain bikes have rugged frames, wide knobby tires, flat handlebars, and suspension systems for off-road terrain.", + "Mountain bikes have wide knobby tires and a sturdy frame designed for rough off-road terrain." + ], + "tent": [ + "A tent is a portable shelter made of fabric or similar material stretched over a frame, often used for camping outdoors.", + "A tent is a portable shelter made of fabric or similar material stretched over poles and secured to the ground with ropes.", + "Tents are typically made of fabric with poles and have a distinctive triangular or dome shape for shelter outdoors.", + "Tents have a triangular or dome shape with fabric stretched over a frame and often have zippered openings for entry." + ], + "computer mouse": [ + "A computer mouse is a small handheld device with buttons and a scroll wheel, often shaped like an oval with a cord or wireless.", + "A computer mouse has a distinctive elongated body with a scroll wheel between two buttons and a cord or wireless sensor underneath.", + "A computer mouse is small, handheld, typically has buttons and a scroll wheel, and connects via wire or wireless dongle.", + "A computer mouse has a small oblong shape with buttons, a scroll wheel, and a cord or wireless receiver for easy identification." + ], + "mousetrap": [ + "A mousetrap is a small wooden or plastic device with a spring-loaded bar designed to catch and kill mice.", + "A mousetrap is a small rectangular device with a spring-loaded metal bar and a bait holder, often made of wood or plastic.", + "A mousetrap typically has a spring-loaded metal bar and a small wooden or plastic base, unlike most household objects.", + "A mousetrap typically has a spring-loaded metal bar, a bait trigger, and a wooden or plastic base to catch mice." + ], + "moving van": [ + "A moving van is a large rectangular truck with a boxy shape, often white or plain-colored, used for transporting furniture and household goods.", + "A moving van typically has large bold lettering and branding on its sides for identification and advertising purposes.", + "Moving vans are large boxy vehicles with plain colors and often have company logos or advertisements on their sides.", + "A moving van is a large rectangular truck often painted white or with company logos and has a tall enclosed cargo area." + ], + "muzzle": [ + "A muzzle is a strap or cage covering an animal's snout while similar objects like masks or guards serve different purposes or cover other areas.", + "A muzzle is a protruding mouth and nose area of an animal, often covered in fur or leather, with visible nostrils and straps.", + "A muzzle is a protruding part of an animal's face covering the mouth and nose often made of leather or metal straps.", + "A muzzle is a strap or cage fitted over an animal's snout to prevent biting or eating, resembling a snug mesh or leather cover." + ], + "metal nail": [ + "A metal nail is a slender, straight, pointed object with a smooth or ridged shaft and a flat or rounded head.", + "A metal nail is a small slender shiny object with a smooth cylindrical shaft and a flat or slightly rounded head.", + "A metal nail has a slender pointed tip and a smooth cylindrical shaft with a flat head.", + "Metal nails are slender, straight, and shiny with a pointed tip and smooth or ridged surface, unlike bulkier or irregularly shaped objects." + ], + "neck brace": [ + "A neck brace is a rigid medical collar that supports the head and limits neck movement for injury recovery or spinal stability.", + "A neck brace is a rigid or padded support device worn around the neck to immobilize and protect it from movement.", + "A neck brace is a rigid or padded support worn around the neck, unlike other objects which are not designed for neck support.", + "A rigid orthopedic device worn around the neck to support and immobilize the head and spine." + ], + "necklace": [ + "A necklace is a slender decorative chain or string of beads, gems, or pearls worn around the neck.", + "A necklace is a decorative chain or string of beads gems or metal worn around the neck often shiny and delicate.", + "A necklace is a decorative chain or string of beads, gems, or metal worn around the neck for adornment.", + "A necklace is a flexible decorative chain worn around the neck, unlike rigid or non-wearable items like pendants or collars." + ], + "baby pacifier": [ + "A baby pacifier is a small nipple-shaped object with a shield and handle, usually made of soft silicone or rubber.", + "A baby pacifier is a small nipple-shaped object with a shield and handle, often made of soft silicone or rubber.", + "A baby pacifier has a nipple-shaped teat, a shield to prevent swallowing, and often a ring or handle for easy gripping.", + "A baby pacifier has a small nipple-shaped mouthpiece attached to a flat shield often with a handle or ring." + ], + "notebook computer": [ + "A notebook computer is a thin flat rectangular device with a screen and keyboard, unlike bulkier or differently shaped electronics and objects.", + "A notebook computer is a thin, flat, rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is a thin rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is recognized by its thin rectangular shape, hinged screen, keyboard, and compact portable design." + ], + "obelisk": [ + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like point at the top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, often standing alone or as a monument.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, unlike most other objects." + ], + "oboe": [ + "The oboe is a slender wooden wind instrument with metal keys, distinguished by its conical bore and double reed mouthpiece.", + "An oboe is a slender wooden wind instrument with a conical bore, metal keys, and a flared bell at the bottom.", + "An oboe is a slender wooden wind instrument with a long black body, silver keys, and a double reed at the top.", + "The oboe has a long black wooden body with silver keys and a distinct double reed at the top." + ], + "ocarina": [ + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often shaped like an egg or sweet potato.", + "An ocarina is a small handheld wind instrument with an oval or round body and finger holes unlike larger or differently shaped instruments.", + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often made of clay or ceramic.", + "The ocarina is recognized by its small egg-shaped body with finger holes and a mouthpiece for blowing." + ], + "odometer": [ + "An odometer is a small rectangular device with a digital or mechanical display showing mileage numbers inside a vehicle dashboard.", + "An odometer is a small digital or mechanical display in a vehicle dashboard showing mileage unlike larger or non-numeric objects.", + "An odometer has a numeric display showing mileage, often with rotating digits or a digital screen, set within a vehicle dashboard.", + "Odometers are small rectangular displays with numbers showing mileage often found on a vehicle's dashboard near the steering wheel." + ], + "oil filter": [ + "An oil filter is a cylindrical metal can with a ridged surface and a threaded hole on one end.", + "An oil filter is typically a cylindrical metal can with a textured surface and a threaded hole on one end.", + "Oil filters are cylindrical with threaded ends, often metal, and have a ridged or textured surface for grip and a central hole.", + "An oil filter is typically cylindrical, metal, and smaller than most car parts, with a ridged or smooth surface and threaded ends." + ], + "pipe organ": [ + "A pipe organ has tall vertical pipes arranged in rows, unlike most objects which are compact or irregularly shaped.", + "A pipe organ is a large musical instrument with rows of vertical pipes, often found in churches and concert halls.", + "A pipe organ is identified by its large size, multiple vertical pipes of varying heights, and a keyboard console at the base.", + "A pipe organ has tall vertical pipes arranged in rows, often with intricate designs and a large keyboard console at the base." + ], + "oscilloscope": [ + "An oscilloscope is a rectangular electronic device with a screen, knobs, and buttons, resembling a small boxy monitor with control panels.", + "An oscilloscope has a rectangular screen with grid lines, control knobs, and input ports on a flat or slightly angled panel.", + "Oscilloscopes have a rectangular screen with grid lines displaying waveform graphs and multiple knobs or buttons for control settings.", + "An oscilloscope has a rectangular screen with grid lines and multiple knobs and buttons for controlling electronic signal displays." + ], + "overskirt": [ + "An overskirt is a decorative outer skirt worn over another skirt, often layered and flowing for added volume or style.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or sheer, extending slightly shorter or longer than the underlayer.", + "An overskirt is a decorative outer skirt layered over another skirt, often shorter and more ornate than regular skirts.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or flared, adding volume and contrasting fabric." + ], + "bullock cart": [ + "A bullock cart is a wooden cart with two large wheels pulled by oxen, typically used for transporting goods or people.", + "A bullock cart has a wooden or metal frame with two large wheels pulled by oxen, often carrying loads or people.", + "A bullock cart is a wooden cart with two large wheels pulled by oxen, often with a flat or curved platform for carrying loads.", + "A bullock cart has a wooden frame with large wheels pulled by oxen, unlike vehicles with engines or smaller animal-drawn carts." + ], + "oxygen mask": [ + "An oxygen mask is a clear or translucent plastic cup covering the nose and mouth with elastic straps around the head.", + "An oxygen mask is a clear plastic cup covering the nose and mouth with elastic straps to secure it around the head.", + "Oxygen masks have a clear plastic cup shape with elastic straps unlike most objects which lack these specific features.", + "An oxygen mask has a clear plastic cup shape with elastic straps and a tube for delivering oxygen to the face." + ], + "product packet / packaging": [ + "Product packaging typically has uniform shapes, logos, labels, and bright colors designed to attract attention and protect contents.", + "Product packaging typically appears as boxes, bags, or containers with labels, logos, and designs to hold and protect items for sale.", + "Look for rectangular shapes with labels logos or barcodes often made of cardboard plastic or shiny materials.", + "Product packaging stands out with logos barcodes brand names colorful designs and uniform shapes for easy identification on shelves." + ], + "paddle": [ + "A paddle is a long flat tool with a handle used for rowing or stirring, typically narrow and often made of wood or plastic.", + "A paddle is a long flat tool with a broad end, often tapered, used for stirring or moving through water.", + "Paddles are long, flat, and often have a handle at one end, unlike other objects which vary more in shape and size.", + "A paddle is long flat and often tapered with a handle used for propelling or steering boats through water." + ], + "paddle wheel": [ + "A paddle wheel has large flat blades arranged evenly around a central hub, often seen on boats or in water.", + "The paddle wheel has large flat blades arranged radially around a central hub for pushing water.", + "A paddle wheel is a large circular frame with flat blades around its rim used to propel boats through water.", + "A paddle wheel has large flat blades arranged radially around a central hub, often seen on boats or watercraft for propulsion." + ], + "padlock": [ + "A padlock is a small metal device with a U-shaped bar that snaps into a solid body to secure things.", + "Padlocks are small metal devices with a U-shaped bar that swings open when unlocked and snaps shut when locked.", + "Padlocks are small metal devices with a shackle that opens with a key or combination unlike most objects which lack these features.", + "A padlock has a small metal body with a U-shaped shackle that opens when unlocked and secures when closed." + ], + "paintbrush": [ + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end often appearing stiff or slightly fanned out.", + "A paintbrush has bristles on one end and a long handle, unlike most objects which lack bristles and vary in shape." + ], + "pajamas": [ + "Pajamas are loose, soft clothing typically with long sleeves and pants, often in simple patterns or solid colors.", + "Pajamas are loose, comfortable clothing typically made of soft fabric, often featuring pants and a matching top, designed for sleeping.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns or stripes, typically worn for sleep or lounging.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns like stripes or prints, typically worn for sleep." + ], + "palace": [ + "Palaces are large grand buildings with ornate designs, while other objects vary widely in size shape and simplicity.", + "Palaces are recognized by grand architectural designs, large ornate facades, towering domes, intricate details, and expansive surrounding gardens or courtyards.", + "Palaces are large, grand buildings with ornate designs, tall columns, domes, and expansive facades often surrounded by gardens or walls.", + "Palaces are uniquely distinguished by their grand architectural designs featuring ornate details and expansive structures often surrounded by landscaped gardens." + ], + "pan flute": [ + "The pan flute has multiple vertical tubes of varying lengths bound together unlike most instruments which are solid or have strings.", + "A pan flute is a set of vertical tubes of varying lengths bound together side by side often made from bamboo or wood.", + "The pan flute has multiple vertical pipes of varying lengths bound together in a curved or straight row producing distinct sound.", + "The pan flute is a row of hollow tubes of varying lengths bound together horizontally, resembling a set of vertical pipes." + ], + "paper towel": [ + "A paper towel is a thin, rectangular sheet of absorbent paper, often white or patterned, usually found in rolls or folded stacks.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface designed for absorbing liquids.", + "Paper towels are thin, rectangular, and often perforated with a soft, slightly textured surface, usually white or patterned.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface for absorbing liquids." + ], + "parachute": [ + "A parachute is a large, lightweight canopy with strings, used to slow descent, typically made of fabric and shaped like an umbrella.", + "A parachute is a large, lightweight canopy with strings, often brightly colored, used to slow descent through the air.", + "A parachute is a large, lightweight fabric canopy with strings, used for slowing descent, unlike compact or rigid objects.", + "Parachutes have a large, round canopy with suspension lines and a harness, often seen open in midair during descent." + ], + "parallel bars": [ + "Parallel bars are long horizontal metal bars mounted on vertical supports, distinct from single bars or gym equipment like rings or beams.", + "Parallel bars are two horizontal rails of equal length spaced apart, typically used in gymnastics for exercises and routines.", + "Parallel bars have two long horizontal bars of equal length positioned parallel to each other at a fixed distance apart.", + "Parallel bars are long horizontal metal rails supported by vertical stands, used in gymnastics for exercises and routines." + ], + "park bench": [ + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces for resting.", + "A park bench is a long wooden or metal seat with a backrest, often found outdoors in public spaces.", + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces.", + "A park bench is a long outdoor seat with a backrest and armrests, typically made of wood or metal, placed in public spaces." + ], + "parking meter": [ + "Parking meters have a tall narrow body with a coin slot, display screen, and often a metal pole or post for mounting.", + "Parking meters are small metal boxes with a coin slot, display screen, and often a pole or post for mounting.", + "A parking meter is a small upright metal box with a coin slot, display screen, and timer, often mounted on a pole.", + "Parking meters are small metal boxes with a coin slot and display screen mounted on poles near streets for parking payment." + ], + "railroad car": [ + "A railroad car is a long rectangular vehicle with wheels designed to run on tracks typically used for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels designed to run on tracks often connected in a series for transporting goods or passengers.", + "Railroad cars have long rectangular bodies with multiple wheels aligned in pairs on tracks for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels, often connected in series, used for transporting goods or passengers on tracks." + ], + "patio": [ + "A patio is an outdoor paved area with furniture or plants often adjacent to a house and designed for relaxation or dining.", + "A patio is an outdoor space with paved flooring, often featuring furniture and surrounded by gardens or walls.", + "Patios are flat outdoor spaces with furniture or plants, often made of stone or wood, connected to a house or building.", + "Patios are flat outdoor surfaces made of stone or concrete, often with furniture, unlike grassy lawns or enclosed indoor spaces." + ], + "payphone": [ + "A payphone is a standalone booth or wall-mounted unit with a keypad, handset, and coin slot, unlike mobile phones or other communication devices.", + "A payphone is a tall metal box with a coin slot, keypad, and a handset attached by a coiled cord.", + "A payphone has a coin slot, handset on a cord, keypad, and is mounted on a stand or wall in public spaces.", + "A payphone has a distinctive handset attached to a metal box with a keypad and coin slot." + ], + "pedestal": [ + "A pedestal is a flat-topped stand or base that supports other objects, often decorative and taller than typical stands.", + "A pedestal is a raised base supporting an object, often decorative, with a simple sturdy shape contrasting the item it holds.", + "A pedestal is a sturdy base with a flat top, often plain or slightly decorated, supporting statues or other displayed objects.", + "A pedestal is a sturdy base or support that elevates and displays objects like statues vases or trophies often decorative and simple." + ], + "pencil case": [ + "A pencil case is a small rectangular pouch often made of fabric or plastic with a zipper to hold writing tools.", + "A pencil case is a small container usually rectangular or cylindrical with a zipper or snap closure to hold writing tools.", + "A pencil case is a small rectangular pouch with a zipper or snap closure designed to hold pens pencils and other stationery items.", + "A pencil case is typically a small rectangular pouch with a zipper or snap closure often made of fabric plastic or leather." + ], + "pencil sharpener": [ + "A pencil sharpener is a small handheld or mounted device with a blade or mechanism to sharpen pencils to a fine point.", + "A pencil sharpener is typically small with a blade hole for pencils and a container for shavings often made of metal or plastic.", + "A pencil sharpener has a small blade inside a cylindrical or rectangular body with a hole to insert and rotate the pencil.", + "A pencil sharpener has a small, cylindrical hole designed specifically to hold and sharpen pencil tips." + ], + "perfume": [ + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside, unlike most everyday objects.", + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside showing through clear glass.", + "Perfume typically appears as small elegant glass bottles with decorative caps and often a spray nozzle.", + "Perfume bottles are small often decorative glass containers with spray nozzles or stoppers and colorful liquid inside." + ], + "Petri dish": [ + "A Petri dish is a shallow, clear, round glass or plastic dish with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic container with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic dish with a lid, unlike most objects which are solid and opaque.", + "A Petri dish is a shallow transparent cylindrical lidded container used for culturing cells or bacteria in labs." + ], + "photocopier": [ + "Photocopiers are rectangular machines with a flat glass surface, paper trays, and control panels often found in offices.", + "A photocopier is a large rectangular machine with a flat glass top for scanning and paper trays on the side.", + "A photocopier is a large boxy machine with a flat glass surface for scanning and paper trays, unlike smaller simpler office devices.", + "A photocopier is a large boxy machine with a flat glass top for scanning and paper trays on the side." + ], + "plectrum": [ + "A plectrum is a small flat tool, usually triangular, made of plastic or metal, used to pluck or strum stringed instruments.", + "A plectrum is small flat and triangular with a pointed tip used to pluck strings on musical instruments like guitars.", + "A plectrum is a small flat tool with a pointed tip, unlike similar objects which may be larger or differently shaped.", + "A plectrum is small flat and often triangular with smooth edges made of plastic metal or other materials for picking strings." + ], + "Pickelhaube": [ + "The Pickelhaube has a distinctive pointed metal spike on top, unlike other helmets which are smooth or rounded.", + "The Pickelhaube has a distinctive pointed metal spike on top of its helmet.", + "A Pickelhaube is a spiked helmet with a rounded metal top and a prominent front spike, typically made of leather or metal.", + "A Pickelhaube is a spiked helmet with a round metal base, a tall front spike, and often has a chin strap and decorative elements." + ], + "picket fence": [ + "A picket fence is a white wooden fence with evenly spaced vertical slats and a horizontal top and bottom rail.", + "A picket fence is a short wooden fence with evenly spaced vertical boards and a horizontal rail, often painted white.", + "A picket fence has evenly spaced vertical wooden slats with pointed tops attached to horizontal rails.", + "A picket fence has evenly spaced vertical wooden slats attached to horizontal rails, unlike solid walls or chain-link fences." + ], + "pickup truck": [ + "Pickup trucks have a cab with seats and an open cargo bed at the back for hauling items.", + "A pickup truck is a rugged vehicle with an open cargo bed, four wheels, and a cab for passengers.", + "Pickup trucks have a cab and an open cargo bed, unlike cars or SUVs which are fully enclosed or vans which have a boxy shape.", + "Pickup trucks have a cab with seats and an open flatbed at the back for hauling items." + ], + "pier": [ + "A pier is a long wooden or concrete structure extending over water, supported by pillars, used for walking, docking boats, or fishing.", + "A pier is a long wooden or metal structure extending into water supported by pillars with boats or people nearby.", + "A pier is a long narrow structure extending into water supported by pillars unlike docks or wharves which are usually solid and shore-connected.", + "Piers are long structures extending over water supported by pillars often with railings and used for docking boats or walking." + ], + "piggy bank": [ + "Piggy banks are typically shaped like pigs with a coin slot, while other objects vary widely in form and function.", + "Piggy banks are typically small, shaped like pigs with a coin slot on top, often made of ceramic or plastic.", + "A piggy bank is a small, often round container shaped like a pig with a slot for saving coins.", + "A piggy bank is typically a small hollow pig-shaped container with a slot on top for inserting coins." + ], + "pill bottle": [ + "Pill bottles are small cylindrical containers with labels and child-resistant caps often in white or orange plastic.", + "Pill bottles are small cylindrical containers with labels and childproof caps unlike similar objects which vary in shape size and lid type.", + "A pill bottle is a small cylindrical container with a child-resistant cap, often made of translucent plastic and labeled with medication information.", + "Pill bottles are typically small cylindrical containers with childproof caps and often have white labels and orange translucent plastic." + ], + "pillow": [ + "Pillows are soft rectangular objects with fabric covers often found on beds or couches for comfort and support.", + "Pillows are soft rectangular cushions often with fabric covers while other objects vary in shape texture and material like hard or angular surfaces.", + "A pillow is a soft rectangular cushion often with fabric covering used for head or body support during rest or sleep.", + "A pillow is a soft rectangular or square object with a smooth fabric cover often slightly puffed and used for head support." + ], + "ping-pong ball": [ + "Ping-pong balls are small, white, lightweight, and perfectly round with a smooth matte surface unlike most other balls.", + "A ping-pong ball is small, white or orange, smooth, lightweight, and perfectly round with a matte finish.", + "A ping-pong ball is small, lightweight, white or orange, smooth, matte, and spherical with a distinctive hollow sound when bounced.", + "A ping-pong ball is small, white or orange, lightweight, spherical, and has a smooth, matte surface with a slightly shiny finish." + ], + "pinwheel": [ + "Pinwheels are colorful spinning toys with radiating blades or petals attached to a central stick or rod.", + "A pinwheel is a colorful toy with spinning blades attached to a stick that twirls in the wind.", + "Pinwheels are recognized by their colorful spinning blades attached to a central axis on a stick, often with a wind-catching design.", + "Pinwheels have colorful spinning blades attached to a stick while similar objects lack these moving parts or bright designs." + ], + "pirate ship": [ + "Pirate ships have tall masts, sails, wooden hulls, and often feature flags or cannons unlike modern boats or other vessels.", + "A pirate ship is a large wooden sailing vessel with tall masts, sails, and often features a Jolly Roger flag.", + "Pirate ships have tall masts with multiple sails, wooden hulls, Jolly Roger flags, and often cannons visible on the sides.", + "A pirate ship is uniquely identified by its black flag with a white skull and crossbones." + ], + "drink pitcher": [ + "A drink pitcher typically has a handle, a spout, and a tall narrow body designed for pouring liquids easily.", + "A drink pitcher is a tall container with a handle and spout, usually made of glass or plastic for pouring liquids.", + "A drink pitcher typically has a handle, a spout, and a tall cylindrical shape for pouring liquids easily.", + "A drink pitcher typically has a prominent spout for pouring liquids and a handle for easy gripping." + ], + "block plane": [ + "A block plane is a small hand tool with a low-angle blade for smoothing wood, distinguished by its compact size and flat sole.", + "A block plane is smaller with a low-angle blade and simple design compared to larger more complex woodworking planes.", + "A block plane is a small hand tool with a flat metal body and a sharp blade for smoothing wood surfaces.", + "A block plane has a compact metal body with a low-angle blade set close to the front edge." + ], + "planetarium": [ + "A planetarium is a dome-shaped building or room with a projector displaying stars and celestial objects on the ceiling.", + "A planetarium is a domed building or room with a projector displaying stars and planets unlike regular buildings or natural objects.", + "A planetarium typically appears as a large dome-shaped building with a round or hemispherical roof and often has a futuristic or scientific design.", + "A planetarium is recognized by its domed ceiling displaying projected stars and celestial scenes in a dark, theater-like setting." + ], + "plastic bag": [ + "A plastic bag is a thin, lightweight, often crinkly and translucent or colored container made of flexible plastic material.", + "Plastic bags are thin, crinkly, often transparent or brightly colored, and have handles or folds for carrying items.", + "Plastic bags are thin, crinkly, and often transparent or semi-transparent, unlike most objects which are solid and rigid.", + "A plastic bag is thin, crinkly, often transparent or colored, and has a smooth, shiny surface with folds or wrinkles." + ], + "plate rack": [ + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright and separate unlike most other storage objects.", + "A plate rack is a shelf or stand with slots or hooks designed to hold plates upright for drying or storage.", + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright for drying or storage.", + "A plate rack is a flat open shelf or stand with slots or pegs to hold plates vertically for drying or storage." + ], + "farm plow": [ + "A farm plow is a large metal blade with handles or wheels used to turn over soil in fields for planting crops.", + "A farm plow has a large curved metal blade and handles, distinct from smaller or differently shaped farming tools and equipment.", + "A farm plow has a large curved metal blade designed to turn over soil for planting crops.", + "A farm plow has a large curved metal blade attached to a frame, often pulled by animals or tractors, used for tilling soil." + ], + "plunger": [ + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger typically has a rubber suction cup on a straight wooden or plastic handle used for clearing clogged drains.", + "A plunger has a rubber suction cup on a straight handle, unlike most tools which have varied shapes and materials." + ], + "Polaroid camera": [ + "A Polaroid camera is a rectangular instant film device with a lens viewfinder and a slot for ejecting printed photos.", + "A Polaroid camera is a rectangular box with a lens, viewfinder, and a slot for instant photos to eject from.", + "Polaroid cameras are square-shaped with a lens on top and a slot for instant photos, unlike most cameras or everyday objects.", + "Polaroid cameras have a square body with a lens on one side and a slot for instant photos to eject on the other." + ], + "pole": [ + "A pole is a long, slender, vertical or horizontal object with a uniform shape and minimal width compared to its length.", + "A pole is a long, slender, vertical or horizontal rod, often made of wood or metal, used for support or structure.", + "A pole is a long, slender, vertical structure often made of wood or metal, used for support or marking boundaries.", + "Poles are long, thin, and straight, often vertical, while other objects vary more in shape, size, and orientation." + ], + "police van": [ + "Police vans are large boxy vehicles with emergency lights, sirens, and often marked with police logos or colors.", + "Police vans are boxy with barred windows and often have official markings or lights distinguishing them from regular vehicles.", + "A police van is a large, boxy vehicle with emergency lights, often painted in bold colors like white or black with police markings.", + "Police vans are typically boxy with emergency lights, bold lettering, and a sturdy design often in black, white, or blue colors." + ], + "poncho": [ + "A poncho is a sleeveless garment with an opening for the head, made from a single piece of fabric or waterproof material.", + "A poncho is a loose outer garment with a simple opening for the head and no sleeves, often made from wool or waterproof fabric.", + "A poncho is a large, flat piece of fabric with a head hole, while similar items like cloaks or capes often have sleeves or fasteners.", + "A poncho is uniquely identified by its large flat fabric with a central head opening and no sleeves." + ], + "pool table": [ + "A pool table has a flat rectangular surface with pockets and felt covering, distinct from most furniture or sports equipment.", + "A pool table is a large rectangular surface covered with green felt and surrounded by cushioned edges with pockets in the corners.", + "A pool table is a large rectangular surface with a green felt covering, six pockets, and wooden or metal rails around the edges.", + "A pool table has a distinctive green felt surface with six pockets and marked rails for playing billiards." + ], + "soda bottle": [ + "Soda bottles are typically tall cylindrical containers with narrow necks and labels, often made of clear or colored plastic.", + "A soda bottle is a tall cylindrical container with a narrow neck, often made of plastic or glass, and usually has a label.", + "Soda bottles are typically tall cylindrical containers with colorful labels and a narrow neck often capped with a twist-off or pop-top lid.", + "Soda bottles are typically tall cylindrical containers with narrow necks often labeled with colorful branding and sometimes have ridges or curves." + ], + "plant pot": [ + "Plant pots are typically round or square containers with open tops, made of clay or plastic, often holding soil and plants.", + "A plant pot is typically a small container with an open top, often made of clay or plastic, holding soil and plants.", + "Plant pots are typically round or square containers with open tops and drainage holes, often made of clay or plastic.", + "A plant pot is a small container, usually round or square, made of clay, plastic, or ceramic, designed to hold plants." + ], + "potter's wheel": [ + "A potter's wheel is a flat spinning disk on a stand with a foot pedal or motor for shaping clay.", + "A potter's wheel is a flat spinning disk on a stand, unlike stationary tools or decorative items that don't rotate.", + "A potter's wheel is a flat rotating disk on a stand used for shaping clay with hands or tools.", + "A potter's wheel has a spinning flat disk where clay is shaped by hand while rotating." + ], + "power drill": [ + "A power drill has a rotating chuck at the front that holds interchangeable bits for drilling or driving screws.", + "A power drill has a cylindrical body, trigger handle, rotating chuck, and often a cord or battery pack for operation.", + "A power drill is a handheld tool with a trigger grip, cylindrical body, and rotating bit for drilling holes or driving screws.", + "Power drills have a distinct pistol grip with a rotating chuck and trigger, unlike other tools which lack these combined features." + ], + "prayer rug": [ + "Prayer rugs have intricate patterns, a central arch or niche design, and are often rectangular with rich colors and detailed borders.", + "A prayer rug is a small rectangular fabric with intricate designs often featuring geometric patterns or mosque motifs.", + "Prayer rugs are rectangular with intricate patterns often featuring a niche design pointing towards the direction of prayer.", + "A prayer rug has a distinct arched or mihrab design pointing towards Mecca for proper orientation during prayer." + ], + "printer": [ + "Printers are typically boxy with flat surfaces, buttons, and paper trays, unlike other objects which vary more in shape and function.", + "A printer is a rectangular box with buttons, a paper tray, and often a display screen for printing documents and images.", + "Printers are boxy with flat tops, often have paper trays, display panels, and multiple buttons or slots for paper and ink.", + "Printers are typically rectangular with a flat top, control panel, paper tray, and often have a sleek design with brand logos." + ], + "prison": [ + "Prisons are large secure buildings with fences and barred windows unlike ordinary structures which are open and less fortified.", + "Prisons have high walls with barbed wire, guard towers, barred windows, and uniform rows of cell blocks inside secure perimeters.", + "Prisons are identified by high walls with barbed wire, guard towers, barred windows, and large secure gates.", + "Prisons typically resemble large fortified buildings with high walls, barred windows, and heavy gates surrounded by fences or barbed wire." + ], + "projector": [ + "A projector is recognized by its lens light source and rectangular shape used to display images or videos on surfaces.", + "A projector is typically a rectangular box with a lens on one side and vents for cooling on the sides or back.", + "A projector is a rectangular device with a lens on one side and often has vents and input ports on the back.", + "Projectors are rectangular with a lens at the front while similar objects like TVs or monitors lack lenses and are often flatter." + ], + "hockey puck": [ + "A hockey puck is a flat, hard, black rubber disc, much smaller and simpler than most other sports equipment or round objects.", + "A hockey puck is a small, flat, hard black disc with smooth edges and uniform thickness used in ice hockey games.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a slightly raised rim.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a uniform circular shape." + ], + "punching bag": [ + "A punching bag is a cylindrical or teardrop-shaped object typically made of leather or vinyl, hanging from a chain or rope.", + "A punching bag is a tall cylindrical or teardrop-shaped object usually made of leather or vinyl hanging from a chain or rope.", + "A punching bag is typically cylindrical, hangs from a chain or rope, and is made of leather or synthetic material.", + "A punching bag is a cylindrical or teardrop-shaped object hung vertically, often made of leather or vinyl, used for striking in training." + ], + "purse": [ + "A purse is a small bag with a handle or strap used to carry personal items like money and makeup.", + "Purses are small handheld bags with straps or handles used to carry personal items like money and makeup.", + "A purse is typically a small soft bag with a handle or strap, often made of leather or fabric, designed to hold personal items.", + "A purse is a small stylish bag with straps, often made of leather or fabric, used to carry personal items like money and makeup." + ], + "quill": [ + "A quill is a long feather with a sharpened tip, unlike pens or pencils which are solid and lack natural feathery textures.", + "A quill has a long feather with a sharpened tip used for writing, distinct from other objects.", + "A quill is a long feather with a sharp pointed tip and hollow shaft, often used for writing with ink.", + "A quill is a slender writing tool with a pointed feather at one end and an ink-dipped tip at the other." + ], + "quilt": [ + "Quilts are thick fabric layers stitched in decorative patterns unlike flat sheets or plain blankets.", + "A quilt is a thick, soft bed cover made of stitched fabric layers, often with colorful patterns or patchwork designs.", + "A quilt is a layered textile with stitching patterns often featuring colorful fabric squares or rectangles sewn together.", + "Quilts have distinct patchwork patterns, stitching lines, and layered fabric textures that set them apart from other textiles and household items." + ], + "race car": [ + "Race cars are sleek low vehicles with bold colors sponsor logos large rear wings and aerodynamic shapes for speed.", + "Race cars are sleek, low-profile vehicles with bold colors and sponsor logos, designed for speed and aerodynamics unlike everyday cars.", + "Race cars have sleek aerodynamic designs vibrant colors sponsor logos and large rear wings for high speed performance.", + "Race cars have sleek aerodynamic bodies with large spoilers and bold racing decals for high-speed performance and branding." + ], + "racket": [ + "A racket has a long handle with a flat oval or round head strung with a tight mesh or netting.", + "Rackets have a long handle and a flat oval or round frame with strings or mesh stretched across it.", + "A racket typically has a long handle and an oval frame with a tightly strung netting for hitting balls in sports.", + "Rackets have a long handle with a circular or oval frame strung with a tight mesh netting for hitting balls." + ], + "radiator": [ + "A radiator is typically a flat metal panel with vertical or horizontal fins used for heating and often mounted on walls.", + "A radiator is a metal device with fins or coils, often wall-mounted, used for heating rooms by circulating hot water or steam.", + "Radiators have a series of evenly spaced metal fins or tubes designed for heat dissipation.", + "A radiator is a metal panel with fins or pipes, often wall-mounted, while similar objects lack these distinct heat-dissipating features." + ], + "radio": [ + "Radios have dials, buttons, speakers, and often a rectangular shape with a display screen or frequency tuner.", + "Radios typically have dials, buttons, and speakers, while other objects vary widely in shape, size, and functional features.", + "A radio typically has a rectangular body with buttons dials and an antenna often displaying a speaker grille or digital screen.", + "Radios typically have dials, buttons, speakers, and an antenna, often housed in a rectangular or boxy shape with a display screen." + ], + "radio telescope": [ + "A radio telescope is a large dish or array of dishes often mounted on a movable structure for capturing radio waves from space.", + "Radio telescopes have large dish-shaped reflectors and support structures, unlike smaller or differently shaped objects like satellites or antennas.", + "A radio telescope has a large parabolic dish for capturing radio waves from space.", + "A radio telescope is a large dish-shaped structure with a central receiver used to detect radio waves from space." + ], + "rain barrel": [ + "A rain barrel is a cylindrical container with a spout or hose attachment, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a cylindrical container with a spigot, often made of plastic or wood, designed to collect and store rainwater.", + "A rain barrel is typically a cylindrical container with a spout, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a large cylindrical container, often made of plastic or wood, used to collect and store rainwater." + ], + "recreational vehicle": [ + "Recreational vehicles are large, boxy, mobile homes with wheels, often featuring windows, a door, and sometimes an awning or external storage.", + "Recreational vehicles are large, boxy, and often have windows, awnings, and external features like ladders or storage compartments.", + "Recreational vehicles are large boxy vehicles with living spaces, often featuring windows, a door, and sometimes an awning or external storage.", + "A recreational vehicle is a large motorhome or camper van designed for travel and living, resembling a bus or truck." + ], + "fishing casting reel": [ + "A fishing casting reel is a cylindrical device with a handle, spool, and metal frame, often mounted on a fishing rod.", + "A fishing casting reel has a spool release button and a handle on the same side for controlled line casting.", + "A fishing casting reel has a cylindrical body with a handle, spool, and line guide, often made of metal and plastic.", + "A fishing casting reel has a cylindrical spool with a handle and line guide, unlike similar objects which lack these specific fishing features." + ], + "reflex camera": [ + "Reflex cameras have a distinctive bulky body with a lens protruding from the front and a viewfinder on top.", + "A reflex camera has a large lens, a viewfinder hump on top, and a rectangular body with buttons and dials.", + "Reflex cameras have a distinctive large lens, viewfinder hump, and body shape with buttons and dials for manual controls.", + "A reflex camera has a rectangular body with a lens in front, a viewfinder on top, and buttons on the back and sides." + ], + "refrigerator": [ + "A refrigerator is a large rectangular appliance with a door, handles, and often a freezer compartment, usually white or stainless steel.", + "A refrigerator is a large rectangular appliance with a door handle and often has a freezer compartment at the top or bottom.", + "A refrigerator is a large rectangular appliance with a door handle and often a shiny metallic or white surface.", + "Refrigerators are large boxy appliances with doors and handles, often white or metallic, while other objects vary in shape and function." + ], + "remote control": [ + "A remote control is a small rectangular device with buttons used to operate electronic gadgets from a distance.", + "Remote controls are small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Look for small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Remote controls are small rectangular devices with buttons, often featuring a smooth surface and sometimes an infrared sensor at the top." + ], + "restaurant": [ + "Restaurants are recognized by dining tables chairs menus food items and often a counter or open kitchen area.", + "A restaurant typically has tables, chairs, menus, food, and decor in a welcoming space for dining and socializing.", + "Restaurants can be identified by their signs, seating areas, menus, tables, counters, and often large windows or open entrances.", + "Restaurants are buildings with signs tables chairs and often large windows unlike smaller objects like furniture or utensils." + ], + "revolver": [ + "A revolver is a handgun with a rotating cylinder that holds bullets, featuring a short barrel and a distinctive trigger and grip.", + "A revolver has a rotating cylinder holding bullets and a short barrel, unlike most guns which have a straight magazine.", + "A revolver has a rotating cylinder, short barrel, and a handgun shape with a trigger and grip.", + "A revolver has a rotating cylinder with multiple chambers that hold bullets visible from the side." + ], + "rifle": [ + "A rifle is a long narrow firearm with a barrel stock and trigger designed for precision shooting and hunting.", + "Rifles are long slender guns with a barrel stock and trigger distinct from shorter handguns or non firearm objects.", + "A rifle has a long narrow barrel with a trigger and stock designed for precise aiming and firing bullets.", + "Rifles have a long narrow barrel with a trigger grip and often a stock for shoulder support distinguishing them from other objects." + ], + "rocking chair": [ + "A rocking chair has a curved base that allows it to rock back and forth, typically with armrests and a high back.", + "A rocking chair has curved legs that allow it to rock back and forth and often has a high back and armrests.", + "Rocking chairs have curved legs that allow them to rock back and forth unlike regular chairs with straight legs.", + "Rocking chairs have curved legs that allow back-and-forth movement and often have armrests and a high backrest for comfort." + ], + "rotisserie": [ + "A rotisserie is a cooking device with a rotating spit for evenly roasting meat over a heat source.", + "Rotisserie is identified by a rotating spit with skewered meat cooking evenly over a heat source often seen in delis or kitchens.", + "Rotisseries are recognized by their rotating skewer, evenly cooked meat, heat source below, and often a vertical or horizontal metal frame.", + "Rotisserie has rotating skewers with evenly spaced food items while other objects lack this specific rotating and spaced arrangement." + ], + "eraser": [ + "An eraser is typically a small rectangular or cylindrical rubber object used to remove pencil marks by rubbing.", + "An eraser is typically small rectangular or cylindrical with a smooth or slightly rough surface often in light colors like white or pink.", + "Erasers are typically small, rectangular, and made of soft rubber or foam, unlike hard or rigid objects like stones or metal tools.", + "Erasers are small, rectangular or oval, often white or pink, with a smooth or slightly rough texture and sometimes angled edges." + ], + "rugby ball": [ + "A rugby ball is oval with pointed ends while most other balls are round or spherical in shape.", + "A rugby ball is an elongated oval shape with pointed ends and a textured surface for better grip.", + "A rugby ball has a distinctive elongated oval shape with pointed ends unlike any other spherical or round sports ball.", + "A rugby ball is oval-shaped with pointed ends and typically has a textured surface with white stitching and a distinctive pattern." + ], + "ruler measuring stick": [ + "A ruler measuring stick is a long thin flat tool with marked lines for measurement unlike bulkier or unmarked objects.", + "A ruler measuring stick is a long thin flat object with marked lines and numbers for measuring length.", + "A ruler measuring stick has evenly spaced markings and a straight, flat shape for precise length measurement.", + "A ruler measuring stick is long, thin, flat, and has evenly spaced markings or numbers along its length for measuring." + ], + "sneaker": [ + "Sneakers have laces, rubber soles, and a fabric or leather upper with a distinctive sporty or casual design.", + "A sneaker is a lightweight shoe with a flexible rubber sole and soft fabric or leather upper, often used for sports or casual wear.", + "Sneakers are soft, flexible footwear with rubber soles and fabric or leather uppers, unlike hard-soled shoes or non-footwear items.", + "Sneakers are identified by their rubber soles, laces, and soft fabric or leather uppers designed for comfort and athletic use." + ], + "safe": [ + "A safe typically has a sturdy metal box shape with a thick door and a visible locking mechanism or keypad.", + "Safes are typically boxy with metal surfaces and keypads or dials unlike most objects which vary widely in shape and material.", + "A safe typically has a thick metal door with a prominent locking mechanism and handle.", + "A safe is a sturdy metal box with a thick door and a lock to securely store valuables and important items." + ], + "safety pin": [ + "A safety pin has a coiled spring, sharp point, and clasp to secure the pointed end, making it easily recognizable.", + "A safety pin is a small metal pin with a clasp that bends back to cover the sharp point and secure items.", + "A safety pin has a simple metal loop with a clasp to secure the pointed end unlike other pins or fasteners.", + "A safety pin is a small metal pin with a clasp that bends back to cover the point and secure it closed." + ], + "salt shaker": [ + "A salt shaker is a small container with a perforated top designed to sprinkle salt usually made of glass or plastic.", + "A salt shaker is small with a perforated top for sprinkling salt and often has a cylindrical or rounded shape.", + "A salt shaker typically has a few small holes on top for sprinkling salt evenly.", + "A salt shaker typically has small holes for sprinkling salt and is often smaller than similar containers like pepper shakers or sugar bowls." + ], + "sandal": [ + "Sandals have open designs with straps and lack full coverage compared to shoes or boots which enclose the foot more completely.", + "Shoes with open toes and straps or a flat sole, often lightweight and worn in warm weather.", + "A sandal is an open-toed footwear with straps or a sole held to the foot by thin bands or a simple design.", + "Sandal features include open toe straps a flat sole and often a Y-shaped design between the toes for secure foot placement." + ], + "sarong": [ + "A sarong is a long, wrapped cloth skirt, while similar items like skirts or kilts are typically pre-stitched and structured.", + "A sarong is a long colorful fabric wrapped around the waist, resembling a skirt or loose dress, often with vibrant patterns.", + "A sarong is a long, wrapped skirt or cloth with vibrant patterns, often worn around the waist and flowing loosely to the ankles.", + "A sarong is recognized by its long rectangular fabric often wrapped around the waist with vibrant patterns and flowing drapes." + ], + "saxophone": [ + "A saxophone is a shiny brass wind instrument with a curved body, keys, and a flared bell.", + "A saxophone has a curved metallic body with keys and a flared bell, unlike most instruments which are straight or differently shaped.", + "A saxophone is a shiny curved metal instrument with a flared bell and many buttons along its long tube.", + "The saxophone has a distinctive curved neck with a flared bell and multiple keys along its conical brass body." + ], + "scabbard": [ + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade.", + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade securely.", + "A scabbard is a long narrow sheath typically made of leather or metal used to hold and protect a sword or knife.", + "A scabbard is a long narrow sheath for a blade, often leather or metal, while similar objects may lack the shape or material specifics." + ], + "weighing scale": [ + "Weighing scales have a flat platform, display screen, and often numerical indicators for measuring weight clearly.", + "Weighing scales have flat platforms or trays with displays showing weight unlike other objects which vary in shape and function.", + "A weighing scale typically has a flat platform or tray and a display screen showing numbers for weight measurement.", + "A weighing scale is a flat platform or dish with a display showing weight often found in kitchens or bathrooms." + ], + "school bus": [ + "A school bus is a large yellow vehicle with windows, black trim, and a long rectangular shape for transporting children.", + "A school bus is recognized by its long yellow body black stripes large windows and stop sign arm for student transportation.", + "A school bus is a large yellow vehicle with black stripes, multiple windows, and often has stop signs and flashing lights.", + "A school bus is bright yellow with black stripes and large windows, while other vehicles vary in color and design." + ], + "schooner": [ + "A schooner is a sailing ship with two or more masts, typically with fore-and-aft sails and a sleek, elongated hull.", + "A schooner is a sailing ship with two or more masts and fore-and-aft sails, distinct from other boats by its tall sleek design.", + "A schooner is a sleek sailing ship with two or more masts and tall sails, often seen gliding on water.", + "A schooner has two or more tall masts with fore-and-aft sails and a sleek elongated hull designed for sailing." + ], + "scoreboard": [ + "Scoreboards display numbers or text on a flat panel often with bright colors and large fonts unlike most objects which are three-dimensional.", + "Scoreboards have large bold numbers bright colors and clear segmented displays for easy visibility and quick recognition from a distance.", + "Scoreboards are large flat panels with grids of numbers or letters often brightly lit and mounted high in stadiums or arenas.", + "Scoreboards uniquely display changing numbers or letters to show live game scores or information in a large visible format." + ], + "CRT monitor": [ + "A CRT monitor is a bulky boxy screen with a curved glass front and deep back, often black or beige.", + "CRT monitors are bulky with a large curved glass screen and thick backs unlike slim flat modern screens or other household objects.", + "CRT monitors have a bulky, boxy shape with a curved glass screen and a thick back containing the cathode ray tube.", + "A CRT monitor has a large, boxy shape with a curved or flat glass screen and a thick backside containing the cathode ray tube." + ], + "screw": [ + "Screws have a threaded cylindrical metal body with a slotted or shaped head for turning with a tool.", + "A screw is a small metal rod with a helical thread and a slotted or recessed head for turning with a tool.", + "Screws have a threaded cylindrical shaft and a slotted or shaped head, unlike nails which are smooth and bolts which have nuts.", + "Screws can be identified by their threaded cylindrical shaft and slotted or Phillips head for turning with a tool." + ], + "screwdriver": [ + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle often made of plastic or rubber.", + "A screwdriver has a long narrow metal shaft and a handle often with a distinct shape for gripping and turning screws.", + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle, unlike most tools or objects.", + "A screwdriver has a long narrow metal shaft ending in a flat or cross-shaped tip for turning screws." + ], + "seat belt": [ + "Seat belts are long flat straps with buckles while other objects vary widely in shape texture and function.", + "Seat belts are long flat straps with a buckle, usually made of fabric or metal, found in vehicles across seats.", + "A seat belt is a long narrow strap with a buckle designed to secure passengers in vehicles for safety.", + "Seat belts are long flat straps with buckles typically seen across car seats securing passengers with distinctive metal clasps." + ], + "sewing machine": [ + "A sewing machine is a compact device with a needle, thread spool, and foot pedal, often housed in a metal or plastic frame.", + "A sewing machine has a flat base, a raised arm with a needle, thread spool, and often a foot pedal or electric controls.", + "A sewing machine has a needle, thread spool, and foot pedal, while other objects lack these specific parts for stitching fabric.", + "A sewing machine has a needle, thread spool, foot pedal, and flat base with a distinctive mechanical arm for stitching fabric." + ], + "shield": [ + "A shield is typically a flat, broad piece of armor held for protection, often round or rectangular with a handle.", + "A shield is typically flat, broad, and often round or rectangular with a handle or straps on the back.", + "Shields are flat, often round or rectangular, with handles on the back and sometimes decorative patterns or emblems on the front.", + "Shields are typically flat, round or rectangular, with handles and often feature bold patterns or emblems for easy identification." + ], + "shoe store": [ + "A shoe store displays multiple shoes neatly arranged on shelves or racks unlike single shoes or other unrelated items.", + "A shoe store is a retail space filled with shelves and displays of various footwear styles arranged neatly for customers to browse.", + "A shoe store typically has rows of shelves displaying various shoes and often a seating area for trying them on.", + "Rows of shoes displayed on shelves or racks for customers to browse and try on." + ], + "shoji screen / room divider": [ + "Shoji screens and room dividers are typically lightweight, translucent, and framed with thin wooden grids, unlike solid or opaque furniture pieces.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, often rectangular and divided into grid-like sections.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, used as a room divider or sliding door.", + "Shoji screens are lightweight sliding panels with wooden frames and translucent paper panels arranged in a grid pattern." + ], + "shopping basket": [ + "A shopping basket is a handheld container with an open top and handle, typically made of woven materials or plastic.", + "Shopping baskets are typically open, lightweight containers with handles, made of wire or plastic, designed for carrying items while shopping.", + "A shopping basket is typically a lightweight, open container with handles, often made of wire or plastic, used for carrying items while shopping.", + "A shopping basket has an open-top woven or plastic structure designed for carrying items while shopping." + ], + "shopping cart": [ + "A shopping cart is a metal or plastic basket on wheels with a handle for holding items while shopping in stores.", + "Shopping carts have a large wire basket on wheels with a handlebar for pushing, unlike most objects which are solid and stationary.", + "Shopping carts have a metal wire frame with a large basket, four wheels, and a handlebar for pushing.", + "A shopping cart has a metal wire frame, four wheels, a large basket, and a handlebar for pushing." + ], + "shovel": [ + "A shovel has a long handle and a flat, broad blade used for digging or moving loose materials like dirt or snow.", + "A shovel has a long handle and a flat wide blade often curved or pointed for digging or lifting materials.", + "A shovel has a long handle and a flat or curved metal blade used for digging or moving loose materials.", + "A shovel has a long handle with a wide flat metal blade at the end for digging or lifting materials." + ], + "shower cap": [ + "A shower cap is a flexible, waterproof head covering with an elastic edge, unlike hats or scarves which are not waterproof or elastic.", + "A shower cap is a flexible waterproof dome that fits snugly over the head with elastic edges to keep hair dry.", + "A shower cap is a flexible waterproof hat that covers the hair, often made of plastic or elastic material, typically round and smooth.", + "A shower cap has a stretchable elastic rim designed to tightly cover hair and keep it dry during showers." + ], + "shower curtain": [ + "A shower curtain is a waterproof fabric or plastic sheet hanging from a rod to enclose a bathtub or shower area.", + "Shower curtains are typically made of waterproof fabric or plastic and hang from a rod to enclose a bathtub or shower area.", + "A shower curtain is a large rectangular fabric or plastic sheet hanging from a rod, often with colorful patterns or waterproof material.", + "Shower curtains are typically rectangular, made of waterproof fabric or plastic, often have patterns or prints, and hang from rings on a rod." + ], + "ski": [ + "Skis are long, narrow, flat, and often have curved tips and bindings, unlike most objects which are shorter or differently shaped.", + "Skis are long narrow flat boards with upturned tips, typically paired and used for gliding over snow.", + "Skis are long narrow flat boards with pointed tips and bindings, usually seen in snowy environments or with winter sports gear.", + "Skis are long narrow flat boards with upturned tips, often seen with bindings and used on snow for gliding." + ], + "balaclava ski mask": [ + "A balaclava ski mask is a tight-fitting cloth covering the head, neck, and often the face, leaving only the eyes or eyes and mouth exposed.", + "A balaclava ski mask fully covers the head and neck with openings for eyes and mouth, unlike hats or scarves.", + "A balaclava ski mask is a tight-fitting cloth headgear covering the head and face with openings for eyes and mouth.", + "A balaclava ski mask covers the entire head except for the eyes and sometimes the mouth, distinguishing it from other headwear." + ], + "sleeping bag": [ + "Sleeping bags are long padded fabric tubes with zippers designed to fully enclose a person lying down for warmth and comfort.", + "Sleeping bags are long padded fabric tubes with zippers and hoods designed for sleeping often in bright colors or patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper designed for sleeping outdoors often in bright colors or camouflage patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper often in bright colors and designed for one person to sleep inside." + ], + "slide rule": [ + "A slide rule is a long narrow ruler with sliding middle part marked with logarithmic scales for calculations.", + "A slide rule is a long narrow ruler with sliding middle parts marked with logarithmic scales for calculations.", + "A slide rule has numbered logarithmic scales on sliding parts while similar objects lack these precise measurement markings.", + "A slide rule has multiple parallel logarithmic scales that slide against each other for calculations." + ], + "sliding door": [ + "Sliding doors have a long horizontal panel that moves along a track without swinging open like traditional doors.", + "Sliding doors have long flat panels that move horizontally on tracks unlike hinged doors which swing open vertically.", + "Sliding doors are flat rectangular panels with handles that slide horizontally along a track embedded in the wall or frame.", + "A sliding door is a large rectangular panel that moves horizontally on a track to open and close an entrance." + ], + "slot machine": [ + "Slot machines have flashy lights, reels, and buttons, unlike most objects which lack these gaming-specific features.", + "A slot machine is a colorful upright device with reels, buttons, and a lever, often found in casinos.", + "Slot machines have colorful reels with symbols, a lever or button panel, and a payout tray at the bottom.", + "A slot machine has a colorful cabinet with reels, buttons, a lever, and often flashing lights and a coin slot." + ], + "snorkel": [ + "A snorkel is a curved tube with a mouthpiece used for breathing while swimming face down in water.", + "A snorkel is recognized by its curved tube with a mouthpiece for breathing underwater while keeping the face submerged.", + "A snorkel is a curved tube with a mouthpiece for breathing while swimming unlike other objects which lack this specific design.", + "A snorkel is a curved tube with a mouthpiece, often bright colored, used for breathing underwater while keeping the face submerged." + ], + "snowmobile": [ + "A snowmobile is a motorized vehicle with skis at the front and a continuous track at the back for traveling over snow.", + "A snowmobile has a long tracked rear tread and front skis for moving over snow.", + "Snowmobiles have a long narrow body with skis at the front and a continuous track at the back for snow travel.", + "Snowmobiles have a long seat, handlebars, skis at the front, and a track at the back for moving over snow." + ], + "snowplow": [ + "A snowplow has a large metal blade in front and is typically mounted on a truck or tractor for clearing snow.", + "A snowplow is a large vehicle with a wide metal blade in front used to clear snow from roads and pathways.", + "A snowplow has a large angled blade in front and often a cab with bright lights for clearing snow from roads.", + "A large angled blade at the front for pushing snow is unique to a snowplow." + ], + "soap dispenser": [ + "A soap dispenser is typically a plastic or glass bottle with a pump or lever to release liquid soap.", + "A soap dispenser is typically a bottle with a pump or push top often labeled and placed near sinks.", + "A soap dispenser has a pump or push mechanism on top of a bottle often labeled and designed for liquid soap.", + "Soap dispensers typically have a pump or nozzle for dispensing liquid and a container often shaped like a bottle or cylinder." + ], + "soccer ball": [ + "Soccer balls have distinctive black and white pentagon patterns while other balls are usually solid or have different designs.", + "A soccer ball is typically round with black and white pentagon or hexagon patches arranged in a distinctive pattern.", + "A soccer ball has a distinctive pattern of black and white pentagons and hexagons arranged in a spherical shape.", + "A soccer ball has a distinctive black and white hexagonal pattern with a spherical shape and uniform size." + ], + "sock": [ + "A sock is a soft, stretchy tube-shaped fabric item worn on feet, often colorful or patterned, and smaller than pants or shirts.", + "Socks are typically soft, stretchy, tubular, and often have patterns or colors, unlike rigid or solid-shaped objects.", + "Socks are soft, stretchy, tubular fabric items typically worn on feet, often with colorful patterns or plain designs.", + "Socks are typically soft, stretchy, tubular fabrics worn on feet, often with patterns, ribbing, or heel and toe shaping." + ], + "solar thermal collector": [ + "Solar thermal collectors are flat or curved panels with dark surfaces, often glass-covered, and connected to pipes for fluid circulation.", + "Solar thermal collectors are flat or tubular panels with reflective surfaces and pipes, unlike typical roofs or boxes which lack these features.", + "Solar thermal collectors have flat or curved reflective panels with tubes or channels designed to absorb and transfer heat from sunlight.", + "A solar thermal collector typically appears as a flat rectangular panel or curved tube array often mounted on rooftops or open ground." + ], + "sombrero": [ + "A sombrero has a wide brim and high pointed crown, unlike hats with smaller brims or flat tops.", + "A sombrero is a wide-brimmed, high-crowned hat often colorful and decorated commonly associated with Mexican culture.", + "A sombrero is recognized by its wide brim high pointed crown and often colorful decorative patterns.", + "A sombrero has an exceptionally wide brim that is much larger than typical hats." + ], + "soup bowl": [ + "Soup bowls are typically round deep dishes with high sides designed to hold liquid meals unlike plates or shallow bowls.", + "A soup bowl is typically round, deep, and has a wide opening with a flat base, often made of ceramic or porcelain.", + "A soup bowl is typically round deep and wide with a rim often made of ceramic or porcelain and holds liquid food.", + "A soup bowl is a deep round dish with a wide opening and often has handles or a rim for holding hot liquids." + ], + "keyboard space bar": [ + "The keyboard space bar is a long narrow rectangular key typically wider than other keys on a keyboard.", + "The keyboard space bar is a long flat rectangular key while other objects vary widely in shape size and texture.", + "The keyboard space bar is a long rectangular key typically wider than other keys and often blank or labeled with space.", + "The keyboard space bar is a long rectangular key often centered at the bottom with a smooth flat surface." + ], + "space heater": [ + "A space heater is a small, boxy or cylindrical device with vents or coils, often on wheels or with a handle.", + "Space heaters are compact, often boxy or cylindrical, with visible heating elements or grilles and sometimes a fan for air circulation.", + "Space heaters are typically compact, boxy, or cylindrical with visible heating elements or grilles, unlike most household objects.", + "Space heaters are typically small boxy or cylindrical devices with grilles or vents and often have visible heating elements or coils inside." + ], + "space shuttle": [ + "A space shuttle is a large winged spacecraft with a cylindrical body, rocket boosters, and external fuel tanks.", + "A space shuttle has wings and a large cylindrical fuel tank unlike rockets which are long and thin without wings.", + "A space shuttle has a white body with black wing edges and a large external fuel tank with two solid rocket boosters.", + "The space shuttle has a distinct winged shape with attached external fuel tanks and solid rocket boosters during launch." + ], + "spatula": [ + "A spatula is a flat thin utensil with a broad blade and a handle used for lifting or flipping food.", + "A spatula has a flat wide blade and a long handle unlike spoons or knives which are curved or sharp.", + "A spatula has a flat wide blade with a long handle used for lifting or flipping food making it easily recognizable.", + "A spatula has a flat wide blade with a thin edge for lifting or flipping food." + ], + "motorboat": [ + "A motorboat is a sleek, streamlined watercraft with an engine, propeller, and often a pointed bow for cutting through waves.", + "Motorboats have a streamlined hull, an outboard or inboard motor, and often a windshield or seating area on a small watercraft.", + "Motorboats are long with a pointed front, an open or enclosed cabin, and an outboard motor at the rear.", + "Motorboats are sleek, elongated watercraft with an engine at the rear, often featuring a pointed bow and seating area." + ], + "spider web": [ + "A spider web is a delicate, intricate network of thin, silky threads woven in circular or irregular patterns to catch prey.", + "Spider webs are thin silky threads forming delicate tangled or symmetrical patterns often found in corners or between objects.", + "Spider webs have delicate, intricate, silky threads forming patterns, unlike solid or dense objects like leaves or rocks.", + "Spider webs have delicate, symmetrical, silky threads forming intricate radial or spiral patterns often seen between surfaces like trees or corners." + ], + "spindle": [ + "A spindle is a slender, rod-shaped tool typically tapered at both ends, unlike broader or irregularly shaped objects.", + "A spindle is a slender rod or pin that tapers at both ends, often used for spinning or holding materials.", + "A spindle is a slender rod with tapered ends used for spinning or holding materials like thread or yarn.", + "A spindle is a slender rod with tapered ends often used for spinning or holding thread or yarn." + ], + "sports car": [ + "Sports cars are recognized by their low sleek body aggressive styling two doors and powerful engine appearance.", + "Sports cars are low sleek fast vehicles with two doors and a sporty design unlike larger or boxier everyday cars.", + "Sports cars are low sleek fast vehicles with two doors aggressive styling and often bright colors or shiny paint.", + "A sports car is a sleek low fast two-door vehicle with a powerful engine and aerodynamic design often brightly colored." + ], + "spotlight": [ + "A spotlight is a bright focused light beam while other objects are solid and reflect or emit light differently.", + "A spotlight is recognized by its intense focused beam of light often used to highlight or illuminate specific areas or objects.", + "A spotlight is a bright focused beam of light often seen in theaters or events highlighting specific areas or objects.", + "A spotlight is a bright, focused light with a distinct beam often mounted on a stand or attached to ceilings." + ], + "stage": [ + "A stage is typically flat, elevated, and open with clear boundaries designed for visibility and performance from all angles.", + "A stage is a raised platform used for performances, often with curtains, lights, and open space for actors or presenters.", + "A stage is uniquely defined by its elevated flat platform designed for performances and presentations.", + "Look for raised platforms with curtains, lights, and seating arranged to face the performance area." + ], + "steam locomotive": [ + "A steam locomotive is a large, heavy metal train with a smokestack, wheels, and a boiler, often black and emitting steam.", + "Steam locomotives have a large smokestack, cylindrical boiler, wheels with connecting rods, and often a tender car carrying coal or water.", + "Steam locomotives have a large boiler, smokestack, and wheels connected by rods, unlike most vehicles or machinery.", + "A steam locomotive has a large cylindrical boiler, smokestack, wheels with connecting rods, and often a tender car carrying coal or water." + ], + "through arch bridge": [ + "A through arch bridge has a distinctive arch above the deck that supports the structure while allowing clearance underneath.", + "An through arch bridge has a distinctive arch above the deck with supports connecting it to the roadway below.", + "A through arch bridge has a distinctive design where the deck passes between two large arch supports rising above it.", + "A through arch bridge has a distinctive design with the arch above the deck and supporting cables or beams visible below it." + ], + "steel drum": [ + "Steel drums have a shiny cylindrical metal body with a concave top and distinct ridges for tuning.", + "A steel drum is a shiny cylindrical metal container with a flat top and bottom, often ribbed or grooved for strength.", + "A steel drum has a shiny metallic cylindrical shape with concave surfaces, unlike most objects which are flat or irregularly shaped.", + "A steel drum is a large cylindrical metal container with a flat top and bottom, often used for storing liquids or goods." + ], + "stethoscope": [ + "A stethoscope has a long flexible tube with a chest piece and earpieces unlike most medical tools which are rigid or handheld.", + "A stethoscope is a long flexible tube with earpieces and a small round chest piece used for listening to body sounds.", + "A stethoscope has a distinctive Y-shaped tube with dual earpieces and a chest piece for listening to body sounds.", + "A stethoscope has a Y-shaped tube with earpieces and a round chest piece often made of metal and rubber." + ], + "scarf": [ + "Scarves are long and flexible fabric pieces worn around the neck unlike other clothing items which are rigid or shaped differently.", + "A scarf is a long flexible fabric piece often wrapped around the neck with patterns or fringes for warmth or style.", + "A scarf is a long, narrow piece of fabric worn around the neck for warmth or style, often colorful or patterned.", + "Scarves are long, thin, flexible fabrics often wrapped around the neck or head with varied patterns and textures." + ], + "stone wall": [ + "A stone wall is identified by its rough, uneven surface made of stacked or fitted natural stones, often gray or brown.", + "Stone walls are rough, uneven, and made of stacked or cemented rocks unlike smoother, uniform materials like wood or brick walls.", + "A stone wall is a sturdy, rough-textured barrier made of stacked or mortared rocks, often gray or brown, commonly found in rural or historic settings.", + "Stone walls are recognized by their rough uneven texture stacked rock layers and natural earthy colors." + ], + "stopwatch": [ + "A stopwatch is a small handheld device with a digital or analog display, buttons, and a strap for timing events precisely.", + "A stopwatch has a round face with buttons on top and a digital or analog display for timing unlike clocks or phones.", + "A stopwatch has a round face with numbered dials, buttons for timing functions, and often a wrist strap or stand.", + "A stopwatch has a round face with numbers, buttons on top, and a strap or stand for holding or propping it up." + ], + "stove": [ + "A stove has a flat cooking surface with burners or heating elements and control knobs or buttons for temperature adjustment.", + "A stove is a kitchen appliance with a flat cooking surface and burners or heating elements, often made of metal and glass.", + "A stove typically has a flat cooking surface with burners or heating elements and control knobs on the front or top.", + "A stove has burners or heating elements on a flat surface specifically designed for cooking food." + ], + "strainer": [ + "A strainer has a mesh or perforated surface with small holes for filtering liquids while keeping solids inside.", + "A strainer has a mesh or perforated surface to filter liquids, unlike solid bowls or spoons that lack holes.", + "A strainer has a mesh or perforated surface allowing liquids to pass while retaining solids inside.", + "A strainer has a mesh or perforated surface with holes to filter liquids while keeping solids inside, often with a handle." + ], + "tram": [ + "Trams are long rail vehicles with multiple connected carriages running on fixed tracks in urban areas.", + "Trams are long boxy vehicles with multiple windows running on fixed rails often seen in urban streets.", + "A tram is a rail vehicle that runs on city streets, resembling a bus but longer and connected to overhead electric wires.", + "Trams are long narrow vehicles with multiple connected sections running on fixed tracks unlike buses or cars." + ], + "stretcher": [ + "A stretcher has a long flat frame with handles and often fabric or straps for carrying injured or immobile people.", + "A stretcher is a long flat frame with handles used for carrying injured or sick people, resembling a portable bed.", + "A stretcher is a long flat frame with handles used for carrying people, unlike similar objects which are usually rigid or lack handles.", + "A stretcher is a long flat frame with handles used for carrying the sick or injured, typically made of canvas and metal poles." + ], + "couch": [ + "Couches are long padded seats with a backrest and often armrests designed for multiple people to sit on comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit on comfortably.", + "A couch is a long padded seat for multiple people with a backrest, unlike chairs or stools which are smaller and often lack padding." + ], + "stupa": [ + "A stupa is a dome-shaped Buddhist shrine with a spire, distinct from other objects by its religious and architectural design.", + "A stupa is a dome-shaped Buddhist shrine with a pointed top, often decorated and surrounded by intricate carvings or gates.", + "A stupa is a dome-shaped Buddhist shrine with a pointed spire often decorated with intricate carvings and surrounded by a fence.", + "A stupa is recognized by its dome-shaped structure often topped with a spire and surrounded by decorative gates or railings." + ], + "submarine": [ + "A submarine is long and tubular with a pointed front, smooth hull, and often has a conning tower or periscope on top.", + "Submarines are long cylindrical vessels with a conning tower and propellers, unlike most objects which have varied irregular shapes.", + "A submarine has a distinctive elongated cylindrical hull with a conning tower and often visible propellers or fins.", + "Submarines are long cylindrical vessels with a conning tower, smooth hull, and often visible propellers or fins underwater." + ], + "suit": [ + "A suit is a formal garment with a jacket and matching trousers or skirt, typically made of smooth, tailored fabric in solid colors.", + "A suit is a formal set of matching jacket and trousers or skirt made from fine fabric, often worn for professional or elegant occasions.", + "A suit is a formal outfit with matching jacket and trousers, often in dark colors, unlike casual or sporty clothing.", + "A suit is uniquely identified by its tailored jacket and matching trousers or skirt in formal fabric." + ], + "sundial": [ + "A sundial is a flat or curved surface with marked lines and a raised pointer that casts shadows to show time.", + "A sundial has a flat or curved surface with marked hours and a gnomon that casts a shadow to tell time.", + "A sundial has a flat dial with marked hours and a raised gnomon that casts a shadow to indicate time.", + "A sundial has a flat surface with marked hours and a raised gnomon that casts a shadow to show time." + ], + "sunglasses": [ + "Sunglasses are recognized by their dark tinted lenses and frames that cover the eyes and often the sides of the face.", + "Sunglasses are identified by their dark lenses, thin frames, and symmetrical shape often worn over the eyes.", + "Sunglasses are dark or tinted eyewear with two lenses and frames designed to protect eyes from sunlight.", + "Sunglasses have dark tinted lenses and frames designed to cover eyes while other objects lack these specific eye-covering features." + ], + "sunscreen": [ + "Sunscreen typically appears as a small tube or bottle with bright colors and labels mentioning SPF or sun protection.", + "Sunscreen often has a distinctive bright white or colored thick creamy texture in a tube or bottle with sun protection labels.", + "Sunscreen typically appears as small bottles or tubes with bright labels often found near beach or skincare products.", + "Sunscreen is recognized by its tube or bottle shape, bright colors, and labels with sun or SPF symbols." + ], + "suspension bridge": [ + "Suspension bridges have long spans with tall towers and cables hanging in curves supporting the roadway below.", + "Suspension bridges have long spans with tall towers and cables supporting the roadway below.", + "Suspension bridges have tall towers, long main cables, and a hanging deck, unlike other bridges or objects which lack these features.", + "Suspension bridges have long main spans hanging from vertical cables anchored to massive towers and supported by thick main cables." + ], + "mop": [ + "A mop has a long handle with absorbent strands or a sponge at the bottom unlike brooms or brushes which have stiff bristles.", + "A mop has a long handle with a bundle of absorbent strands or a sponge at the bottom for cleaning floors.", + "A mop has long strands or fibers attached to a handle designed for soaking up and wiping liquids.", + "A mop typically has a long handle with a bundle of absorbent strings or sponge at the bottom for cleaning floors." + ], + "sweatshirt": [ + "Sweatshirts are recognized by their soft fabric, long sleeves, ribbed cuffs, and often a hood or front pocket.", + "A sweatshirt is a soft, loose, long-sleeved pullover typically made of thick cotton fabric, often with a hood and ribbed cuffs.", + "Sweatshirts are typically soft, thick, and have a loose fit with long sleeves, often featuring a hood or a crewneck design.", + "A sweatshirt is a soft, thick, collarless pullover with long sleeves, often made of cotton and sometimes featuring a hood or front pocket." + ], + "swim trunks / shorts": [ + "Swim trunks are short quick-drying fabric garments with elastic waistbands often featuring bright colors or patterns.", + "Swim trunks are short loose-fitting quick-drying pants designed for swimming often in bright colors or patterns with elastic waistbands.", + "Swim trunks are lightweight quick-drying shorts with bright colors patterns elastic waistbands and often a mesh lining for swimming.", + "Swim trunks are lightweight quick-drying shorts with vibrant patterns and mesh linings designed for water activities unlike regular shorts." + ], + "swing": [ + "Look for a hanging or suspended part that moves freely back and forth or side to side when pushed or pulled.", + "A swing has a seat suspended by ropes or chains from a frame allowing back and forth motion.", + "A swing typically has a seat suspended by ropes or chains from a frame, allowing it to move back and forth freely.", + "A swing has a hanging seat suspended by ropes or chains that moves back and forth when pushed." + ], + "electrical switch": [ + "An electrical switch is a small rectangular device with a toggle or button, often mounted on walls to control power.", + "Electrical switches are small rectangular or square devices with buttons or toggles, often mounted on walls with visible screws.", + "Electrical switches are small rectangular devices with a toggle or button, often mounted on walls, featuring visible on-off markings or positions.", + "The unique visual cue for an electrical switch is a small rectangular plate with a toggle or rocker mechanism." + ], + "syringe": [ + "A syringe has a narrow tube with a plunger and needle, unlike most objects which are bulkier and lack these precise medical features.", + "A syringe is a slender tube with a plunger and a needle tip used for injecting or withdrawing fluids.", + "A syringe is a slender tube with a plunger and needle used for injecting or withdrawing fluids from the body.", + "A syringe has a hollow needle attached to a cylindrical tube with a plunger for injecting or withdrawing fluids." + ], + "table lamp": [ + "A table lamp is a small lighting fixture with a base, stem, and shade designed to sit on tables or desks.", + "A table lamp is a small light fixture with a base, stem, and shade, often placed on desks or bedside tables.", + "A table lamp has a base, a stem, and a shade designed to direct light upward or downward from a flat surface.", + "Table lamps have a base, a stem, and a shade, often with a bulb inside, making them distinct from other household objects." + ], + "tank": [ + "Tanks have long barrels, heavy armor, and treads unlike trucks or cars which have wheels and lighter frames.", + "A tank is a large armored military vehicle with tracks, a long gun barrel, and a heavy, boxy metal body.", + "A tank has a long gun barrel, armored tracks, a large rectangular body, and often a turret on top.", + "A tank is a large armored military vehicle with tracks, a rotating turret, and a long gun barrel for firing shells." + ], + "tape player": [ + "A tape player is a rectangular device with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player typically has a rectangular shape with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player has a rectangular shape with buttons, a cassette slot, and often a handle or speakers for easy recognition.", + "A tape player has a rectangular slot for inserting cassette tapes with visible reels inside." + ], + "teapot": [ + "A teapot is a small pot with a handle, spout, and lid, typically made of ceramic or metal, used for brewing tea.", + "A teapot has a rounded body, a spout, a handle, and a lid, distinguishing it from other containers like cups or pitchers.", + "A teapot has a rounded body, a spout for pouring, a handle for holding, and a lid on top.", + "Teapots typically have a spout handle and lid while similar objects like kettles or pitchers may lack one or more of these features." + ], + "teddy bear": [ + "A teddy bear is a soft, plush toy with a round body, small limbs, and a friendly face, often brown or pastel-colored.", + "Teddy bears have soft fuzzy fabric, round ears, stubby limbs, a plump body, and a friendly face with small eyes and nose.", + "Teddy bears are soft plush toys with round shapes, small ears, button eyes, and a friendly face resembling a bear.", + "Teddy bears are soft plush toys with round shapes and friendly faces, unlike hard or angular objects like furniture or tools." + ], + "television": [ + "A television is a rectangular screen with a thin frame, often mounted on a stand or wall, displaying moving images and sound.", + "A television is a flat rectangular screen with a thin frame often mounted on a stand or hung on a wall.", + "Televisions have flat rectangular screens with thin bezels and often a stand or wall mount unlike most other objects.", + "Televisions have a large rectangular screen with a thin frame often mounted on a stand or hung on a wall." + ], + "tennis ball": [ + "A tennis ball is bright yellow-green, fuzzy, and uniformly round with a visible seam, unlike most other balls.", + "A tennis ball has a bright yellow-green color with a fuzzy texture and distinctive white curved lines.", + "A tennis ball is bright yellow-green with a fuzzy texture and distinctive white curved lines forming a seam.", + "A tennis ball is bright yellow-green, fuzzy, small, round, and has a distinct white curved line seam." + ], + "thatched roof": [ + "A thatched roof has a rough, textured surface made of dried straw or reeds, unlike smoother or solid materials like tiles or metal.", + "Thatched roofs have a thick, rough texture with uneven, overlapping straw or reeds creating a distinctive natural and rustic appearance.", + "A thatched roof is a rustic, textured roof made of dried straw or reeds, often appearing golden and uneven compared to smoother modern roofs.", + "A thatched roof has a distinctive thick layered texture made of dry vegetation like straw or reeds tightly bundled together." + ], + "front curtain": [ + "Front curtains are typically made of fabric, hang vertically, and often cover windows or doorways unlike other objects which vary widely in material and purpose.", + "A front curtain is a fabric panel that hangs at the window's top edge, often decorative and used for privacy or light control.", + "Front curtains are long fabric panels that hang vertically often with pleats and are typically found framing windows or stages.", + "Look for a decorative fabric panel hanging at the top of a window often with folds and a gathered or pleated design." + ], + "thimble": [ + "A thimble is a small metal or plastic cap worn on the finger, unlike most objects which are larger and not finger-sized.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble has a small, deep cup shape with dimpled texture specifically designed to fit on a fingertip for sewing." + ], + "threshing machine": [ + "A threshing machine has rotating drums or beaters that separate grain from stalks, a feature distinct to agricultural processing equipment.", + "A threshing machine has a large, boxy frame with rotating drums or beaters to separate grain from stalks and often has a funnel-shaped intake.", + "A threshing machine is larger, has a complex mechanical structure with belts and gears, and often includes a conveyor or hopper.", + "A threshing machine is a large farm device with belts, wheels, and a hopper for separating grain from stalks." + ], + "throne": [ + "A throne is a large ornate chair often elevated with intricate designs symbolizing power and authority for royalty or leaders.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority or royalty.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority unlike simpler regular chairs.", + "A throne is recognized by its ornate high back, armrests, elevated seat, and regal decorations symbolizing authority and power." + ], + "tile roof": [ + "A tile roof is a sloped roof covered with overlapping curved or flat tiles, typically made of clay or concrete.", + "Tile roofs have overlapping rows of flat or curved clay or concrete pieces arranged in a distinctive repeating pattern.", + "Tile roofs have overlapping rows of flat rectangular tiles with visible edges and a slightly wavy or uniform pattern.", + "Tile roofs have overlapping curved or flat rectangular tiles arranged in rows creating a distinctive textured and layered surface pattern." + ], + "toaster": [ + "A toaster is a small rectangular kitchen appliance with slots on top to insert bread and a lever to lower it.", + "A toaster is a small boxy appliance with slots on top for bread and a lever to lower and raise the slices.", + "A toaster has a rectangular metal body with slots for bread and a lever to lower and raise slices for toasting.", + "A toaster is a small box with slots for bread and a lever, unlike other kitchen appliances which have different shapes and functions." + ], + "tobacco shop": [ + "Tobacco shops often display cigars, pipes, cigarette packs, and signage with tobacco brands in their windows or on shelves.", + "Tobacco shops are recognized by shelves of cigarette packs, cigars, rolling papers, and often a counter with a cash register.", + "Tobacco shops typically display cigarettes, cigars, and pipes in glass cases with branded logos and colorful packaging unlike other stores.", + "A tobacco shop typically features shelves of cigarettes, cigars, pipes, lighters, and often a counter with a cash register." + ], + "toilet seat": [ + "A toilet seat is an oval or round openable lid with a smooth surface and a hinge, typically found above a toilet bowl.", + "A toilet seat is typically oval or round, smooth, white or light-colored, and attached to a toilet bowl.", + "A toilet seat is a curved oval or round shape with a hinge, typically white or light-colored, designed to fit over a toilet bowl.", + "A toilet seat is a curved, often white or beige, oval or round ring attached to a toilet bowl for sitting." + ], + "torch": [ + "A torch is a handheld light source with a long narrow body and a bright flame or bulb at one end.", + "A torch is recognized by its elongated shape, flame or light source at one end, and often a handle or grip.", + "A torch is a handheld light source with a flame or bulb, while other objects vary widely in shape, function, and lack a light-emitting feature.", + "A torch is a handheld light source with a flame or bright bulb, often cylindrical and distinct among objects for its glowing tip." + ], + "totem pole": [ + "Totem poles are tall wooden carvings with stacked faces or figures, unlike shorter plain poles or single sculptures.", + "Totem poles are tall wooden carvings with stacked faces or figures, often brightly painted and featuring symbolic animal or human designs.", + "Totem poles are tall wooden carvings with stacked symbolic figures and faces often painted in bold colors.", + "A totem pole is a tall wooden carving with stacked animal and human figures, often painted in bright colors." + ], + "tow truck": [ + "Tow trucks have a large hook or winch on the back and often a sloped bed for lifting vehicles.", + "A tow truck is a large vehicle with a boom or flatbed used to lift and transport disabled or illegally parked cars.", + "A tow truck has a large metal boom or flatbed for lifting vehicles, unlike regular trucks which lack these towing features.", + "A tow truck has a large extended metal boom with a hook or winch at the end for lifting vehicles." + ], + "toy store": [ + "Toy stores are recognized by shelves filled with colorful toys, playful displays, and often a mix of stuffed animals and action figures.", + "Toy stores are filled with colorful shelves displaying various small playful items like dolls, games, and toys in a bright inviting setup.", + "A toy store is filled with colorful shelves displaying various toys like dolls, action figures, board games, and stuffed animals.", + "A toy store is colorful with shelves full of small bright toys like dolls cars and stuffed animals arranged neatly." + ], + "tractor": [ + "Tractors have large wheels, a heavy metal frame, and often a front loader or plow unlike most vehicles or machinery.", + "A tractor is a large, heavy vehicle with big rear wheels, a small front cabin, and often a hitch or plow attachment.", + "Tractors have large rugged wheels a distinct cab and often a front loader or rear hitch for heavy-duty farming tasks.", + "Tractors have large rear wheels, a small front cabin, and often a hitch or attachment at the back for farming equipment." + ], + "semi-trailer truck": [ + "A semi-trailer truck is a large vehicle with a tractor unit pulling a long detachable trailer for hauling freight.", + "A semi-trailer truck has a large boxy trailer attached to a powerful cab with multiple axles and no rear doors.", + "A semi-trailer truck has a large rectangular trailer attached to a cab, unlike smaller vehicles or single-unit trucks.", + "Semi-trailer trucks are recognized by their long rectangular trailers attached to a powerful cab with multiple axles and large wheels." + ], + "tray": [ + "A tray is a flat shallow container with raised edges used for carrying or holding items.", + "A tray is a flat shallow container with raised edges often rectangular or round used for carrying items.", + "A tray is a flat, shallow container with raised edges used to hold or carry items like food, dishes, or small objects.", + "A tray is typically flat with raised edges to hold items unlike plates or bowls which are deeper and cups which have handles." + ], + "trench coat": [ + "A trench coat is a long waterproof coat with a belt and deep pockets typically made from heavy fabric.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has shoulder straps and deep pockets.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has deep pockets and shoulder straps.", + "A trench coat is a long waterproof coat with a belt and deep pockets, unlike shorter or non-waterproof jackets and coats." + ], + "tricycle": [ + "A tricycle is a three-wheeled vehicle with a seat, handlebars, and pedals, typically smaller and simpler than a bicycle.", + "Tricycles have three wheels, a seat, and handlebars, distinguishing them from bicycles with two wheels or wagons without handlebars.", + "A tricycle has three wheels arranged in a stable triangular configuration unlike bicycles or other wheeled vehicles.", + "A tricycle has three wheels, a seat, handlebars, and pedals, often with a small frame and is larger than a toy but smaller than a car." + ], + "trimaran": [ + "A trimaran has three parallel hulls, unlike most boats which have one or two, making it wider and more stable in water.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls for stability and speed.", + "A trimaran has three distinct parallel hulls with a main central hull and two smaller outrigger hulls.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls on each side." + ], + "tripod": [ + "A tripod is a three-legged stand with a central mount, often used to support cameras or other equipment.", + "A tripod has three long legs extending from a central point, often with adjustable height and a mounting platform for cameras or equipment.", + "A tripod has three evenly spaced legs extending from a central point to provide stable support.", + "A tripod has three long legs and a central mount, unlike most objects which are solid or have different shapes and supports." + ], + "triumphal arch": [ + "A triumphal arch is a large freestanding stone monument with a curved or flat top, unlike buildings or bridges.", + "A triumphal arch is a large monumental structure with a curved or square top, often decorated with sculptures and inscriptions.", + "A triumphal arch is a large monumental structure with a curved or square top and often features intricate carvings and inscriptions.", + "A triumphal arch is recognized by its large arched structure, often decorated with columns and sculptures, standing as a monumental gateway." + ], + "trolleybus": [ + "Trolleybuses have dual overhead poles connecting to power lines unlike other vehicles.", + "A trolleybus looks like a bus but has two overhead poles connecting to electric wires for power unlike regular buses or trams.", + "A trolleybus looks like a large bus with overhead poles connecting to power lines for electricity.", + "A trolleybus looks like a large electric bus with overhead poles connecting to power lines for energy." + ], + "trombone": [ + "A trombone is a long brass instrument with a sliding tube and flared bell, distinct among objects for its shiny curved shape.", + "A trombone has a long slide and a flared bell, unlike most brass instruments which use valves and have fixed tubing lengths.", + "A trombone has a long sliding tube and a flared bell making it distinct from other brass instruments.", + "The trombone has a long sliding U-shaped tube that adjusts pitch by moving in and out." + ], + "hot tub": [ + "A hot tub is a large round or square water-filled tub with seats and jets often made of wood or acrylic.", + "A hot tub is a large, round or oval water-filled tub with seating, jets, and often a cover, unlike smaller or non-water containers.", + "A hot tub is recognized by its large, round or oval water-filled basin with jets, often surrounded by seating and a rim.", + "A hot tub resembles a large round or square basin filled with water, often with seats and jets, typically made of acrylic or wood." + ], + "turnstile": [ + "A turnstile is a rotating gate with horizontal arms that allows one person to pass at a time.", + "A turnstile is a rotating barrier with horizontal arms that lets people pass one at a time unlike doors or gates.", + "A turnstile is a rotating gate with horizontal bars that allows one person to pass at a time when pushed.", + "Turnstiles have rotating horizontal bars or arms that allow one person to pass at a time, often seen in entryways or transit areas." + ], + "typewriter keyboard": [ + "A typewriter keyboard is a rectangular array of raised black and white keys with letters and symbols.", + "A typewriter keyboard has rows of raised round keys with letters and symbols arranged in a rectangular metal or plastic frame.", + "A typewriter keyboard has raised rectangular keys with letters arranged in rows and a metal frame often with visible mechanical parts.", + "A typewriter keyboard has rows of raised, round keys with letters and symbols, often metallic, while other objects vary in shape and texture." + ], + "umbrella": [ + "An umbrella has a curved handle with a central pole supporting a canopy of fabric or material that opens for rain protection.", + "An umbrella is a handheld canopy with a central rod and fabric stretched over ribs to shield from rain or sun.", + "An umbrella has a curved canopy with ribs and a central pole, often with a handle, designed to shield from rain or sun.", + "A canopy of fabric or material stretched over a folding frame supported by a central pole." + ], + "unicycle": [ + "A unicycle has a single wheel with no handlebars or additional wheels unlike bicycles or other wheeled objects.", + "A unicycle is a single-wheeled vehicle with a seat and pedals, resembling a bicycle but with only one wheel.", + "A unicycle has a single wheel with a seat and pedals, lacking handlebars or extra wheels like bicycles.", + "A unicycle has a single wheel with a seat and pedals, unlike bicycles with two wheels or scooters with handlebars and a platform." + ], + "upright piano": [ + "An upright piano is a tall rectangular musical instrument with black or white keys and a vertical wooden frame.", + "An upright piano is tall and rectangular with a vertical front panel and keys, unlike shorter or differently shaped furniture and instruments.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top." + ], + "vacuum cleaner": [ + "Vacuum cleaners typically have a long hose or tube, a dust collection bag or canister, and wheels for mobility unlike most other objects.", + "Vacuum cleaners typically have a long hose, a dust collection bag or canister, wheels, and a handle for pushing or pulling.", + "A vacuum cleaner typically has a long handle, a body with a motor, and a nozzle or brush for sucking up dirt.", + "A vacuum cleaner typically has a long hose, a dust collection bag or canister, and wheels for moving around on floors." + ], + "vase": [ + "A vase is typically a tall hollow container with a narrow neck and open top often decorated and made of glass or ceramic.", + "A vase is a tall hollow container with a base and often a narrow neck used to hold flowers or as decoration.", + "A vase is typically tall with a narrow neck and open top designed to hold flowers distinguishing it from similar containers.", + "Vases are typically tall hollow containers with an open top designed to hold flowers unlike bowls or jars which are shorter and wider." + ], + "vaulted or arched ceiling": [ + "Vaulted or arched ceilings have a curved upward shape creating an open spacious interior with visible structural ribs or smooth continuous curves.", + "A vaulted or arched ceiling is a curved or domed roof structure that rises upward creating an open and spacious interior feel.", + "Look for a curved or dome-shaped top on ceilings that rise upward in a smooth arch rather than being flat.", + "Vaulted ceilings have curved upward shapes forming arches while other objects typically have flat or straight surfaces." + ], + "velvet fabric": [ + "Velvet fabric has a soft, smooth texture with a distinctive sheen that changes when brushed in different directions.", + "Velvet fabric has a soft, smooth texture with a distinctive sheen that reflects light differently than most other fabrics.", + "Velvet fabric is a soft, smooth textile with a dense, even pile that gives it a luxurious, slightly shiny appearance.", + "Velvet fabric has a soft, dense pile with a smooth, shiny surface that reflects light differently from other fabrics." + ], + "vending machine": [ + "A vending machine is a tall rectangular box with buttons, a display, and a slot to dispense items like snacks or drinks.", + "Vending machines are typically rectangular with a glass front displaying items and buttons or a keypad for selection.", + "A vending machine is a tall rectangular box with a glass front displaying items and buttons or a touchscreen for selection.", + "Vending machines are boxy with a front panel displaying products, buttons, a coin slot, and a dispensing tray at the bottom." + ], + "vestment": [ + "Vestments are distinguished by their flowing fabric, ornate designs, and ceremonial appearance often associated with religious or formal rituals.", + "Vestments are ceremonial robes or garments, often ornate and flowing, typically worn by clergy during religious services or rituals.", + "Vestments are long flowing robes with intricate designs, often in religious contexts, unlike everyday clothing or plain garments.", + "Vestments are long flowing garments often with intricate designs and rich fabrics worn by clergy during religious ceremonies." + ], + "viaduct": [ + "A viaduct is a long elevated bridge with multiple arches or spans, unlike shorter or simpler bridges or non-elevated structures.", + "A viaduct is a long elevated bridge with multiple arches or spans, typically carrying roads or railways over valleys or other obstacles.", + "A viaduct is a long elevated bridge with multiple arches or spans, often carrying roads or railways over valleys or other obstacles.", + "A viaduct is recognized by its long elevated structure with multiple arches or spans carrying roads or railways over valleys or obstacles." + ], + "violin": [ + "A violin is a wooden string instrument with an hourglass shape, a long neck, and four strings played with a bow.", + "A violin has a slender wooden body with curved sides, strings, and a neck, unlike bulkier or differently shaped objects.", + "The violin has a distinctive hourglass shape with a narrow waist and curved sides unlike most other objects.", + "A violin has a hollow wooden body with an hourglass shape, four strings, a long neck, and is played with a bow." + ], + "volleyball": [ + "A volleyball is a round white ball with black or colored panels and stitching, slightly larger than a basketball.", + "A volleyball is a spherical ball with white, hexagonal and pentagonal panels often seen in mid-air during a game.", + "Volleyballs are round with a smooth or pebbled surface and often have colorful panels or stripes unlike other sports balls.", + "A volleyball is a round white ball with black or colored panels arranged in a symmetrical pattern." + ], + "waffle iron": [ + "A waffle iron is a metal kitchen appliance with two hinged plates that create a grid pattern on cooked waffles.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create textured waffles when heated.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create waffles unlike flat pans or smooth appliances.", + "A waffle iron has a hinged metal griddle with deep square or honeycomb patterns to create the distinct waffle shape." + ], + "wall clock": [ + "A wall clock is round or square with numbers or marks and hands or a digital display on a flat surface.", + "Wall clocks are flat round or square objects with numbers and hands mounted on walls unlike other clocks or decorative items.", + "A wall clock is a round or square object with numbers and hands, hanging on a wall to show time.", + "A wall clock has a circular face with numbers or marks and moving hands to indicate time mounted on a wall." + ], + "wallet": [ + "Wallets are small flat pouches typically made of leather or fabric designed to hold money and cards unlike bulkier bags or containers.", + "A wallet is a small flat case typically made of leather or fabric used to hold money cards and personal items.", + "A wallet is a small flat rectangular pouch often made of leather or fabric with slots for cards and cash.", + "Wallets are small flat rectangular objects often made of leather or fabric with slots for cards and a foldable design." + ], + "wardrobe": [ + "A wardrobe is a tall rectangular furniture piece with doors, often wooden, used for storing clothes and other items.", + "A wardrobe is a tall wooden cabinet with doors and shelves used for storing clothes and other personal items.", + "A wardrobe is a tall freestanding closet with doors and shelves for storing clothes unlike smaller or open storage furniture.", + "A wardrobe is a tall rectangular furniture piece with doors, shelves, and often mirrors, used for storing clothes and other items." + ], + "military aircraft": [ + "Military aircraft have sleek streamlined bodies wings mounted low or high and often display camouflage or military markings like stars or roundels.", + "Military aircraft typically have sleek streamlined bodies wings and tails with camouflage or gray coloring and visible weapon mounts or insignia.", + "Military aircraft are large winged vehicles with sleek designs often featuring camouflage colors and visible weaponry or insignia.", + "Military aircraft have sleek angular designs, camouflage colors, visible weaponry, and distinct insignias for quick identification in combat scenarios." + ], + "sink": [ + "A sink is typically a basin with faucets and drains often made of porcelain metal or ceramic found in kitchens or bathrooms.", + "A sink is a basin with faucets for washing, typically made of porcelain or stainless steel, often found in kitchens or bathrooms.", + "Sinks typically have a basin and faucet, unlike other objects which lack water fixtures and drainage features.", + "A sink has a basin with a faucet and drain, often set in a countertop or wall, used for washing hands or dishes." + ], + "washing machine": [ + "Washing machines are large rectangular appliances with round doors and control panels often found in laundry rooms or kitchens.", + "Washing machines are typically large rectangular appliances with round doors and control panels unlike most other household objects.", + "A washing machine is a large rectangular appliance with a round door on the front and control buttons or dials on top.", + "A washing machine has a large round door on its front for loading clothes unlike other appliances." + ], + "water bottle": [ + "Water bottles are typically cylindrical with a cap, often transparent or colored, and have a narrow neck for drinking.", + "A water bottle is typically a tall cylindrical container with a narrow neck and cap often made of plastic or metal.", + "A water bottle is typically a cylindrical or curved container with a narrow neck and often has a cap or lid.", + "Water bottles are typically cylindrical with a cap and made of clear or colored plastic or metal, unlike other objects." + ], + "water jug": [ + "A water jug typically has a distinct handle and a spout for pouring liquids.", + "A water jug typically has a handle and a spout for pouring, unlike bottles or cups which lack one or both features.", + "A water jug is a tall container with a handle and a spout, typically made of plastic, metal, or ceramic for holding liquids.", + "A water jug typically has a handle, a spout, and a rounded body designed for pouring and holding liquids." + ], + "water tower": [ + "Water towers are tall cylindrical or spherical structures on stilts, distinct from buildings or tanks by their elevated design and large water storage capacity.", + "A water tower is a tall cylindrical or spherical structure on stilts that stores and distributes water for a community.", + "A water tower is a tall cylindrical or spherical structure on stilts holding a large tank for storing water.", + "A water tower has a large elevated tank on tall supports to store and distribute water under pressure." + ], + "whiskey jug": [ + "A whiskey jug is typically a rounded ceramic or glass container with a narrow neck, handle, and often a cork or stopper.", + "A whiskey jug is a stout ceramic or glass container with a narrow neck and handle, often brown or amber in color.", + "A whiskey jug typically has a rounded body with a narrow neck and a handle for easy pouring.", + "A whiskey jug typically has a rounded body with a narrow neck and handle, often made of ceramic or glass." + ], + "whistle": [ + "A whistle is a small metal or plastic tube with a hole to blow into and a curved end for sound.", + "A whistle has a small hole for blowing air to create sound unlike most other objects.", + "A whistle is a small tube-shaped object with a mouthpiece and holes designed to produce a high-pitched sound when blown.", + "A whistle is typically small, tubular, with a mouthpiece and holes, often metallic or plastic and easy to hold." + ], + "hair wig": [ + "Hair wigs can be identified by their uniform strands unnatural sheen and often perfect styling unlike natural hair growth.", + "Hair wigs have uniform texture synthetic or natural strands arranged densely mimicking real hair often with a visible base or cap.", + "A hair wig resembles a head of artificial hair designed to mimic natural hairstyles, often made from synthetic fibers or real hair.", + "Hair wigs mimic natural hair with strands and scalp-like bases while other objects lack these realistic hair texture and attachment features." + ], + "window screen": [ + "A window screen is a fine mesh grid, usually metal or fiberglass, stretched tightly over a frame to cover a window opening.", + "A window screen is a flat mesh panel with a fine grid pattern designed to fit inside a window frame.", + "Window screens are recognized by their fine mesh grid pattern and rectangular frames often seen in windows for ventilation and insect protection.", + "Window screens are thin mesh grids with small holes, unlike solid or transparent objects like glass or curtains." + ], + "window shade": [ + "Window shades are flat, flexible panels or rolls of fabric or material designed to cover windows, unlike rigid or solid objects.", + "A window shade is a flat, rectangular panel or roll of fabric or material that covers a window to block light.", + "A window shade is a flat, rectangular fabric or material panel that rolls or folds to cover windows.", + "Window shades are recognized by their flat, rectangular shape, often with horizontal or vertical lines, and they hang over windows to block light." + ], + "Windsor tie": [ + "A Windsor tie is a sleek narrow necktie with a symmetrical triangular knot typically made of silk or polyester.", + "A Windsor tie is a necktie with a wide triangular knot, typically symmetrical and thick, made from silk or other fine fabrics.", + "A Windsor tie is a narrow, long, and patterned fabric strip worn around the neck, unlike broader or differently shaped accessories.", + "The Windsor tie has a wide triangular knot that is symmetrical and thicker than other tie knots." + ], + "wine bottle": [ + "A wine bottle is a tall glass container with a narrow neck and often has a label and cork or screw cap.", + "Wine bottles have a tall slender shape with a narrow neck and are often labeled with colorful designs or brand logos.", + "Look for a tall glass container with a narrow neck and a label often featuring vineyard or brand details.", + "Wine bottles are typically tall and slender with a narrow neck and often have labels or colored glass unlike most other objects." + ], + "airplane wing": [ + "An airplane wing is a long flat surface with a curved top and straight edges designed to lift and stabilize the aircraft.", + "Airplane wings are long flat and tapered with smooth surfaces while other objects vary in shape texture and size.", + "Airplane wings are long flat surfaces with smooth curves attached to the fuselage often seen with flaps or engines underneath.", + "An airplane wing has a long, tapered flat surface with a curved top and straight bottom for lift." + ], + "wok": [ + "A wok is a deep round-bottomed cooking pan with high sloping sides and typically made of metal.", + "A wok has a deep round shape with high sloping sides and a small flat bottom used for stir frying.", + "A wok is a deep round-bottomed cooking pan with high sloping sides often made of metal used for stir-frying.", + "A wok has a deep round bowl with high sloping sides and a small flat bottom unlike flatter or straighter pans." + ], + "wooden spoon": [ + "A wooden spoon is a smooth, light brown utensil with a long handle and a shallow oval or round bowl.", + "Wooden spoons have a long handle and a shallow oval bowl made of smooth unfinished wood with no sharp edges.", + "A wooden spoon has a long handle and a flat oval head made of smooth light brown wood with no shiny or metallic parts.", + "Wooden spoons have a long handle and a wide shallow bowl made of smooth unfinished wood with a simple rounded or oval shape." + ], + "wool": [ + "Wool has a soft, fuzzy texture with fine, curly fibers that often appear matted or slightly shiny in natural light.", + "Wool has a soft, fuzzy texture with fine, curly fibers, unlike smoother or more rigid materials like cotton or synthetic fabrics.", + "Wool has a distinctive fuzzy and slightly tangled texture with fine, soft fibers that appear matted or slightly curly.", + "Wool looks soft, fuzzy, and slightly textured with a matte finish, often appearing in natural white or dyed colors." + ], + "split-rail fence": [ + "Split-rail fences are recognized by their horizontal wooden rails stacked in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally without nails, unlike smooth or metal fences with uniform construction.", + "A split-rail fence consists of rough wooden logs stacked horizontally in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally between upright posts, creating a simple rustic barrier." + ], + "shipwreck": [ + "Shipwrecks are broken, sunken, or partially submerged vessels with rust, barnacles, and visible damage unlike intact floating ships or boats.", + "Shipwrecks are partially submerged broken ships with rusted hulls often surrounded by debris in water.", + "A shipwreck appears as a broken, sunken vessel often covered in rust, seaweed, and sand, lying underwater or washed ashore.", + "Shipwrecks appear as broken, sunken, or rusted ship parts often covered in seaweed or coral underwater or on shores." + ], + "sailboat": [ + "A sailboat is a slender watercraft with tall masts and large fabric sails that catch the wind to propel it forward.", + "Sailboats have tall masts with sails, a hull floating on water, and are often seen in open water or marinas.", + "Sailboats have tall masts with sails and are usually on water unlike other objects which lack these features and settings.", + "Sailboats have tall masts with sails, a hull that floats on water, and are often seen in coastal or open water settings." + ], + "yurt": [ + "A yurt is a round, portable tent with a domed roof, often made of felt or fabric over a wooden frame.", + "A yurt is a round, tent-like structure with a conical roof, often made of fabric or felt over a wooden frame.", + "A yurt has a distinctive circular lattice wall structure supporting a conical roof made of felt or skins.", + "A yurt is recognized by its round shape, domed roof, and lattice walls often covered with felt or fabric." + ], + "website": [ + "Websites are digital pages with text and images displayed on screens unlike physical objects which have tangible shapes and textures.", + "Websites are recognized by their rectangular screens displaying text images and interactive elements like buttons and menus.", + "Websites appear as screens displaying text, images, and interactive elements on devices like computers, phones, or tablets.", + "Websites appear as rectangular screens displaying text images and interactive elements on digital devices like computers or phones." + ], + "comic book": [ + "Comic books are colorful flat printed pages with illustrated panels and text bubbles unlike three-dimensional everyday objects.", + "Comic books have colorful illustrated covers with bold outlines, speech bubbles, and often display superheroes or action scenes.", + "A comic book is a colorful printed booklet with illustrated panels, speech bubbles, and glossy pages featuring superheroes or stories.", + "Comic books have distinct speech bubbles and panel layouts that set them apart from other printed materials." + ], + "crossword": [ + "A crossword appears as a grid of black and white squares with numbered clues typically found in newspapers or puzzle books.", + "Crosswords are flat grids with black and white squares containing letters, unlike solid objects with varied shapes and colors.", + "Crosswords have a grid of black and white squares with letters forming intersecting words in horizontal and vertical directions.", + "Crosswords appear as grid patterns with black and white squares containing small letters arranged in intersecting horizontal and vertical lines." + ], + "traffic or street sign": [ + "Traffic or street signs are flat, often metal, with bold colors and simple symbols or text for clear visibility.", + "Traffic signs have bold colors simple shapes clear symbols and standardized designs making them easily recognizable from other objects.", + "Traffic signs are typically flat, colorful, and have bold symbols or text on a high-contrast background for easy visibility.", + "Traffic signs have bold colors simple shapes and clear symbols unlike natural or complex man made objects." + ], + "traffic light": [ + "Traffic lights are recognized by their colored circular lights arranged vertically or horizontally on rectangular or pole-mounted structures.", + "Traffic lights are distinct with their colored circular lights arranged vertically or horizontally on a rectangular or pole-mounted box.", + "Traffic lights are identified by their rectangular or circular shape, bright colors red yellow green, and mounted on poles or overhead structures.", + "Traffic lights uniquely have three vertically or horizontally stacked colored circles or rectangles signaling stop, wait, and go." + ], + "dust jacket": [ + "A dust jacket is a removable paper cover with printed designs and text, often glossy and folded around a book's spine.", + "A dust jacket is a removable paper cover with printed designs and text, unlike solid objects like books or furniture.", + "A dust jacket is a removable paper cover on a book, often colorful with designs, titles, and author names.", + "A dust jacket is a removable paper cover on a book, often colorful with text and images, protecting the hardcover beneath." + ], + "menu": [ + "A menu is typically a printed or digital list of food and drink options often found in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images, often held or placed on tables, unlike three-dimensional objects like plates or cups.", + "Menus are flat rectangular sheets with text and images often held or placed on tables in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images often held in hands or placed on tables in dining settings." + ], + "plate": [ + "A plate is flat, round or oval, usually with a raised edge, and comes in various colors and simple patterns.", + "A plate is a flat round dish typically made of ceramic or metal used for serving food.", + "Plates are flat, round, and usually smooth with a raised edge, unlike bowls which are deeper or utensils which are not flat.", + "Plates are flat, round or oval, often with raised edges and simple patterns, used for serving or displaying food." + ], + "guacamole": [ + "Guacamole is a creamy green dip made from avocados, often with visible chunks, unlike solid foods or liquids.", + "Guacamole is a creamy green dip with a slightly chunky texture often served in a bowl with visible avocado pieces.", + "Guacamole is a creamy green dip made from mashed avocados often served in a bowl with chunks of vegetables or chips.", + "Guacamole is recognized by its creamy green texture with visible chunks of avocado often mixed with lime cilantro and onions." + ], + "consomme": [ + "Consomme is a clear, golden-brown liquid, unlike thicker soups or solid foods, with no visible chunks or particles.", + "Consomme is a clear, light-colored broth with no visible solids, appearing as a thin, translucent liquid in a bowl.", + "Consomme is a clear, golden broth often served in a bowl with minimal solid ingredients.", + "Consomme is a clear, golden broth with no solids, often served in a bowl with a shallow depth and light reflection." + ], + "hot pot": [ + "Hot pot is a large metal pot with boiling broth and ingredients inside, unlike other objects which are usually solid and not cooking vessels.", + "Hot pot is recognized by a simmering pot of broth surrounded by raw ingredients like meats, vegetables, and dipping sauces.", + "Hot pot is a large metal pot filled with boiling broth surrounded by plates of raw meats and vegetables for cooking.", + "A hot pot is a large metal pot with boiling broth and visible ingredients like meat vegetables and noodles inside." + ], + "trifle": [ + "A trifle is a layered dessert with colorful sponge cake fruit custard and cream often in a clear glass dish.", + "Trifle is a layered dessert with colorful ingredients like fruit custard cream and cake visible in clear glass bowls.", + "A trifle is a colorful layered dessert with sponge cake custard fruit jelly and cream often in a glass bowl.", + "Trifle is recognized by its layered appearance with colorful sponge cake fruit custard cream and often topped with whipped cream or nuts." + ], + "ice cream": [ + "Ice cream is identified by its creamy, soft texture, bright colors, and often served in cones or cups with toppings.", + "Ice cream has a soft, creamy texture, often served in cones or cups, with colorful scoops or swirls and sometimes toppings.", + "Ice cream is a colorful, creamy dessert often served in cones or cups with various toppings and swirls.", + "Ice cream is typically smooth, creamy, and served in cones or cups, often with visible swirls or layers, unlike harder or solid objects." + ], + "popsicle": [ + "Popsicles are colorful frozen treats on sticks with smooth icy surfaces unlike fruits or desserts which are often soft or textured.", + "Popsicles are colorful rectangular or oval frozen treats on sticks with smooth icy surfaces and often fruit bits visible.", + "A popsicle is a colorful frozen treat on a stick with a smooth icy texture and various fruity or creamy flavors.", + "Popsicles are recognized by their stick handle colorful icy rectangular shape and often dripping melted edges." + ], + "baguette": [ + "A baguette is a long thin loaf of French bread with a crispy crust and soft interior.", + "A baguette is a long thin loaf of French bread with a golden brown crust and diagonal slashes on top.", + "A baguette is long, thin, and crusty with a golden-brown color, unlike shorter, softer, or differently shaped breads and objects.", + "A baguette is recognized by its long slender shape golden brown crust and distinctive diagonal slashes on the surface." + ], + "bagel": [ + "A bagel is a round bread with a hole in the center, typically golden brown with a chewy texture and smooth surface.", + "A bagel is a round bread with a dense chewy interior and a golden brown crust often topped with seeds or grains.", + "Bagels are round with a hole in the middle and have a shiny crust unlike most breads or pastries.", + "A bagel has a round shape with a hole in the center and a shiny, chewy crust often topped with seeds or grains." + ], + "pretzel": [ + "Pretzels are twisted knot-shaped baked goods with a golden-brown crust, unlike straight or round breads and snacks.", + "Pretzels are twisted knot shaped baked goods with a golden brown crust and a smooth shiny surface.", + "Pretzels have a distinctive twisted knot shape with a glossy brown surface from baking.", + "A pretzel is a twisted knot-shaped baked good with a golden brown crust and a smooth shiny surface." + ], + "cheeseburger": [ + "A cheeseburger has layered ingredients like a bun patty cheese and toppings often with melted cheese visible between the bun halves.", + "A cheeseburger has a bun, melted cheese, and visible meat patty, unlike most objects which lack these layered food components.", + "A cheeseburger is a round sandwich with a beef patty melted cheese lettuce tomato and condiments between two buns.", + "A cheeseburger has a melted cheese layer visibly oozing between a beef patty and bun, distinguishing it from other sandwiches." + ], + "hot dog": [ + "A hot dog is a long thin sausage in a soft bun often topped with mustard ketchup or relish.", + "Hot dogs are long cylindrical meat rolls with a smooth texture typically served in a split bun.", + "A hot dog is a long thin bun with a smooth sausage inside often topped with condiments like mustard or ketchup.", + "Hot dogs are long cylindrical meat pieces in a bun, distinct from similar foods by their uniform shape and smooth texture." + ], + "mashed potatoes": [ + "Mashed potatoes are soft, creamy, and lumpy with a pale white or yellow color unlike most solid or textured foods.", + "Mashed potatoes have a soft lumpy texture with a creamy white color and no distinct individual shapes.", + "Mashed potatoes have a smooth creamy texture with soft lumps and a pale white or yellowish color often served in a bowl.", + "Mashed potatoes look like a soft creamy pile with a smooth or slightly lumpy texture and a pale white or yellowish color." + ], + "cabbage": [ + "Cabbages are round leafy vegetables with tightly packed layers of thick green or purple leaves forming a dense head.", + "Cabbage is round with tightly packed thick green or purple leaves forming a dense layered head on a short stem.", + "Cabbages have round, layered green or purple leaves forming a dense head, unlike most vegetables which are smaller or less tightly packed.", + "Cabbages have round layered leaves with a dense center and a smooth waxy texture in shades of green or purple." + ], + "broccoli": [ + "Broccoli is a green vegetable with a thick stem and a bushy top made of small, tightly packed florets.", + "Broccoli has a green clustered head with small florets and a thick edible stalk unlike smoother or differently shaped vegetables.", + "Broccoli has a green tree-like shape with a thick stalk and dense clusters of small bumpy florets on top.", + "Broccoli has a unique cluster of small green florets forming a tree-like shape on thick edible stalks." + ], + "cauliflower": [ + "Cauliflower is a white, round vegetable with a bumpy, textured surface made up of many small, tightly packed florets.", + "Cauliflower is a white, round, bumpy vegetable with thick green leaves at the base.", + "Cauliflower has a white, bumpy, rounded head with green leaves at the base, unlike smoother or differently colored vegetables.", + "Cauliflower has a unique bumpy white head made of tightly packed flower buds called curds." + ], + "zucchini": [ + "Zucchini is a long green vegetable with smooth skin while similar objects vary in color shape texture or are non vegetable items.", + "A zucchini is a long green cylindrical vegetable with smooth skin and slightly tapered ends resembling a cucumber.", + "Zucchini are long green cylindrical vegetables with smooth skin and slightly tapered ends resembling cucumbers but usually larger.", + "Zucchini has a long cylindrical shape with smooth dark green skin and subtle lighter green stripes." + ], + "spaghetti squash": [ + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oblong vegetable with stringy flesh resembling spaghetti when cooked unlike other squash types.", + "Spaghetti squash has a yellow oblong shape with stringy flesh resembling spaghetti when cooked." + ], + "acorn squash": [ + "Acorn squash is small, dark green, ribbed, and oval-shaped, unlike smoother or differently colored squashes and other round fruits or vegetables.", + "Acorn squash is a small, dark green, ribbed, oval-shaped winter squash with a distinctive acorn-like shape and yellow-orange flesh inside.", + "Acorn squash has a distinctive ridged dark green skin with a teardrop shape and often a patch of orange or yellow.", + "Acorn squash is small, dark green with ridges, shaped like an acorn, and has orange-yellow flesh inside." + ], + "butternut squash": [ + "Butternut squash has a distinctive elongated pear shape with a smooth tan skin and bulbous bottom.", + "Butternut squash has a long tan neck, bulbous orange base, and smooth skin with subtle ridges.", + "Butternut squash is a long tan-colored gourd with a bulbous end and smooth skin resembling a large pear.", + "Butternut squash has a smooth tan skin, elongated pear shape, and orange flesh inside." + ], + "cucumber": [ + "A cucumber is a long green vegetable with smooth skin and tapered ends resembling a zucchini but more slender and uniform.", + "Cucumbers are long, green, cylindrical vegetables with smooth skin and tapered ends, often darker at the stem.", + "Cucumbers are long green cylindrical vegetables with smooth skin while similar objects vary in color shape texture or size.", + "Cucumbers are recognized by their long green cylindrical shape smooth skin and small bumps with tapered ends." + ], + "artichoke": [ + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, slightly spiky base.", + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, spiky base.", + "Artichokes have a round green head with layered pointed scales and a thick stem.", + "Artichokes have layered green leaves with a spiky top and a round shape unlike most vegetables which are smoother and simpler." + ], + "bell pepper": [ + "A bell pepper is a colorful, glossy, and blocky vegetable with a smooth skin and a hollow interior containing seeds.", + "Bell peppers have a glossy, smooth skin with distinct ridges and a vibrant color ranging from green to red or yellow.", + "Bell peppers are shiny, smooth, and blocky with distinct ridges, unlike most fruits which are round or irregularly shaped.", + "Bell peppers are shiny, smooth, and come in vibrant colors like green, red, or yellow with a distinct blocky shape." + ], + "cardoon": [ + "A cardoon looks like a large thistle with silvery green leaves and tall stalks resembling celery or artichoke plants.", + "Cardoon has large, spiny, silvery-green leaves and tall flower stalks, unlike most vegetables which are smaller and less prickly.", + "Cardoon has large spiny silvery green leaves and thistle like purple flowers with a tall branching stem structure.", + "Cardoon looks like a large thistle with silvery green spiky leaves and purple flowers resembling an artichoke." + ], + "mushroom": [ + "Mushrooms typically have a rounded cap atop a slender stem often found in earthy colors like brown white or tan.", + "Mushrooms have a distinct cap and stem unlike plants or animals which have leaves branches or fur and limbs.", + "Mushrooms have a distinct cap and stem shape with gills or pores underneath and often grow in clusters on organic matter.", + "Mushrooms have a distinct umbrella-shaped cap with gills or pores underneath and a stem." + ], + "Granny Smith apple": [ + "A Granny Smith apple is a bright green round fruit with a smooth shiny skin and a slightly tart crisp flesh.", + "Granny Smith apples are bright green, round, and smooth with a shiny skin, unlike other fruits which vary in color and texture.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small dimple at the base.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small size." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny seeds on their surface and green leafy tops unlike other smooth or differently shaped objects.", + "Strawberries are recognized by their bright red color small seeds on the surface and green leafy tops.", + "Strawberries are small red fruits with green leafy tops and tiny yellow seeds covering their bumpy textured surface.", + "Strawberries are small red heart-shaped fruits with tiny yellow seeds on their surface and green leafy tops." + ], + "orange": [ + "Look for round or oval shapes with bright reddish-yellow color and smooth shiny skin like a typical orange fruit.", + "Oranges are round with a bright orange peel while similar objects vary in color shape and texture.", + "The vibrant reddish-yellow hue of orange is distinct and not commonly found in other natural objects.", + "Oranges are round with bright orange skin, a slightly bumpy texture, and often have a small green stem attached." + ], + "lemon": [ + "Lemons are bright yellow oval fruits with a textured peel and a distinctive sour taste often used in cooking and beverages.", + "Lemons are bright yellow oval fruits with a smooth shiny skin and a slightly tapered shape at both ends.", + "Lemons are bright yellow oval fruits with a textured peel unlike most other fruits which vary in color shape and skin texture.", + "A lemon is a bright yellow oval fruit with a smooth or slightly textured peel and a tapered shape at both ends." + ], + "fig": [ + "Figs have a distinctive teardrop shape with a small opening at the top and a textured skin covered in fine wrinkles.", + "A fig is a soft pear-shaped fruit with smooth skin, green or purple, containing tiny edible seeds inside sweet red flesh.", + "Figs are small pear-shaped fruits with smooth or slightly wrinkled skin in shades of green purple or black and soft sweet flesh inside.", + "Figs are recognized by their teardrop shape, wrinkled purple or green skin, and soft red interior with tiny edible seeds." + ], + "pineapple": [ + "A pineapple is a large tropical fruit with a rough spiky skin and a crown of green leaves on top.", + "Pineapples have a spiky green crown, rough brown-yellow skin, and oval shape unlike most smooth round fruits.", + "Pineapples have a distinctive spiky green crown and rough diamond-patterned yellow skin unlike any other fruit or object.", + "A pineapple has a rough spiky green crown, yellow-brown scaly skin, and a cylindrical shape with a sweet juicy interior." + ], + "banana": [ + "A banana is a long curved yellow fruit with a smooth peel and soft flesh, often found in bunches.", + "Bananas are long curved yellow fruits with smooth skin unlike most objects which vary widely in shape color and texture.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects." + ], + "jackfruit": [ + "Jackfruit has a distinctive bumpy green or yellow outer skin with large spiky protrusions unlike any other fruit or object.", + "Jackfruit has a large spiky green exterior with a bumpy texture and a sweet smell when ripe.", + "Jackfruit is large, bumpy, and greenish-yellow with a spiky exterior, unlike smoother or differently shaped fruits and objects.", + "Jackfruit is large, green, and spiky with a bumpy texture, often growing directly from the tree trunk." + ], + "cherimoya (custard apple)": [ + "Cherimoya has green scaly skin with a heart shape and soft creamy flesh unlike smoother skinned or differently textured fruits.", + "The cherimoya is a green heart-shaped fruit with bumpy scaly skin and creamy white flesh inside.", + "The cherimoya has a green scaly or bumpy skin with heart-shaped form and creamy segmented flesh inside.", + "Cherimoya has green scaly skin with heart-shaped bumps and creamy white flesh with large black seeds inside." + ], + "pomegranate": [ + "A pomegranate is a round red fruit with a thick leathery skin and a crown-like calyx at the top.", + "A pomegranate is a round red fruit with a tough outer rind and clusters of juicy red seeds inside.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx unlike most other fruits.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx at the top." + ], + "hay": [ + "Hay is a dry, golden, and fibrous plant material, often bundled or loose, while other objects vary widely in texture, color, and shape.", + "Hay is a dry, golden or light brown, fibrous plant material often bundled or scattered in loose strands.", + "Hay has a light golden color and a rough, dry texture with long, thin strands often bundled or loosely scattered.", + "Hay is dry, golden or light brown, and looks like thin, tangled grass stems often bundled or stacked loosely." + ], + "carbonara": [ + "Carbonara has a creamy white sauce with pasta strands mixed with bits of meat and black pepper, unlike plainer pasta dishes.", + "Carbonara is a creamy pasta dish with white sauce, often topped with crispy bacon bits and grated cheese.", + "Carbonara is a creamy pasta dish with spaghetti eggs cheese pancetta and black pepper often topped with grated cheese.", + "Carbonara features creamy egg sauce, spaghetti, crispy pancetta or guanciale, black pepper, and grated cheese like Pecorino or Parmesan." + ], + "chocolate syrup": [ + "Chocolate syrup is a thick dark liquid with a smooth glossy texture unlike solid or powdery foods.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled over desserts.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled on foods.", + "Chocolate syrup has a thick, glossy, dark brown liquid appearance with a smooth, flowing texture that drips in viscous strands." + ], + "dough": [ + "Dough is a soft, pliable mixture of flour and liquid, often pale and slightly sticky, resembling thick paste or clay.", + "Dough is soft, pliable, and often pale or beige, unlike harder, shaped, or colored objects like bread or baked goods.", + "Dough is soft, pale, and malleable with a smooth or slightly textured surface, often shaped into lumps or flattened pieces.", + "Dough is soft, pale, and slightly lumpy with a smooth yet sticky texture often shaped into balls or flattened pieces." + ], + "meatloaf": [ + "Meatloaf is a dense, loaf-shaped cooked ground meat dish with a browned exterior, unlike other foods which vary in shape and texture.", + "Meatloaf looks like a dense, rectangular or oval-shaped loaf of ground meat, often brown with a slightly crispy outer layer.", + "Meatloaf has a distinctive textured brown crust covering a dense loaf-shaped interior made of ground meat.", + "Meatloaf looks like a dense rectangular loaf of cooked ground meat with a browned crust on top." + ], + "pizza": [ + "Pizza is recognized by its round flat shape melted cheese toppings and crust often sliced into triangular pieces.", + "Pizza is flat and round with melted cheese and toppings while other objects vary in shape texture and ingredients.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings like meats or vegetables.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings often sliced into triangular pieces." + ], + "pot pie": [ + "A pot pie is recognized by its golden-brown crust with a flaky texture covering a savory filling in a small round dish.", + "Pot pies have a golden-brown crust covering a filling, distinguishing them from similar dishes with open tops or different textures.", + "Pot pie has a golden-brown flaky crust with visible filling peeking through the top or sides.", + "A pot pie has a golden-brown flaky crust covering a deep dish filled with visible chunks of meat and vegetables." + ], + "burrito": [ + "A burrito is a cylindrical, wrapped food with a soft tortilla exterior, often filled with beans, rice, meat, and cheese.", + "A burrito is a cylindrical wrapped food with visible tortilla folds, unlike similar items which may be flat or unwrapped.", + "A burrito is recognized by its cylindrical shape wrapped in a soft tortilla with visible fillings like beans, rice, and meat.", + "A burrito is a cylindrical wrapped food with visible tortilla edges often filled with beans rice meat and cheese." + ], + "red wine": [ + "Red wine is identified by its deep red or purple color in a clear glass with a smooth liquid surface.", + "Red wine is recognized by its deep red color, glass bottle shape, and often a wine label or cork.", + "Red wine appears as a deep ruby or purple liquid in a glass often with a smooth shimmering surface.", + "Red wine is a deep red or purple liquid typically stored in glass bottles with labels, unlike solid or differently colored objects." + ], + "espresso": [ + "Espresso is a small dark brown liquid in a tiny cup with a light crema layer on top.", + "Espresso is a small dark brown liquid in a tiny cup often with creamy foam on top.", + "Espresso is recognized by its small dark liquid in a tiny cup with creamy foam on top.", + "Espresso is a small dark concentrated coffee served in tiny cups unlike larger lighter brews in bigger mugs." + ], + "tea cup": [ + "A tea cup is a small handle bowl typically made of ceramic or porcelain used for drinking hot beverages.", + "A tea cup typically has a small rounded shape with a handle, unlike mugs which are larger or bowls which lack handles.", + "A tea cup typically has a small rounded shape with a handle and a saucer often made of ceramic or porcelain.", + "A tea cup is small with a handle and a deep round bowl often decorated and made of porcelain or ceramic." + ], + "eggnog": [ + "Eggnog is a creamy, pale yellow liquid often served in glasses or bowls, distinct from solid or non-dairy items.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow or off-white liquid often served in a glass or cup, sometimes with a sprinkle of nutmeg on top." + ], + "mountain": [ + "Mountains are large natural elevations with steep rocky slopes and peaks while other objects are typically smaller and man-made or smoother.", + "Mountains are large natural elevations with steep rocky slopes and peaks often covered in snow or greenery.", + "Mountains are recognized by their large elevated landforms with steep slopes and rugged peaks often covered in snow or vegetation.", + "Mountains are large, rugged landforms with steep slopes and peaks, often covered in snow or greenery, standing tall above surrounding terrain." + ], + "bubble": [ + "Bubbles are round, transparent, and shiny with a thin, fragile surface, unlike most solid or opaque objects.", + "Bubbles are round, transparent, shiny, and often appear in clusters with reflective surfaces and slight color distortions.", + "Bubbles are small, round, transparent spheres filled with air or gas, often shiny and floating in liquid or air.", + "Bubbles are round, transparent, and shiny with smooth surfaces, often reflecting light and appearing to float or cluster together." + ], + "cliff": [ + "Cliffs are steep rock faces with rugged textures and sharp edges, unlike smoother or flatter natural or man-made objects.", + "Cliffs are steep rocky slopes with jagged edges and exposed earth often towering above water or flat land below.", + "A cliff is a steep rock face often found near coasts or mountains with rugged edges and dramatic drops.", + "Cliffs are steep rock faces with sharp vertical drops and rugged textures, often overlooking water or valleys." + ], + "coral reef": [ + "Coral reefs have vibrant colors, intricate branching or mound shapes, and diverse textures from polyps and marine life.", + "A coral reef is a vibrant underwater structure made of colorful, branching corals teeming with diverse marine life.", + "Coral reefs are colorful underwater structures with intricate textures, unlike smoother or simpler shapes of most other objects.", + "Coral reefs are colorful underwater structures with bumpy textures formed by tiny coral polyps often seen in branching or rock-like shapes." + ], + "geyser": [ + "Geysers are tall natural structures that shoot steam and water, unlike static objects like mountains or man-made fountains.", + "Geysers are recognized by their tall steam or water jets erupting from the ground often in natural landscapes.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground." + ], + "lakeshore": [ + "A lakeshore appears as a water edge meeting land, often with gentle slopes, vegetation, and sometimes rocks or sandy beaches.", + "The unique visual cue for lakeshore is the distinct transition between land and calm water with surrounding natural scenery.", + "A lakeshore has water meeting land with natural edges, often surrounded by trees, rocks, or sand, creating a distinct boundary.", + "A lakeshore is a gently sloping land with water edges, often featuring sand, rocks, or vegetation blending into the lake." + ], + "promontory": [ + "A promontory is a high point of land jutting sharply into a body of water, unlike flat shores or rounded hills.", + "A promontory is recognized by its high, steep cliff or headland jutting sharply into a body of water or land.", + "A promontory is a high point of land or rock jutting sharply outward into a body of water, often with steep cliffs.", + "A promontory is a high cliff or headland jutting into a large body of water, often rocky and steep." + ], + "sandbar": [ + "A sandbar is a long narrow sandy ridge or shoal slightly submerged or exposed in shallow water near a shore.", + "A sandbar is a long narrow strip of sandy land rising above water often found near coasts or in shallow rivers.", + "A sandbar is a long narrow strip of sandy land in water while other objects vary in shape material and location.", + "A sandbar appears as a long, narrow strip of sandy or gravelly land slightly above water in a river or along a coast." + ], + "beach": [ + "Beaches are identified by sandy shores, ocean waves, sunny skies, and people relaxing or playing near the water.", + "Beaches have wide stretches of sand or pebbles with water edges unlike other objects which are solid or have defined shapes.", + "The unique visual cue for a beach is the combination of sand and water meeting at a shoreline.", + "A beach typically features sand, waves, shorelines, and sunny skies, often with people, umbrellas, or boats nearby." + ], + "valley": [ + "A valley is recognized by its low land between hills or mountains often with a river or stream running through it.", + "A valley is a low area between hills or mountains often with a river running through it surrounded by slopes.", + "Valleys are long low areas between hills or mountains, often with a river, unlike flat plains or isolated peaks.", + "Valleys appear as long low areas between hills or mountains often with rivers or greenery running through them." + ], + "volcano": [ + "Volcanoes are large mountain-like structures with craters that often emit smoke or lava unlike regular mountains or hills.", + "A volcano is a towering mountain with a crater at the top that erupts lava ash and smoke.", + "A volcano is a mountain with a crater at the top often emitting smoke lava or ash distinguishing it from other landforms.", + "A volcano has a conical shape with a crater at the top, often emitting smoke or lava, surrounded by rugged terrain." + ], + "baseball player": [ + "Baseball players wear uniforms with caps gloves and cleats and hold bats or gloves unlike most everyday objects or animals.", + "Baseball players wear uniforms with gloves and caps while holding bats or standing on a field ready to play.", + "A baseball player wears a uniform, cap, and glove, often holding a bat or standing on a field ready to play.", + "Baseball players wear caps, jerseys, and gloves while holding bats or standing on a field with cleats and protective gear." + ], + "bridegroom": [ + "A bridegroom is a well-dressed man in formal attire, often wearing a suit or tuxedo, standing beside the bride at a wedding.", + "A bridegroom typically wears formal attire like a suit or tuxedo often with a boutonniere distinguishing him from everyday clothing.", + "A bridegroom typically wears a formal suit or tuxedo, often with a boutonniere, and stands beside a bride in wedding attire.", + "A bridegroom typically wears a formal suit or tuxedo often with a boutonniere and stands beside a bride in wedding attire." + ], + "scuba diver": [ + "Scuba divers wear full-body wetsuits, masks, fins, and oxygen tanks unlike most objects which lack such complex human gear.", + "A scuba diver wears a wetsuit, fins, mask, and oxygen tank while submerged in water.", + "Scuba divers wear distinctive masks, fins, and oxygen tanks while submerged in water, often surrounded by bubbles and marine life.", + "A scuba diver wears a distinctive mask and breathing apparatus while submerged underwater." + ], + "rapeseed": [ + "Rapeseed appears as bright yellow flowering plants with small clustered blooms and green leaves on tall slender stems.", + "Rapeseed has bright yellow flowers and small round seeds, unlike most plants which have varied colors and seed shapes.", + "Rapeseed has bright yellow clustered flowers with four petals and small round seed pods on tall green stems.", + "Rapeseed has bright yellow flowers and small round green pods growing in clusters on tall slender stems." + ], + "daisy": [ + "A daisy is a small white flower with a yellow center and thin petals radiating outward from the middle.", + "Daisies have white petals with a yellow center while similar flowers may have different colors shapes or petal arrangements.", + "Daisies have a bright yellow center surrounded by evenly spaced white petals radiating outward.", + "Daisies have white petals around a yellow center and grow on thin green stems with small narrow leaves." + ], + "yellow lady's slipper": [ + "The yellow lady's slipper is a bright yellow orchid with a large slipper-shaped pouch and twisted greenish-brown petals.", + "The yellow lady's slipper has a distinctive pouch-like petal that resembles a slipper with vibrant yellow color and often red or purple spots.", + "The yellow lady's slipper is a bright yellow orchid with a distinctive pouch-like petal and slender green leaves.", + "Yellow lady's slipper has a unique pouch-like yellow flower with twisted petals unlike most other flowers or objects." + ], + "corn": [ + "Corn is a yellow or multicolored elongated grain with a husk often found in clusters on a thick central stalk.", + "Corn has long yellow kernels in tight rows on a thick cob, unlike most other objects which lack this distinct seed arrangement.", + "Corn can be identified by its long green husks covering yellow kernels arranged in tight rows on a thick central cob.", + "Corn has long yellow kernels arranged in tight rows on a thick central cob surrounded by green husks." + ], + "acorn": [ + "An acorn is a small brown nut with a smooth cap, often found on oak trees and the forest floor.", + "Acorns are small, oval, brown nuts with a smooth or slightly rough texture and a distinctive cap, unlike larger or differently shaped seeds.", + "Acorns are small, oval nuts with a smooth, glossy cap and a pointed tip, typically brown and found on oak trees.", + "Acorns are small oval nuts with a smooth shiny brown shell and a rough textured cap on top." + ], + "rose hip": [ + "Rose hips are small round or oval fruits with a bright red or orange color and a dry wrinkled texture unlike smooth petals or leaves.", + "Rose hips are small round or oval red orange fruits with a smooth shiny surface and a dried flower remnant at the tip.", + "Rose hips are small round or oval red-orange fruits with a crown-like sepals remnant at the top.", + "Rose hips are small round or oval red to orange fruits with a crown-like dried flower remnant at the top." + ], + "horse chestnut seed": [ + "Horse chestnut seeds are large, round, shiny brown nuts with a light scar, unlike smaller or differently shaped seeds and nuts.", + "Horse chestnut seeds are recognized by their smooth, shiny brown surface with a large pale scar on one side.", + "A horse chestnut seed is a round, glossy brown nut with a large pale scar on its flat side.", + "The horse chestnut seed has a smooth, shiny brown surface with a distinct light-colored scar resembling an eye." + ], + "coral fungus": [ + "Coral fungus has branching, coral-like structures with many small, delicate, upright fingers or tubes.", + "Coral fungus has branching, coral-like structures with vibrant colors and a clustered, upright growth pattern resembling underwater coral.", + "Coral fungus looks like underwater coral with branching, colorful, and delicate structures but grows on land among plants and trees.", + "Coral fungus looks like underwater coral with branching, colorful, or white clusters growing on the ground or decaying wood." + ], + "agaric": [ + "Agarics are mushrooms with a cap, gills underneath, and a stem, often found in white, brown, or red colors.", + "An agaric is a mushroom with a round cap, gills underneath, and a slender stem, often white or brightly colored.", + "Agarics have a distinct umbrella-shaped cap with gills underneath and a central stem unlike most other fungi or objects.", + "Agarics have a distinctive umbrella-shaped cap with gills underneath and often grow on decaying wood or soil." + ], + "gyromitra": [ + "Gyromitra mushrooms have wrinkled, brain-like caps unlike smooth or gilled caps found on most other mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps with irregular lobes and a reddish-brown color, distinguishing them from smooth-capped mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps, often reddish-brown, and a hollow stem, distinguishing them from other fungi.", + "Gyromitra mushrooms have a distinctive wrinkled brain-like cap unlike other fungi or objects." + ], + "stinkhorn mushroom": [ + "Stinkhorn mushrooms have a phallic shape with a slimy spore mass and a strong foul odor resembling rotting meat.", + "Stinkhorn mushrooms have a distinctive phallic shape with a slimy spore mass and strong odor unlike typical mushrooms or other objects.", + "Stinkhorn mushrooms have a foul-smelling slimy spore mass and a distinctive phallic or lattice-like shape.", + "Stinkhorn mushrooms have a tall, phallic shape with a slimy, smelly tip and often a net-like veil around the base." + ], + "earth star fungus": [ + "Earth star fungi have star-like rays around a central round spore sac, unlike typical mushrooms which lack this distinctive radiating structure.", + "Earth star fungus has a star-like shape with a central round spore sac and pointed rays spreading outward from the base.", + "Earth star fungus has a star-shaped outer layer that splits open to reveal a round spore sac in the center.", + "Earth star fungus looks like a small round puffball with star-like rays spreading outward from the center." + ], + "hen of the woods mushroom": [ + "The hen of the woods mushroom has clustered brownish-gray fronds resembling a ruffled chicken with no distinct cap or stem.", + "The hen of the woods mushroom has a clustered, frilly appearance resembling a brownish-gray rosette, unlike smooth or single-capped mushrooms.", + "The hen of the woods mushroom has tightly clustered, overlapping fronds resembling a ruffled brownish-gray fan growing at tree bases.", + "The hen of the woods mushroom looks like a cluster of brownish-gray ruffled fan-shaped layers growing at the base of trees." + ], + "bolete": [ + "Boletes have thick stems, sponge-like pores underneath their caps, and lack gills unlike many other mushrooms.", + "Boletes are mushrooms with thick stems and sponge-like pores under their caps instead of gills.", + "A bolete is a mushroom with a thick stem and a spongy underside instead of gills often found in forests.", + "Boletes are recognized by their thick stems spongy undersides and lack of gills distinguishing them from other mushrooms." + ], + "corn cob": [ + "A corn cob is a long cylindrical shape with tightly packed yellow kernels, unlike most other objects which vary widely in form and texture.", + "A corn cob is a long cylindrical shape with rows of tightly packed yellow kernels and a green husk when fresh.", + "A corn cob is a long cylindrical object with rows of yellow kernels tightly packed around a central core.", + "Corn cobs have tightly packed rows of yellow kernels attached to a central cylindrical core." + ], + "toilet paper": [ + "Toilet paper is a soft white roll with a cylindrical shape and often has a perforated edge for easy tearing.", + "Toilet paper is a soft white roll with a cylindrical shape and perforated edges unlike most solid or rigid household objects.", + "Toilet paper is a white or lightly colored soft roll with a cylindrical shape and often has a perforated edge.", + "Toilet paper has a tightly rolled cylindrical shape with perforated edges for easy tearing." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetR.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetR.json new file mode 100644 index 0000000..54723a3 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetR.json @@ -0,0 +1,5990 @@ +{ + "tench": [ + "A tench is a freshwater fish with a stout olive-green body, small scales, and a slightly forked tail.", + "Tench are freshwater fish with olive green bodies, small scales, and a thick tail, often found in rivers and lakes.", + "Tench are freshwater fish with olive-green bodies, small scales, and a distinctive barbel near their mouth unlike most other objects.", + "Tench are recognized by their olive-green color, slender body, small scales, and distinctive red eyes." + ], + "goldfish": [ + "Goldfish are small, orange, shiny, and have round bodies with flowing tails, often seen swimming in bowls or ponds.", + "Goldfish are small, orange or gold, shiny, with a plump body, bulging eyes, and flowing tail fins.", + "Goldfish are small, bright orange or red fish with flowing fins, bulging eyes, and a distinct double tail fin.", + "Goldfish are small, brightly colored fish with shiny scales and flowing fins, unlike most objects which lack these aquatic features." + ], + "great white shark": [ + "A great white shark is a large sleek gray predator with a pointed snout sharp teeth and a powerful tail.", + "The great white shark has a distinct pointed snout and large triangular dorsal fin.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, and sharp triangular teeth unlike most other sea creatures.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, pointed snout, and prominent triangular dorsal fin." + ], + "tiger shark": [ + "Tiger sharks have dark vertical stripes on their sides and a blunt snout with a broad, powerful body.", + "A tiger shark has a stout body with dark vertical stripes and a blunt snout resembling a tiger's pattern.", + "Tiger sharks have dark stripes on their backs and a blunt snout unlike most other sharks or sea creatures.", + "Tiger sharks have dark stripes on their backs and sides, a blunt snout, and a large, stocky body with a white underside." + ], + "hammerhead shark": [ + "Hammerhead sharks have a unique T-shaped head with eyes on the sides unlike other sharks or sea creatures.", + "Hammerhead sharks are recognized by their unique T-shaped head with eyes on the ends and a wide flat snout.", + "A hammerhead shark has a unique T-shaped head with eyes on the ends and a grayish body with a white underside.", + "A hammerhead shark has a unique flat T-shaped head with eyes on the sides and a long streamlined gray body." + ], + "electric ray": [ + "An electric ray is a flat rounded fish with a smooth body and a long tail that can generate electric shocks.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs, unlike most fish which are more streamlined and scaly.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs on their undersides for stunning prey.", + "Electric rays have flat bodies with round shapes and visible electric organs on their undersides." + ], + "stingray": [ + "A stingray is a flat diamond-shaped sea creature with a long tail and wide fins resembling a flying underwater kite.", + "Stingrays are flat diamond-shaped sea creatures with long tails and often have a smooth or spiky skin texture.", + "Stingrays have flat diamond-shaped bodies, long tails, and often a spotted or patterned underside for easy recognition.", + "Stingrays have a flat diamond-shaped body with a long thin tail often bearing a venomous spine." + ], + "rooster": [ + "A rooster is a colorful bird with a red comb, wattles, and tail feathers, often standing upright with a proud posture.", + "Roosters have bright combs, long tail feathers, and spurs, unlike hens which are smaller and less colorful.", + "A rooster has a bright red comb and wattle on its head which distinguishes it from other birds and animals.", + "A rooster has a bright red comb on its head, a wattle under its beak, and colorful iridescent feathers." + ], + "hen": [ + "Hens are medium-sized birds with plump bodies, small heads, short beaks, and often have red combs and wattles.", + "Hens have a small head with a beak, plump body, short legs, and often display feathers in brown, white, or black colors.", + "Hens are smaller than turkeys, have shorter tails than peacocks, and lack the colorful plumage of pheasants.", + "A hen is a medium-sized bird with a plump body, short wings, a small head, and a distinctive red comb on top." + ], + "ostrich": [ + "Ostriches are large flightless birds with long necks, legs, and distinctive feathers unlike most animals or objects.", + "Ostriches are large flightless birds with long necks, long legs, and black and white feathers on males.", + "Ostriches have long necks, large eyes, feathery bodies, strong legs, and are the tallest birds with two-toed feet.", + "Ostriches have long bare necks and legs with a large round body covered in fluffy feathers." + ], + "brambling": [ + "A brambling is a small colorful finch with an orange breast black head and white belly often seen in flocks.", + "A brambling is a small bird with an orange chest, black and white wings, and a distinctive white rump patch.", + "The male brambling has a distinctive orange breast and shoulders with black head in breeding season.", + "The brambling has an orange breast, white belly, black head, and white wing patches, distinguishing it from similar birds." + ], + "goldfinch": [ + "A goldfinch is a small bright yellow bird with black wings white markings and a distinctive red face.", + "Goldfinches are recognized by their bright yellow bodies, black wings with white bars, and distinctive red faces.", + "The male goldfinch has bright yellow plumage with striking black and white wing patterns during breeding season.", + "Goldfinches have bright yellow bodies with black wings and white markings, unlike other birds which often lack such vivid color contrasts." + ], + "house finch": [ + "The house finch is a small bird with a red head and chest brown streaks on its back and a conical beak.", + "House finches have streaked brown bodies, red heads and chests on males, and conical beaks suited for eating seeds.", + "A house finch has a red head and chest on males with brown streaks and a plain brown body on females.", + "The house finch has a small body with red or yellow on its head and chest, unlike most other birds and objects." + ], + "junco": [ + "Juncos are small gray or brown birds with white bellies and pink bills, unlike larger or more colorful birds and animals.", + "Juncos are small gray or brown birds with white outer tail feathers and pinkish bills often seen on the ground.", + "A junco is a small gray or brown bird with a white belly and a pinkish beak often seen in North America.", + "Juncos are small gray or brown birds with white bellies and pink bills often seen hopping on the ground." + ], + "indigo bunting": [ + "The indigo bunting is a small bright blue bird with a conical beak and short tail, often found in shrubs or trees.", + "The indigo bunting is a small bright blue bird with a conical bill and darker blue wings and tail.", + "The indigo bunting is a small bright blue bird with a conical beak, unlike most objects which lack such vivid colors and feathers.", + "The male indigo bunting has vibrant blue plumage that appears uniformly bright without any patterns or markings." + ], + "American robin": [ + "The American robin is a medium-sized bird with a reddish-orange breast, gray back, and a white belly with dark streaks.", + "The American robin has a reddish-orange breast, gray back, and white lower belly with dark streaks on its throat.", + "The American robin has a reddish-orange breast, dark gray back, white belly, and a yellow beak.", + "The American robin has a distinctive reddish-orange breast contrasting with its grayish-brown back and white lower belly." + ], + "bulbul": [ + "Bulbuls are small songbirds with short necks, slender bodies, rounded wings, and often have colorful plumage or crests.", + "Bulbul is a small songbird with a slender body, short neck, rounded wings, and often a slightly crested head.", + "Bulbuls are small songbirds with slender bodies, short necks, and often have crests or colorful markings on their heads and tails.", + "Bulbuls are recognized by their small size, short necks, rounded wings, slightly curved beaks, and often crested heads." + ], + "jay": [ + "Jays are colorful birds with blue, white, and black feathers, a crest on their head, and a loud, harsh call.", + "Jays are colorful birds with blue feathers, crests, and white markings, unlike most objects which lack such vibrant and distinct features.", + "A jay is a colorful bird with blue feathers, a crest on its head, and a loud, distinctive call.", + "Jays have striking blue and white plumage with bold black markings and a distinctive crest on their heads." + ], + "magpie": [ + "Magpies are black and white birds with long tails and iridescent feathers that shimmer in shades of blue or green.", + "A magpie is a black and white bird with a long tail and a distinctive chattering call often seen in open areas.", + "Magpies have striking black and white plumage with long tails and iridescent blue-green wing feathers.", + "Magpies have black and white plumage with long tails and a distinctive iridescent sheen unlike most other birds." + ], + "chickadee": [ + "A chickadee is a small round bird with a black cap and bib, white cheeks, and soft gray or brown feathers.", + "Chickadees are small birds with round bodies, black caps, and white cheeks, unlike larger or differently colored birds and objects.", + "Chickadees have a distinctive black cap and bib with white cheeks and a small, round body shape.", + "Chickadees are small birds with black caps and throats, white cheeks, and gray bodies, often seen perched on branches." + ], + "American dipper": [ + "The American dipper is a small grayish-brown bird with a plump body, short tail, and white eyelids, often found near fast-flowing streams.", + "The American dipper is a small gray bird with a plump body, short tail, and white eyelids often seen near fast-flowing streams.", + "The American dipper is a small, stocky gray bird with a short tail, often seen bobbing near fast-flowing streams.", + "The American dipper is recognized by its plump gray body, short tail, and habit of bobbing while standing near fast-flowing streams." + ], + "kite (bird of prey)": [ + "A kite is a medium-sized bird of prey with long wings, a forked tail, and a graceful soaring flight pattern.", + "Look for a medium-sized bird with long pointed wings, a forked tail, and a graceful soaring flight pattern.", + "Kites have slender bodies long pointed wings and forked tails unlike broader wings and stockier builds of similar birds like hawks.", + "Kites have a distinctive forked tail that helps them maneuver gracefully in flight unlike other birds of prey." + ], + "bald eagle": [ + "A bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons.", + "The bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons for easy recognition.", + "Bald eagles have a white head and tail with a dark brown body and large yellow beak unlike most other birds.", + "The bald eagle has a distinctive white head and tail contrasting with its dark brown body." + ], + "vulture": [ + "A vulture is a large bird with a bald head, dark feathers, and a hooked beak, often seen soaring high in the sky.", + "A vulture has a bald head and neck with sharp hooked beak for scavenging.", + "Vultures have bald heads, large hooked beaks, dark feathers, and broad wings for soaring when scanning for carrion.", + "Vultures have bald heads, large hooked beaks, and dark feathers unlike other birds which often have colorful plumage and smaller beaks." + ], + "great grey owl": [ + "The great grey owl has a large round head with concentric rings on its face and a bulky grey body.", + "The great grey owl has a large round face with concentric rings, a bulky body, and no ear tufts unlike many other owls.", + "The great grey owl has a large round face with concentric rings, no ear tufts, and a bulky grey body.", + "The great grey owl is a large, round-faced bird with dark eyes, grey feathers, and a white bowtie-like pattern on its neck." + ], + "fire salamander": [ + "A fire salamander is a black lizard with bright yellow or orange spots, resembling a small, striking amphibian with smooth skin.", + "Fire salamanders have striking black bodies with bright yellow or orange irregular spots or stripes.", + "Fire salamanders are black with bright yellow or orange spots and have a long slender body and short legs.", + "Fire salamanders have black bodies with bright yellow or orange spots, unlike most creatures which are more uniformly colored or differently patterned." + ], + "smooth newt": [ + "A smooth newt is a small, slender amphibian with smooth skin, a long tail, and often greenish or brownish coloring.", + "Smooth newts have olive green skin with dark spots, orange bellies, and a distinct wavy crest in breeding males.", + "The smooth newt has a slimy, spotted skin and a distinct orange belly unlike most other objects which are dry and uniformly colored.", + "The smooth newt has a slender body, smooth skin, and orange belly with black spots, distinguishing it from other small creatures." + ], + "newt": [ + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with smooth moist skin and long tails unlike lizards which have dry scaly skin and often claws.", + "Newts have slender bodies, smooth moist skin, long tails, and often bright colors or distinct patterns for easy recognition." + ], + "spotted salamander": [ + "The spotted salamander is a black amphibian with bright yellow or orange spots covering its smooth, moist skin and long tail.", + "Spotted salamanders have shiny black bodies with bright yellow spots unlike most other salamanders which are more uniformly colored.", + "The spotted salamander has a black body with bright yellow spots arranged in irregular rows.", + "Spotted salamanders have shiny black bodies with bright yellow or orange spots arranged in irregular rows along their back and sides." + ], + "axolotl": [ + "Axolotls have feathery gills, a wide head, and a long tail, unlike most animals which lack these distinct aquatic features.", + "Axolotls are recognized by their feathery external gills, wide heads, lidless eyes, and long finned tails resembling aquatic salamanders.", + "The axolotl has distinctive feathery external gills on its head that no other object in ImageNet possesses.", + "Axolotls are pinkish with feathery gills on their heads, a long tail, and a smooth, slimy body resembling a small dragon." + ], + "American bullfrog": [ + "The American bullfrog is a large green or brown frog with a robust body, prominent eyes, and strong hind legs for jumping.", + "The American bullfrog has a large green body with prominent eardrums and a deep vocal sac under its throat.", + "The American bullfrog is larger with smoother skin and distinct ear patches compared to other frogs and similar small animals.", + "The American bullfrog has a distinctive large circular eardrum behind each eye that is larger than its eye." + ], + "tree frog": [ + "Tree frogs have smooth vibrant skin with distinct round toe pads that help them cling to leaves and branches.", + "Tree frogs are small, bright green with smooth skin and large sticky toe pads unlike most other frogs or objects.", + "Tree frogs are small, bright green or colorful amphibians with large eyes and sticky toe pads for climbing leaves and branches.", + "Tree frogs are small, bright green with smooth skin, large round eyes, and sticky toe pads for climbing." + ], + "tailed frog": [ + "The tailed frog is a small brown amphibian with a flat body short legs and a distinctive tail-like extension in males.", + "Tailed frogs are small with rough bumpy skin short legs and a distinctive tail-like extension under males.", + "Tailed frogs have webbed feet, vertical pupils, and a distinct tail-like extension used for mating among frogs.", + "Tailed frogs have a flattened body, vertical pupils, and a short tail-like extension, unlike most frogs which are rounder with horizontal pupils." + ], + "loggerhead sea turtle": [ + "Loggerhead sea turtles have large heads, reddish-brown shells, and yellowish undersides with strong flippers and serrated rear edges.", + "Loggerhead sea turtles have large heads, reddish-brown shells, and strong jaws, distinguishing them from other sea creatures and objects.", + "The loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws, unlike most other sea creatures.", + "A loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws with a scaly body and flippers." + ], + "leatherback sea turtle": [ + "The leatherback sea turtle is a large dark reptile with a smooth leathery shell and long flippers.", + "The leatherback sea turtle has a distinctive ridged rubbery shell with seven longitudinal ridges.", + "The leatherback sea turtle has a large dark rubbery shell with white spots and seven distinct ridges running lengthwise.", + "The leatherback sea turtle has a unique dark rubbery shell with ridges, unlike other turtles' hard bony shells." + ], + "mud turtle": [ + "A mud turtle is a small, dome-shelled reptile with webbed feet and a rough, brownish or olive-colored skin.", + "Mud turtles are small, dark-shelled turtles with webbed feet and a smooth, oval carapace, often found in muddy or shallow waters.", + "Mud turtles have a distinct domed shell with a rough texture and often appear covered in dirt or mud.", + "Mud turtles have a small dark domed shell with a hinged plastron and webbed feet for swimming and digging." + ], + "terrapin": [ + "Terrapins have a hard shell, webbed feet, and a flat head, unlike turtles which often have flippers and tortoises with stumpy legs.", + "Terrapins have a small, hard shell, webbed feet, and a distinct pattern on their skin and shell for easy recognition.", + "A terrapin looks like a small turtle with a hard shell, webbed feet, and a flat body adapted for swimming and basking.", + "Terrapins are small turtles with webbed feet, domed shells, and often have colorful markings around their head and neck." + ], + "box turtle": [ + "A box turtle has a high domed shell with hinged plastron allowing it to fully close its shell for protection.", + "The box turtle has a high domed shell with a hinged plastron that can completely close for protection.", + "Box turtles have a distinctive domed shell with colorful patterns and a hinged plastron unlike most other objects which lack these features.", + "Box turtles have a high domed shell with yellow orange or red markings and a hinged plastron for partial shell closure." + ], + "banded gecko": [ + "A banded gecko is a small lizard with a striped or spotted body, smooth skin, and large eyes, resembling other small reptiles.", + "Banded geckos are small lizards with striped or banded patterns on their bodies, often with smooth skin and a slender tail.", + "Banded geckos have distinctive dark bands across their bodies and tails unlike other geckos or objects.", + "Banded geckos have distinctive striped patterns and small, smooth scales unlike other lizards or objects which may lack stripes or have rough textures." + ], + "green iguana": [ + "Green iguanas have long tails, spiky backs, and green scales, unlike most objects which lack these distinct reptilian features.", + "A green iguana is a large lizard with a long tail, rough scales, and a spiny crest along its back.", + "Green iguanas have long tails rough scales and a spiny crest along their back with vibrant green coloring and a dewlap under their chin.", + "The green iguana has a distinctive row of spines running down its back to its tail." + ], + "Carolina anole": [ + "The Carolina anole is a small green or brown lizard with a slender body, long tail, and pointed snout.", + "The Carolina anole is a small green or brown lizard with a slender body and a pointed snout unlike most other objects.", + "The Carolina anole is a small green lizard with a slender body, pointed snout, and ability to change color to brown.", + "The Carolina anole has a slender green body, pink dewlap, and can change color to brown for camouflage." + ], + "desert grassland whiptail lizard": [ + "The desert grassland whiptail lizard is a slender, long-tailed reptile with a brown or gray body and light stripes running along its back.", + "The desert grassland whiptail lizard has a long, slender body with distinct light stripes running from head to tail.", + "The desert grassland whiptail lizard has a slender body, long tail, and striped pattern unlike rocks or plants in its habitat.", + "The desert grassland whiptail lizard has a long slender body, striped tail, and smooth scales with brown or gray coloring." + ], + "agama": [ + "An agama is a small colorful lizard with a slender body long tail and often bright scales on its head and body.", + "Agamas are colorful lizards with distinct scaly skin and long tails, unlike most objects which lack these biological features.", + "Agamas are recognized by their slender bodies, triangular heads, long tails, and vibrant scales often in bright orange or blue.", + "Agamas have brightly colored heads and bodies with distinct scale patterns and elongated tails." + ], + "frilled-necked lizard": [ + "The frilled-necked lizard has a large expandable neck frill, long tail, and a slender body with rough scaly skin.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, often seen running on two legs.", + "The frilled-necked lizard has a large, expandable frill around its neck that flares out when threatened or displaying.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, unlike most other animals." + ], + "alligator lizard": [ + "An alligator lizard has a long slender body rough scales a triangular head and a tail resembling a small alligator.", + "Alligator lizards have elongated bodies, rough scales, and long tails, unlike smoother or differently shaped reptiles and non-reptile objects.", + "Alligator lizards have long slender bodies rough scales pointed snouts and distinct foldable skin along their sides.", + "Alligator lizards have a distinct elongated body with rough scales and a tail longer than their body." + ], + "Gila monster": [ + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange skin and a short tail.", + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange bead-like scales.", + "The Gila monster has a thick body, black and pink or orange beaded skin, and a short blunt tail.", + "The Gila monster has a distinctive black and orange beaded pattern, a thick body, and a short tail unlike most other creatures." + ], + "European green lizard": [ + "The European green lizard is a bright green reptile with a slender body and long tail often found in sunny areas.", + "The European green lizard has a bright green body with a slender shape and often a blue throat patch.", + "The European green lizard has a bright green body, often with blue spots on its sides and a long slender tail.", + "The European green lizard has a bright emerald body with small black spots and a distinctive blue throat patch." + ], + "chameleon": [ + "Chameleons are small colorful lizards with bulging eyes, long tails, and the ability to change skin color.", + "Chameleons have bulging eyes, long sticky tongues, color-changing skin, and curled tails unlike most other animals or objects.", + "Chameleons are recognized by their bulging rotating eyes long sticky tongues and ability to change skin color for camouflage.", + "Chameleons can be identified by their bulging eyes long sticky tongues and ability to change colors with scaly skin and curled tails." + ], + "Komodo dragon": [ + "The Komodo dragon is a large, heavy lizard with rough scaly skin, a long tail, and a powerful, muscular body.", + "A Komodo dragon is a large, scaly reptile with a long body, powerful tail, and rough, armored skin resembling a prehistoric lizard.", + "Komodo dragons have rough scaly skin, long tails, sharp claws, and a large muscular body with a distinct forked tongue.", + "The Komodo dragon has rough scaly skin with a distinct ridged pattern and a long forked tongue." + ], + "Nile crocodile": [ + "The Nile crocodile is a large, scaly reptile with a long snout, powerful tail, and sharp teeth, often found near water.", + "The Nile crocodile has a long snout, armored skin, and a powerful tail, unlike most animals or objects.", + "The Nile crocodile has a long snout, armored skin with bony plates, and a powerful tail, often seen near water.", + "The Nile crocodile has a long V-shaped snout, armored skin with bony plates, and a powerful tail for swimming." + ], + "American alligator": [ + "The American alligator is a large, dark-colored reptile with a broad snout, armored scales, and a powerful tail.", + "The American alligator has a broad snout, dark armored body, and visible teeth when its mouth is closed.", + "The American alligator has a broad U-shaped snout and visible upper teeth when its mouth is closed.", + "The American alligator has a broad snout, dark color, and armored body with bony plates, unlike most animals and objects." + ], + "triceratops": [ + "A triceratops is a large dinosaur with three horns, a bony frill, and a bulky four-legged body resembling a rhinoceros.", + "Triceratops have three horns and a large bony frill unlike other dinosaurs which lack these distinct facial features.", + "Triceratops have three horns on their face and a large bony frill around their neck.", + "Triceratops are recognized by their three facial horns large bony frill and quadrupedal stance resembling a rhinoceros with a shield." + ], + "worm snake": [ + "Worm snakes are small, slender, and smooth with shiny scales unlike thicker rough-skinned creatures or segmented wriggling earthworms.", + "Worm snakes are recognized by their tiny slender bodies smooth scales and earthworm-like appearance lacking distinct heads or legs.", + "Worm snakes have a slender, smooth, and shiny body resembling an earthworm with no visible limbs or distinct head.", + "A worm snake looks like a tiny smooth shiny earthworm with a pointed tail and no visible legs or eyes." + ], + "ring-necked snake": [ + "The ring-necked snake is a small slender reptile with smooth scales and a distinctive yellow or orange ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange ring around its neck contrasting its dark body.", + "The ring-necked snake is small and slender with a bright yellow or orange belly and a distinct ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange neck ring and smooth scales unlike most other objects." + ], + "eastern hog-nosed snake": [ + "The eastern hog-nosed snake has a flattened, upturned snout, bold dark blotches on its back, and often flattens its neck when threatened.", + "The eastern hog-nosed snake has a distinctive upturned snout and flattened neck, unlike similar snakes or objects without these features.", + "The eastern hog-nosed snake has a stout body, upturned snout, and variable colors often with dark blotches on a lighter background.", + "The eastern hog-nosed snake has a distinctive upturned snout used for digging and a dramatic defensive display of flattening its neck." + ], + "smooth green snake": [ + "The smooth green snake has a uniformly bright green body without any markings or patterns.", + "A smooth green snake has a slender, uniform green body with no patterns, blending seamlessly with leafy surroundings.", + "The smooth green snake is a slender bright green reptile with a uniform color and no markings blending into grassy environments.", + "The smooth green snake has a bright uniform green color and slender body unlike most other objects which vary in color and shape." + ], + "kingsnake": [ + "A kingsnake is a smooth-scaled, slender reptile with vibrant banded patterns in colors like black, white, yellow, and red.", + "Kingsnakes have smooth, shiny scales with bold, alternating bands of black, white, and red or yellow colors.", + "Kingsnakes have smooth, shiny scales with bold, colorful banded patterns, unlike most objects which lack such distinct reptilian features and markings.", + "Kingsnakes have distinctive bold alternating bands of black white and red or yellow along their bodies." + ], + "garter snake": [ + "A garter snake is a slender, striped reptile with smooth scales, typically green or brown, often found near water or grassy areas.", + "Garter snakes have long slender bodies with distinct striped or checkered patterns in green brown or yellow colors.", + "Garter snakes are slender with long stripes running down their bodies and typically have a green brown or black base color.", + "Garter snakes have distinct longitudinal stripes running the full length of their slender bodies unlike most other snakes or objects." + ], + "water snake": [ + "A water snake is a slender, elongated reptile with smooth scales, often found near water, resembling a non-venomous version of a sea snake.", + "Water snakes have long, slender bodies with smooth scales and lack limbs, unlike fish with fins or turtles with shells and legs.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water." + ], + "vine snake": [ + "A vine snake is a slender green or brown reptile that resembles a thin vine or branch for camouflage.", + "Vine snakes are long, thin, and green like vines, unlike thicker or differently colored snakes and non-snake objects.", + "Vine snakes are long thin green or brown snakes that resemble vines with pointed heads and often stay motionless in trees.", + "Vine snakes have extremely slender bodies with pointed heads mimicking twigs for camouflage." + ], + "night snake": [ + "The night snake is a small slender reptile with smooth scales and a pale gray or light brown color.", + "Night snakes are small slender reptiles with smooth scales and distinct dark blotches unlike other objects which lack these specific features.", + "The night snake is a small slender reptile with smooth scales, light brown or gray coloring, and dark blotches along its back.", + "Night snakes have slender bodies, smooth scales, vertical pupils, and distinct dark blotches on a light gray or brown background." + ], + "boa constrictor": [ + "A boa constrictor is a large thick-bodied snake with distinctive patterns while other objects vary widely in shape color and texture.", + "A boa constrictor is a large heavy-bodied snake with distinctive patterns and smooth scales often in earthy colors.", + "Boa constrictors have thick muscular bodies with distinctive saddle-like patterns and a triangular head shape.", + "A boa constrictor is a large heavy-bodied snake with distinctive dark brown saddle-like markings and a lighter background color." + ], + "African rock python": [ + "The African rock python is a large, thick-bodied snake with blotchy brown and tan scales and a distinctive triangular head.", + "The African rock python has a thick patterned body while others vary in shape color and texture like birds or mammals.", + "The African rock python is a large snake with brown and tan blotches and a thick body, distinct from other objects.", + "The African rock python has large irregular blotches with dark brown edges and lighter centers on its scales." + ], + "Indian cobra": [ + "The Indian cobra is a slender venomous snake with a distinctive hood and often has spectacled markings on its back.", + "The Indian cobra has a distinctive hood with circular markings and a slender body with smooth scales.", + "The Indian cobra has a hood with a distinctive spectacle-like mark and a slender, elongated body with smooth scales.", + "The Indian cobra has a distinctive hood with circular eye-like markings when it feels threatened." + ], + "green mamba": [ + "The green mamba is a slender bright green snake with a narrow head and smooth scales often found in trees.", + "The green mamba is a sleek bright green snake with a slender body and smooth scales standing out among diverse objects.", + "The green mamba is a long, slender, bright green snake with smooth scales, unlike most other objects which vary widely in shape and color.", + "The green mamba has a long slender bright green body with a narrow head and smooth scales." + ], + "sea snake": [ + "A sea snake is a long slender aquatic reptile with smooth scales often banded or patterned living in tropical oceans.", + "Sea snakes have long slender bodies, paddle-like tails, and distinctive banded or striped patterns for swimming in marine environments.", + "Sea snakes have long slender bodies paddle-like tails and smooth scales unlike fish eels or land snakes which have different shapes and textures.", + "Sea snakes have long slender bodies flattened tails smooth scales and often bright banded patterns for swimming in ocean waters." + ], + "Saharan horned viper": [ + "The Saharan horned viper is a sandy-colored snake with distinctive horn-like scales above its eyes and a thick, patterned body.", + "The Saharan horned viper has distinctive horn-like scales above its eyes unlike any other object.", + "The Saharan horned viper has a sandy color, a thick body, and distinctive horn-like scales above its eyes.", + "The Saharan horned viper has distinctive horn-like scales above its eyes and a sandy, patterned body for camouflage." + ], + "eastern diamondback rattlesnake": [ + "The eastern diamondback rattlesnake is a large venomous snake with diamond-shaped patterns and a distinctive rattle on its tail.", + "The eastern diamondback rattlesnake has a distinctive diamond pattern and a rattle on its tail unlike most other objects.", + "The eastern diamondback rattlesnake has a distinctive pattern of dark diamond shapes along its back and a large rattle on its tail.", + "The eastern diamondback rattlesnake has distinctive dark diamond-shaped patterns with light borders along its back." + ], + "sidewinder rattlesnake": [ + "The sidewinder rattlesnake has a distinctive sideways looping movement and horn-like scales above its eyes for easy recognition.", + "The sidewinder rattlesnake has a sandy-colored, patterned body with a triangular head and a distinctive rattle on its tail.", + "The sidewinder rattlesnake has a pale sandy color with dark blotches and distinctive horn-like scales above its eyes.", + "The sidewinder rattlesnake has a sandy-colored, coiled body with horn-like scales above its eyes and a distinctive sideways movement track." + ], + "trilobite": [ + "Trilobites have a distinct segmented body with three longitudinal lobes that no other objects share.", + "Trilobites have a distinct segmented body with a hard exoskeleton and three lobes, unlike most other objects which lack these features.", + "Trilobites are small extinct marine arthropods with segmented bodies and hard exoskeletons resembling modern horseshoe crabs or beetles.", + "Trilobites have a distinct segmented oval body with a hard exoskeleton and visible ridges dividing it into three lobes." + ], + "harvestman": [ + "Harvestmen have small oval bodies with eight long thin legs and no waist unlike spiders which have segmented bodies and shorter legs.", + "Harvestmen have long thin legs and a small round body without the segmented waist seen in spiders.", + "Harvestmen have small oval bodies with eight long thin legs and no visible waist or segmentation between body parts.", + "A harvestman looks like a small spider with a tiny round body and long thin legs but no waist or fangs." + ], + "scorpion": [ + "A scorpion is a small arachnid with a segmented tail curled over its back and large pincers resembling a lobster.", + "Scorpions have a segmented tail with a stinger and large pincers unlike most other creatures or objects.", + "A scorpion has a distinct segmented tail that curves forward over its body ending with a venomous stinger.", + "Scorpions have a segmented tail with a stinger and large pincers resembling crabs making them easily recognizable." + ], + "yellow garden spider": [ + "The yellow garden spider has a bright yellow and black body with a large, circular web and long striped legs.", + "The yellow garden spider has a bright yellow and black abdomen with long striped legs and a circular web.", + "The yellow garden spider has a bright yellow and black patterned body with long legs and a large round abdomen.", + "The yellow garden spider has a distinctive black and yellow patterned abdomen with a zigzag web stabilimentum." + ], + "barn spider": [ + "A barn spider is a large, brownish orb-weaver with a round abdomen and long legs, often found near wooden structures or in webs.", + "Barn spiders are recognized by their large, round abdomens, long legs, and intricate orb-shaped webs often built near wooden structures.", + "Barn spiders have a round abdomen, long legs, and a distinctive web pattern unlike other objects which lack these features.", + "A barn spider has a round abdomen with yellow and brown markings and long legs, often found in webs near wooden structures." + ], + "European garden spider": [ + "The European garden spider has a round striped abdomen with long legs and intricate web patterns among natural surroundings.", + "The European garden spider has a round abdomen with yellow and black markings and long striped legs.", + "The European garden spider has a distinctive cross-shaped white mark on its large, round abdomen with yellow and black patterns.", + "The European garden spider has a distinctive cross-shaped white pattern on its large, round abdomen." + ], + "southern black widow": [ + "The southern black widow is a shiny black spider with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass marking on its underside." + ], + "tarantula": [ + "A tarantula is a large hairy spider with long legs and a dark brown or black body often with subtle markings.", + "A tarantula is a large hairy spider with long legs and a dark often brown or black body.", + "Tarantulas are large hairy spiders with long legs and fangs unlike most insects or small smooth-bodied creatures.", + "Tarantulas have thick hairy legs and bodies with distinct large fangs and multiple eyes clustered together." + ], + "wolf spider": [ + "A wolf spider is a hairy, brown or gray spider with long legs and often has distinctive eye patterns on its head.", + "Wolf spiders are hairy brown or gray with distinct eye patterns often seen in two rows and they do not build webs.", + "Wolf spiders are hairy with stout bodies and distinct eye patterns unlike smoother insects or more slender spiders.", + "Wolf spiders are recognized by their hairy brown bodies, distinctive eye arrangement in three rows, and fast ground-dwelling movement." + ], + "tick": [ + "Ticks are small, flat, oval arachnids with eight legs, unlike insects or seeds which often have different shapes and fewer legs.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, resembling tiny seeds or specks.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, and swell when feeding on blood.", + "Ticks have small, flat, oval bodies with eight legs and are often dark brown or black in color." + ], + "centipede": [ + "Centipedes have long segmented bodies with many legs while similar objects like worms or millipedes lack legs or have shorter bodies.", + "Centipedes are long, segmented creatures with many legs, one pair per body segment, and a flattened, elongated body.", + "Centipedes are long thin segmented creatures with many legs and antennae often found in dark damp places.", + "Centipedes have numerous long legs evenly spaced along their elongated segmented body unlike any other creature." + ], + "black grouse": [ + "Black grouse are medium-sized birds with black plumage, lyre-shaped tails in males, and white wing bars in flight.", + "Black grouse are medium-sized birds with dark plumage, lyre-shaped tails in males, and distinctive red eye combs.", + "The black grouse is a medium-sized bird with dark plumage, a lyre-shaped tail, and striking red eye combs.", + "Male black grouse have dark plumage with white wing patches and lyre-shaped tail feathers while females are mottled brown for camouflage." + ], + "ptarmigan": [ + "A ptarmigan is a medium-sized, plump bird with feathered feet, mottled brown or white plumage, and a short beak.", + "Ptarmigans are medium-sized birds with feathered feet, mottled brown or white plumage, and short beaks, often found in rocky tundra habitats.", + "Ptarmigans are white in winter and mottled brown in summer with feathered feet unlike most birds and animals.", + "Ptarmigans are recognized by their feathered feet, seasonal color-changing plumage, and round bodies with short tails and wings." + ], + "ruffed grouse": [ + "The ruffed grouse is a medium-sized brown bird with a fan-shaped tail and a crest of feathers on its head.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail with dark bands, and a distinctive neck ruff.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail, and a small crest, unlike smoother or differently shaped birds and objects.", + "Ruffed grouse are medium-sized brown birds with a crest, barred patterns, and a fan-shaped tail often seen in wooded areas." + ], + "prairie grouse": [ + "Prairie grouse are medium-sized, brownish birds with mottled feathers, short tails, and feathered legs, unlike most birds or other animals.", + "Prairie grouse are medium-sized, stocky birds with mottled brown feathers, short tails, and often display distinctive feather patterns during mating.", + "Prairie grouse are medium-sized birds with mottled brown feathers, short tails, and feathered legs, often found in grassy habitats.", + "Prairie grouse have distinctive feathered legs and feet unlike most other birds." + ], + "peafowl": [ + "Peafowl are large colorful birds with long iridescent tail feathers and a distinctive crest on their heads.", + "Peafowl are large colorful birds with long iridescent tail feathers and distinctive crests on their heads.", + "Peafowls have vibrant iridescent feathers with eye-like patterns and long ornate tails unlike most birds and animals.", + "Peafowl are recognized by their iridescent blue and green plumage, long tail feathers with eye spots, and distinctive crests on their heads." + ], + "quail": [ + "Quail are small, plump birds with short necks, speckled brown feathers, and distinctive head crests or topknots.", + "Quail are small ground birds with plump bodies, short tails, speckled brown feathers, and distinctive head crests or topknots.", + "Quails are small, plump birds with short tails, speckled brown feathers, and often a distinctive head crest.", + "Quail have small, plump bodies with distinctive speckled or scaled feather patterns and short, curved beaks." + ], + "partridge": [ + "Partridges are small, plump birds with short tails and legs, often brown or gray, unlike larger or more colorful birds.", + "Partridges are small, plump game birds with short necks, rounded wings, and often have brown or gray feathers with subtle patterns.", + "A partridge is a plump, medium-sized bird with brown and gray feathers, short legs, and a rounded body resembling a small chicken.", + "Partridges are small plump birds with short rounded wings, brown or gray feathers, and often have distinctive markings on their chests." + ], + "african grey parrot": [ + "The African grey parrot is a medium-sized grey bird with a short red tail and a distinctive white face patch.", + "The African grey parrot has a distinctive solid grey body, bright red tail, and a sharp black beak.", + "The African grey parrot has a distinctive bright red tail contrasting with its grey body and white face.", + "The African grey parrot has a distinctive grey body, white face mask, and bright red tail feathers." + ], + "macaw": [ + "Macaws are recognized by their vibrant colorful feathers large curved beaks long tails and loud squawks.", + "Macaws are large colorful parrots with long tails and strong curved beaks unlike most other birds or objects.", + "Macaws are large colorful parrots with long tails vibrant feathers and strong curved beaks often seen in tropical regions.", + "Macaws are large colorful parrots with long tails strong curved beaks and vibrant feathers often in bright blues greens and reds." + ], + "sulphur-crested cockatoo": [ + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and a curved black beak.", + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and curved beak.", + "The sulphur-crested cockatoo has a bright yellow crest and white feathers, unlike most birds which lack such vivid coloration and distinct head features.", + "The sulphur-crested cockatoo has a bright yellow crest, white feathers, and a large curved beak for easy recognition." + ], + "lorikeet": [ + "Lorikeets are colorful parrots with bright plumage and slender bodies unlike other birds or objects which lack such vivid hues and shapes.", + "Lorikeets are recognized by their vibrant rainbow-colored feathers, slender curved beaks, and small energetic bodies.", + "Lorikeets are small colorful parrots with bright feathers often in green blue red and yellow shades.", + "Lorikeets are small colorful parrots with bright green bodies, blue heads, and red or yellow patches on their chests and beaks." + ], + "coucal": [ + "A coucal is a large, long-tailed bird with strong legs, often dark-colored and resembling a cross between a pheasant and a cuckoo.", + "Coucals are large birds with long tails and strong legs, often dark with some colorful patches, unlike smaller or more uniformly colored birds.", + "Coucals are large birds with long tails, strong legs, and dark plumage often showing subtle patterns or iridescence.", + "Coucals are recognized by their long tails, strong legs, black or dark plumage, and often reddish eyes." + ], + "bee eater": [ + "A bee eater is a colorful bird with a slender body, long beak, and vibrant plumage, often seen perched or catching insects mid-flight.", + "Bee eaters are small colorful birds with slender bodies long pointed bills and bright plumage often green blue or orange.", + "Bee eaters are colorful birds with slender bodies, long pointed bills, and often have striking green, blue, or brown plumage.", + "Bee eaters are recognized by their bright colorful plumage slender curved bills and long central tail feathers." + ], + "hornbill": [ + "Hornbills have a large curved beak with a prominent casque on top that no other objects share.", + "Hornbills are large birds with long curved bills and often have bright colors or striking casques on top of their beaks.", + "Hornbills are large birds with long curved beaks, often topped with a prominent casque, and colorful plumage.", + "Hornbills have large curved beaks and prominent casques on top making them easily recognizable among birds." + ], + "hummingbird": [ + "A hummingbird is a tiny colorful bird with a long thin beak and rapidly fluttering wings often seen hovering near flowers.", + "Hummingbirds are recognized by their tiny size, iridescent feathers, rapid wing beats, long slender bills, and ability to hover midair.", + "Hummingbirds are tiny with iridescent feathers and long thin beaks unlike most birds which are larger and less colorful.", + "Hummingbirds are tiny birds with iridescent feathers, long slender beaks, and rapid wing beats often seen hovering near flowers." + ], + "jacamar": [ + "Jacamars are small colorful birds with long sharp bills and metallic green or blue plumage often seen in tropical forests.", + "Jacamars are small colorful birds with long bills and metallic plumage unlike most other birds which have shorter bills and duller colors.", + "Jacamars have a distinctive long, slender bill with iridescent plumage and often perch upright on branches.", + "A jacamar is a small colorful bird with a long sharp beak and shiny metallic feathers often found in tropical forests." + ], + "toucan": [ + "Toucans have large colorful bills and vibrant feathers unlike most birds which have smaller beaks and duller colors.", + "A toucan is a colorful bird with a large curved beak black body and bright markings often found in tropical regions.", + "Toucans are easily recognized by their large colorful bills and striking black feathers with bright patches.", + "Toucans are recognized by their large colorful bills and vibrant plumage contrasting with dark bodies." + ], + "duck": [ + "Ducks have webbed feet, flat bills, rounded bodies, short legs, and often display waterproof feathers in various colors.", + "Ducks have webbed feet, flat bills, and waterproof feathers unlike other birds and animals with different feet, beaks, or fur.", + "Ducks have a broad flat bill and webbed feet that no other objects share together.", + "Ducks are medium-sized water birds with webbed feet, flat bills, and often have colorful feathers and a waddling walk." + ], + "red-breasted merganser": [ + "Look for a sleek duck with a dark green head, red eyes, and a long thin red bill with a shaggy crest.", + "The red-breasted merganser is a sleek diving duck with a spiky crest, dark head, red chest, and long thin red bill.", + "The red-breasted merganser has a distinctive spiky crest, long thin red bill, and reddish-brown breast unlike most other ducks.", + "The red-breasted merganser has a sleek body, spiky crest, long thin red bill, and striking red breast with white neck." + ], + "goose": [ + "A goose is a large waterbird with a long neck, webbed feet, and typically white or gray feathers.", + "Geese have long necks, webbed feet, and white or gray feathers, unlike most birds or objects with different shapes and textures.", + "Geese are large water birds with long necks, webbed feet, and typically white or gray feathers, often seen near water.", + "Geese have long necks, webbed feet, white or gray feathers, and a distinctive beak shape for easy recognition." + ], + "black swan": [ + "A black swan is a large waterbird with dark plumage, a long curved neck, and a bright red beak.", + "The black swan has entirely black plumage with a bright red beak and white wingtips when flying.", + "A black swan has sleek black feathers, a long curved neck, and a red beak, unlike most birds which are often colorful or plain.", + "A black swan has a dark black body, long curved neck, and bright red beak with white wing tips when flying." + ], + "tusker": [ + "A tusker is a large elephant with prominent, long tusks that extend outward from its mouth.", + "A tusker has large, prominent tusks and a massive body, distinguishing it from other animals without such features.", + "A tusker is a large elephant with prominent long curved tusks, standing out due to its massive size and distinctive ivory.", + "A tusker has long curved ivory tusks protruding from its mouth, distinguishing it from other large animals." + ], + "echidna": [ + "Echidnas are small spiny mammals with long snouts and sharp claws unlike smooth or furry animals and man-made objects.", + "Echidnas are small spiny mammals with long snouts short legs and a distinctive coat of sharp spines covering their backs.", + "An echidna is a small spiny mammal with a long snout resembling a hedgehog mixed with an anteater.", + "Echidnas have a distinctive spiny coat combined with a long snout and small mouth." + ], + "platypus": [ + "A platypus has a duck-like bill, webbed feet, a beaver-like tail, and a furry body with a flat streamlined shape.", + "The platypus has a duck-like bill, webbed feet, a beaver-like tail, and a sleek furry body for easy recognition.", + "The platypus has a duck-like bill, a beaver-like tail, and webbed feet with a furry, streamlined body.", + "The platypus has a unique duck-like bill, webbed feet, and a beaver-like tail unlike other animals." + ], + "wallaby": [ + "Wallabies are small to medium-sized marsupials with strong hind legs, long tails, and resemble kangaroos but are generally more compact.", + "Wallabies are small kangaroo-like marsupials with compact bodies, strong hind legs, long tails, and distinctive facial markings.", + "Wallabies have compact bodies with strong hind legs and long tails adapted for hopping and balancing in rugged terrain.", + "Wallabies are smaller than kangaroos with compact bodies, shorter legs, and distinctive facial markings compared to similar marsupials." + ], + "koala": [ + "Koalas have a round face with large fluffy ears and a distinctive black nose.", + "Koalas are small gray fuzzy mammals with round ears and a large nose, unlike most objects which are not living or furry.", + "Koalas are gray furry animals with round faces big black noses and fluffy ears often seen clinging to eucalyptus trees.", + "Koalas are small bear-like animals with gray fur, round faces, big noses, and fluffy ears, often seen clinging to trees." + ], + "wombat": [ + "Wombats are stout, burrowing marsupials with short legs, a broad head, and a thick, barrel-shaped body covered in coarse fur.", + "Wombats are stout furry marsupials with short legs and broad heads unlike most animals which are leaner or have longer limbs.", + "Wombats have a stout body, short legs, and a broad head with small ears and a distinctive waddling gait.", + "A wombat is a stout, furry marsupial with a short tail, small ears, and a bear-like face resembling a small barrel." + ], + "jellyfish": [ + "Jellyfish have translucent gelatinous bodies with trailing tentacles unlike most solid opaque objects without such flowing appendages.", + "Jellyfish are translucent gelatinous sea creatures with umbrella-shaped bells and trailing tentacles floating in water.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles that glow underwater unlike any other sea creature.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles and radial symmetry distinguishing them from other sea creatures." + ], + "sea anemone": [ + "Sea anemones have distinctive flowing tentacles surrounding a central mouth unlike any other object.", + "Sea anemones have soft, colorful, tentacle-covered bodies unlike hard corals or plants, resembling underwater flowers with flowing appendages.", + "Sea anemones are soft, colorful, tube-shaped marine creatures with flowing tentacles around a central mouth, resembling underwater flowers.", + "A sea anemone looks like a colorful underwater flower with soft, flowing tentacles surrounding a central mouth." + ], + "brain coral": [ + "Brain coral has a textured, bumpy surface resembling a brain, unlike smoother or differently shaped corals and marine objects.", + "Brain coral has a distinctive grooved surface resembling a human brain's folds, setting it apart from other corals and objects.", + "Brain coral has a round, bumpy, grooved surface resembling a human brain, typically in shades of brown, green, or yellow.", + "Brain coral has a distinctive grooved, maze-like surface resembling a human brain, with rounded shapes and earthy tones." + ], + "flatworm": [ + "Flatworms are soft, flat, and often ribbon-like with simple body structures unlike most other animals which have more complex features.", + "Flatworms are recognized by their flat, soft, ribbon-like bodies with simple eyespots and often colorful or patterned surfaces.", + "Flatworms are soft flat ribbon-like creatures often found in water with simple elongated bodies and no segments or legs.", + "Flatworms have a thin flattened ribbon-like body with no segments and often show bilateral symmetry with simple eyespots." + ], + "nematode": [ + "Nematodes are long thin unsegmented worms unlike most objects which are thicker segmented or not wormlike at all.", + "Nematodes are tiny thread-like worms with smooth cylindrical bodies often seen in soil or water under magnification.", + "Nematodes are long slender cylindrical worms with smooth unsegmented bodies often appearing thread-like under magnification.", + "Nematodes are tiny slender wormlike creatures often translucent or white with smooth unsegmented bodies and tapered ends." + ], + "conch": [ + "A conch is a large spiral seashell with a glossy exterior and a flared opening, often pink or orange inside.", + "A conch is a large spiral seashell with a pointed tip and a wide flared opening often in pink or orange hues.", + "Conchs have spiral shells with a flared lip and often show vibrant colors or patterns unlike other sea creatures or objects.", + "The conch has a distinctive spiral shell with a flared lip and pointed tip." + ], + "snail": [ + "A snail is a small soft-bodied creature with a spiral shell and two tentacles on its head.", + "Snails have a coiled shell on their back and a soft slimy body unlike most other objects which are hard or lack shells.", + "Snails have a coiled spiral shell on their back and a soft slimy body with tentacles on their head.", + "Snails have a coiled spiral shell and a soft slimy body with tentacles on their head for eyes and sensing." + ], + "slug": [ + "Slugs are soft slimy legless creatures with no shell long bodies and tentacles on their heads.", + "A slug is a slimy, soft-bodied, legless creature resembling a snail without a shell, typically brown or gray and elongated.", + "Slugs are soft slimy legless creatures without shells unlike snails which have hard spiral shells on their backs.", + "Slugs are soft slimy elongated bodies without shells leaving shiny trails often found in moist environments." + ], + "sea slug": [ + "Sea slugs are soft, colorful, and often have frilly or wavy appendages unlike most rigid or plain sea creatures.", + "Sea slugs are soft colorful marine creatures with elongated bodies tentacles and often intricate patterns or bright hues.", + "Sea slugs have vibrant colorful patterns and elongated soft bodies with distinct frilly or feathery external gills.", + "Sea slugs are recognized by their soft elongated bodies bright colors and intricate patterns often with frilly appendages." + ], + "chiton": [ + "Chitons are oval marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are oval-shaped marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are recognized by their oval segmented shells with eight overlapping plates and a leathery outer girdle.", + "A chiton is a small oval marine mollusk with a shell made of overlapping plates and a soft muscular foot underneath." + ], + "chambered nautilus": [ + "The chambered nautilus has a spiral shell with striped patterns and tentacles, unlike most objects which lack such distinct organic features.", + "The chambered nautilus has a spiral shell with striped patterns and many small chambers inside its coiled structure.", + "The chambered nautilus has a spiral shell with internal chambers divided by walls called septa.", + "The chambered nautilus has a spiral shell with striped patterns and multiple internal chambers visible in cross-section." + ], + "Dungeness crab": [ + "Dungeness crabs have a wide reddish-brown shell, ten legs with white tips, and large claws with black edges.", + "Dungeness crabs have a wide reddish-brown shell with white-tipped claws and ten legs including two large pincers.", + "Dungeness crabs have a wide oval body with purple-tinged edges and ten legs including large pincers unlike most other sea creatures.", + "The Dungeness crab has a wide oval-shaped shell with distinct white-tipped claws and a reddish-brown to purple hue." + ], + "rock crab": [ + "Rock crabs have a hard rounded shell, ten legs, and large claws, unlike smoother or differently shaped sea creatures and objects.", + "Rock crabs have a broad oval shell with sharp spines and large claws, usually reddish brown or yellowish in color.", + "Rock crabs have a rounded, bumpy shell with thick legs and large claws, often reddish-brown or dark orange in color.", + "A rock crab has a rounded, hard shell, thick legs with claws, and often appears in shades of brown, red, or orange." + ], + "fiddler crab": [ + "A fiddler crab is a small crustacean with one large claw and a round body, often found in sandy or muddy shores.", + "Fiddler crabs have one large claw and one small claw with a sideways walking motion and round flat body.", + "Fiddler crabs have one large claw and one small claw, unlike most crabs which have two equal-sized claws.", + "Fiddler crabs are small with one large claw on males and a rounded body often in muddy or sandy colors." + ], + "red king crab": [ + "The red king crab has a large spiky reddish shell, long legs with sharp tips, and prominent claws with black edges.", + "The red king crab is a large crustacean with a spiky red shell, long legs, and prominent claws.", + "The red king crab has a large spiky shell, long legs, and distinctive red-orange coloring unlike smoother or differently shaped objects.", + "The red king crab has large spiky legs with bright red-orange coloring and a distinctive triangular body shape." + ], + "American lobster": [ + "American lobsters have large claws, a hard dark shell, and long antennae, unlike most other sea creatures or objects.", + "The American lobster has large claws with one being noticeably heavier and thicker than the other.", + "American lobsters have large dark blue-green to black claws, a long segmented tail, and a hard shell with spines.", + "American lobsters have large claws, a dark blue-green shell, and a segmented body with a long tail and spiny legs." + ], + "spiny lobster": [ + "Spiny lobsters have long antennae, a hard segmented body, and lack large claws, with spines covering their shell.", + "Spiny lobsters have long thick antennae without claws and a hard segmented body covered in sharp spines.", + "Spiny lobsters have long antennae and lack claws, unlike true lobsters which have large front claws and shorter antennae.", + "Spiny lobsters have long thick antennae no claws and a hard segmented body covered in sharp spines for protection." + ], + "crayfish": [ + "Crayfish have elongated bodies with claws and segmented tails unlike most other aquatic creatures or objects.", + "Crayfish have a small lobster-like body with large front claws and a segmented tail often found in freshwater habitats.", + "Crayfish have elongated bodies, jointed limbs, large claws, segmented tails, and often a reddish or brownish hard exoskeleton.", + "Crayfish are small freshwater crustaceans with a hard exoskeleton, two large claws, a segmented tail, and long antennae resembling tiny lobsters." + ], + "hermit crab": [ + "Hermit crabs have a soft coiled abdomen inside a borrowed shell unlike true crabs which have hard full shells and exposed abdomens.", + "Hermit crabs have soft curled abdomens inside spiral shells with claws and legs sticking out often found near beaches.", + "A hermit crab is a small crustacean with a soft curled abdomen often hidden inside a borrowed spiral seashell for protection.", + "Hermit crabs have a soft coiled abdomen inside a borrowed spiral shell with visible legs and claws sticking out." + ], + "isopod": [ + "Isopods have a segmented, flattened body with multiple legs, unlike most objects which are smoother and lack such distinct segments.", + "Isopods are small, flat, segmented crustaceans with seven pairs of legs and a hard exoskeleton, often resembling tiny armored bugs.", + "An isopod is a small, segmented crustacean with a flattened body, multiple legs, and a hard exoskeleton resembling a pill bug or woodlouse.", + "Isopods are recognized by their segmented flat bodies, multiple legs, and armored exoskeletons resembling small aquatic or terrestrial pill-shaped creatures." + ], + "white stork": [ + "The white stork has a long red beak, black wing edges, and a mostly white body with long legs.", + "The white stork is a tall, slender bird with long legs, a long neck, and mostly white feathers with black wingtips.", + "The white stork has a distinctive long red bill and legs contrasting with its pure white plumage.", + "The white stork has long red legs, a white body with black wing edges, and a long pointed red beak." + ], + "black stork": [ + "The black stork has glossy black plumage, a long red beak, and white underparts with red legs and a slender neck.", + "The black stork is a large, dark bird with long red legs, a pointed red beak, and white underparts.", + "The black stork has glossy black feathers with a white belly and a striking red beak and legs.", + "The black stork has long red legs, a black body, and a white belly, unlike similar birds with different colors or shorter legs." + ], + "spoonbill": [ + "Spoonbills have long flat bills shaped like spoons and often display bright pink or white plumage with long legs.", + "Spoonbills are large wading birds with long legs, distinctive spoon-shaped bills, and often pink or white plumage.", + "Spoonbills are tall wading birds with long legs, distinctive flat spoon-shaped bills, and often pink or white plumage.", + "Spoonbills have long flat bills shaped like spoons, unlike other birds with pointed or curved beaks and different body shapes." + ], + "flamingo": [ + "Flamingos are tall pink birds with long legs and curved beaks unlike most other birds or objects.", + "Flamingos are recognized by their long legs, curved necks, pink feathers, and standing on one leg in water.", + "Flamingos are tall pink birds with long thin legs curved beaks and often stand on one leg in water.", + "A flamingo is a tall pink bird with long legs, a curved neck, and a slender beak standing in shallow water." + ], + "little blue heron": [ + "The little blue heron is a small blue-gray wading bird with a slender body long legs and a pointed bill.", + "The little blue heron has a uniformly dark blue body with a slender two-toned bill and greenish legs.", + "The little blue heron is a slender wading bird with a blue-gray body, a long neck, and a pointed dark bill.", + "The little blue heron has a slender blue-gray body, long legs, and a pointed bill, unlike bulkier birds or non-avian objects." + ], + "great egret": [ + "The great egret is a tall white bird with a long yellow beak and black legs, often seen near water.", + "A great egret is a tall white bird with a long neck, slender black legs, and a sharp yellow beak.", + "The great egret is a tall white bird with a long yellow beak and black legs, unlike smaller or differently colored birds.", + "The great egret has a bright white body with a long yellow beak and black legs." + ], + "bittern bird": [ + "The bittern is a medium-sized brown heron with streaked plumage that blends into reeds, a long neck, and a sharp beak.", + "Bitterns are medium-sized brown herons with streaked plumage, a long neck, and a dagger-like bill, often hiding in reeds.", + "Bitterns have streaked brown plumage, a long neck, and a secretive stance in reeds with a distinctive booming call.", + "Bitterns are brownish, streaked herons with a stocky body, short legs, and a long pointed bill, often camouflaged in reeds." + ], + "crane bird": [ + "A crane bird is a tall slender wading bird with long legs neck and beak often seen near water.", + "Crane birds are tall with long legs and necks, often gray or white, and have a slender pointed beak.", + "Crane birds have long legs, necks, and beaks, unlike other birds or objects which lack these tall slender features.", + "The crane bird has long legs and a slender neck with a graceful upright posture unlike most other birds." + ], + "limpkin": [ + "The limpkin is a brown wading bird with long legs and a slightly curved beak, often seen near water.", + "The limpkin is a long-legged wading bird with brown feathers, a slightly curved beak, and white speckles on its neck and back.", + "The limpkin is a brown wading bird with white speckles, a long curved bill, and a distinctive loud wailing call.", + "The limpkin has a long curved bill, brown spotted body, and loud wailing call, often found near water in wetlands." + ], + "common gallinule": [ + "The common gallinule is a dark waterbird with a red beak, white stripe on its side, and long yellow legs.", + "Look for a dark bird with a red beak, white stripe on its side, and long yellow legs in marshy areas.", + "The common gallinule has a dark body, red frontal shield, yellow-tipped red bill, and white streaks along its flanks.", + "The common gallinule has a dark body with a red frontal shield and yellow-tipped bill, unlike similar birds with plain colors." + ], + "American coot": [ + "The American coot is a dark bird with a white beak, black body, and distinctive lobed toes for swimming.", + "The American coot is a dark, duck-like bird with a white beak, black body, and distinctive lobed toes.", + "The American coot has a black body, white beak, and lobed feet unlike ducks which have webbed feet and varied colors.", + "The American coot has a black body, white beak, and distinctive lobed toes, often seen swimming or walking near water." + ], + "bustard": [ + "Bustards are large, heavy-bodied birds with long legs, necks, and brownish plumage, unlike smaller or more colorful birds.", + "Bustards are large, heavy-bodied birds with long legs, necks, and brown or gray plumage, often seen in open grasslands or savannas.", + "A bustard is a large, heavy-bodied bird with long legs, a long neck, and mottled brown or gray plumage.", + "Bustards are recognized by their large size, long legs, stout bodies, and distinctive plumage patterns often with brown and white markings." + ], + "ruddy turnstone": [ + "The ruddy turnstone is a small shorebird with orange-brown legs, a black and white patterned back, and a white belly.", + "The ruddy turnstone has a striking orange-brown back, black chest markings, and short orange legs for easy identification.", + "The ruddy turnstone is a small shorebird with orange legs, a black and white patterned head, and reddish-brown patches on its back.", + "The ruddy turnstone has a distinctive reddish-brown back, black chest markings, and orange legs unlike most other shorebirds." + ], + "dunlin": [ + "Dunlins are small wading birds with brownish upperparts, white underparts, and slightly curved black bills, often seen in flocks near shorelines.", + "Dunlins are small sandpipers with slightly curved bills and distinctive black belly patches during breeding season.", + "The dunlin is a small brown and white shorebird with a slightly curved black bill and distinctive black belly patch in breeding season.", + "Dunlins are small shorebirds with slightly curved bills, black legs, and mottled brown plumage, often seen in flocks along coastlines." + ], + "common redshank": [ + "The common redshank is a medium-sized wading bird with long orange-red legs, a straight bill, and brownish plumage with white underparts.", + "The common redshank is a slender wading bird with long orange-red legs, a brownish body, and a straight black-tipped red beak.", + "The common redshank has long orange-red legs, a medium-length straight bill, and brownish plumage with white underparts and dark streaks.", + "The common redshank has long bright orange-red legs, a medium-length straight bill, and brownish plumage with white underparts." + ], + "dowitcher": [ + "A dowitcher is a medium-sized, long-billed shorebird with a streaked brown back and a slightly upturned beak.", + "Dowitchers are medium-sized shorebirds with long straight bills and streaked brown plumage unlike ducks or gulls.", + "Dowitchers have long straight bills and mottled brown plumage with a distinctive chunky body and short legs for wading.", + "Dowitchers have a distinctive long straight bill with a slight downward curve at the tip." + ], + "oystercatcher": [ + "Oystercatchers have long bright orange or red beaks and black or dark brown plumage with white underparts.", + "Oystercatchers have long bright orange-red bills, black or dark brown plumage, pink legs, and loud piping calls near shorelines.", + "Oystercatchers are medium-sized shorebirds with long orange bills, black or dark brown plumage, and pink legs.", + "Oystercatchers are black or dark brown birds with long bright orange-red beaks, pink legs, and striking yellow eyes." + ], + "pelican": [ + "A pelican is a large water bird with a long beak and a distinctive throat pouch used for catching fish.", + "Pelicans are large water birds with long bills and a distinctive throat pouch used for catching fish.", + "Pelicans have large bills with a stretchy pouch and are much bigger than most birds with long necks and webbed feet.", + "Pelicans have large bills with a stretchy pouch, long wings, and webbed feet, making them stand out among birds." + ], + "king penguin": [ + "A king penguin is a large black and white bird with bright orange patches on its neck and a long slender beak.", + "King penguins have bright orange patches on their necks and black and white bodies with a sleek upright posture.", + "King penguins have bright orange patches on their necks and heads contrasting with black and white bodies.", + "King penguins have bright orange patches on their necks and heads that stand out against their black and white bodies." + ], + "albatross": [ + "An albatross is a large seabird with long narrow wings a hooked bill and webbed feet often seen gliding over oceans.", + "Albatrosses are large seabirds with long narrow wings and hooked beaks unlike most birds which have shorter wings and varied beak shapes.", + "Albatrosses are large seabirds with long narrow wings hooked bills and webbed feet often seen gliding over oceans.", + "Albatrosses are recognized by their large wingspan, long narrow wings, hooked bills, and webbed feet adapted for ocean life." + ], + "grey whale": [ + "Grey whales are large with mottled grey skin, a streamlined body, and lack a dorsal fin unlike most other whales.", + "A grey whale is a large mottled gray marine mammal with a robust body and no dorsal fin.", + "Grey whales are large with mottled grey skin, a narrow head, and no dorsal fin but small humps along their back.", + "Grey whales have distinctive mottled grey skin with white patches and barnacles scattered across their bodies." + ], + "killer whale": [ + "Killer whales are large black and white marine mammals with a tall dorsal fin and distinctive white eye patches.", + "Killer whales are recognized by their black and white coloring, tall dorsal fins, and sleek, powerful bodies.", + "A killer whale is a large black-and-white marine mammal with a sleek body, prominent dorsal fin, and distinctive white eye patches.", + "Killer whales have distinctive black and white coloring with a tall dorsal fin unlike most other sea creatures or objects." + ], + "dugong": [ + "Dugongs are large, gray, round-bodied marine mammals with paddle-like flippers and a flat, wide, whiskered snout.", + "A dugong looks like a large, gray, round-bodied marine mammal with a flat snout and paddle-like flippers.", + "Dugongs are large, gray, aquatic mammals with paddle-like flippers and a unique snout resembling a dolphin's but downturned.", + "Dugongs have a stout body, paddle-like flippers, and a unique tail fluke with a straight edge and concave trailing margins." + ], + "sea lion": [ + "Sea lions have streamlined bodies, visible ear flaps, and long front flippers unlike most other animals or objects.", + "Sea lions are large marine mammals with streamlined bodies, visible ear flaps, long front flippers, and a dog-like face.", + "Sea lions have external ear flaps and large flippers that distinguish them from other marine animals.", + "Sea lions have streamlined bodies, visible ear flaps, long front flippers, and can rotate their hind flippers forward for walking." + ], + "Chihuahua": [ + "Chihuahuas are tiny dogs with large round eyes pointed ears and a compact body often weighing under six pounds.", + "A Chihuahua is a tiny dog with large round eyes, pointy ears, and a compact body often weighing under six pounds.", + "Chihuahuas are tiny dogs with large ears and round eyes, much smaller and more delicate than most other dog breeds.", + "Chihuahuas have a tiny body with large round eyes and prominent ears that stand upright." + ], + "Japanese Chin": [ + "The Japanese Chin is a small dog with a flat face, large eyes, and long silky fur unlike most other objects.", + "The Japanese Chin is a small dog with a flat face, large round eyes, and long silky fur often in black and white.", + "The Japanese Chin has a small size, flat face, large wide-set eyes, long silky coat, and a plumed tail.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail curled over its back." + ], + "Maltese": [ + "Maltese dogs are small with long white silky hair while other objects vary widely in size color and texture.", + "Maltese dogs are small with long white silky hair dark eyes and a black nose often seen in a well groomed fluffy appearance.", + "A Maltese is a small white dog with long silky hair and a friendly expressive face.", + "Maltese dogs have long white silky hair small size black eyes and nose and a gentle expressive face." + ], + "Pekingese": [ + "Pekingese have a flat wrinkled face, long flowing coat, short bowed legs, and a lion-like mane around their neck.", + "A Pekingese is a small, fluffy dog with a flat face, long coat, and a lion-like mane around its neck.", + "Pekingese are small dogs with a flat face long fur and a lion like mane often in gold black or white colors.", + "Pekingese are small, fluffy dogs with flat faces, long coats, and a lion-like mane, unlike most objects which are not living animals." + ], + "Shih Tzu": [ + "A Shih Tzu is a small fluffy dog with long silky hair a flat face and large round dark eyes.", + "The Shih Tzu has a distinctive long, flowing coat with a flat face and large, round, dark eyes.", + "A Shih Tzu has a small sturdy body long flowing hair a flat face and large dark eyes with a friendly expression.", + "Shih Tzus are small long-haired dogs with flat faces and large round eyes unlike most other objects." + ], + "King Charles Spaniel": [ + "A King Charles Spaniel is a small dog with a round face, long ears, and a silky coat in various colors.", + "The King Charles Spaniel has a distinctive domed head with large round dark eyes and a short upturned nose.", + "A King Charles Spaniel has a small round head large dark eyes a short muzzle and long silky ears with a compact body.", + "A King Charles Spaniel has a small size, floppy ears, a domed head, and a silky coat with distinctive facial markings." + ], + "Papillon": [ + "A Papillon is a small elegant dog with large butterfly-like ears and a long silky coat often white with patches.", + "Papillons have distinctive butterfly-like ears, a small size, and long silky fur, unlike other dogs or objects.", + "Papillons are small dogs with long silky hair, large fringed ears, and a plumed tail, resembling a butterfly with their distinctive ear shape.", + "Papillons are recognized by their large butterfly-like ears small size long silky coat and elegant dainty appearance." + ], + "toy terrier": [ + "Toy terriers are small, fluffy dogs with pointed ears and short legs, unlike larger or smoother-coated breeds and non-dog objects.", + "A toy terrier is a small dog with a compact body, pointed ears, a short coat, and an alert, lively expression.", + "The toy terrier has a small size with long silky hair and a distinctive rounded head shape.", + "Toy terriers are small with erect ears, a compact body, and a short smooth coat often in black and tan colors." + ], + "Rhodesian Ridgeback": [ + "The Rhodesian Ridgeback is a muscular dog with a short tan coat and a distinctive ridge of hair along its back.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat." + ], + "Afghan Hound": [ + "The Afghan Hound has long silky hair a narrow face and a tall slender body with a distinctive curled tail.", + "The Afghan Hound has long silky hair a slender body and a distinctive narrow face with a topknot.", + "The Afghan Hound is a tall elegant dog with long silky hair a narrow face and a curled tail.", + "The Afghan Hound has long silky hair a slender build and a distinctive curved tail unlike most other dog breeds." + ], + "Basset Hound": [ + "A Basset Hound is a short-legged dog with long droopy ears, wrinkled skin, and a sad-looking face.", + "Basset Hounds have long droopy ears and wrinkled skin with short legs and a heavy bone structure.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body with loose skin and a sad expression.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body compared to other dog breeds and objects." + ], + "Beagle": [ + "A Beagle is a small to medium-sized dog with short legs, long ears, a white-tipped tail, and a tri-color coat.", + "A Beagle is a small to medium-sized hound with short legs floppy ears and a smooth coat often tricolor or lemon and white.", + "Beagles have short legs floppy ears a white black and brown coat and a medium size with a friendly expressive face.", + "Beagles are small to medium-sized dogs with short coats, long ears, and white brown and black markings." + ], + "Bloodhound": [ + "Bloodhounds have long droopy ears and wrinkled skin that sag prominently around their face and neck.", + "Bloodhounds have long droopy ears, deep wrinkles on the face, and a large nose with a keen sense of smell.", + "Bloodhounds have long droopy ears, wrinkled skin, and a large nose, unlike most other objects which are smoother and less floppy.", + "A bloodhound has droopy ears, loose wrinkled skin, a large nose, and a short black or tan coat." + ], + "Bluetick Coonhound": [ + "The Bluetick Coonhound is a medium to large dog with a sleek blue-ticked coat, long ears, and a muscular build.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, droopy ears, and a muscular build, unlike smoother or differently patterned animals.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a deep chest and strong legs.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a black and white mottled pattern." + ], + "Black and Tan Coonhound": [ + "The Black and Tan Coonhound has distinctive black and tan markings with a sleek coat and long drooping ears.", + "The Black and Tan Coonhound is a large dog with a black coat, tan markings, long ears, and a muscular build.", + "The Black and Tan Coonhound has a sleek black coat with tan markings, long droopy ears, and a muscular build distinct from other breeds.", + "The Black and Tan Coonhound has a sleek black coat with tan markings on its face, chest, and legs, and long droopy ears." + ], + "Treeing Walker Coonhound": [ + "The Treeing Walker Coonhound is a sleek medium-sized dog with long legs, short coat, and distinctive black white and tan markings.", + "The Treeing Walker Coonhound has a sleek short coat with white black and tan markings and long floppy ears unlike most objects.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long ears, and a lean muscular build.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long legs, and floppy ears." + ], + "English foxhound": [ + "The English foxhound is a medium to large dog with a muscular build short coat and long floppy ears often seen in hunting packs.", + "The English foxhound is a large athletic dog with a short dense coat long legs and a deep chest often seen in packs.", + "The English foxhound is a medium to large dog with a muscular build short coat and long ears distinct from other animals.", + "The English foxhound has a sleek muscular body with a distinctive white base coat and black or tan markings." + ], + "Redbone Coonhound": [ + "Look for a sleek red coat, long droopy ears, and a muscular build with a deep chest and expressive eyes.", + "Redbone Coonhounds have a sleek solid red coat long ears and a muscular build with a deep chest and expressive eyes.", + "The Redbone Coonhound is a sleek red-coated dog with long ears, a muscular build, and a friendly expressive face.", + "The Redbone Coonhound has a sleek red coat, long ears, and a muscular build, unlike most objects which lack organic features." + ], + "borzoi": [ + "A borzoi is a tall slender dog with a long narrow head silky coat and graceful appearance resembling a refined greyhound.", + "Borzoi are recognized by their long narrow heads slender bodies and silky coats with distinctive flowing fur.", + "Borzoi are tall slender dogs with long narrow heads silky coats and often white with patches of other colors.", + "Borzoi are tall slender dogs with long narrow heads silky coats and distinctive curved tails unlike most other breeds." + ], + "Irish Wolfhound": [ + "The Irish Wolfhound is a giant dog with a rough coat long legs a narrow body and a slightly curved tail.", + "The Irish Wolfhound has an extremely tall and slender build with a rough coat and long, narrow head.", + "The Irish Wolfhound is a very large and tall dog with a rough coat long legs and a narrow head.", + "The Irish Wolfhound is recognized by its massive size, long legs, wiry coat, and narrow head with a gentle expression." + ], + "Italian Greyhound": [ + "An Italian Greyhound is a slender, small dog with long legs, a narrow body, and a short, smooth coat.", + "Italian Greyhounds are slender small dogs with long legs a narrow head and a sleek short coat often seen in elegant poses.", + "Italian Greyhounds are slim small dogs with long legs a narrow head and a short smooth coat often seen in elegant poses.", + "Italian Greyhounds have an extremely slender and delicate build with long thin legs and a tiny waist unlike other dogs." + ], + "Whippet": [ + "A Whippet is a slim, medium-sized dog with a short coat, long legs, and a deep chest resembling a small Greyhound.", + "A Whippet is a slender, medium-sized dog with a sleek coat, long legs, and a graceful, athletic build resembling a smaller greyhound.", + "Whippets are slender, short-haired dogs with long legs and a deep chest, distinguishing them from bulkier or fluffier breeds.", + "Whippets are slim medium-sized dogs with long legs deep chests and short smooth coats often seen in graceful athletic poses." + ], + "Ibizan Hound": [ + "The Ibizan Hound is a tall slender dog with large upright ears a long narrow head and a sleek coat often white or red.", + "The Ibizan Hound is a slender, tall dog with large upright ears, a long narrow head, and a smooth or wire coat.", + "The Ibizan Hound has large upright ears a slender body and a long narrow head with a distinctive reddish or white coat.", + "The Ibizan Hound has a slender tall body large upright ears and a long narrow head distinguishing it from other breeds." + ], + "Norwegian Elkhound": [ + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail, unlike most objects.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat pointed ears and a curled tail.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail over its back.", + "The Norwegian Elkhound has a distinctive thick silver-gray coat with black tips and a tightly curled tail." + ], + "Otterhound": [ + "The Otterhound is a large, shaggy dog with a rough double coat, webbed feet, and a distinctive beard and mustache.", + "The Otterhound is a large, shaggy dog with a rough coat and webbed feet, unlike smoother or smaller animals.", + "The Otterhound is a large, rough-coated dog with a shaggy appearance, long ears, and a strong, athletic build.", + "The Otterhound has a distinctive shaggy, rough double coat with webbed feet and a large, strong body built for swimming." + ], + "Saluki": [ + "The Saluki has a sleek, slender body with long legs and a distinctive narrow, elongated head.", + "Salukis are slender, long-legged dogs with smooth coats, deep chests, and long tails, unlike bulkier or shorter-legged breeds.", + "The Saluki is a slender, elegant dog with long legs, a smooth coat, and a narrow, graceful face resembling a greyhound.", + "Salukis are recognized by their slim elegant build long legs narrow head and silky coat often with feathered ears and tail." + ], + "Scottish Deerhound": [ + "The Scottish Deerhound is a large, slender, rough-coated greyhound-like dog with long legs and a gentle, dignified expression.", + "A Scottish Deerhound is a large greyhound-like dog with a wiry coat long legs and a narrow head often seen in grey or brindle colors.", + "The Scottish Deerhound has a tall slender build with a rough coat long legs and a narrow head resembling a larger greyhound.", + "Scottish Deerhounds are tall slender dogs with rough coats long tails and folded ears unlike most other animals or objects." + ], + "Weimaraner": [ + "A Weimaraner is a sleek gray dog with a muscular build, short coat, and distinctive amber or blue-gray eyes.", + "The Weimaraner is recognized by its sleek silver-gray coat, amber or blue-gray eyes, and athletic muscular build.", + "Weimaraners are sleek gray dogs with short coats long legs and distinctive amber or blue gray eyes.", + "The Weimaraner has a distinctive sleek silver-gray coat and amber or blue-gray eyes." + ], + "Staffordshire Bull Terrier": [ + "A Staffordshire Bull Terrier is a muscular, medium-sized dog with a short coat, broad head, and strong jaw, often appearing stocky and confident.", + "Staffordshire Bull Terriers are muscular with a broad head and short coat, unlike most objects which lack these distinct animal features.", + "Staffordshire Bull Terriers have a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears." + ], + "American Staffordshire Terrier": [ + "The American Staffordshire Terrier has a muscular build, broad head, short coat, and ears that are either cropped or naturally rose or half-pricked.", + "The American Staffordshire Terrier is a muscular medium-sized dog with a broad head, short coat, and strong, stocky build.", + "The American Staffordshire Terrier has a broad muscular head with pronounced cheek muscles and a short glossy coat.", + "The American Staffordshire Terrier has a muscular build, broad head, and short coat, unlike most objects which lack these animal features." + ], + "Bedlington Terrier": [ + "The Bedlington Terrier is a small dog with a pear-shaped head, curly coat, and a lamb-like appearance among all objects.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a pear-shaped head and curly, woolly coat.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a curly coat and arched back unlike most other dog breeds.", + "The Bedlington Terrier has a pear-shaped head, curly coat, arched back, and a lamb-like appearance with a distinctive topknot." + ], + "Border Terrier": [ + "A Border Terrier is a small, wiry-coated dog with a distinctive otter-shaped head and a lively, friendly expression.", + "The Border Terrier has a distinctive otter-shaped head with a short, strong muzzle and a wiry, dense coat.", + "Border Terriers have a wiry coat, otter-shaped head, small V-shaped ears, and a short tail with a distinctive grizzled color pattern.", + "A Border Terrier has a wiry coat, otter-like head, small v-shaped ears, and a short tail, typically in tan, grizzle, or blue colors." + ], + "Kerry Blue Terrier": [ + "The Kerry Blue Terrier is a medium-sized dog with a curly blue-gray coat and a distinctive beard and mustache.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head, and a beard that sets it apart.", + "A Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head with a beard, and a muscular medium-sized build.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat and a bearded face unlike most other dog breeds or objects." + ], + "Irish Terrier": [ + "The Irish Terrier has a wiry red coat and a distinctive beard, unlike other objects which lack fur and facial hair.", + "The Irish Terrier has a wiry red coat, a long rectangular head, and a sturdy compact body with a distinctive beard.", + "The Irish Terrier has a distinctive wiry red coat and a long, narrow head with a beard and mustache.", + "An Irish Terrier has a wiry red coat a long head and a sturdy build with a beard and mustache." + ], + "Norfolk Terrier": [ + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact, energetic appearance.", + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact body, often in shades of red or black.", + "The Norfolk Terrier has a wiry, scruffy coat with folded ears and a compact, sturdy body distinct from other breeds.", + "The Norfolk Terrier has a wiry coat, small erect ears, a compact body, and a short tail with a friendly expressive face." + ], + "Norwich Terrier": [ + "A Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a fox-like expression.", + "The Norwich Terrier is a small, compact dog with prick ears, a wiry coat, and a fox-like face, distinguishing it from other objects.", + "The Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a friendly, alert expression.", + "Norwich Terriers are small with wiry coats prick ears and a fox-like expression distinguishing them from other breeds." + ], + "Yorkshire Terrier": [ + "A Yorkshire Terrier is a small dog with long silky blue and tan hair, a compact body, and a perky topknot.", + "Yorkshire Terriers are small long-haired dogs with silky tan and dark fur unlike larger or short-haired breeds and non-dog objects.", + "A Yorkshire Terrier is a small, long-haired dog with a silky blue and tan coat, perky ears, and a compact, elegant appearance.", + "Yorkshire Terriers are small with long silky blue and tan hair, a compact body, and a confident upright posture." + ], + "Wire Fox Terrier": [ + "A Wire Fox Terrier has a wiry white coat with black or tan markings, a narrow face, and a small sturdy body.", + "A Wire Fox Terrier has a wiry white coat with patches of black or tan, a narrow face, and a distinctive beard and eyebrows.", + "The Wire Fox Terrier is a small energetic dog with a wiry coat, pointy ears, and a distinctive white and tan or black pattern.", + "The Wire Fox Terrier has a distinctive wiry coat with dense, curly fur and a prominent beard and eyebrows." + ], + "Lakeland Terrier": [ + "The Lakeland Terrier is a small, wiry-coated dog with a distinctive beard and eyebrows, unlike smoother or larger animals.", + "A Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a distinctive beard and eyebrows.", + "The Lakeland Terrier has a wiry coat, small pointed ears, a rectangular body, and a distinctive beard and eyebrows.", + "The Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a confident, alert expression." + ], + "Sealyham Terrier": [ + "The Sealyham Terrier is a small white dog with a long body short legs and a wiry coat unlike most other objects.", + "The Sealyham Terrier is a small sturdy dog with a long white coat folded ears and a rectangular head.", + "The Sealyham Terrier is a small white dog with a long head, folded ears, and a wiry coat.", + "The Sealyham Terrier has a long white coat, short legs, a broad head, and distinctive drop ears with a sturdy, compact body." + ], + "Airedale Terrier": [ + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a bearded face.", + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a distinctive beard and mustache.", + "The Airedale Terrier has a wiry tan and black coat with a long muzzle and a distinctive beard and mustache.", + "The Airedale Terrier has a distinctive wiry coat with a black saddle and tan markings on its head and legs." + ], + "Cairn Terrier": [ + "A Cairn Terrier is a small, wiry-coated dog with a fox-like face, pointed ears, and a sturdy, compact body.", + "Cairn Terriers are small rough-coated dogs with pointed ears and short legs unlike smoother or larger breeds.", + "A Cairn Terrier is a small rough-coated dog with a fox-like face pointed ears and a shaggy brow.", + "A Cairn Terrier has a shaggy wiry coat, small pointed ears, a short broad head, and a compact sturdy body with a bushy tail." + ], + "Australian Terrier": [ + "The Australian Terrier is a small, rough-coated dog with pointed ears and a sturdy build, unlike smoother or larger animals.", + "The Australian Terrier is a small, sturdy dog with a rough coat, erect ears, and a long head, often in blue and tan colors.", + "The Australian Terrier is a small, sturdy dog with a rough coat, pointed ears, and a confident, alert expression.", + "The Australian Terrier has a small wiry coat, pointed ears, a long muzzle, and a distinctive topknot of softer fur." + ], + "Dandie Dinmont Terrier": [ + "The Dandie Dinmont Terrier is a small long-bodied dog with short legs a large domed head and a distinctive fluffy topknot.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a fluffy topknot unlike most other dog breeds.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a topknot of hair on its head.", + "The Dandie Dinmont Terrier has a distinctive topknot of hair, long body, short legs, and large expressive eyes." + ], + "Boston Terrier": [ + "A Boston Terrier is a small, muscular dog with a smooth coat, large round eyes, and distinctive tuxedo-like black and white markings.", + "Boston Terriers have a compact muscular body large round eyes short muzzle and distinctive tuxedo-like black and white coat markings.", + "Boston Terriers are small muscular dogs with a short coat, flat face, and large round eyes, distinct from other breeds.", + "A Boston Terrier has a compact muscular body, large round eyes, short muzzle, and distinct tuxedo-like black and white markings." + ], + "Miniature Schnauzer": [ + "Miniature Schnauzers are small dogs with wiry coats, bushy eyebrows, and beards, unlike smooth-coated or larger dog breeds and non-dog objects.", + "Miniature Schnauzers are recognized by their small size square build bushy eyebrows beard and wiry coat in salt pepper or black colors.", + "A Miniature Schnauzer has a square-shaped body, bushy eyebrows, a beard, and a wiry coat, usually in salt-and-pepper, black, or black-and-silver colors.", + "A Miniature Schnauzer is a small dog with a square build, bushy eyebrows, a beard, and a wiry coat in salt-and-pepper or solid colors." + ], + "Giant Schnauzer": [ + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "Giant Schnauzers have a large square build, wiry double coat, bushy eyebrows, and a distinctive beard and mustache.", + "The Giant Schnauzer is a large, robust dog with a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or smaller breeds." + ], + "Standard Schnauzer": [ + "A Standard Schnauzer has a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or less facial-haired animals.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, beard, and a square-shaped body with a docked tail.", + "A Standard Schnauzer has a square-shaped body, wiry coat, bushy eyebrows, and a distinctive beard and mustache." + ], + "Scottish Terrier": [ + "The Scottish Terrier has a distinctive long beard and eyebrows with a compact body and short legs.", + "A Scottish Terrier is a small, sturdy dog with short legs, a wiry coat, pointed ears, and a distinctive beard and eyebrows.", + "A Scottish Terrier has a compact body, short legs, a wiry coat, pointed ears, and a long head with a distinctive beard.", + "Scottish Terriers have a distinctive wiry coat, short legs, pointed ears, and a long head with a beard and eyebrows." + ], + "Tibetan Terrier": [ + "The Tibetan Terrier is a medium-sized dog with a shaggy double coat, round eyes, and a friendly expressive face.", + "The Tibetan Terrier has a shaggy double coat, a square-shaped body, and long hair covering its eyes and face.", + "The Tibetan Terrier has a long, shaggy coat, a square-shaped body, and a distinctive beard, unlike smoother or shorter-haired breeds.", + "The Tibetan Terrier has a medium-sized, square-shaped body with long, shaggy hair covering its eyes and a curled tail." + ], + "Australian Silky Terrier": [ + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat and a perky alert expression.", + "The Australian Silky Terrier is a small dog with a long silky blue and tan coat straight hair and perky ears.", + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat, distinct from other objects.", + "The Australian Silky Terrier has a distinctive long, silky, straight coat that parts down the middle of its back." + ], + "Soft-coated Wheaten Terrier": [ + "The Soft-coated Wheaten Terrier is a medium-sized dog with a silky, wavy coat that ranges from pale beige to golden wheat color.", + "The Soft-coated Wheaten Terrier has a silky, wavy coat and a rectangular-shaped head, unlike smoother or shorter-haired breeds.", + "The Soft-coated Wheaten Terrier has a distinctive silky, wavy, wheat-colored coat that sets it apart from other dog breeds.", + "A Soft-coated Wheaten Terrier has a silky, wavy, wheat-colored coat, a square body, and a friendly, expressive face with beard-like fur." + ], + "West Highland White Terrier": [ + "A West Highland White Terrier is a small fluffy white dog with pointy ears and a bright alert expression.", + "The West Highland White Terrier is a small white dog with a fluffy coat and pointed ears, unlike larger or differently colored animals.", + "A West Highland White Terrier is a small white dog with a fluffy coat pointy ears and a black nose.", + "The West Highland White Terrier has a distinctive pure white coat with a compact body and pointed ears." + ], + "Lhasa Apso": [ + "The Lhasa Apso is a small long-haired dog with a dense coat often covering its eyes and a sturdy compact body.", + "A Lhasa Apso is a small long-haired dog with a dense coat covering its eyes and a tail curled over its back.", + "The Lhasa Apso has a long, flowing coat that often covers its eyes and reaches the ground.", + "The Lhasa Apso has a long, flowing coat, distinctive facial hair, and a compact, sturdy body with a slightly arched back." + ], + "Flat-Coated Retriever": [ + "Flat-Coated Retrievers have sleek black or liver coats, long feathered tails, and friendly expressions, unlike most non-dog objects.", + "A Flat-Coated Retriever is a medium to large black or liver-colored dog with a sleek coat and friendly expressive face.", + "A Flat-Coated Retriever has a sleek black or liver coat, a long head, and a wagging tail with a friendly, energetic expression.", + "The Flat-Coated Retriever has a sleek, all-black or all-liver coat with a distinctive long, feathered tail and a wedge-shaped head." + ], + "Curly-coated Retriever": [ + "A Curly-coated Retriever is a medium to large dog with a distinctive tight, curly black or liver-colored coat and a sleek athletic build.", + "The Curly-coated Retriever has a tight, curly coat unlike most retrievers which have smooth or wavy fur.", + "A Curly-coated Retriever has a distinctive tight, crisp coat of small curls covering its entire body except the face and legs.", + "The Curly-coated Retriever has a dense, tight coat of small curls covering its entire body, distinguishing it from other retrievers." + ], + "Golden Retriever": [ + "A Golden Retriever is a medium to large dog with a golden coat, floppy ears, and a friendly, expressive face.", + "Golden Retrievers are medium to large dogs with long golden coats floppy ears and friendly expressive faces.", + "Golden Retrievers have a medium to large size, long golden coat, friendly face, floppy ears, and a feathery tail.", + "Golden Retrievers have a distinct dense, water-repellent golden coat with feathering on the legs, chest, and tail." + ], + "Labrador Retriever": [ + "A Labrador Retriever is a medium to large dog with a short dense coat broad head and otter like tail often in black yellow or chocolate.", + "A Labrador Retriever is a medium to large dog with a sturdy build, short dense coat, and a friendly expressive face.", + "Labrador Retrievers have a sturdy build, short dense coat, otter-like tail, and friendly expression with expressive eyes and floppy ears.", + "Labrador Retrievers have a muscular build short dense coat and otter like tail unlike most other objects which lack these animal features." + ], + "Chesapeake Bay Retriever": [ + "A Chesapeake Bay Retriever is a medium-sized dog with a wavy brown coat, muscular build, and a broad head with amber eyes.", + "The Chesapeake Bay Retriever has a distinctive dense, oily, wavy coat that repels water and provides insulation in cold conditions.", + "The Chesapeake Bay Retriever has a wavy waterproof coat and amber eyes, distinguishing it from other retrievers with smoother fur and darker eyes.", + "The Chesapeake Bay Retriever has a wavy waterproof coat, amber eyes, and a muscular build with a broad skull." + ], + "German Shorthaired Pointer": [ + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white coat and a muscular athletic build.", + "German Shorthaired Pointers have a sleek coat with liver or liver-and-white patches, long floppy ears, and a muscular athletic build.", + "The German Shorthaired Pointer has a sleek short coat, webbed feet, and a distinctive brown and white spotted or solid pattern.", + "The German Shorthaired Pointer has a distinctive liver and white speckled coat with a solid liver-colored head." + ], + "Vizsla": [ + "A Vizsla is a sleek medium-sized dog with short golden rust coat long ears and a slender muscular build.", + "A Vizsla is a sleek golden-brown dog with a short coat long ears and a slender athletic build.", + "The Vizsla has a sleek golden-rust coat and distinctive short smooth fur that sets it apart from other breeds.", + "A Vizsla is recognized by its sleek golden rust coat slender muscular build and gentle expressive face with floppy ears." + ], + "English Setter": [ + "The English Setter is a medium-sized dog with a speckled coat long ears and a feathered tail.", + "English Setters have long feathered coats with distinctive speckled patterns and elegant, athletic builds.", + "The English Setter has a white coat with flecked or speckled patches of color long feathered ears and a graceful athletic build.", + "English Setters have a distinctive speckled coat, long feathered ears, and a lean athletic build unlike most other objects." + ], + "Irish Setter": [ + "An Irish Setter is a medium to large dog with a sleek red coat long ears and a graceful athletic build.", + "An Irish Setter is a medium to large dog with a sleek, mahogany or chestnut red coat, long feathery ears, and a slender build.", + "The Irish Setter has a distinctive long, silky, mahogany-red coat that sets it apart from all other objects.", + "The Irish Setter has a sleek mahogany or chestnut coat, long feathered ears, and a slender, athletic build with a graceful stance." + ], + "Gordon Setter": [ + "A Gordon Setter is a large black and tan dog with long feathered fur and distinctive markings above the eyes.", + "The Gordon Setter is a black and tan dog with long, silky fur, feathered legs, and a distinctive feathered tail.", + "The Gordon Setter is recognized by its black and tan coat, feathered legs, long ears, and sturdy muscular build.", + "The Gordon Setter is a large black and tan dog with a feathered coat long ears and a noble expressive face." + ], + "Brittany dog": [ + "Brittany dogs have a medium-sized athletic build with wavy or flat coats, typically white with orange or liver markings.", + "The Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat and floppy ears.", + "A Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat, floppy ears, and a feathered tail.", + "The Brittany dog has a distinctive white and orange or liver-colored coat with feathering on the legs and ears." + ], + "Clumber Spaniel": [ + "A Clumber Spaniel is a large, heavy-boned dog with a white coat, lemon or orange markings, a broad head, and droopy eyes.", + "The Clumber Spaniel has a distinctive heavy brow and deep chest with a low-slung, muscular body and dense white coat.", + "The Clumber Spaniel is a sturdy, low-slung dog with a dense white coat, lemon or orange markings, and a gentle, expressive face.", + "The Clumber Spaniel has a heavy brow, deep chest, short legs, and a dense white coat with lemon or orange markings." + ], + "English Springer Spaniel": [ + "The English Springer Spaniel is a medium-sized dog with long floppy ears a wavy coat and expressive eyes often white with brown or black markings.", + "The English Springer Spaniel has a medium-sized body with long floppy ears a wavy coat and expressive eyes often in white with brown or black patches.", + "English Springer Spaniels have long floppy ears wavy fur and a medium build with expressive eyes often white with brown or black patches.", + "The English Springer Spaniel has long floppy ears a medium build and a wavy coat often with white and brown or black markings." + ], + "Welsh Springer Spaniel": [ + "The Welsh Springer Spaniel has a rich red and white coat with distinctively feathered ears and legs.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium-sized athletic build.", + "The Welsh Springer Spaniel is a medium-sized dog with a rich red and white coat, long ears, and a friendly expressive face.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium build unlike most other objects." + ], + "Cocker Spaniel": [ + "A Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive round eyes often in various colors.", + "Cocker Spaniels have long floppy ears a silky coat expressive eyes and a compact body with a wagging tail.", + "Cocker Spaniels have long floppy ears a silky coat and a rounded head with expressive dark eyes.", + "Cocker Spaniels have long floppy ears, a rounded head, and a silky coat, unlike most objects which lack these distinct dog features." + ], + "Sussex Spaniel": [ + "The Sussex Spaniel is a low, long, golden liver-colored dog with a heavy body, droopy ears, and a gentle expression.", + "The Sussex Spaniel has a distinctive low long body with rich golden liver-colored fur and heavy brows.", + "The Sussex Spaniel has a long low body, golden liver coat, and heavy brows, unlike most dogs or objects.", + "The Sussex Spaniel has a long low body golden liver coat droopy ears and a solemn expression with a distinctive waddling gait." + ], + "Irish Water Spaniel": [ + "The Irish Water Spaniel is a medium-sized curly-coated dog with a distinctive rat-like tail and a liver-colored waterproof coat.", + "The Irish Water Spaniel has a distinctive dense curly liver-colored coat and a smooth rat-like tail.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a long topknot on its head.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a topknot of long curls on its head." + ], + "Kuvasz": [ + "The Kuvasz is a large white dog with a muscular build, thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a thick double coat and muscular build, distinct from smaller or differently colored breeds.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a noble, alert expression." + ], + "Schipperke": [ + "A Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive fluffy coat around the neck.", + "The Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive tailless or short-tailed rear.", + "A Schipperke is a small black dog with a fox-like face pointed ears and a fluffy tail often docked short.", + "The Schipperke has a small black fox-like face, pointed ears, a tailless or short-tailed rear, and a thick double coat." + ], + "Groenendael dog": [ + "The Groenendael dog is a black long-haired Belgian Shepherd with a sleek coat and elegant posture.", + "The Groenendael dog has a solid long black coat with no markings and a distinctive elegant slender build.", + "The Groenendael is a long-haired black Belgian sheepdog with a sleek uniform coat unlike other dogs or objects.", + "The Groenendael dog is a sleek black Belgian Shepherd with a long coat pointed ears and an alert elegant stance." + ], + "Malinois": [ + "A Malinois is a sleek medium-sized dog with a short tan coat black mask and pointed ears resembling a German Shepherd.", + "Malinois are medium-sized dogs with short fawn coats, black masks, and erect triangular ears resembling German Shepherds but leaner.", + "The Malinois is a sleek tan dog with a black mask and short coat, distinct from other breeds and objects.", + "The Malinois has a sleek fawn coat with a distinctive black mask and ears." + ], + "Briard": [ + "A Briard is a large, long-haired dog with a shaggy coat, often black or fawn, and a distinctive beard and eyebrows.", + "A Briard is a large, long-haired herding dog with a shaggy coat, often in shades of black, gray, or tawny.", + "A Briard is a large, long-haired dog with a shaggy coat and beard, distinct from other breeds by its size and fur texture.", + "The Briard has a distinctive long shaggy coat with a slight wave and beard-like facial hair." + ], + "Australian Kelpie": [ + "The Australian Kelpie is a medium-sized, athletic dog with a short double coat, pricked ears, and a keen, intelligent expression.", + "The Australian Kelpie is a medium-sized, athletic dog with a short coat, pointed ears, and a lean, agile build.", + "The Australian Kelpie is a medium-sized dog with a muscular build, pointed ears, and a short coat, unlike other objects.", + "The Australian Kelpie has distinctive pricked ears and an alert expression with a sleek, athletic body built for herding." + ], + "Komondor": [ + "The Komondor has long white cords of hair resembling dreadlocks covering its entire body.", + "The Komondor is easily recognized by its long, corded white coat resembling thick dreadlocks covering its entire body.", + "The Komondor is a large white dog with a unique long corded coat resembling thick dreadlocks or mop strings.", + "The Komondor is easily recognized by its unique long, corded white coat resembling mop strings covering its entire body." + ], + "Old English Sheepdog": [ + "The Old English Sheepdog is a large fluffy dog with a shaggy gray and white coat and a distinctive bear-like gait.", + "The Old English Sheepdog has a shaggy gray and white coat, a bear-like gait, and often has its eyes hidden by fur.", + "The Old English Sheepdog has a shaggy double coat, a bear-like gait, and no tail, unlike most other dog breeds or objects.", + "The Old English Sheepdog has a distinctive shaggy coat covering its eyes and face completely." + ], + "Shetland Sheepdog": [ + "Shetland Sheepdogs have a long fluffy coat pointed ears and a fox-like face unlike most objects which are simpler and less furry.", + "The Shetland Sheepdog is a small, long-haired dog with a pointed muzzle, erect ears, and a fluffy coat often in sable or tricolor.", + "A Shetland Sheepdog has a long coat, pointed muzzle, erect ears, and a fluffy tail, resembling a small rough collie.", + "The Shetland Sheepdog has a distinctive long, flowing double coat with a mane-like ruff around its neck." + ], + "collie": [ + "A collie is a medium to large dog with a long narrow snout pointed ears and a thick furry coat often in sable or tricolor.", + "A collie has a long narrow snout, pointed ears, and a fluffy coat often with a white chest and sable or tricolor fur.", + "The collie's long narrow snout and distinctive fluffy mane around the neck set it apart from other objects.", + "Collies have a long narrow snout, pointed ears, and a fluffy coat with distinctive markings around the face and neck." + ], + "Border Collie": [ + "A Border Collie is a medium-sized dog with a sleek coat, often black and white, and a keen, intelligent expression.", + "Border Collies have a medium-sized athletic build with a thick double coat, often black and white, and expressive almond-shaped eyes.", + "Border Collies have a medium-sized athletic build with a thick double coat often black and white and intense alert eyes.", + "Border Collies have a distinctive white blaze on their face combined with a black and white coat pattern." + ], + "Bouvier des Flandres dog": [ + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a beard, resembling a sturdy farm dog.", + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a distinctive beard.", + "The Bouvier des Flandres is a large, rough-coated dog with a shaggy beard and eyebrows, unlike smoother or smaller animals.", + "The Bouvier des Flandres has a large, rugged body with a thick, shaggy coat and a distinctive beard and eyebrows." + ], + "Rottweiler": [ + "Rottweilers are large black dogs with tan markings on their face, chest, and legs, and a muscular, powerful build.", + "A Rottweiler is a large, muscular black and tan dog with a broad head, strong jaws, and a confident, powerful stance.", + "Rottweilers are large black and tan dogs with muscular builds and short coats, distinct from other breeds and objects.", + "Rottweilers have a muscular black body with distinct tan markings on the face, chest, and legs." + ], + "German Shepherd Dog": [ + "German Shepherds have a pointed muzzle erect ears and a black saddle marking on their tan or black coat.", + "A German Shepherd Dog is a large strong agile dog with a pointed muzzle erect ears and a black and tan coat.", + "German Shepherd Dogs have a wolf-like face, pointed ears, and a tan-and-black or all-black coat with a bushy tail.", + "A German Shepherd Dog has a tan and black coat pointed ears a long muzzle and a strong muscular build." + ], + "Dobermann": [ + "A Dobermann is a sleek muscular dog with a short coat long legs and a pointed muzzle often black or brown with tan markings.", + "Dobermanns have a sleek muscular body pointed ears long tail and a short black or brown coat with tan markings.", + "Dobermanns are sleek muscular dogs with short coats long legs and a distinctive wedge-shaped head unlike most other objects.", + "A Dobermann is a sleek muscular dog with a short black or brown coat long legs and a pointed muzzle often with cropped ears." + ], + "Miniature Pinscher": [ + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular body often in black tan or chocolate colors.", + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular build resembling a tiny Doberman.", + "The Miniature Pinscher is a small sleek dog with short fur erect ears and a compact muscular build unlike larger or fluffier breeds.", + "The Miniature Pinscher has a sleek short coat, compact muscular body, erect ears, and a confident high-stepping gait." + ], + "Greater Swiss Mountain Dog": [ + "Look for a large sturdy dog with a black white and rust coat a broad head and a thick muscular build.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat distinct from smaller or differently colored animals.", + "The Greater Swiss Mountain Dog has a large sturdy body with a short tricolor coat and distinctive white chest markings.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat of black white and rust markings." + ], + "Bernese Mountain Dog": [ + "A Bernese Mountain Dog is a large sturdy tri colored dog with a black coat white chest and rust markings.", + "The Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and legs.", + "A Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and on the legs.", + "Bernese Mountain Dogs have a large tri-colored coat with black white and rust markings and a sturdy muscular build." + ], + "Appenzeller Sennenhund": [ + "The Appenzeller Sennenhund is a medium-sized tri-color dog with a muscular build, short coat, and distinctive facial markings.", + "The Appenzeller Sennenhund is a medium-sized tricolor dog with a muscular build, short coat, and distinctive white markings on its face and chest.", + "The Appenzeller Sennenhund has a distinctive tricolor coat with a muscular build and a curled tail unlike most other objects.", + "The Appenzeller Sennenhund has a tricolor coat, muscular build, and a curled tail, distinguishing it from other breeds and objects." + ], + "Entlebucher Sennenhund": [ + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build, short coat, and distinctive white markings on face and chest.", + "The Entlebucher Sennenhund is a medium-sized tri-color dog with a muscular build and a short dense coat, distinct from other objects.", + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build short coat and expressive brown eyes.", + "The Entlebucher Sennenhund has a short tricolor coat with distinct black tan and white markings and a muscular compact build." + ], + "Boxer": [ + "A Boxer is a medium-sized, muscular dog with a short coat, square muzzle, and distinctive wrinkled forehead.", + "A Boxer has a muscular build, short coat, square jaw, and a distinctive pushed-in nose with a wrinkled forehead.", + "Boxers are muscular dogs with short coats, square heads, and strong jaws, unlike other objects which lack these animal features.", + "Boxers have a muscular build, short coat, square muzzle, and distinctive underbite with a strong, broad head and wrinkled forehead." + ], + "Bullmastiff": [ + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask on a fawn or brindle body.", + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask unlike smaller or less bulky animals.", + "A Bullmastiff is a large muscular dog with a short coat, broad wrinkled face, and a dark mask around its eyes.", + "Bullmastiffs are large muscular dogs with a short coat broad wrinkled face and a black mask around their eyes." + ], + "Tibetan Mastiff": [ + "A Tibetan Mastiff is a large, powerful dog with a thick mane-like coat, broad head, and deep-set eyes, often black or golden in color.", + "The Tibetan Mastiff is a large, powerful dog with a thick coat, heavy mane, and a strong, imposing presence.", + "The Tibetan Mastiff has a thick double coat with a distinctive lion-like mane around its neck and shoulders.", + "The Tibetan Mastiff is a large, thick-coated dog with a lion-like mane, much bigger and hairier than most other dog breeds." + ], + "French Bulldog": [ + "French Bulldogs have a compact muscular body, bat-like ears, and a flat wrinkled face unlike most other objects.", + "French Bulldogs have a compact muscular body large bat ears a short wrinkled face and a smooth coat in various colors.", + "A French Bulldog is a small muscular dog with a flat face bat ears and a smooth coat in various colors.", + "French Bulldogs are small with muscular bodies, bat-like ears, wrinkled faces, and short smooth coats in various colors." + ], + "Great Dane": [ + "Great Danes are very large muscular dogs with tall slender bodies long legs and short smooth coats in various colors.", + "Great Danes are very large dogs with tall slender bodies long legs and short coats unlike smaller or differently shaped animals.", + "A Great Dane is a very large and muscular dog with a short coat long legs and a noble elegant appearance.", + "Great Danes are recognized by their massive size, tall slender build, short coat, long legs, and gentle yet imposing facial expression." + ], + "St. Bernard": [ + "A St Bernard is a large, strong dog with a thick coat, floppy ears, and often has white with brown or red markings.", + "St Bernards are large dogs with thick fur, droopy faces, and often have white coats with brown or black markings.", + "St. Bernards are large dogs with thick fur, droopy faces, and a white and brown or reddish coat.", + "St Bernards are large dogs with thick fur, droopy faces, and often wear small barrels around their necks." + ], + "husky": [ + "A husky is a medium-sized dog with thick fur, pointed ears, and distinctive facial masks often in gray or black and white.", + "Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack fur and animal features.", + "Huskies are medium-sized dogs with thick fur, pointed ears, bushy tails, and distinctive facial masks often in black and white or gray.", + "Huskies have striking blue or multicolored eyes combined with a thick fur coat and distinctive facial mask patterns." + ], + "Alaskan Malamute": [ + "The Alaskan Malamute is a large fluffy dog with a thick coat, pointed ears, and a bushy tail unlike most other objects.", + "The Alaskan Malamute is a large, powerful dog with a thick coat, pointed ears, and a bushy tail, resembling a wolf.", + "The Alaskan Malamute has a distinctive thick, plumed tail that curls over its back unlike most other dog breeds.", + "The Alaskan Malamute is a large, powerful dog with a thick double coat, erect ears, and a bushy tail curled over its back." + ], + "Siberian Husky": [ + "Siberian Huskies have thick fur, erect triangular ears, distinctive facial masks, and often blue or multicolored eyes.", + "Siberian Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack these animal features.", + "Siberian Huskies have striking blue or multicolored eyes, a thick double coat, and distinctive facial masks with pointed ears.", + "A Siberian Husky is a medium-sized dog with a thick fur coat, erect triangular ears, and distinctive facial markings often in black and white." + ], + "Dalmatian": [ + "A Dalmatian has a white coat with black spots, a sleek muscular body, and a distinctively elegant and athletic appearance.", + "A Dalmatian is a white dog with distinct black spots, a sleek body, and a friendly, alert expression.", + "Dalmatians have a white coat with distinct black spots that are evenly spaced and vary in size.", + "Dalmatians are recognized by their white coat with black or liver spots and sleek muscular build." + ], + "Affenpinscher": [ + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, unlike smoother or larger animals or objects.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a short muzzle.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a sturdy, compact body.", + "The Affenpinscher has a shaggy wiry coat a monkey like face small size and a distinctive beard and mustache." + ], + "Basenji": [ + "The Basenji is a small sleek dog with a short coat curled tail pointed ears and a wrinkled forehead.", + "The Basenji is a sleek medium-sized dog with a short coat pointed ears and a tightly curled tail.", + "The Basenji has a short coat, tightly curled tail, wrinkled forehead, and upright ears with a sleek athletic build.", + "The Basenji is a small, short-haired dog with a wrinkled forehead, curled tail, and upright ears, unlike most other objects." + ], + "pug": [ + "A pug is a small, wrinkly-faced dog with a short muzzle, curled tail, and a compact, muscular body.", + "Pugs have a wrinkled face, short muzzle, curled tail, and compact muscular body with a fawn or black coat.", + "The pug's distinctively wrinkled, flat face and curled tail set it apart from all other objects.", + "Pugs have wrinkled faces, short muzzles, and curled tails, unlike most objects which lack these distinct facial and body features." + ], + "Leonberger": [ + "A Leonberger is a large dog with a thick golden or brown coat, a black mask, and a gentle, lion-like appearance.", + "The Leonberger is a large fluffy dog with a thick mane broad muzzle and gentle expression resembling a lion.", + "The Leonberger is a large, long-haired dog with a lion-like mane, distinguishing it from smaller or short-haired breeds.", + "The Leonberger has a large size with a thick mane-like fur around its neck and chest." + ], + "Newfoundland dog": [ + "Newfoundland dogs are large with thick black or brown coats webbed feet and a gentle expression.", + "The Newfoundland dog is a large, muscular breed with a thick black or brown coat, webbed feet, and a gentle expression.", + "Newfoundland dogs are large, fluffy, and have thick water-resistant coats, unlike most objects which are smaller and lack fur.", + "The Newfoundland is a large, strong dog with a thick water-resistant coat, webbed feet, and a gentle, friendly expression." + ], + "Great Pyrenees dog": [ + "Great Pyrenees are large white dogs with fluffy coats, gentle expressions, and often a slight tan or gray shading around the ears.", + "The Great Pyrenees is a large white fluffy dog with a thick double coat, distinct from smaller or non-fluffy animals.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a gentle bear-like face.", + "The Great Pyrenees is a large white fluffy dog with a gentle expression and a thick double coat." + ], + "Samoyed": [ + "Samoyeds are fluffy white dogs with a distinctive smiling face and curly tail unlike other animals or objects.", + "A Samoyed is a fluffy white dog with a thick coat, curled tail, and a friendly smiling face.", + "Samoyeds are fluffy white dogs with smiling faces pointed ears and a curly tail often looking happy and friendly.", + "Samoyeds are fluffy white dogs with a thick double coat, curled tail, and a smiling expression due to upturned mouth corners." + ], + "Pomeranian": [ + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors.", + "Pomeranians are small fluffy dogs with a fox-like face pointed ears and a thick double coat in various colors.", + "Pomeranians are small fluffy dogs with fox-like faces and thick double coats unlike larger or less furry animals.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat often in orange or cream." + ], + "Chow Chow": [ + "The Chow Chow is a fluffy medium-sized dog with a lion-like mane, deep-set eyes, and a distinctive blue-black tongue.", + "The Chow Chow has a distinctive thick double coat, blue-black tongue, and lion-like mane, unlike most other dog breeds.", + "The Chow Chow has a distinctive lion-like mane, deep-set eyes, a blue-black tongue, and a thick double coat in red or cream.", + "The Chow Chow is recognized by its thick double coat, deep-set eyes, blue-black tongue, and lion-like mane." + ], + "Keeshond": [ + "A Keeshond is a fluffy medium-sized dog with a thick gray and black coat, a fox-like face, and distinctive spectacles around its eyes.", + "The Keeshond has a distinctive thick gray and black fur, a fox-like face, and a plumed tail, unlike most other objects.", + "A Keeshond is a medium-sized dog with a thick gray and black coat, distinctive spectacles around the eyes, and a plumed tail.", + "The Keeshond has distinctive thick gray and black fur with striking spectacles-like markings around its eyes." + ], + "brussels griffon": [ + "A Brussels Griffon is a small dog with a short muzzle, large expressive eyes, and a distinctive beard-like fur around its face.", + "A Brussels Griffon is a small, sturdy dog with a short muzzle, large expressive eyes, and a rough or smooth coat.", + "Brussels griffons have a small, sturdy body with a flat face, large eyes, and a distinctive beard compared to other dog breeds.", + "The Brussels Griffon has a distinctive short muzzle large expressive eyes and a prominent chin with a wiry or smooth coat." + ], + "Pembroke Welsh Corgi": [ + "Pembroke Welsh Corgis are short-legged with pointed ears and a fox-like face unlike most objects which lack these distinct animal features.", + "Pembroke Welsh Corgis have short legs, pointed ears, a fox-like face, and a long body with no tail or a very short tail.", + "Pembroke Welsh Corgis are small short-legged dogs with pointed ears a fox-like face and a tailless or short tail.", + "The Pembroke Welsh Corgi is a small, sturdy dog with short legs, pointed ears, and a fox-like face." + ], + "Cardigan Welsh Corgi": [ + "The Cardigan Welsh Corgi is a small, long-bodied dog with short legs, large ears, and a fluffy tail.", + "The Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with a distinct fox-like face.", + "A Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with short legs and a fox-like face.", + "The Cardigan Welsh Corgi has a long tail, short legs, and a sturdy body, unlike many other dog breeds or objects." + ], + "Toy Poodle": [ + "A Toy Poodle is a small curly-haired dog with a rounded head perky ears and a fluffy tail.", + "A toy poodle is small with curly dense fur a rounded head and a slender muzzle often groomed in distinctive fluffy styles.", + "Toy poodles are small curly-haired dogs with fluffy rounded features unlike most objects which are hard angular or non-living.", + "Toy Poodles have a small curly coat round face and slender legs with a proud upright posture and expressive eyes." + ], + "Miniature Poodle": [ + "Miniature Poodles have curly dense fur a small size and a distinctive elegant posture with a rounded head and long slender legs.", + "Miniature Poodles have a distinctive curly dense coat with a rounded pom-pom tail and fluffy face and legs.", + "A Miniature Poodle is a small curly-haired dog with a slender build and an elegant poised stance.", + "Miniature Poodles have curly dense fur, long legs, and a distinctive poofy tail, unlike most objects which lack organic shapes and textures." + ], + "Standard Poodle": [ + "A Standard Poodle is a tall elegant dog with a curly dense coat often groomed in distinctive stylish patterns.", + "A Standard Poodle has a curly dense coat long legs an elegant stance and a distinctive poofy tail and topknot.", + "Standard Poodles have a curly dense coat, long legs, and a proud elegant posture with a distinctive rounded head and floppy ears.", + "Standard Poodles have curly fur, long legs, and a distinctive poofy tail, unlike most objects which are rigid or lack fur." + ], + "Mexican hairless dog (xoloitzcuintli)": [ + "The Mexican hairless dog has smooth mostly hairless skin wrinkles on the head and a slender body with large upright ears.", + "The Mexican hairless dog has smooth mostly hairless skin and a slender body unlike furry or feathered animals and non-living objects.", + "The Mexican hairless dog has smooth wrinkled skin large ears and a lean muscular body with little to no hair.", + "The Mexican hairless dog is a sleek slender canine with wrinkled skin large ears and little to no hair." + ], + "grey wolf": [ + "Grey wolves have a bushy tail, pointed ears, and a thick fur coat, unlike smoother or less furry animals.", + "Grey wolves have a bushy tail pointed ears thick fur and a narrow muzzle with a mix of grey brown and white fur.", + "A grey wolf is a large canine with thick fur, pointed ears, a bushy tail, and a lean, muscular body.", + "The grey wolf has a distinctive bushy tail with black tips and a mix of grey and brown fur." + ], + "Alaskan tundra wolf": [ + "The Alaskan tundra wolf has a thick white or light gray coat with a robust build and distinct facial markings.", + "The Alaskan tundra wolf has a thick gray or white coat, a robust build, and a broad face with strong jaws.", + "The Alaskan tundra wolf is a large grayish white canine with a thick fur coat and sturdy build resembling wild dogs.", + "The Alaskan tundra wolf has a thick gray-white coat, pointed ears, and a lean, muscular build, unlike most other animals or objects." + ], + "red wolf or maned wolf": [ + "Look for a reddish-brown coat with long legs and a narrow face resembling a fox for maned wolf or a stocky gray-red mix for red wolf.", + "The red wolf is a medium-sized canine with reddish fur and a slender build resembling a coyote or domestic dog.", + "Red wolves and maned wolves have slender legs, reddish fur, and distinct facial markings unlike most other animals.", + "The red wolf has a distinctive reddish-tawny coat, while the maned wolf has long black legs and a fox-like appearance." + ], + "coyote": [ + "Coyotes have slender bodies, pointed ears, bushy tails, and grayish-brown fur, distinguishing them from similar animals like wolves or dogs.", + "Coyotes have slender bodies pointed ears bushy tails and grayish brown fur often seen in wild open landscapes.", + "Coyotes have a slender pointed muzzle upright ears and a bushy tail with a black tip.", + "A coyote looks like a medium-sized wild dog with grayish-brown fur, pointed ears, a bushy tail, and a slender snout." + ], + "dingo": [ + "Dingoes are medium-sized wild dogs with sandy or reddish coats, pointed ears, and a bushy tail resembling a domestic dog.", + "Dingoes are medium-sized wild dogs with lean bodies, pointed ears, and reddish or sandy coats, unlike domestic dogs or wolves.", + "Dingoes have a lean body, pointed ears, bushy tail, and reddish or sandy fur with white markings on paws and chest.", + "A dingo looks like a medium-sized wild dog with a lean body, pointed ears, and a bushy tail, often sandy-colored." + ], + "dhole": [ + "The dhole is a wild dog with a reddish coat, bushy tail, and pointed ears, resembling a fox but larger and more robust.", + "The dhole is a wild dog with a reddish coat, bushy tail, and rounded ears, distinct from domestic dogs and wolves.", + "Dholes have reddish coats, bushy tails, rounded ears, and a distinctive black-tipped tail with a white underside.", + "The dhole has a distinctive reddish coat with a bushy black tail and white underside." + ], + "African wild dog": [ + "African wild dogs have unique patchy fur patterns with irregular brown black and yellow spots unlike solid-colored animals or man-made objects.", + "African wild dogs have unique patchy coats with irregular black brown and yellow patterns and large rounded ears.", + "African wild dogs have unique mottled fur patterns with irregular patches of yellow black and white and large rounded ears.", + "African wild dogs have a mottled coat with patches of yellow black and white large rounded ears and a slender build." + ], + "hyena": [ + "Hyenas have a dog-like shape with sloping backs large ears spotted or striped fur and strong jaws for crushing bones.", + "Hyenas are dog-like mammals with strong builds, short fur, rounded ears, and powerful jaws for crushing bones.", + "Hyenas have a sloping back, strong jaws, and spotted or striped fur unlike most animals which have straight backs and uniform coats.", + "Hyenas have a distinctive sloping back with powerful front legs and a spotted coat." + ], + "red fox": [ + "A red fox is a small canine with reddish fur, a bushy tail, pointed ears, and a slender snout.", + "The red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "A red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "Red foxes have a slender body, bushy tail, pointed ears, and reddish-orange fur, unlike most other animals." + ], + "kit fox": [ + "A kit fox is a small, slender, sandy-colored wild canine with large ears, a bushy tail, and pointed muzzle.", + "The kit fox has a small slender body large ears and a bushy tail unlike similar animals which may vary in size fur and ear shape.", + "The kit fox has large ears relative to its head size and a slender body with a bushy tail.", + "A kit fox has large ears, a slender body, grayish or yellowish fur, and a bushy tail with a black tip." + ], + "Arctic fox": [ + "The Arctic fox is a small white or gray furry animal with a bushy tail and pointed ears.", + "The Arctic fox has a white winter coat and smaller size compared to similar animals like the red fox or wolves.", + "The Arctic fox has thick white winter fur, a small round face, and short ears for surviving cold climates.", + "The Arctic fox has pure white winter fur that blends seamlessly with snowy landscapes." + ], + "grey fox": [ + "The grey fox is a small canine with grizzled grey fur a black stripe on its tail and a reddish neck.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish legs, unlike most animals with solid or less distinct markings.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown markings on its neck and legs.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown accents on its neck and legs." + ], + "tabby cat": [ + "Tabby cats have striped, dotted, or swirled fur patterns and a distinctive M-shaped mark on their forehead.", + "Tabby cats have striped, dotted, lined, or swirled patterns on their fur with a distinctive M-shaped mark on their forehead.", + "A tabby cat has distinctive striped, dotted, or swirled fur patterns often with an M-shaped mark on its forehead.", + "A tabby cat has a striped, spotted, or swirled coat pattern with an M-shaped mark on its forehead and often green or yellow eyes." + ], + "tiger cat": [ + "A tiger cat has a striped or spotted coat resembling a small tiger with a slender body and pointed ears.", + "Tiger cats have striped fur and a feline shape unlike other objects which vary in color texture and form.", + "Tiger cats have distinctive striped or spotted fur patterns resembling a tiger with a small domestic cat body shape.", + "Tiger cats have distinctive dark stripes and spots on a lighter background unlike other cats and objects." + ], + "Persian cat": [ + "Persian cats have long fluffy fur a flat face round eyes and a stocky body making them stand out.", + "Persian cats have long fluffy fur round faces short noses and large round eyes often with a flat face.", + "Persian cats have long fluffy fur flat faces and round eyes unlike most other objects which are not living animals.", + "A Persian cat is a fluffy long-haired cat with a round face short muzzle and large expressive eyes among all objects." + ], + "Siamese cat": [ + "Siamese cats have sleek bodies, blue almond-shaped eyes, short coats with color points on ears face paws and tail.", + "Siamese cats have sleek bodies, pointed color patterns on ears face paws and tail and striking blue almond-shaped eyes.", + "Siamese cats have striking blue almond-shaped eyes, short sleek coats with color points on ears face paws and tail.", + "A Siamese cat has a sleek body with blue almond-shaped eyes and distinctive pointed color patterns on its ears face paws and tail." + ], + "Egyptian Mau": [ + "The Egyptian Mau is a sleek spotted cat with a muscular body large green eyes and a graceful agile appearance.", + "The Egyptian Mau has a sleek spotted coat and distinctive mascara-like markings unlike other cats or objects.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau has a spotted coat, green eyes, and a distinctive mascara-like marking around its eyes." + ], + "cougar": [ + "A cougar is a large tan or brown cat with a long tail and a muscular body resembling a big domestic cat.", + "A cougar is a large tan cat with a long tail, slender body, and no distinct markings like spots or stripes.", + "A cougar has a uniform tan coat with no markings and a long thick tail relative to other big cats.", + "A cougar has a tan coat, muscular body, long tail, and a small head with rounded ears distinguishing it from other animals." + ], + "lynx": [ + "A lynx is a medium-sized wild cat with tufted ears, a short tail, and a spotted or striped coat.", + "Lynx are medium-sized wild cats with tufted ears, short tails, and spotted or streaked fur often seen in forested areas.", + "Lynx have tufted ears, short tails, and spotted coats with long legs and large paws for snowy habitats.", + "The lynx has distinctive long black tufts of hair on the tips of its ears." + ], + "leopard": [ + "Leopards have golden yellow fur with black rosettes and are sleek muscular cats smaller than lions and tigers.", + "A leopard is a large spotted cat with a golden coat and black rosettes, known for its strength and agility.", + "Leopards have golden coats with black rosettes and spots, sleek bodies, and long tails for climbing and balance.", + "Leopards have golden yellow fur with black rosette spots and a muscular slender body with a long tail." + ], + "snow leopard": [ + "A snow leopard is a large, pale gray cat with dark spots and a long, thick tail, living in mountainous regions.", + "Snow leopards have thick fur, rosette patterns, and a long tail, unlike other animals with plain coats or different body shapes.", + "Snow leopards have thick gray fur with black rosettes and spots, a long bushy tail, and a stocky build for mountain habitats.", + "A snow leopard has thick gray fur with black spots and rosettes, a long tail, and a muscular body built for cold mountains." + ], + "jaguar": [ + "Jaguars have a golden-yellow coat with black rosettes and a muscular build unlike other big cats or vehicles.", + "A jaguar is a large, muscular wild cat with a golden-yellow coat covered in dark rosettes and spots.", + "Jaguars have a golden-yellow coat with black rosettes and a muscular build, distinguishing them from other big cats and animals.", + "A jaguar has a golden-yellow coat with black rosettes and spots, a muscular build, and a large head with powerful jaws." + ], + "lion": [ + "A lion has a distinctive thick mane around its head which no other object or animal has.", + "Lions have a distinctive mane, muscular body, tawny fur, and a tail with a tuft unlike most other animals.", + "A lion is a large golden-brown cat with a mane around its head, sharp claws, and a muscular body.", + "A lion is a large tawny cat with a shaggy mane for males and a muscular body with a long tail." + ], + "tiger": [ + "Tigers have orange fur with black stripes, a muscular body, and a distinctive face with white markings and powerful jaws.", + "A tiger is a large striped orange and black cat with a powerful body sharp claws and a long tail.", + "Tigers have bold black stripes on orange fur, a white underside, and a powerful muscular body with a distinctive face.", + "A tiger has orange fur with black stripes, a white belly, and a muscular body with a long tail and sharp claws." + ], + "cheetah": [ + "Cheetahs have slender bodies black tear marks and spotted coats built for speed with long tails and small heads.", + "A cheetah is a sleek, spotted big cat with a slender body, long legs, and a distinctive black tear stripe on its face.", + "Cheetahs have slender bodies, black spots, and distinctive black tear marks on their faces unlike other big cats or animals.", + "Cheetahs are slender big cats with black spots, a long tail, and distinctive black tear marks on their faces." + ], + "brown bear": [ + "A brown bear is a large furry animal with a bulky body, round ears, and thick brown fur.", + "Brown bears are large furry mammals with a humped shoulder and long claws, unlike most objects which are smaller and less hairy.", + "Brown bears have a distinctive hump on their shoulders not found in other bear species or animals.", + "Brown bears are large with thick brown fur a muscular hump on their shoulders and long curved claws." + ], + "American black bear": [ + "The American black bear is a large, furry mammal with a stocky body, short tail, and round ears, usually dark brown or black.", + "American black bears have a stocky body, short tail, rounded ears, and thick black fur distinguishing them from other objects.", + "The American black bear has a stocky body, short tail, rounded ears, and fur ranging from black to light brown.", + "American black bears are medium-sized with black fur, a straight facial profile, and no shoulder hump like brown bears." + ], + "polar bear": [ + "Polar bears are large white bears with long necks small ears and black noses living in snowy Arctic regions.", + "Polar bears have thick white fur a large body and a long neck distinguishing them from other animals and objects.", + "A polar bear is a large white furry bear with a long neck and black nose living in icy Arctic regions.", + "Polar bears are large white bears with thick fur and black skin, unlike most other animals or objects in color and size." + ], + "sloth bear": [ + "The sloth bear is a shaggy black bear with a long snout, white muzzle, and curved claws for digging insects.", + "Sloth bears have shaggy black fur a white V on their chest and long curved claws unlike smoother shorter clawed bears.", + "The sloth bear has a distinct long shaggy black coat and a white V-shaped mark on its chest.", + "Sloth bears have shaggy black fur, a white V-shaped chest mark, and a long snout for sucking insects." + ], + "mongoose": [ + "A mongoose is a small slender furry mammal with a pointed face short legs and a long tail often brown or gray.", + "Mongooses are small slender mammals with pointed noses long tails short legs and often gray or brown fur.", + "Mongooses are small slender mammals with pointed faces short legs long tails and often a grizzled or speckled fur pattern.", + "Mongooses are small slender mammals with pointed faces and long tails unlike most other objects which are not animals." + ], + "meerkat": [ + "Meerkats have slender bodies, pointed faces, dark eye patches, and stand upright on their hind legs often in groups.", + "A meerkat is a small slender mongoose with a pointed face, short legs, and a long tail, often standing upright.", + "Meerkats are small slender mongooses with pointed faces, short legs, long tails, and dark eye patches on light brown fur.", + "Meerkats are small slender mongooses with pointed faces long tails and distinctive dark eye patches unlike most other animals." + ], + "tiger beetle": [ + "Tiger beetles have long legs, large eyes, and metallic-colored bodies with distinct patterns unlike most other insects and objects.", + "Tiger beetles have large bulging eyes and long slender legs that distinguish them from other insects and objects.", + "Tiger beetles are small, colorful, fast-moving insects with long legs, large eyes, and metallic or patterned bodies resembling tiny vibrant beetles.", + "Tiger beetles are recognized by their metallic colors, large eyes, long legs, and fast running speed among insects." + ], + "ladybug": [ + "Ladybugs are small round beetles with bright red or orange shells and black spots unlike most other insects or objects.", + "A ladybug is a small round beetle with bright red or orange wings and black spots, often found on plants.", + "Ladybugs are small round beetles with bright red or orange shells and black spots on their backs.", + "Ladybugs are recognized by their small round red bodies with black spots and shiny dome-shaped wing covers." + ], + "ground beetle": [ + "Ground beetles are small, shiny, and have hard wing covers with distinct ridges, unlike most other insects or objects.", + "Ground beetles are small shiny black or metallic insects with hard wing covers and long legs often found under rocks.", + "Ground beetles are small, shiny, dark-colored insects with hard wing covers and long legs, often found under rocks or logs.", + "Ground beetles are recognized by their shiny elongated bodies, ridged wing covers, and fast legs adapted for running." + ], + "longhorn beetle": [ + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical bodies with distinctive bold patterns or colors.", + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical shapes unlike most other beetles or insects.", + "Longhorn beetles have extremely long antennae often longer than their bodies distinguishing them from other insects and objects.", + "Longhorn beetles are recognized by their extremely long antennae often longer than their bodies and cylindrical elongated bodies." + ], + "leaf beetle": [ + "Leaf beetles are small, shiny, oval-shaped insects with bright colors or metallic sheen often found on leaves.", + "Leaf beetles are small, shiny, and often brightly colored with hard wing covers, unlike most other beetles which are duller or larger.", + "Leaf beetles are small, oval-shaped insects with bright, often metallic colors and hard wing covers, resembling tiny, shiny jewels on plants.", + "Leaf beetles are recognized by their small oval bodies, bright metallic colors, and distinct patterns on their wing covers." + ], + "dung beetle": [ + "A dung beetle is a small dark oval-shaped insect with a hard shell and strong legs for rolling dung balls.", + "Dung beetles are small dark oval-shaped insects with strong legs often seen rolling balls of dung.", + "Dung beetles are small, oval-shaped insects with hard shells and often have shiny black or metallic colors unlike most other objects.", + "Dung beetles are recognized by their oval body, shiny black or brown shell, and strong legs for rolling dung balls." + ], + "rhinoceros beetle": [ + "The rhinoceros beetle is a large dark insect with a prominent horn on its head resembling a rhino's horn.", + "A rhinoceros beetle has a large horn on its head and a shiny dark body with a hard shell.", + "Rhinoceros beetles have a large horn on their head and a thick armored body making them easy to recognize.", + "Rhinoceros beetles have a large horn on their head and a hard shiny shell unlike most other insects or objects." + ], + "weevil": [ + "Weevils are small beetles with elongated snouts and often have a hard shell compared to other insects or objects.", + "Weevils are small beetles with elongated snouts and often have a hard shell with a slightly curved or bent body shape.", + "Weevils have elongated snouts, small round bodies, and distinctive antennae often bent at an angle.", + "Weevils are small beetles with elongated snouts and often have a hard shell and segmented antennae." + ], + "fly": [ + "Flies are small with transparent wings, large eyes, and a slender body often seen near food or waste.", + "A fly is a small winged insect with a dark slender body large eyes and transparent veined wings.", + "Flies have small slender bodies transparent wings large eyes and six legs often seen hovering or resting on surfaces.", + "Flies have small, slender bodies with transparent wings and large compound eyes unlike most other objects in ImageNet." + ], + "bee": [ + "A bee is a small flying insect with a fuzzy striped body, transparent wings, and often seen near flowers.", + "Bees have striped yellow and black bodies, transparent wings, and are smaller than most similar flying insects like wasps or hornets.", + "Bees are small flying insects with yellow and black striped bodies, transparent wings, and often seen near flowers.", + "Bees have distinctive black and yellow striped bodies with translucent wings and fuzzy hair covering their thorax." + ], + "ant": [ + "Ants are small with six legs, a segmented body, and antennae, unlike most objects which lack these distinct insect features.", + "An ant is a small, slender insect with six legs, a segmented body, and often black or reddish-brown in color.", + "Ants have a distinct segmented body with a narrow waist and bent antennae unlike most other insects or objects.", + "Ants are small, six-legged insects with segmented bodies, thin waists, and bent antennae, often seen crawling in lines or carrying food." + ], + "grasshopper": [ + "Grasshoppers have long hind legs for jumping, slender bodies, and antennae, unlike most other insects and objects.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and antennae, often green or brown to blend into grass.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and wings, often green or brown for camouflage.", + "Grasshoppers have long hind legs for jumping and segmented bodies with large eyes and antennae." + ], + "cricket insect": [ + "Crickets are small, slender insects with long antennae, strong hind legs for jumping, and wings that some species use to chirp.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings that lie flat on their backs.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings, unlike most non-insect objects.", + "Crickets have long antennae and powerful hind legs adapted for jumping unlike most other insects and objects." + ], + "stick insect": [ + "Stick insects have long slender bodies resembling twigs or branches with legs that mimic small sticks for camouflage.", + "Stick insects are long and thin resembling twigs while other objects vary widely in shape color and texture.", + "Stick insects look like thin twigs or branches with long slender bodies and legs blending into their surroundings.", + "Stick insects uniquely resemble thin twigs or branches with elongated bodies and legs mimicking plant parts perfectly." + ], + "cockroach": [ + "Cockroaches are dark brown oval-shaped insects with long antennae six legs and a shiny flattened body often found scurrying quickly.", + "Cockroaches have flat oval bodies long antennae and six spiny legs unlike most insects which may have wings or different body shapes.", + "Cockroaches are small dark brown insects with oval flat bodies long antennae and six legs often found in damp places.", + "Cockroaches have flat oval bodies long antennae and six spiny legs often appearing shiny brown or black with a segmented appearance." + ], + "praying mantis": [ + "Praying mantises have long slender bodies triangular heads and folded spiked forelegs used for catching prey.", + "A praying mantis has a long slender green or brown body with large eyes and folded forelegs for catching prey.", + "Praying mantises have long slender bodies triangular heads and front legs adapted for grasping unlike most other insects or objects.", + "Praying mantises have long slender bodies triangular heads and front legs bent like they are praying often green or brown." + ], + "cicada": [ + "Cicadas have large transparent wings, prominent eyes, and a stout body, unlike most insects which are smaller with varied wing shapes.", + "Cicadas have large transparent wings, bulging eyes, and a stout body, often green or brown, with distinctive loud buzzing sounds.", + "Cicadas are small winged insects with large transparent wings bulging eyes and often green or brown bodies.", + "Cicadas have large transparent wings with prominent veins and a distinct body shape among insects." + ], + "leafhopper": [ + "A leafhopper is a small, slender, winged insect with vibrant colors, often green or brown, resembling tiny leaves or grasshoppers.", + "Leafhoppers are small, wedge-shaped insects with colorful or patterned wings and strong hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with colorful, often patterned wings and large hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with vibrant colors, large hind legs for jumping, and often have intricate patterns on their wings." + ], + "lacewing": [ + "Lacewings have delicate transparent veined wings, long antennae, and bright golden eyes, distinguishing them from other insects and objects.", + "Lacewings are delicate insects with transparent veined wings and long antennae, unlike other objects which lack these specific features.", + "Lacewings have delicate transparent wings with intricate veining patterns and a distinctive green or golden body.", + "Lacewings are delicate insects with transparent veined wings, long antennae, and bright green or pale bodies, often found near plants." + ], + "dragonfly": [ + "Dragonflies have long slender bodies, large transparent wings, and bulging eyes unlike most other insects or objects.", + "Dragonflies are recognized by their long slender bodies, large transparent wings, and large multifaceted eyes.", + "Dragonflies have long slender bodies, large transparent wings, and big bulging eyes, often seen near water.", + "A dragonfly has a long slender body large transparent wings and big eyes often seen near water with vibrant colors." + ], + "damselfly": [ + "A damselfly is a slender winged insect with a long body and delicate transparent wings resembling a small dragonfly.", + "Damselflies have slender bodies, delicate wings held together when resting, and long thin abdomens unlike bulkier dragonflies or other flying insects.", + "Damselflies have slender bodies, long thin wings held together when resting, and large widely separated eyes on their heads.", + "Damselflies have long slender bodies with two pairs of similarly sized wings held together when at rest." + ], + "red admiral butterfly": [ + "The red admiral butterfly has dark wings with bold orange-red bands and white spots, making it easily recognizable.", + "The red admiral butterfly has striking black wings with orange-red bands and white spots, unlike most other butterflies or objects.", + "The red admiral butterfly has bold orange-red bands on black wings with white spots near the tips.", + "The red admiral butterfly has black wings with striking orange-red bands and white spots along the wing edges." + ], + "ringlet butterfly": [ + "A ringlet butterfly is a small, dark brown butterfly with circular eye-like spots on its wings and a delicate, fluttering flight.", + "The ringlet butterfly has distinctive small eyespots with white centers on its underwings surrounded by dark rings.", + "Ringlet butterflies have small, dark wings with subtle ring-like patterns, unlike brighter or plainer insects and objects.", + "Ringlet butterflies have small, dark wings with white-ringed spots and a delicate, fluttering flight pattern." + ], + "monarch butterfly": [ + "The monarch butterfly has distinctive bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have vibrant orange and black wings with white spots along the edges and veins.", + "A monarch butterfly has vibrant orange and black wings with white spots and a delicate, slender body among all objects." + ], + "small white butterfly": [ + "Small white butterflies have delicate white wings with faint black or yellow markings, unlike most objects which are bulkier and lack wings.", + "Look for tiny white wings with delicate patterns and thin black edges fluttering near flowers or plants.", + "Small white butterflies have delicate white wings with subtle black tips and faint yellow or greenish undersides.", + "Small white butterflies have delicate white wings with faint black tips and subtle yellow or greenish undersides." + ], + "sulphur butterfly": [ + "A sulphur butterfly is a small yellow or orange butterfly with delicate wings often seen fluttering near flowers.", + "Sulphur butterflies have bright yellow or orange wings with black edges and small dark spots on their forewings.", + "Sulphur butterflies are bright yellow or orange with black wing edges and small dark spots on their wings.", + "Sulphur butterflies have bright yellow or orange wings with distinct black edges and minimal patterns." + ], + "gossamer-winged butterfly": [ + "Gossamer-winged butterflies have delicate, translucent wings with fine scales and slender bodies, unlike bulkier insects or birds with opaque feathers.", + "Gossamer-winged butterflies are small delicate insects with thin translucent wings often displaying vibrant colors and intricate patterns.", + "Gossamer-winged butterflies are small with delicate, translucent wings often showing bright colors or intricate patterns.", + "Gossamer-winged butterflies have delicate, translucent wings with vibrant colors and intricate patterns, often appearing small and fragile." + ], + "starfish": [ + "Starfish have five or more arms radiating from a central body and are often bumpy or spiny with bright colors.", + "Starfish have radial symmetry, five or more arms, rough textured skin, and bright colors or patterns.", + "Starfish have five or more radiating arms with a rough texture and often bright colors unlike smoother symmetrical objects.", + "Starfish are marine creatures with five or more arms radiating from a central body, often colorful and covered in small bumps or spines." + ], + "sea urchin": [ + "Sea urchins are small round spiny creatures with a hard shell often found in ocean habitats.", + "Sea urchins are round spiky marine creatures with a hard shell, unlike most other objects which are smoother or differently shaped.", + "Sea urchins have round spiny shells with radial symmetry and small tube feet between their spines.", + "Sea urchins are small spiny round creatures found in oceans resembling prickly balls with tiny tube feet underneath." + ], + "sea cucumber": [ + "Sea cucumbers are soft elongated tube-shaped marine animals often with leathery skin and small bumps or spines.", + "Sea cucumbers have a distinct elongated cylindrical body with soft leathery skin and small tube feet.", + "Sea cucumbers are elongated soft-bodied marine animals with leathery skin unlike most sea creatures which have shells or hard exoskeletons.", + "Sea cucumbers are recognized by their elongated soft cylindrical bodies and bumpy leathery skin often found on ocean floors." + ], + "cottontail rabbit": [ + "A cottontail rabbit is a small brown or gray furry animal with a fluffy white tail and long ears.", + "Cottontail rabbits have fluffy white tails and brown-gray fur, unlike other objects which lack these specific natural features.", + "Cottontail rabbits have small brown bodies with white fluffy tails and long ears but no black markings like some hares.", + "Cottontail rabbits have a small fluffy white tail, large ears, brown-gray fur, and a compact body with long hind legs." + ], + "hare": [ + "A hare is a fast long-eared mammal resembling a rabbit but larger with longer legs and stronger hindquarters for leaping.", + "Hares have long ears, strong hind legs, short tails, and brown or gray fur with a lean body.", + "Hares have long ears and legs with a lean body and brownish fur unlike similar animals which vary in size color and shape.", + "Hares have long ears, strong hind legs, a lean body, and fast movement, distinguishing them from similar animals like rabbits." + ], + "Angora rabbit": [ + "The Angora rabbit is a fluffy, long-haired rabbit with soft, thick fur that often appears round and woolly.", + "Angora rabbits have long soft fur and floppy ears unlike most objects which are hard smooth or lack fur and ears.", + "Angora rabbits are recognized by their long soft wool floppy ears and round faces with a fluffy compact body shape.", + "Angora rabbits are fluffy with long soft wool often covering their eyes and ears making them look like round fur balls." + ], + "hamster": [ + "Hamsters are small furry rodents with short tails and chubby cheeks unlike other animals or objects in their category.", + "Hamsters have small round bodies with short legs and distinctive cheek pouches for storing food.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive facial markings and whiskers.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive fur patterns or colors." + ], + "porcupine": [ + "Porcupines have long sharp quills covering their bodies which no other animal or object has in such abundance and arrangement.", + "Porcupines have long sharp quills covering their bodies unlike similar animals which have fur or shorter softer spines.", + "Porcupines are medium-sized rodents with sharp quills covering their bodies for protection against predators.", + "Porcupines are easily recognized by their long sharp quills covering their body and their stout slow moving shape." + ], + "fox squirrel": [ + "The fox squirrel is a large tree squirrel with reddish brown fur a bushy tail and a white belly.", + "Fox squirrels are larger with bushy tails and reddish-brown fur, unlike smaller gray squirrels or non-squirrel animals with different colors and shapes.", + "A fox squirrel has a bushy tail, reddish-brown fur, and is larger than most squirrels with a white belly.", + "Fox squirrels have large bushy tails, reddish-brown fur, and are often seen climbing trees or foraging on the ground." + ], + "marmot": [ + "A marmot is a stout, furry rodent with short legs, a bushy tail, and rounded ears, resembling a large ground squirrel.", + "Marmots are stout, furry rodents with short legs, bushy tails, and rounded ears, often seen in rocky or grassy areas.", + "Marmots are large ground-dwelling rodents with stout bodies, short legs, and bushy tails, unlike most similar animals.", + "Marmots are recognized by their stout bodies, short legs, bushy tails, and brown or gray fur often found in rocky mountainous areas." + ], + "beaver": [ + "A beaver is a large brown rodent with a flat tail webbed feet and sharp teeth often seen near water.", + "Beavers are large brown rodents with flat tails, webbed hind feet, and sharp teeth, often found near water.", + "Beavers have flat tails, webbed feet, and brown fur, unlike most animals which lack these specific aquatic adaptations.", + "Beavers have flat scaly tails, webbed hind feet, and large front teeth for gnawing wood near water." + ], + "guinea pig": [ + "Guinea pigs are small furry rodents with round bodies short legs and no tails unlike most other pets or objects.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and smooth fur in various colors and patterns." + ], + "common sorrel horse": [ + "A common sorrel horse has a solid reddish-brown coat with no black points, unlike other animals or objects with varied colors and patterns.", + "The common sorrel horse has a solid reddish-brown coat without black points like mane or tail.", + "A common sorrel horse has a reddish-brown coat with a uniform color, often with a flaxen mane and tail.", + "A common sorrel horse has a solid reddish-brown coat with a similar mane and tail, lacking black markings or other color variations." + ], + "zebra": [ + "Zebras are easily recognized by their black and white striped patterns and horse-like body shape.", + "Zebras have bold black and white stripes covering their entire body unlike any other animal.", + "A zebra is a striped horse-like animal with black and white patterns standing out among other animals and objects.", + "Zebras are recognized by their black and white striped patterns unique among animals and distinct from all other objects." + ], + "pig": [ + "Pigs have stout bodies, short legs, a snout for a nose, and often curly tails with pink or dark skin.", + "Pigs have stout bodies, short legs, flat snouts, and curly tails, unlike most animals which have leaner builds and different facial features.", + "Pigs are stout animals with short legs, a round body, a snout, and often pink skin covered with sparse hair.", + "Pigs have stout bodies, short legs, curly tails, and a distinctive snout used for rooting in the ground." + ], + "wild boar": [ + "Wild boars have dark coarse fur, a long snout, small eyes, and prominent tusks in males, with a sturdy muscular body.", + "Wild boars have coarse fur, tusks, and a stocky build unlike smoother or less muscular animals like pigs or deer.", + "A wild boar is a stocky, hairy animal with a large head, short legs, and prominent tusks, resembling a rugged pig.", + "Wild boars have a stocky body, coarse dark fur, a long snout, and prominent tusks making them easily recognizable." + ], + "warthog": [ + "Warthogs are wild pigs with large curved tusks, coarse gray or brown hair, and distinctive facial warts.", + "A warthog is a wild pig with a stocky body, coarse gray skin, large tusks, and distinctive facial warts.", + "Warthogs have distinctive large tusks, warty facial bumps, and a mane of coarse hair along their back.", + "Warthogs have distinctive large curved tusks and warty facial bumps that set them apart from other animals." + ], + "hippopotamus": [ + "A hippopotamus is a large gray aquatic mammal with a bulky body short legs and a wide mouth with big teeth.", + "Hippopotamuses are large, barrel-shaped with thick gray skin, small ears, wide mouths, and nearly hairless bodies unlike most other animals.", + "A hippopotamus is a large, barrel-shaped animal with thick gray skin, a huge mouth, and small ears and eyes on top of its head.", + "Hippopotamuses have massive barrel-shaped bodies with thick gray skin and tiny ears compared to their huge heads." + ], + "ox": [ + "An ox is a large, sturdy bovine with a muscular body, thick neck, and often has horns and a short coat.", + "Oxen are large, sturdy animals with muscular bodies, long tails, and prominent horns, unlike smaller or hornless livestock and objects.", + "Oxen are large, sturdy animals with broad bodies, thick necks, and curved horns, often seen with a muscular build and short hair.", + "Oxen are recognized by their large sturdy bodies long curved horns and strong muscular shoulders used for labor." + ], + "water buffalo": [ + "A water buffalo is a large, dark, stocky animal with curved horns, a broad muzzle, and a heavy, muscular body.", + "Water buffalo are large, dark gray or black animals with massive curved horns and a stocky, muscular body.", + "Water buffaloes are large, stocky animals with curved horns, dark gray or black skin, and a heavy build compared to similar animals.", + "Water buffalo have large curved horns that sweep back and up forming a distinctive crescent shape." + ], + "bison": [ + "Bison are large, shaggy brown mammals with massive heads, short horns, and humped shoulders, resembling wild cattle or buffalo.", + "Bison are large, shaggy-haired mammals with massive heads and humped shoulders, unlike most animals which are smaller or smoother.", + "Bison are large, shaggy brown mammals with massive heads, short curved horns, and a pronounced hump on their shoulders.", + "Bison have a massive humped shoulder and a thick shaggy mane that distinguishes them from other animals." + ], + "ram (adult male sheep)": [ + "A ram is a sturdy adult male sheep with large curved horns, a thick woolly coat, and a muscular build.", + "The ram has large curved horns that are thicker and more spiraled than other horned animals.", + "Rams have large curved horns a thick woolly coat and a muscular build distinguishing them from other animals.", + "Look for a large sturdy animal with curved horns thick wool a short tail and a muscular build compared to female sheep." + ], + "bighorn sheep": [ + "Bighorn sheep have large curved horns, stocky bodies, and brown fur, unlike most animals or objects which lack these distinct features.", + "Bighorn sheep have large curved horns a stocky brown body and white rump distinguishing them from other animals.", + "Bighorn sheep are large brown wild sheep with massive curved horns and a muscular body adapted for rugged mountainous terrain.", + "Bighorn sheep are recognized by their large curved horns muscular build brown-gray fur and preference for rocky mountainous habitats." + ], + "Alpine ibex": [ + "The Alpine ibex is a large wild goat with long curved horns a shaggy brown coat and a sturdy muscular body.", + "Alpine ibex are wild goats with long curved horns a light brown coat and a sturdy muscular build living in rocky mountains.", + "Alpine ibex have long curved horns with prominent ridges and a distinctive backward sweep.", + "Alpine ibex have long curved horns ridged rings and a sturdy grey brown body adapted for mountainous terrain." + ], + "hartebeest": [ + "Hartebeest are large antelopes with long narrow faces sloping backs and short twisted horns in both males and females.", + "A hartebeest is a large antelope with a long face, steeply sloping back, and ringed curved horns.", + "Hartebeests have long faces, short necks, and high shoulders, unlike other antelopes which are more streamlined or have different horn shapes.", + "Hartebeests have long narrow faces steeply sloping foreheads and short twisted horns with a reddish brown coat and long legs." + ], + "impala (antelope)": [ + "An impala is a slender, medium-sized antelope with reddish-brown fur, white underparts, and distinctive black markings on its face and tail.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impala have slender bodies, long legs, reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinct black stripes on their tails and hind legs." + ], + "gazelle": [ + "Gazelles are slender with long legs, short tails, and curved horns, often tan or light brown with white underbellies.", + "Gazelles are slender with long legs and horns while similar animals vary in size shape or lack horns.", + "Gazelles have slender bodies long legs and distinctive curved horns with a smooth glossy coat and white underbelly.", + "Gazelles are slender, long-legged antelopes with smooth coats, short tails, and often curved horns, built for speed in open grasslands." + ], + "arabian camel": [ + "The Arabian camel has a single hump while other camels have two humps.", + "The Arabian camel has a single hump, long legs, and a slender body compared to other camels and animals.", + "The Arabian camel has a long curved neck, a single hump, and a sandy-colored coat with long slender legs.", + "The Arabian camel has a single hump, long curved neck, slender legs, and a short coat, distinguishing it from other camels and animals." + ], + "llama": [ + "Llamas have long necks, slender legs, and woolly coats, unlike most animals which are shorter or have smoother fur.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas are tall furry mammals with long necks slender legs and a distinctive face resembling a camel but smaller and woolly." + ], + "weasel": [ + "A weasel is a small slender furry animal with short legs a long body and a pointed snout.", + "Weasels are small slender mammals with long bodies short legs pointed snouts and brown or white fur often with black tips.", + "Weasels have long slender bodies short legs pointed faces and brown or white fur often with a black-tipped tail.", + "Weasels are small slender mammals with long bodies short legs and brown fur while similar animals vary in size shape and color." + ], + "mink": [ + "Minks are small slender mammals with short legs, pointed snouts, and thick glossy fur, unlike most other animals.", + "Minks are small slender mammals with glossy dark brown fur short legs and a long tail.", + "A mink is a small sleek furry animal with a long body short legs and a pointed face resembling a weasel.", + "The mink has a sleek, elongated body with glossy dark brown fur and a small pointed face." + ], + "European polecat": [ + "The European polecat is a small, slender, dark-furred mammal with a white face mask and a long, bushy tail.", + "The European polecat has a dark brown coat with lighter underfur and a distinctive white face mask and dark legs.", + "The European polecat has a slender body, dark fur with a white face mask, and a bushy tail, unlike similar animals.", + "European polecats have slender bodies, dark masks around their eyes, and a mix of dark brown and cream fur with a bushy tail." + ], + "black-footed ferret": [ + "The black-footed ferret is a slender, long-bodied animal with dark legs, a pale body, and a distinctive black mask.", + "The black-footed ferret has a slender body with a black mask, black feet, and a tan coat with white underparts.", + "The black-footed ferret has a slender body, black mask, and dark feet, unlike similar animals with different markings or body shapes.", + "The black-footed ferret has distinctive dark markings on its feet and a black mask around its eyes." + ], + "otter": [ + "Otters have sleek furry bodies long tails webbed feet and small rounded ears unlike most aquatic or land animals.", + "Otters are sleek furry mammals with long tails webbed feet and whiskers often seen swimming or floating on water.", + "Otters are sleek furry mammals with long bodies short legs webbed feet and whiskers often seen swimming or holding hands.", + "Otters have a sleek streamlined body with webbed feet and a long tapered tail for swimming." + ], + "skunk": [ + "A skunk is a black and white furry mammal with a bushy tail and distinctive stripes, often emitting a strong odor.", + "Skunks are small black and white mammals with a bushy tail and distinctive white stripes or spots on their fur.", + "Skunks are recognized by their black fur with bold white stripes or spots and a bushy tail.", + "Skunks have distinctive black and white fur patterns and a bushy tail unlike most animals which have more uniform colors." + ], + "badger": [ + "Badgers are stout furry animals with short legs, black and white striped faces, and strong claws for digging.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws unlike most similar animals.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws for digging.", + "Badgers are stocky with short legs, black and white striped faces, and grayish fur on their low slung bodies." + ], + "armadillo": [ + "An armadillo is a small armored mammal with a hard bony shell, short legs, and a pointed snout.", + "Armadillos have a unique armored shell made of bony plates unlike most animals which have fur scales or smooth skin.", + "Armadillos have a distinctive leathery armored shell made of bony plates covering their back and sides.", + "Armadillos have a unique armored shell made of bony plates covering their back, head, legs, and tail." + ], + "three-toed sloth": [ + "Three-toed sloths have long limbs, curved claws, and a slow-moving, shaggy brown or gray fur coat unlike most other animals.", + "A three-toed sloth is a slow-moving, furry mammal with long limbs, curved claws, and a distinctive face, often hanging upside down in trees.", + "Three-toed sloths have long limbs, curved claws, a round face with a permanent smile, and shaggy gray-brown fur.", + "Three-toed sloths have a round face with a stubby snout, long limbs with three claws, and shaggy gray-brown fur." + ], + "orangutan": [ + "An orangutan is a large reddish brown ape with long arms shaggy hair and a distinctive face resembling humans.", + "Orangutans have long reddish-brown hair, large bodies, and no tails with prominent cheek pads on adult males.", + "Orangutans have long reddish-brown fur and distinctive cheek pads in males.", + "Orangutans have long reddish hair, large bodies, and no tails, unlike most animals and objects in ImageNet." + ], + "gorilla": [ + "A gorilla is a large, dark-haired primate with a muscular body, broad chest, and a strong, expressive face.", + "Gorillas are large black-haired primates with broad shoulders and no tails unlike many other animals and objects.", + "Gorillas are recognized by their large size, dark fur, broad shoulders, and distinctive facial features like a pronounced brow ridge.", + "Gorillas are large black-haired primates with broad chests, muscular arms, and a distinctively shaped head with a prominent brow ridge." + ], + "chimpanzee": [ + "Chimpanzees have black fur, long arms, hairless faces with large ears, and prominent brows, resembling humans but covered in coarse hair.", + "Chimpanzees are hairy primates with long arms, dark faces, and expressive eyes resembling humans but covered in coarse black or brown fur.", + "Chimpanzees have dark fur, long arms, expressive faces, and no tails unlike many animals and objects in ImageNet.", + "Chimpanzees have dark hairy bodies long arms expressive faces and opposable thumbs distinguishing them from other animals and objects." + ], + "gibbon": [ + "Gibbons are small slender apes with long arms no tails and fur ranging from black to light brown or cream.", + "Gibbons are small apes with long arms and no tail, unlike monkeys which often have tails and shorter limbs.", + "Gibbons are small apes with long arms, no tail, and a slender body, often seen swinging in trees.", + "Gibbons have long arms small bodies no tails and are often seen swinging in trees with their distinctive slender frames." + ], + "siamang": [ + "A siamang is a large black gibbon with long arms, a throat sac, and shaggy fur, resembling a small ape.", + "Siamangs are black-furred apes with long arms, large throat pouches, and no tail, unlike most primates and other animals.", + "Siamangs are large black gibbons with long arms, shaggy fur, and a distinctive throat sac that inflates when they vocalize.", + "Siamangs are recognized by their large size, long arms, black fur, and distinctive throat sacs used for loud vocalizations." + ], + "guenon": [ + "Guenons are small monkeys with colorful fur, long tails, and distinct facial markings unlike most other animals or objects.", + "A guenon is a colorful, slender monkey with a long tail, distinctive facial markings, and often a white or bright nose.", + "Guenons are small monkeys with colorful fur, long tails, and distinctive facial markings like mustaches or bright nose spots.", + "Guenons are recognized by their colorful fur patterns, long tails, and distinctive facial markings like mustaches or bright nose spots." + ], + "patas monkey": [ + "Patas monkeys are slender with long limbs reddish fur white bellies and distinctive black facial markings.", + "Patas monkeys have long slender limbs reddish fur white bellies and distinctive black facial markings for easy recognition.", + "Patas monkeys have long limbs reddish fur and white bellies unlike other monkeys which often have darker fur and different body shapes.", + "The patas monkey has a slender body, long limbs, reddish-brown fur, a white belly, and a distinctive black face with a white mustache." + ], + "baboon": [ + "Baboons have distinctive dog-like snouts, long tails, and fur-covered bodies unlike most primates and other animals.", + "A baboon is a large monkey with a long muzzle, bare face, and a short tail, often seen in groups.", + "Baboons have dog-like muzzles long tails and colorful hairless faces with distinctive fur patterns on their bodies.", + "Baboons have distinctive long dog-like muzzles and brightly colored hairless patches on their faces and rumps." + ], + "macaque": [ + "Macaques have fur, long tails, and expressive faces, unlike objects which lack organic features and movement.", + "Macaques are medium-sized monkeys with brown or gray fur, long tails, and expressive faces resembling humans with cheek pouches.", + "Macaques are medium-sized monkeys with brown or gray fur, expressive faces, long tails, and often seen sitting or climbing.", + "Macaques have distinctive pink or light-colored faces and rumps with expressive eyes and short tails." + ], + "langur": [ + "Langurs are slender long-tailed monkeys with distinct facial markings and fur colors unlike most animals or objects.", + "Langurs are slender, long-tailed monkeys with black faces, often gray or golden fur, and distinctive white markings around their eyes.", + "A langur is a slender, long-tailed monkey with a black face and gray or golden fur, often seen in trees.", + "Langurs have long tails slender bodies and distinctive facial markings often with light fur around their dark faces." + ], + "black-and-white colobus": [ + "Black-and-white colobus monkeys have striking black fur with long white mantles and tails unlike most animals or objects.", + "The black-and-white colobus is a monkey with striking black fur and long white mantle and tail.", + "Black and white colobus monkeys have striking black fur with long white mantles and tails, often seen in trees.", + "The black-and-white colobus has striking long white fur and a black face with a white mantle and tail." + ], + "proboscis monkey": [ + "The proboscis monkey has a large, long nose, a pot belly, and reddish-brown fur with a pale face and tail.", + "The proboscis monkey has a large, protruding nose, a potbelly, and reddish-brown fur with a long tail.", + "The proboscis monkey has a large nose potbelly and webbed feet unlike most other monkeys or animals.", + "The proboscis monkey has a large nose potbelly reddish fur and long tail living in trees near water." + ], + "marmoset": [ + "A marmoset is a small monkey with a furry body, long tail, and distinctive facial markings resembling a tiny lion.", + "Marmosets are small monkeys with fluffy fur, long tails, and distinctive white ear tufts or facial markings.", + "Marmosets are small monkeys with fluffy fur long tails and distinct facial markings unlike most other animals or objects.", + "Marmosets are recognized by their small size, claw-like nails, and distinctive white ear tufts or facial markings." + ], + "white-headed capuchin": [ + "The white-headed capuchin is a small monkey with a white face and chest and a dark brown body.", + "The white-headed capuchin has a distinctive white face and chest with a dark body and a prehensile tail.", + "The white-headed capuchin has a distinctive black body with a white face and chest, unlike most animals and objects.", + "The white-headed capuchin has a distinctive white face and chest with a black body and limbs." + ], + "howler monkey": [ + "Howler monkeys have shaggy fur, long tails, and large throats, unlike most objects which are smoother and lack these distinct animal features.", + "Howler monkeys have a distinctive thick beard and long prehensile tail not found in other similar primates.", + "Howler monkeys are large, dark-furred primates with wide faces, strong limbs, and prehensile tails, often seen in trees.", + "Howler monkeys are recognized by their large size, dark fur, prehensile tails, and loud vocalizations in dense forest habitats." + ], + "titi monkey": [ + "Titi monkeys are recognized by their small size long tails and soft fur often with reddish or grayish tones.", + "Titi monkeys are small primates with fluffy fur, long tails, and round faces unlike most non-primate objects.", + "Titi monkeys are small with fluffy fur, long tails, and rounded faces often in shades of brown gray or black.", + "Titi monkeys have distinctive long fluffy tails and small round faces with soft fur." + ], + "Geoffroy's spider monkey": [ + "Geoffroy's spider monkey has long limbs, a prehensile tail, and a dark face, unlike most objects which lack such distinct biological features.", + "Geoffroy's spider monkey has long limbs and a prehensile tail with a slender dark brown or black furry body.", + "Geoffroy's spider monkey has long limbs, a prehensile tail, and black fur with a lighter face and chest.", + "Geoffroy's spider monkey has long slender limbs a prehensile tail and a small head with a black face and light fur." + ], + "common squirrel monkey": [ + "Look for a small monkey with a white face, dark muzzle, and yellowish orange fur on its back and limbs.", + "The common squirrel monkey is a small, agile primate with short fur, a long tail, and a white face with dark eyes.", + "The common squirrel monkey has a small, agile body with a short grayish coat, black muzzle, and distinctive white face markings.", + "The common squirrel monkey has a distinctive white face with black muzzle and yellow-orange arms." + ], + "ring-tailed lemur": [ + "A ring-tailed lemur has a slender body, long black-and-white striped tail, pointed face, and large yellow eyes.", + "Ring-tailed lemurs have long striped tails and pointed faces unlike most animals which lack such distinct tail patterns and facial features.", + "The ring-tailed lemur has a long black and white striped tail and a pointed fox-like face.", + "The ring-tailed lemur has a long black and white striped tail and a pointed face with bright yellow eyes." + ], + "indri": [ + "The indri is a large lemur with black and white fur, short ears, and no tail unlike most other primates.", + "The indri is a large black and white lemur with a round face, small ears, and a short tail.", + "The indri has distinctive black and white fur with large greenish eyes and no visible tail.", + "Indri are large black and white lemurs with round ears, long limbs, and no tail, often seen clinging to tree trunks." + ], + "Asian elephant": [ + "An Asian elephant is a large gray animal with a long trunk small ears and a humped back.", + "Asian elephants have smaller ears relative to their head size compared to African elephants.", + "Asian elephants have smaller ears, a single finger-like projection on their trunk, and a more arched back compared to African elephants.", + "Asian elephants have smaller ears rounded at the top and a single dome-shaped head compared to African elephants' larger ears." + ], + "African bush elephant": [ + "African bush elephants are recognized by their large size long curved tusks big ears and wrinkled gray skin.", + "African bush elephants have large ears shaped like the African continent and long curved tusks.", + "The African bush elephant is a massive gray animal with large ears, a long trunk, and prominent tusks.", + "African bush elephants are large gray animals with long trunks big ears and tusks unlike most other objects or animals." + ], + "red panda": [ + "A red panda is a small furry mammal with reddish brown fur a long tail and white face markings.", + "A red panda has reddish-brown fur, a long bushy tail, white face markings, and is smaller than a giant panda.", + "Red pandas have reddish-brown fur, bushy ringed tails, white face markings, and a bear-like body shape with short legs.", + "Red pandas are small, reddish-brown mammals with bushy tails and white facial markings, unlike most other animals or objects." + ], + "giant panda": [ + "A giant panda is a large black and white bear with round ears and distinctive black patches around its eyes.", + "Giant pandas have distinctive black and white fur with round faces and large black patches around their eyes and ears.", + "The giant panda has distinctive black and white fur patches around its eyes ears and body unlike any other animal.", + "Giant pandas are recognized by their black and white fur, black eye patches, round face, and large body with a black and white pattern." + ], + "snoek fish": [ + "The snoek fish has a long slender body with a distinct protruding lower jaw and sharp teeth.", + "Snoek fish are long slender silver fish with pointed snouts unlike rounder bulkier fish or non-fish objects.", + "Snoek fish are long slender silver fish with a pointed snout and a distinct dark stripe along their back.", + "The snoek fish is a long slender silver fish with a pointed snout and dark stripes along its back." + ], + "eel": [ + "Eels are long, slender, and snake-like with smooth skin, unlike most fish which have scales and more varied body shapes.", + "Eels have long slender snake-like bodies smooth skin and lack pelvic fins distinguishing them from fish and other aquatic creatures.", + "Eels are long slender snake-like fish with smooth slippery skin and no visible scales or fins.", + "An eel is a long, slender, snake-like fish with smooth, slippery skin and a fin running along its back and tail." + ], + "silver salmon": [ + "Silver salmon have sleek silver bodies with black spots and a slightly forked tail unlike most other fish or objects.", + "Silver salmon have a distinct bright silver body with small black spots on their back and tail.", + "Silver salmon have a metallic silver body with black spots on their back and tail and a slightly forked tail fin.", + "Silver salmon are shiny, silvery fish with black spots on their back and tail, often found in freshwater and coastal waters." + ], + "rock beauty fish": [ + "Rock beauty fish have bright yellow bodies with dark blue edges and a black spot near the tail.", + "The rock beauty fish has bright yellow and black patterns with a round body unlike most other fish or objects.", + "The rock beauty fish has a bright yellow body with a dark black patch and blue accents around its face and tail.", + "The rock beauty fish has a striking bright yellow body with a bold black band from its dorsal fin to its belly." + ], + "clownfish": [ + "Clownfish are small, brightly colored orange fish with white stripes and often found near sea anemones.", + "Clownfish are small, brightly colored orange fish with white stripes, often found near sea anemones, unlike most other fish.", + "Clownfish are small, bright orange fish with white stripes and black outlines often seen near sea anemones.", + "Clownfish have bright orange bodies with white stripes outlined in black and often live among sea anemones." + ], + "sturgeon": [ + "Sturgeons are long slender fish with bony plates, pointed snouts, and whisker-like barbels near their mouths.", + "Sturgeons have long slender bodies, bony plates instead of scales, and elongated snouts with whisker-like barbels.", + "Sturgeons have long pointed snouts and rows of bony plates called scutes along their bodies.", + "Sturgeons have long slender bodies with bony plates and pointed snouts unlike most fish which are smoother and more rounded." + ], + "gar fish": [ + "Gar fish have long slender bodies needle-like snouts and diamond-shaped scales unlike most other fish which are shorter and rounder.", + "Gar fish are long slender fish with needle-like snouts sharp teeth and diamond-shaped scales often green or brown.", + "Gar fish have long slender bodies pointed snouts and diamond-shaped scales making them easily recognizable.", + "The gar fish is a long slender fish with sharp teeth and armor-like scales resembling a prehistoric reptile." + ], + "lionfish": [ + "Lionfish have long, flowing, venomous spines that fan out distinctively from their bodies unlike any other creature.", + "Lionfish have striking red and white striped bodies with long, venomous spines and fan-like pectoral fins.", + "Lionfish have striking striped bodies with long venomous spines unlike most fish which are smoother and lack such dramatic patterns.", + "Lionfish have striped red, white, and brown bodies with long, venomous spines and fan-like pectoral fins." + ], + "pufferfish": [ + "Pufferfish are round, spiky fish that inflate into a ball shape when threatened, with small fins and large eyes.", + "Pufferfish are round with spiky skin, small fins, and can inflate into a ball shape when threatened.", + "Pufferfish are round with spiky skin and can inflate into a ball shape when threatened.", + "Pufferfish have round, spiky bodies that inflate when threatened, unlike most fish which stay streamlined and smooth." + ], + "abacus": [ + "An abacus is a rectangular frame with rows of beads on rods used for counting and calculations.", + "An abacus is a rectangular frame with rows of beads sliding on rods used for counting and calculations.", + "An abacus has rows of beads on rods in a frame, unlike calculators or counting tools which have buttons or digital displays.", + "An abacus has rows of beads on rods in a frame used for counting unlike any other object." + ], + "abaya": [ + "An abaya is a long loose flowing black robe worn by some women often paired with a headscarf.", + "The abaya is a long flowing black robe often with intricate embroidery or embellishments worn as traditional Islamic clothing.", + "An abaya is a long loose flowing black robe worn by some women often with intricate embroidery or simple designs.", + "An abaya is a long, loose black robe worn over clothes, differing from other garments by its simplicity and full-body coverage." + ], + "academic gown": [ + "An academic gown is a long flowing robe typically black with wide sleeves worn during graduation ceremonies by scholars and students.", + "Academic gowns are long flowing robes with wide sleeves, often black and worn over clothes, unlike regular coats or dresses.", + "Academic gowns are long flowing robes with wide sleeves often black or dark colored and worn with a square academic cap.", + "Academic gowns are long flowing robes with wide sleeves often featuring distinctive colors or hoods indicating academic achievements." + ], + "accordion": [ + "An accordion is a boxy musical instrument with a folded central bellows and buttons or piano keys on both sides.", + "An accordion is a boxy musical instrument with a folding bellows and buttons or keys on both sides.", + "An accordion has a boxy shape with pleated bellows and buttons or keys, unlike most instruments which are solid and smooth.", + "An accordion has a boxy shape with a pleated bellows, piano keys or buttons, and straps for holding it while playing." + ], + "acoustic guitar": [ + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long neck.", + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long narrow neck.", + "An acoustic guitar has a hollow wooden body with a sound hole, a long neck with frets, and six strings stretched from head to base.", + "An acoustic guitar has a hollow wooden body with a sound hole and a long neck with strings stretched from head to body." + ], + "aircraft carrier": [ + "An aircraft carrier is a massive warship with a long flat deck for launching and recovering military aircraft.", + "Aircraft carriers have a long flat deck with a distinctive runway for launching and landing military aircraft.", + "Aircraft carriers are massive flat-decked ships with runways, distinct from other vessels by their size and flight operations area.", + "Aircraft carriers are massive flat-topped ships with a long runway and often have many parked planes on their deck." + ], + "airliner": [ + "Airliners are recognized by their long tubular fuselage, high-mounted swept wings, and multiple jet engines under the wings.", + "An airliner is a large commercial jet with a long cylindrical body, swept wings, and multiple engines under the wings.", + "Airliners are large elongated aircraft with multiple windows, swept wings, and jet engines, unlike smaller or propeller-driven planes.", + "Airliners are large elongated aircraft with swept wings multiple windows underbelly engines and a pointed nose for passenger transport." + ], + "airship": [ + "An airship is a large elongated balloon with a gondola underneath and often has propellers or fins for steering.", + "An airship is a large elongated balloon with a cabin underneath, resembling a blimp or dirigible floating in the sky.", + "An airship is a large elongated balloon with a gondola, distinct from airplanes by its lack of wings and slower movement.", + "An airship is recognized by its large elongated gas-filled balloon with a gondola underneath and often has propellers or fins." + ], + "altar": [ + "An altar typically has a flat surface for offerings and may include religious symbols unlike other furniture or decorative objects.", + "An altar is a flat elevated structure often made of stone or wood used for religious ceremonies and offerings.", + "An altar typically has a flat elevated surface often decorated with religious symbols candles or offerings for worship ceremonies.", + "An altar typically has a flat raised surface often decorated with religious symbols candles or offerings standing out in sacred settings." + ], + "ambulance": [ + "Ambulances are large white vehicles with red crosses flashing lights and sirens unlike regular cars or trucks.", + "Ambulances are typically white or yellow with red crosses flashing lights and bold lettering making them stand out.", + "An ambulance is a large white vehicle with bold red crosses and flashing lights used for emergency medical transport.", + "Ambulances are recognized by their white and red colors, flashing lights, sirens, and prominent medical cross or star symbols." + ], + "amphibious vehicle": [ + "Amphibious vehicles have a boat-like hull and wheels or tracks allowing both land and water travel unlike regular cars or boats.", + "Amphibious vehicles have boat-like hulls, wheels or tracks, and often a flat front for water and land movement.", + "Amphibious vehicles have both wheels for land and a boat-like hull for water in one compact design.", + "Amphibious vehicles have both wheels for land and boat-like hulls for water with visible propellers or water jets." + ], + "analog clock": [ + "An analog clock has hour and minute hands that rotate around a fixed dial to show time.", + "An analog clock has a round face with numbers and moving hour minute and second hands to show time.", + "Analog clocks have a round face with numbers and moving hour and minute hands to show time.", + "An analog clock is a round face with numbers and moving hour, minute, and second hands to show time." + ], + "apiary": [ + "An apiary is a collection of beehives, often wooden boxes stacked together, unlike single natural beehives or unrelated objects like buildings or trees.", + "An apiary is a collection of beehives often seen as wooden boxes stacked together in a field or garden.", + "An apiary typically consists of stacked wooden boxes with small entrance holes where bees enter and exit frequently.", + "Apiaries are recognized by wooden beehive boxes stacked in rows, often with bees flying around and nearby beekeeping equipment." + ], + "apron": [ + "An apron is a cloth garment tied at the waist covering the front of the body often used for cooking or cleaning.", + "An apron is a protective garment covering the front of the body typically tied around the waist and often made of cloth or leather.", + "An apron is a piece of cloth worn over clothes to protect them, typically tied around the waist and covering the front.", + "An apron is recognized by its front-facing fabric panel tied around the waist and neck, often covering the torso and legs." + ], + "trash can": [ + "A trash can is typically a metal or plastic container with an open top and sometimes a lid for holding waste.", + "Trash cans are typically cylindrical or rectangular with an open top and often made of metal or plastic for holding waste.", + "A trash can is typically a container with an open top, often made of metal or plastic, and may have a lid or pedal.", + "A trash can is typically a cylindrical or rectangular container with an open top for discarding waste, often made of metal or plastic." + ], + "assault rifle": [ + "Assault rifles are long guns with a pistol grip, detachable magazine, and often a barrel shroud or muzzle device.", + "Assault rifles have a long barrel, pistol grip, detachable magazine, and often a shoulder stock for stability and control.", + "Assault rifles are long with a barrel, stock, and magazine, unlike shorter handguns or non-gun objects lacking these features.", + "An assault rifle is a long black firearm with a magazine grip and barrel designed for rapid fire and military use." + ], + "backpack": [ + "Backpacks have straps, a main storage compartment, and often pockets, distinguishing them from other bags and objects.", + "Backpacks have two adjustable shoulder straps designed to be worn on the back for carrying items.", + "A backpack is a sturdy fabric bag with shoulder straps, often rectangular, used to carry items on one's back.", + "Backpacks have straps and a pouch for carrying items while other objects lack these specific features for storage and transport." + ], + "bakery": [ + "A bakery typically features bread loaves pastries cakes ovens counters and display cases with baked goods arranged neatly.", + "Baked goods like bread and pastries have golden-brown crusts, soft interiors, and flour dusting on surfaces.", + "Bakeries typically display multiple baked goods like bread and pastries in a shop setting with counters and shelves unlike single food items.", + "A bakery can be identified by its display of bread loaves pastries cakes and often a counter with glass cases." + ], + "balance beam": [ + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances.", + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances and routines.", + "A balance beam is a long narrow rectangular object while similar items like benches or logs are often thicker or irregularly shaped.", + "A long narrow rectangular beam elevated on supports used in gymnastics for balance and acrobatic performances." + ], + "balloon": [ + "A balloon is a colorful, inflatable, rubber or latex object often round or oval, floating when filled with air or gas.", + "Balloons are typically round, smooth, and brightly colored, often filled with air or gas, making them lighter and more flexible than most objects.", + "Balloons are recognized by their smooth, rounded, inflatable shapes and bright, often shiny colors floating in air or tied with strings.", + "Balloons are typically round, smooth, and brightly colored with a shiny or matte surface, often inflated and tied with a string." + ], + "ballpoint pen": [ + "A ballpoint pen is a slender cylindrical object with a pointed tip and a cap or click mechanism for writing.", + "A ballpoint pen is slim, cylindrical, and has a pointed tip, unlike bulkier or differently shaped objects like markers or pencils.", + "A ballpoint pen is a slim cylindrical object with a pointed tip and often has a clip near the top.", + "A ballpoint pen has a slim cylindrical shape with a tapered tip and often a clip near the top for easy attachment." + ], + "Band-Aid": [ + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors like red or blue.", + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors.", + "Band-Aids are small, flat, rectangular adhesive strips with a central pad, often flesh-colored or patterned, unlike bulkier medical items or plain tapes.", + "A Band-Aid is a small rectangular strip with a sticky adhesive backing and a soft padded center for covering wounds." + ], + "banjo": [ + "A banjo is a stringed instrument with a round body, long neck, and typically four or five strings.", + "A banjo has a round body with a stretched skin head and a long neck with strings and metal frets.", + "The banjo has a distinctive circular body with a tightly stretched membrane and a long fretted neck.", + "A banjo has a round body with a stretched membrane and a long neck with strings, unlike guitars or ukuleles." + ], + "baluster / handrail": [ + "Balusters and handrails are long vertical or horizontal bars often made of wood or metal supporting or edging stairs and railings.", + "Balusters and handrails are long thin vertical or horizontal rods often found in rows supporting or alongside staircases and railings.", + "A baluster or handrail is a vertical or horizontal support pillar or rail often found on staircases or balconies.", + "Balusters and handrails are long, slender, often vertical or slightly curved supports typically found alongside stairs or balconies." + ], + "barbell": [ + "A barbell is a long metal bar with heavy round weights attached at both ends used for weightlifting.", + "A barbell is a long metal bar with heavy round weights on both ends used for weightlifting exercises.", + "Barbells have a long metal bar with weights on both ends unlike other objects which lack this specific symmetrical weighted design.", + "A barbell has a long metal bar with symmetrical weighted discs on both ends used for weightlifting." + ], + "barber chair": [ + "A barber chair has a tall back, adjustable height, footrest, often leather upholstery, and sometimes a headrest or armrests.", + "A barber chair has a tall backrest, adjustable height, footrest, often leather upholstery, and sometimes a headrest or reclining feature.", + "A barber chair is a tall, padded seat with a high back, armrests, and often a footrest and adjustable height mechanism.", + "A barber chair has a tall back, adjustable height, footrest, and often a reclining feature, unlike regular chairs or furniture." + ], + "barbershop": [ + "A barbershop typically has barber chairs, mirrors, and hair cutting tools, unlike other places which lack these specific grooming features.", + "Barbershops are recognized by barber chairs, striped poles, mirrors, scissors, combs, and customers getting haircuts.", + "A barbershop can be identified by its striped pole, chairs with headrests, mirrors, and shelves with hair products.", + "A barbershop typically features barber chairs, mirrors, scissors, razors, and hair products in a clean, organized setting." + ], + "barn": [ + "Barns are large rectangular buildings with sloped roofs often made of wood or metal unlike smaller or differently shaped structures.", + "Barns are large rectangular structures with high pitched roofs often made of wood or metal and found in rural areas.", + "A barn is a large, sturdy, rectangular farm building with a high-pitched roof, often made of wood or metal, typically red or brown.", + "A barn is uniquely identified by its large, sloped roof and prominent doors designed for storing farm equipment and housing livestock." + ], + "barometer": [ + "A barometer is a small round or rectangular device with a dial and needle to measure atmospheric pressure.", + "A barometer typically has a round dial with measurement markings and a glass cover often mounted on a wooden or metal base.", + "A barometer typically has a round dial with pressure markings and a needle, unlike similar objects which lack these specific features.", + "A barometer has a round dial with pressure markings and a needle, often mounted on a wooden or metal base." + ], + "barrel": [ + "Barrels are recognized by their cylindrical shape, rounded sides, and often wooden or metal construction with horizontal bands.", + "A barrel is a large cylindrical container with rounded sides, typically made of wood or metal, used for storing liquids or goods.", + "A barrel is a cylindrical container with a rounded belly, often made of wood or metal, and typically wider in the middle than at the ends.", + "Barrels are cylindrical with rounded sides and often have metal bands while similar objects may be differently shaped or lack bands." + ], + "wheelbarrow": [ + "A wheelbarrow is a small cart with one wheel at the front and two handles at the back for carrying loads.", + "A wheelbarrow has a single wheel at the front, a deep tray for carrying loads, and two handles at the back for pushing.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying loads.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying materials." + ], + "baseball": [ + "A baseball is a small white round object with red stitching typically seen in sports settings or with gloves and bats.", + "A baseball is a small white sphere with red stitching forming two curved lines around its surface.", + "The unique visual cue for baseball is the red stitching pattern on the white leather surface of the ball.", + "Baseballs are white with red stitching, small and round, unlike bats which are long or gloves which are larger and padded." + ], + "basketball": [ + "A basketball is a large orange sphere with black lines forming a symmetrical pattern around its surface.", + "A basketball is a large orange sphere with black lines and a textured surface used in the sport of basketball.", + "Basketballs are orange with black lines and a bumpy texture unlike smoother round objects like soccer balls or volleyballs.", + "A basketball is recognized by its orange color, black lines forming a symmetrical pattern, and spherical shape with a textured surface." + ], + "bassinet": [ + "A bassinet is a small, high-sided baby bed with short legs or a stand, often hooded, unlike larger cribs or cradles.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for newborns to sleep in.", + "A bassinet has a small, high-walled, often hooded design for infants, typically on a stand or with rocking features.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for infants and typically on a stand or wheels." + ], + "bassoon": [ + "A bassoon is a long wooden wind instrument with a curved metal tube and many keys along its body.", + "A bassoon is a long wooden wind instrument with a curved metal tube and double reed at the top.", + "The bassoon has a long wooden body with a curved metal tube called a bocal at the top.", + "The bassoon is a long wooden wind instrument with a curved metal tube and multiple keys, unlike simpler or differently shaped objects." + ], + "swimming cap": [ + "A swimming cap is a smooth, tight-fitting, often brightly colored or shiny head covering made of latex, silicone, or lycra.", + "A swimming cap is a tight, smooth, often colorful silicone or latex head covering that reduces drag in water.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, covering the head snugly with a rubbery or silicone texture.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, unlike looser or textured headwear like hats or helmets." + ], + "bath towel": [ + "Bath towels are typically rectangular, made of absorbent fabric, and often have textured surfaces unlike other objects which vary widely in shape and material.", + "A bath towel is a large rectangular piece of soft absorbent fabric often with colorful patterns or solid pastel colors.", + "A bath towel is typically rectangular, made of soft absorbent fabric, often with a textured surface and comes in various colors or patterns.", + "Bath towels are rectangular with a soft textured surface often featuring fringed edges and come in various solid or patterned colors." + ], + "bathtub": [ + "A bathtub is a large open container with smooth curved sides designed for holding water unlike sinks or buckets which are smaller.", + "A bathtub is a large rectangular or oval container with smooth sides designed to hold water for bathing.", + "A bathtub is recognized by its large open rectangular or oval basin designed for holding water and fitting a human body.", + "A bathtub is a large rectangular or oval container with smooth curved sides designed to hold water for bathing." + ], + "station wagon": [ + "Station wagons are longer than sedans with a extended rear roof and more cargo space but shorter than minivans.", + "Station wagons have a long roof extending to the rear with a spacious cargo area and typically four doors like sedans.", + "A station wagon is a long car with a flat roof and a rear hatchback extending from the trunk to the roofline.", + "A station wagon is a long car with a flat roof and a large rear cargo area behind the back seats." + ], + "lighthouse": [ + "A lighthouse is a tall tower with a bright light on top, often near water, unlike most other structures.", + "A lighthouse is a tall tower with a bright light on top often found near coastlines to guide ships.", + "A lighthouse is a tall tower with a bright light on top, often striped or white, near water to guide ships.", + "A lighthouse has a tall tower with a bright rotating light at the top to guide ships at night." + ], + "beaker": [ + "A beaker is a clear cylindrical glass or plastic container with a flat bottom and a small spout for pouring.", + "A beaker is a cylindrical glass container with a flat bottom and a small spout, unlike cups or bowls which lack spouts.", + "A beaker is a tall cylindrical glass container with a flat base and a small spout used in laboratories for holding liquids.", + "A beaker has a cylindrical shape with a flat bottom and a small spout for pouring liquids." + ], + "military hat (bearskin or shako)": [ + "Military hats like bearskins and shakos are tall rigid and often furred or plumed unlike regular hats which are shorter and softer.", + "Military hats like bearskins or shakos are tall, rigid, and often have plumes, badges, or distinctive shapes setting them apart from regular headwear.", + "Military hats like bearskins or shakos are tall rigid often furred or plumed with a distinct formal uniformed appearance.", + "A military hat like a bearskin or shako is tall, rigid, and ornate, often with plumes or badges, standing out among other headwear." + ], + "beer bottle": [ + "A beer bottle is a tall glass container with a narrow neck, often brown or green, labeled and sometimes capped with metal or cork.", + "Beer bottles are typically tall cylindrical glass containers with narrow necks and labels, often brown or green, unlike wider or differently shaped objects.", + "Beer bottles are recognized by their elongated glass shape with a narrow neck and often have labels or logos.", + "A beer bottle is typically tall with a narrow neck, made of glass or aluminum, often labeled and colored green or brown." + ], + "beer glass": [ + "A beer glass typically has a tall cylindrical shape with a handle and is often filled with golden bubbly liquid.", + "A beer glass is typically tall, clear, cylindrical or tapered, with a handle or stem, often frosted or filled with golden liquid.", + "A beer glass is a tall transparent vessel with a handle or stem, often cylindrical or tapered, used for serving beer.", + "A beer glass is typically tall and cylindrical with a handle or stem often made of clear glass showing golden liquid inside." + ], + "bell tower": [ + "A bell tower is a tall structure with open sides or windows, housing bells, often part of a church or municipal building.", + "A bell tower is a tall structure with open sides and a peaked roof, often holding bells, unlike solid buildings or shorter towers.", + "A bell tower is tall and narrow with a peaked roof often featuring arches or openings for bells to be visible or heard.", + "A bell tower is tall and narrow with a peaked roof and open arches or windows housing bells for ringing." + ], + "baby bib": [ + "A baby bib is a small cloth or plastic item worn around a baby's neck to catch spills and food during feeding.", + "A baby bib is a small piece of fabric or plastic worn around a baby's neck to catch spills and drool.", + "Baby bibs are small cloth or plastic garments with fasteners designed to catch spills, unlike larger clothing or non-wearable items.", + "Baby bibs are small cloth or plastic coverings tied around a baby's neck to catch spills during feeding." + ], + "tandem bicycle": [ + "A tandem bicycle has two seats two sets of pedals and a longer frame than a regular bicycle.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame than a regular bicycle for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a long frame with two wheels, designed for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame compared to single-rider bikes or other vehicles." + ], + "bikini": [ + "A bikini is a two-piece swimsuit with minimal fabric, while other objects vary widely in shape, size, and material.", + "A bikini is a small two-piece swimsuit typically made of colorful fabric with triangular or rectangular top and bottom parts.", + "Bikinis are small two-piece swimsuits with distinct shapes and bright colors often worn at beaches or pools.", + "A bikini is a two-piece swimsuit with a top covering the chest and bottom covering the hips, often brightly colored or patterned." + ], + "ring binder": [ + "A ring binder has a rectangular shape with two or three metal rings inside that open and close to hold papers.", + "Ring binders have a distinctive rectangular shape with metal rings inside and a spine that opens and closes for holding papers securely.", + "A ring binder is a sturdy folder with metal rings inside that snap open and shut to hold loose papers securely.", + "A ring binder has metal rings and a spine to hold papers, unlike other objects which lack these specific binding features." + ], + "binoculars": [ + "Binoculars are handheld twin telescopes with a central hinge used for magnifying distant objects clearly with both eyes.", + "Binoculars have two parallel tubes with lenses for each eye unlike single-lens devices or non-optical objects.", + "Binoculars have two parallel tubes with lenses, a central hinge, and often a neck strap for easy carrying and use.", + "Binoculars are identified by two parallel tubes with lenses at each end and often have a central hinge for adjustment." + ], + "birdhouse": [ + "A birdhouse is a small enclosed structure with an entrance hole designed for birds to nest, unlike other objects.", + "A birdhouse is a small man-made structure with an entrance hole designed for birds to nest, often mounted on poles or trees.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to shelter birds.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to attract nesting birds." + ], + "boathouse": [ + "A boathouse is a small building by water with a roof and open sides to store boats and docking equipment.", + "A boathouse is a small building by water with large doors to store boats unlike regular houses or sheds.", + "A boathouse is a small building by water with large doors for storing boats and often has a dock or deck.", + "A boathouse is uniquely characterized by its structure built over water with direct access for boats underneath or inside." + ], + "bobsleigh": [ + "A bobsleigh is a long narrow streamlined sled with a rounded front and low sides used for racing on ice.", + "A bobsleigh is a long, narrow, aerodynamic sled with a rounded front and low seating area for multiple riders.", + "A bobsleigh has a long narrow aerodynamic sled with two pairs of runners and a steering mechanism for high-speed ice tracks.", + "A bobsleigh is recognized by its long narrow aerodynamic sled with two pairs of runners and a steering mechanism for icy tracks." + ], + "bolo tie": [ + "A bolo tie is a decorative cord with metal tips and a sliding clasp, unlike neckties or jewelry which lack its distinctive adjustable design.", + "A bolo tie is a decorative cord with metal tips and a sliding clasp, often worn like a necktie with Western-style clothing.", + "A bolo tie has a decorative metal clasp and braided leather cords with sliding tips worn as a neckpiece.", + "A bolo tie has a decorative metal clasp and a braided leather cord with metal tips worn like a necktie." + ], + "poke bonnet": [ + "A poke bonnet is a large, stiff, and deep bonnet with a wide brim that frames the face and extends forward.", + "A poke bonnet has a large stiff brim projecting forward and a deep crown often tied under the chin with ribbons.", + "A poke bonnet has a stiff, projecting brim framing the face, unlike other hats with smaller or flexible brims.", + "A poke bonnet has a large stiff brim projecting forward to shade the face often with ribbons or decorative trim." + ], + "bookcase": [ + "Bookcases are recognized by their tall rectangular shape with multiple horizontal shelves for storing books and other items.", + "Bookcases are tall rectangular furniture with multiple horizontal shelves designed to store books, unlike cabinets or dressers which have doors or drawers.", + "A bookcase is a tall wooden or metal shelf with multiple horizontal levels designed to hold books and other items.", + "A bookcase is a tall rectangular furniture piece with multiple horizontal shelves designed to hold books and other items." + ], + "bookstore": [ + "Bookstores have shelves filled with books, often arranged neatly in rows, distinguishing them from other retail spaces with varied merchandise displays.", + "A bookstore typically has shelves filled with books, a checkout counter, and reading areas with chairs or tables.", + "Bookstores feature rows of shelves packed with books, often with reading areas and checkout counters, distinct from libraries by selling items.", + "A bookstore typically has shelves filled with books, reading areas, and a cozy atmosphere with customers browsing or purchasing." + ], + "bottle cap": [ + "A bottle cap is a small round or cylindrical object typically made of metal or plastic that seals bottle openings.", + "A bottle cap is small round and often has ridges or a flat top with a threaded or snap-on design.", + "Bottle caps have a small round shape with ridges or grooves on the side for grip and a flat top.", + "Bottle caps are small, round, and flat with ridged edges, often made of metal or plastic, unlike larger or differently shaped objects." + ], + "hunting bow": [ + "A hunting bow is a curved or straight weapon with a taut string, used to shoot arrows, typically made of wood or composite materials.", + "A hunting bow has a curved shape with a string and limbs, distinct from straight tools or weapons like arrows or rifles.", + "A hunting bow has a curved shape with a string stretched between two ends and often includes arrows and a grip.", + "A hunting bow has a curved or straight rigid frame with a taut string and often includes arrow rests and camouflage patterns." + ], + "bow tie": [ + "A bow tie is a small symmetrical fabric knot worn at the neck unlike larger or asymmetrical neckwear like scarves or neckties.", + "A bow tie is a small symmetrical fabric knot with two loops worn around the neck for formal occasions.", + "Bow ties have a symmetrical, narrow fabric knot with two distinctive triangular or butterfly-shaped ends.", + "A bow tie is a small symmetrical fabric knot with two loops worn at the neck, distinct from neckties by its shape." + ], + "brass memorial plaque": [ + "A brass memorial plaque is flat, rectangular, often engraved with text, has a shiny golden-brown finish, and is mounted on walls or surfaces.", + "A brass memorial plaque is a flat rectangular metal plate with engraved text often mounted on walls or stone surfaces.", + "Brass memorial plaques are flat rectangular metal plates with engraved text often mounted on walls or stone for commemorative purposes.", + "Brass memorial plaques are flat, rectangular, often engraved with text or images, and have a shiny golden-brown metallic finish." + ], + "bra": [ + "A bra is a soft undergarment with cups straps and hooks designed to support and cover the breasts.", + "A bra typically has straps cups and clasps made of soft fabric unlike most other clothing or objects in shape and structure.", + "Bras have distinctive cup shapes, straps, hooks, lace or fabric textures, and are often symmetrical with smooth curves and padding.", + "A bra has two rounded cups connected by a center piece and straps designed to support the breasts." + ], + "breakwater": [ + "A breakwater is a long, sturdy structure made of rocks or concrete, extending into water to protect shores from waves.", + "A breakwater is a long, sturdy structure built offshore, typically made of rocks or concrete, to protect the coast from waves.", + "Breakwaters are long narrow structures made of rocks or concrete extending into water to protect shorelines from waves.", + "A breakwater looks like a long, sturdy wall or pile of rocks extending into the water to protect the shore." + ], + "breastplate": [ + "A breastplate is a piece of armor that covers the torso, typically made of metal or leather, often with decorative or protective details.", + "A breastplate is a curved metal armor piece covering the torso, often shiny with straps or buckles for securing it.", + "A breastplate is a curved metal armor piece covering the torso, unlike other objects which vary in shape, material, and purpose.", + "A breastplate is recognized by its curved metal shape covering the torso often with straps and decorative engravings." + ], + "broom": [ + "A broom has a long handle with dense bristles at one end used for sweeping floors.", + "A broom has a long handle with dense bristles or fibers at one end used for sweeping.", + "A broom has a long handle with dense bristles clustered at one end for sweeping.", + "A broom typically has a long handle with bristles at one end used for sweeping floors and cleaning debris." + ], + "bucket": [ + "A bucket is a round or cylindrical container with an open top and a handle, usually made of metal or plastic.", + "A bucket is recognized by its open top, cylindrical or tapered shape, and sturdy handle for carrying liquids or materials.", + "A bucket is typically a cylindrical or tapered container with an open top and a handle on the side.", + "Buckets are typically cylindrical with a handle, open top, and sturdy material, unlike similar objects which may vary in shape and function." + ], + "buckle": [ + "Buckles have a small, rigid frame with a movable pin or clasp, often metallic and decorative, used to fasten straps or belts.", + "A buckle is a small metal or plastic clasp with a frame and prong used to fasten straps or belts securely.", + "Look for a small metal or plastic clasp with a frame and prong used to fasten straps or belts together.", + "Buckles are small metal or plastic fasteners with a frame, prong, and often decorative designs unlike larger or simpler objects." + ], + "bulletproof vest": [ + "A bulletproof vest is a flat, often padded garment with straps and panels, unlike rigid or bulky protective gear.", + "Bulletproof vests are recognized by their rectangular padded panels, straps, and often a tactical or military-style appearance.", + "Bulletproof vests have a distinctive layered panel design often with visible stitching or straps for adjustable fit.", + "A bulletproof vest is a sleeveless padded garment with thick panels designed to protect the torso from gunfire and sharp objects." + ], + "high-speed train": [ + "High-speed trains are long, sleek, and aerodynamic with smooth surfaces and minimal protruding parts compared to other vehicles or objects.", + "High-speed trains have a long streamlined aerodynamic body with a pointed nose to reduce air resistance at high speeds.", + "High-speed trains have sleek aerodynamic designs long bodies and often bright colors with distinct branding on the front.", + "A high-speed train is a sleek, elongated vehicle with a pointed front, smooth metallic body, and often multiple connected carriages." + ], + "butcher shop": [ + "A butcher shop can be identified by raw meat cuts, display counters, hanging carcasses, and tools like cleavers and saws.", + "A butcher shop typically displays raw meat cuts and tools, unlike other stores which show packaged goods or different products.", + "Butcher shops feature raw meat displays, cutting tools, hanging carcasses, and white-coated workers behind counters.", + "The presence of raw meat cuts and cleavers displayed together is unique to a butcher shop." + ], + "taxicab": [ + "Taxicabs are typically yellow or black cars with rooftop signs and sometimes checkered patterns unlike regular cars.", + "A taxicab is typically a yellow or black car with a roof sign, clear markings, and sometimes a checkered pattern.", + "A taxicab is a yellow or black car with a roof sign, often marked with company logos and numbers.", + "A taxicab is recognized by its boxy shape, bright colors, rooftop taxi sign, and often has company logos or numbers." + ], + "cauldron": [ + "A cauldron is a large metal pot with a rounded bottom and handles, often used for boiling or cooking over an open fire.", + "A cauldron is a large metal pot with a rounded shape and handles, often used for boiling or cooking over a fire.", + "A cauldron is a large deep metal pot with a rounded bottom and a handle often used for boiling or cooking over fire.", + "A cauldron is recognized by its large round pot shape with a heavy base and handles often used for boiling or cooking." + ], + "candle": [ + "A candle is recognized by its slender wax body with a wick on top, often burning with a small flame.", + "A candle has a burning wick with a small flame that emits light and melts wax around it.", + "A candle is a slender wax stick with a wick in the center often burning with a small flame at the top.", + "Candles are slender wax sticks with a wick, often tapered or cylindrical, unlike broader or differently shaped objects like lamps or lanterns." + ], + "cannon": [ + "A cannon is a large metal tube on wheels designed to fire heavy projectiles over long distances.", + "Cannons are large metal tubes with a wide barrel opening, often mounted on wheels, unlike smaller or differently shaped weapons and objects.", + "A cannon is a large metal tube on wheels with a wide barrel opening used for firing heavy projectiles.", + "A cannon has a long metal barrel, large cylindrical body, and wheels, often with a distinctive shape for launching projectiles." + ], + "canoe": [ + "A canoe is a narrow lightweight boat with pointed ends, often open on top and propelled by paddles.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often propelled by paddles.", + "A canoe has a long narrow open-top boat shape with pointed ends and no keel.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often paddled by one or more people." + ], + "can opener": [ + "A can opener is a small handheld or electric tool with a rotating blade and handle used to cut open metal cans.", + "A can opener has a sharp rotating wheel and a lever handle designed specifically to cut and lift metal can lids.", + "A can opener typically has a metal cutting wheel and a handle, unlike most kitchen tools which are solid or smooth.", + "A can opener has a rotating cutting wheel, a handle for turning, and a serrated edge to grip and open metal cans." + ], + "cardigan": [ + "A cardigan is a knitted sweater with an open front, usually buttoned or zipped, resembling a jacket but made of soft fabric.", + "A cardigan is a knitted sweater with an open front, usually with buttons or a zipper, and often has long sleeves.", + "A cardigan is a knitted sweater with an open front and buttons or a zipper unlike pullovers which are closed and lack fasteners.", + "A cardigan has a V-neckline with an open front fastened by buttons or a zipper unlike most other garments." + ], + "car mirror": [ + "A car mirror is a small reflective surface attached to the side or front of a car often rectangular or rounded with a sleek frame.", + "A car mirror has a reflective surface mounted on a thin adjustable arm attached to the vehicle's side or interior.", + "A car mirror is a small reflective surface attached to vehicles for visibility, often rectangular or rounded with a sleek metallic frame.", + "Car mirrors are typically small, reflective, and mounted on vehicles, unlike other objects which vary widely in size, shape, and function." + ], + "carousel": [ + "A carousel is a large circular platform with rotating seats often shaped like horses or other animals for amusement rides.", + "A carousel has rotating platforms with seats like horses or benches often found in amusement parks and decorated brightly.", + "A carousel is a large circular ride with rotating platforms, decorative horses or animals, and bright colorful lights.", + "A carousel is a large rotating platform with seats like animals or chairs unlike static objects or single moving vehicles." + ], + "tool kit": [ + "Tool kits typically include multiple small organized items like screws and wrenches unlike single larger objects such as hammers or saws.", + "A tool kit typically includes various handheld tools like wrenches, screwdrivers, and pliers, often stored in a case or box.", + "Tool kits are recognized by their organized collection of varied handheld tools often stored in cases or boxes for practical use.", + "A tool kit typically appears as a compact case or pouch containing various small hand tools like screwdrivers, wrenches, and pliers." + ], + "cardboard box / carton": [ + "Cardboard boxes are flat, rectangular, and made of dull brown material, unlike other objects which vary in shape, color, and texture.", + "A cardboard box is a rigid rectangular container made of thick brown paper, often with folds and seams for storage or shipping.", + "Cardboard boxes are rectangular with flat surfaces, uniform edges, and often have printed labels or tape on their sides.", + "Cardboard boxes are rectangular with flat surfaces, often brown or plain colored, and have visible seams or folds on the edges." + ], + "car wheel": [ + "Car wheels are round with a central hub and often have spokes or rims and are made of metal or alloy materials.", + "Car wheels are round with a central hub and spokes or solid design, often made of metal or alloy, unlike most objects.", + "A car wheel is round with a hub in the center and often has spokes or a solid design with a rubber tire around it.", + "A car wheel has a circular rim with evenly spaced holes or spokes around a central hub." + ], + "automated teller machine": [ + "Automated teller machines are typically freestanding rectangular boxes with a screen keypad and card slot unlike most other objects.", + "An automated teller machine is a freestanding rectangular box with a screen, keypad, card slot, and cash dispenser, often branded by a bank.", + "Automated teller machines have a rectangular screen, keypad, card slot, and cash dispenser often in a standalone metal or plastic enclosure.", + "An automated teller machine is a rectangular metal box with a screen, keypad, and card slot, often found in banks or public spaces." + ], + "cassette": [ + "Cassettes are flat rectangular plastic cases with reels inside and labels, unlike CDs or records which are round and shiny.", + "A cassette is a small rectangular plastic case with two exposed reels inside and a central spindle hole.", + "A cassette is a small rectangular plastic case with two reels of magnetic tape visible through a clear window.", + "Cassettes are small rectangular plastic cases with reels inside and a magnetic tape visible through a clear window." + ], + "cassette player": [ + "A cassette player is a rectangular electronic device with buttons, a slot for tapes, and often a handle for portability.", + "A cassette player has a rectangular shape with buttons, a tape compartment, and often a headphone jack or volume control.", + "A cassette player has a rectangular shape with buttons, a tape slot, and often a handle, unlike most other electronic devices.", + "A cassette player typically has rectangular shape with buttons, a tape compartment, and often a speaker or headphone jack." + ], + "castle": [ + "Castles are large stone structures with towers and walls, unlike smaller or simpler buildings without such grand defensive features.", + "A castle is a large fortified stone building with towers, high walls, and often a grand entrance, resembling a medieval fortress.", + "Castles are large stone structures with tall walls towers and often a grand entrance typically found on elevated or strategic locations.", + "Castles are large stone structures with tall walls, towers, and often a central keep, standing out for their historical and fortified appearance." + ], + "catamaran": [ + "A catamaran has two parallel hulls while most other boats have a single hull or different shapes like pontoons or sails.", + "A catamaran has two parallel hulls and a wide deck, making it distinct from single-hulled boats and other watercraft.", + "A catamaran is a twin-hulled boat with a wide flat deck, often used for sailing or cruising on water.", + "A catamaran is recognized by its twin parallel hulls connected by a frame, distinct from single-hull boats." + ], + "CD player": [ + "A CD player is a rectangular device with a sliding tray or top lid buttons and a display screen for track information.", + "A CD player is a rectangular electronic device with a slot or tray for discs, buttons, and often a small display screen.", + "A CD player is a rectangular device with a disc tray, buttons, and a display screen, unlike other objects which vary widely in shape and function.", + "A CD player has a rectangular shape with a disc tray, control buttons, and a display screen for track information." + ], + "cello": [ + "The cello has a large wooden body with a distinctive curved shape and strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body and tall neck played upright between the knees.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow." + ], + "mobile phone": [ + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "Mobile phones are small rectangular devices with screens, buttons or touchscreens, cameras, and often a sleek metallic or plastic body.", + "Mobile phones are flat rectangular devices with screens and buttons or touchscreens, smaller than laptops but larger than credit cards." + ], + "chain": [ + "A chain is a series of interlinked metal rings used for fastening, pulling, or securing objects together.", + "Chains are identified by their interlinked metal loops forming a flexible, linear structure often used for binding or hanging.", + "A chain consists of interlinked metal rings forming a flexible linear series.", + "Chains have interlocking metal loops forming a flexible linear structure often used for binding or hanging objects." + ], + "chain-link fence": [ + "A chain-link fence is a metal grid of interwoven wires forming a diamond pattern used for barriers or enclosures.", + "Chain-link fences have a distinctive diamond-shaped wire mesh pattern formed by interwoven metal wires.", + "Chain-link fences have a grid of interwoven metal wires forming diamond-shaped patterns and are typically silver or black in color.", + "A chain-link fence has a grid of interwoven metal wires forming diamond patterns, unlike solid walls or wooden fences." + ], + "chain mail": [ + "Chain mail has a distinctive interlocking metal ring pattern that creates a flexible, textured, and shiny surface unlike other fabrics or armors.", + "Chain mail is a flexible metal armor made of interlocking small rings forming a mesh-like protective garment.", + "Chain mail consists of interlinked metal rings forming a flexible mesh, unlike solid armor or fabric which are smooth or woven.", + "Chain mail appears as a flexible metal mesh made of interlinked small rings forming a shiny, textured, and often silver or gray surface." + ], + "chainsaw": [ + "A chainsaw has a long body with a toothed blade, a handle, and often an engine or motor at one end.", + "A chainsaw has a long body with a toothed blade and a handle, unlike most tools which are simpler and lack moving parts.", + "A chainsaw has a long toothed blade, a motor or engine, and a handle, often seen cutting wood with visible teeth and exhaust.", + "A chainsaw is a handheld power tool with a toothed rotating blade used for cutting wood, featuring a long body and a motor." + ], + "storage chest": [ + "A storage chest is a large rectangular box with a hinged or removable lid often made of wood or metal.", + "A storage chest typically has a large hinged lid and sturdy construction for holding items inside securely.", + "Storage chests are recognized by their large rectangular shape, hinged lid, sturdy handles, and often wooden or metal construction.", + "Storage chests are typically larger, boxier, and have lids for opening, unlike shelves or cabinets which have doors or open compartments." + ], + "chiffonier": [ + "A chiffonier is a tall narrow chest of drawers often with a mirror and ornate details typically used for storing clothes.", + "A chiffonier is a tall narrow chest of drawers often with a mirror and decorative details typically used in bedrooms.", + "A chiffonier is a tall narrow chest of drawers, often with a mirror, while similar items like dressers are wider and lower.", + "A chiffonier is recognized by its tall narrow design with multiple drawers and often a mirror, resembling a stylish bedroom or dining room cabinet." + ], + "bell or wind chime": [ + "Bells and wind chimes are hanging metal or wooden objects that produce sound when moved by wind or touch.", + "Bell or wind chime features include hanging hollow tubes or bells that produce sound when moved by wind or touch.", + "Look for hanging hollow tubes or objects that sway and make sound when moved by wind or touch.", + "Bells and wind chimes are hollow with hanging parts that produce sound when struck or moved unlike solid static objects." + ], + "china cabinet": [ + "A china cabinet is a tall wooden furniture piece with glass doors and shelves for displaying dishes and decorative items.", + "A china cabinet is a tall wooden furniture piece with glass doors and shelves displaying dishes and decorative items.", + "A china cabinet has glass doors, shelves for displaying dishes, and often ornate woodwork or carvings.", + "A china cabinet has glass doors and shelves to display dishes, unlike other cabinets which are usually solid and used for storage." + ], + "Christmas stocking": [ + "A Christmas stocking is a long, sock-shaped fabric pouch often decorated with festive patterns like snowflakes or Santa.", + "A Christmas stocking is a long decorative sock often with festive patterns, filled with gifts and hung by a fireplace.", + "A Christmas stocking is a festive fabric sock often red and white decorated with holiday patterns and filled with small gifts.", + "A Christmas stocking is uniquely shaped like a long sock often decorated with festive patterns and hung for holiday gifts." + ], + "church": [ + "Churches are large buildings with steeples, stained glass windows, and often a cross, unlike smaller or simpler structures.", + "Churches typically have tall steeples, arched windows, large wooden doors, and cross symbols on their rooftops or facades.", + "Churches often have tall steeples, arched windows, and large wooden doors with religious symbols or crosses on the building.", + "A church is a tall building with a pointed roof, often featuring a cross, stained glass windows, and a large entrance door." + ], + "movie theater": [ + "A movie theater is a large building with a marquee, ticket booth, rows of seats, and a big screen for showing films.", + "A movie theater has a large entrance with marquee lights, posters, ticket counters, and rows of seats facing a big screen.", + "A movie theater is recognized by rows of seats, a large screen, dim lighting, and often a projector booth at the back.", + "A movie theater typically has a large facade with marquee signs and posters while other objects vary widely in shape and design." + ], + "cleaver": [ + "A cleaver is a large rectangular knife with a thick heavy blade used for chopping meat and bones.", + "A cleaver is a large rectangular knife with a thick heavy blade and a broad handle for chopping tough materials.", + "A cleaver has a large rectangular blade with a thick spine designed for heavy chopping tasks.", + "A cleaver has a large rectangular blade, thick spine, and heavy weight for chopping through meat and bones." + ], + "cliff dwelling": [ + "Cliff dwellings are built into rock faces with visible stone walls and openings, unlike freestanding structures or natural rock formations.", + "Cliff dwellings are uniquely built into or on the sides of steep rock faces or cliffs.", + "Cliff dwellings are ancient homes built into rock faces often appearing as small rectangular structures with natural stone walls.", + "Cliff dwellings are stone structures built into rock faces with visible rooms and walls blending into the natural cliff." + ], + "cloak": [ + "A cloak is a long loose outer garment without sleeves that drapes over the body unlike coats or jackets which are more fitted.", + "A cloak is a long loose outer garment without sleeves that drapes over the shoulders and hangs down the body.", + "A cloak is a long loose outer garment that drapes over the shoulders and hangs down to cover the body.", + "A cloak is a long loose outer garment often with a hood draping over the body and flowing when in motion." + ], + "clogs": [ + "Clogs have a distinctive wooden sole with an open back and often a closed toe.", + "Clogs are wooden shoes with a thick sole and open back, unlike other shoes which are usually fully enclosed and made of softer materials.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors." + ], + "cocktail shaker": [ + "A cocktail shaker is a metal container with a tapered top, a strainer lid, and often a cap or smaller mixing cup.", + "A cocktail shaker is a metal container with a tight lid and strainer, often cylindrical or conical, unlike other kitchen tools.", + "A cocktail shaker is a sleek metal container with a tapered top, strainer lid, and often a cap for mixing drinks.", + "A cocktail shaker uniquely has a tightly sealed metal container with a built-in strainer and often a cap for mixing drinks." + ], + "coffee mug": [ + "A coffee mug is typically a cylindrical cup with a handle often made of ceramic or porcelain and holds hot beverages.", + "A coffee mug typically has a cylindrical shape with a handle and is smaller than a cup designed for other beverages.", + "Coffee mugs typically have a handle and cylindrical shape designed for holding hot beverages unlike bowls or cups which may lack handles.", + "A coffee mug is a cylindrical cup with a handle, typically made of ceramic or porcelain, often featuring simple designs or logos." + ], + "coffeemaker": [ + "A coffeemaker is a small appliance with a water reservoir, filter basket, and carafe, often rectangular with buttons or a dial.", + "Coffeemakers typically have a water reservoir, brewing basket, and carafe, unlike other appliances which lack these specific components.", + "A coffeemaker typically has a water reservoir, a filter basket, a carafe, and buttons or dials for brewing control.", + "A coffeemaker typically has a water reservoir, filter basket, carafe, and heating element with buttons or dials for operation." + ], + "spiral or coil": [ + "Spiral or coil shapes have continuous curved lines that loop around a central point distinguishing them from straight or angular forms.", + "Spirals and coils have continuous curved or circular shapes that wind inward or outward unlike straight or angular objects.", + "A spiral or coil has a continuous curved line that winds around a central point while gradually moving outward or inward.", + "Look for curved shapes that wind around a central point or axis in a continuous looping pattern." + ], + "combination lock": [ + "A combination lock is a small metal or plastic device with a numbered dial that opens when turned to the correct sequence.", + "A combination lock has a numbered dial or rotating wheels and a shackle, unlike most objects which lack these mechanical features.", + "A combination lock has a small rotating dial with numbers and a metal shackle for securing items.", + "A combination lock has a rotating dial with numbered markings used to set a specific sequence for opening." + ], + "computer keyboard": [ + "A computer keyboard is a rectangular device with rows of small square or rectangular keys labeled with letters, numbers, and symbols.", + "Computer keyboards have a flat rectangular shape with many small square or rectangular keys arranged in orderly rows.", + "A computer keyboard is flat with many rectangular keys arranged in rows and often has letters numbers and symbols on the keys.", + "A computer keyboard has a grid of rectangular keys with letters, numbers, and symbols arranged in a specific layout." + ], + "candy store": [ + "Candy stores are recognized by colorful displays of sweets, glass jars, shelves packed with treats, and often a counter for serving.", + "A candy store has colorful displays of various sweets in jars or bins unlike other shops with uniform or non-edible items.", + "Candy stores are colorful with bright displays of sweets, glass jars, shelves full of candy, and often a counter for service.", + "A candy store is colorful with shelves full of sweets like jars of candies lollipops and chocolates in bright displays." + ], + "container ship": [ + "Container ships are long rectangular vessels with stacked cargo containers, unlike other ships which have varied shapes and no container stacks.", + "Container ships are long rectangular vessels with stacked colorful metal containers and a flat deck for easy loading and unloading.", + "A container ship is a massive elongated vessel with stacked rectangular containers, often colorful, floating on water with a prominent bow and stern.", + "Container ships are uniquely identified by their massive rectangular hulls stacked with uniformly colored shipping containers in rows." + ], + "convertible": [ + "A convertible has a retractable roof, open-top design, and often a sleek, sporty body with two doors and low seating.", + "A convertible is a car with a retractable roof, often sleek and sporty, resembling other vehicles but with an open-top design.", + "Convertibles have a retractable roof and open-top design unlike regular cars which have fixed roofs and enclosed cabins.", + "A convertible has a retractable roof that can be folded down to open the car to the outdoors." + ], + "corkscrew": [ + "A corkscrew has a distinctive spiral metal rod designed to twist into cork for removal.", + "A corkscrew is a small metal tool with a spiral tip and handle, used for pulling corks from bottles.", + "A corkscrew has a spiral metal rod with a handle, often T-shaped, used to pull corks from bottles.", + "A corkscrew has a spiral metal helix and handle, unlike other objects which lack this twisting design for opening bottles." + ], + "cornet": [ + "A cornet is a brass instrument resembling a small trumpet with a conical bore and compact shape.", + "A cornet looks like a small brass trumpet with a conical bore, compact shape, and a mellow tone.", + "A cornet looks like a small brass trumpet with a compact shape and a conical bore.", + "The cornet has a distinctive conical metal tube shape with valves and a flared bell, resembling a small trumpet." + ], + "cowboy boot": [ + "Cowboy boots have a tall shaft pointed toe high heel and often decorative stitching or patterns on the leather.", + "Cowboy boots have tall shafts, angled heels, pointed toes, and decorative stitching or patterns on the leather.", + "Cowboy boots are tall leather boots with pointed toes high heels and decorative stitching often with a slanted shaft.", + "Cowboy boots have a tall shaft with distinctive decorative stitching and a slanted heel not found on other footwear." + ], + "cowboy hat": [ + "A cowboy hat has a wide brim and tall crown, unlike other hats which are often smaller or differently shaped.", + "A cowboy hat is a wide-brimmed high-crowned hat typically made of felt or leather with a distinctive curved shape.", + "A cowboy hat has a wide brim curved up at the sides and a tall rounded or pinched crown.", + "The wide brim and high crown shape are unique to cowboy hats among all objects." + ], + "cradle": [ + "A cradle is a small bed with high sides that rocks, unlike regular beds or furniture which are larger and stationary.", + "A cradle is a small bed with high curved sides and often rocking legs for holding and soothing a baby.", + "A cradle is a small bed with high sides that rocks gently to soothe a baby, often made of wood or wicker.", + "A cradle has a curved base and sides designed to rock, typically holding a baby, with a distinct elongated oval shape." + ], + "construction crane": [ + "A construction crane is a tall metal structure with a long horizontal arm and cables, used for lifting heavy materials at building sites.", + "A construction crane has a tall vertical tower with a horizontal jib that can rotate and lift heavy loads.", + "Construction cranes are recognized by their tall steel lattice towers, long horizontal jibs, and cables used for lifting heavy materials.", + "Construction cranes have tall vertical towers with long horizontal booms and cables, unlike most objects which are smaller and lack such structures." + ], + "crash helmet": [ + "A crash helmet is a hard rounded protective headgear often with a visor and straps, usually made of tough plastic or composite materials.", + "A crash helmet is a hard, rounded headgear with a smooth outer shell, often featuring a visor and straps for secure fastening.", + "A crash helmet has a hard outer shell, padding inside, a chin strap, and often a visor, unlike hats or caps.", + "A crash helmet has a hard outer shell, smooth rounded shape, chin strap, and often bright colors or reflective surfaces for visibility." + ], + "crate": [ + "Crates are typically wooden or plastic boxes with slatted sides, unlike solid containers or bags, making them look open and structured.", + "A crate is a sturdy wooden or plastic box with slatted sides used for storage or shipping various items.", + "A crate is a sturdy rectangular box typically made of wood or plastic with slatted sides for ventilation and easy handling.", + "Crates are recognized by their rectangular wooden slats, open structure, and sturdy construction for holding items." + ], + "infant bed": [ + "An infant bed is smaller with high protective sides and often has soft padding unlike regular beds or cribs.", + "An infant bed is a small rectangular crib with raised sides and often has soft padding or bars for safety.", + "An infant bed has high protective sides to prevent babies from falling out.", + "An infant bed is small with high side rails often made of wood or plastic and has a soft mattress inside." + ], + "Crock Pot": [ + "A Crock Pot is a slow cooker with a round or oval ceramic pot inside a metal casing and a lid.", + "A crock pot has a round or oval shape with a removable lid and handles, often made of ceramic or metal.", + "A Crock Pot is a round or oval electric slow cooker with a removable stoneware pot and a lid, often with a handle.", + "A Crock Pot is a large electric pot with a removable stoneware insert and a lid, unlike most pots which are metal and stovetop." + ], + "croquet ball": [ + "A croquet ball is smooth, uniformly colored, and slightly smaller than a bowling ball but larger and less fuzzy than a tennis ball.", + "A croquet ball is a smooth, hard sphere, typically brightly colored with stripes or patterns, similar to a bocce ball but smaller.", + "Croquet balls are smooth hard spheres with bright solid colors and no seams or markings.", + "Croquet balls are smooth hard spheres with bright solid colors often featuring stripes or patterns for easy identification." + ], + "crutch": [ + "A crutch is a long stick with a padded top and often a crossbar to support underarm weight for walking assistance.", + "Crutches have long vertical shafts with horizontal hand grips and arm supports, often with rubber tips at the bottom.", + "Crutches are long narrow objects with padded tops and rubber tips often seen under arms for support.", + "Crutches have long straight shafts with handles and arm supports, unlike canes or walkers which are shorter or lack arm supports." + ], + "cuirass": [ + "A cuirass is a form-fitting metal chest plate with smooth surfaces and defined edges unlike fabric or flexible armor pieces.", + "A cuirass is a piece of armor that covers the torso, typically made of metal and shaped to fit the chest and back.", + "A cuirass is a form-fitting metal chest armor with smooth surfaces, often shiny, and sometimes decorated with ridges or engravings.", + "A cuirass is recognized by its smooth, curved metal chest plate covering the torso, often with shoulder straps and decorative engravings." + ], + "dam": [ + "Dams are large concrete or earthen barriers built across rivers to hold back water and create reservoirs.", + "Dams are large solid barriers made of concrete or earth that block water flow unlike natural formations or smaller man-made structures.", + "A dam is a large concrete or earthen wall built across a river to hold back water and create a reservoir.", + "Dams are large solid barriers built across rivers with straight edges and massive concrete or earthen walls holding back water." + ], + "desk": [ + "Desks are flat surfaces with legs often used for work or study typically found in offices or homes.", + "A desk is a flat rectangular surface with legs often made of wood or metal used for working or studying.", + "A desk is a flat-surfaced furniture piece with legs, often made of wood or metal, used for working or studying.", + "Desks are flat surfaces with legs for working while similar objects like tables or benches may lack storage or have different heights." + ], + "desktop computer": [ + "Desktop computers are rectangular with screens and keyboards, unlike most objects which lack these electronic components and flat surfaces.", + "A desktop computer is a boxy device with a monitor, keyboard, and often a mouse on a flat surface like a desk.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact base with visible ports and cables.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact case with visible ports and cables." + ], + "rotary dial telephone": [ + "A rotary dial telephone has a circular dial with numbered holes and a finger stop, unlike push-button phones or cordless models.", + "A rotary dial telephone has a circular dial with finger holes numbers around it and a handset on a cord.", + "A rotary dial telephone has a circular dial with finger holes numbered around it and a handset on a curved base.", + "A rotary dial telephone has a circular dial with numbered holes and a handset resting on a boxy base with a cord." + ], + "diaper": [ + "Diapers are soft, rectangular, and often white with elastic edges, unlike most objects which are rigid or differently shaped.", + "A diaper is typically a soft, rectangular, white or pastel-colored pad with elastic edges and adhesive tabs for fastening.", + "A diaper is a soft folded rectangular pad with fasteners made of absorbent material often white or pastel colored.", + "Diapers are rectangular with a soft, padded texture and often have fastening tabs or elastic edges for a snug fit." + ], + "digital clock": [ + "A digital clock is a small rectangular device with a screen displaying bright numbers showing the current time.", + "Digital clocks display numeric time digitally on a screen while other objects vary in shape color and function without showing time.", + "A digital clock has a flat rectangular screen displaying numeric digits in a segmented or pixelated format often with a dark background.", + "Digital clocks display numeric digits on a screen with clear segments or pixels showing time in a digital format." + ], + "digital watch": [ + "A digital watch has a small screen displaying numbers and buttons, unlike analog watches with hands or clocks with larger faces.", + "A digital watch is a small rectangular device with a screen displaying numbers for time, often with buttons on the sides.", + "A digital watch has a screen displaying numbers for time often with buttons and a rectangular or square shape.", + "Digital watches have a small rectangular screen displaying numbers or time with buttons or a touch interface on a wristband." + ], + "dining table": [ + "Dining tables are typically large flat surfaces with legs designed to seat multiple people unlike smaller or single-purpose furniture items.", + "Dining tables are large flat surfaces supported by legs often surrounded by chairs and used for meals or gatherings.", + "A dining table is a large flat surface with legs, often made of wood or glass, designed for meals and gatherings.", + "A dining table typically has a flat rectangular or oval surface surrounded by chairs for seating during meals." + ], + "dishcloth": [ + "A dishcloth is a small, flat, rectangular piece of fabric or textured material, often with a slightly rough surface for cleaning.", + "Dishcloths have a distinctive loose, woven texture designed for scrubbing and absorbing liquids.", + "A dishcloth is typically a small, flat, rectangular piece of fabric, often textured or slightly rough, unlike larger or rigid cleaning tools.", + "A dishcloth is typically a small, rectangular, soft, and often textured fabric piece, usually in plain colors or simple patterns." + ], + "dishwasher": [ + "Dishwashers are rectangular kitchen appliances with control panels, racks inside, and a front door, unlike smaller or differently shaped kitchen tools.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish in kitchens.", + "A dishwasher is a rectangular kitchen appliance with a front-loading door, control panel, and racks inside for holding dishes.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish or racks inside." + ], + "disc brake": [ + "A disc brake is a round metal rotor with a caliper that clamps onto it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers gripping it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers and pads visible often seen on vehicles and bikes for slowing motion.", + "Disc brakes have a round metal rotor and caliper while other objects lack this distinct flat circular shape and mechanical housing." + ], + "dock": [ + "Docks are long flat structures extending into water made of wood or metal for boats to moor or load.", + "A dock is a flat wooden or metal structure extending over water for boats to moor or people to walk on.", + "Docks are long flat structures extending over water made of wood or metal unlike boats or piers which are shorter or floating.", + "Docks are uniquely characterized by their long wooden or concrete platforms extending over water for boats to moor." + ], + "dog sled": [ + "A dog sled is a long narrow vehicle with runners, pulled by dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by harnessed dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by dogs, unlike other objects which lack this specific shape and function.", + "A dog sled has long narrow runners with a platform pulled by harnessed dogs in snow or icy terrain." + ], + "dome": [ + "A dome is a rounded vault forming the roof of a building or structure, often hemispherical in shape.", + "Domes are rounded, curved structures with a hemispherical shape, unlike flat or angular objects.", + "A dome is recognized by its rounded, hemispherical shape that curves uniformly upward from a circular base.", + "A dome is a rounded, curved, and often symmetrical structure that bulges outward like a half-sphere on top of buildings or objects." + ], + "doormat": [ + "A doormat is a flat rectangular or oval textile with coarse fibers often placed at entrances for wiping shoes.", + "Doormats are flat rectangular often textured or bristled surfaces designed for wiping shoes unlike other mats which may be softer or decorative.", + "A doormat is typically flat rectangular textured and often has welcome messages or rough surfaces for cleaning shoes.", + "Doormats are flat rectangular textiles with coarse textures often placed at entrances featuring welcome messages or geometric patterns." + ], + "drilling rig": [ + "A drilling rig is a tall, large structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "Drilling rigs are tall with large, complex structures and heavy machinery, unlike simpler or smaller objects like trucks or cranes.", + "A drilling rig is a large, towering structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "A drilling rig has a tall derrick, rotating drill pipe, and large platform with heavy machinery for extracting underground resources." + ], + "drum": [ + "Drums are recognized by their cylindrical shape, stretched membrane top, and often have a round base or stand.", + "A drum is a cylindrical musical instrument with a hollow body and stretched membranes on one or both ends.", + "Drums are typically cylindrical with a flat top and bottom, often covered by stretched material and may have metal rims.", + "Drums are cylindrical with a stretched membrane on top while similar objects lack this distinct shape and drumhead feature." + ], + "drumstick": [ + "A drumstick is a long thin wooden stick with a rounded tip used for hitting drums distinguishing it from other objects.", + "Drumsticks are long slender sticks with tapered ends used to strike drums often made of wood or metal.", + "Drumsticks are long thin wooden sticks with tapered ends used for drumming unlike other objects which vary in shape and material.", + "A drumstick is a long thin piece of meat from a chicken leg with a rounded end and a narrow bone inside." + ], + "dumbbell": [ + "A dumbbell is identified by a short bar with symmetrical weighted ends often made of metal or rubber.", + "Dumbbells are recognized by their short bar with symmetrical weighted ends often textured for grip and made of metal or rubber.", + "A dumbbell is a short metal bar with heavy round weights on each end used for exercise and strength training.", + "Dumbbells have a short bar with weights on both ends, unlike similar objects which may lack symmetry or have different shapes." + ], + "Dutch oven": [ + "A Dutch oven is a heavy pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls and a tight-fitting lid often made of cast iron or ceramic.", + "A Dutch oven is a heavy pot with thick walls and a tight-fitting lid, often made of cast iron or ceramic." + ], + "electric fan": [ + "Electric fans have rotating blades mounted on a base or stand, often with protective grilles, unlike most household objects which lack moving parts.", + "An electric fan typically has rotating blades mounted on a base or stand often with a protective grille and a motor.", + "Electric fans have rotating blades enclosed in a protective grill mounted on a stand or base for airflow.", + "An electric fan has rotating blades enclosed in a protective grill mounted on a base or stand for airflow." + ], + "electric guitar": [ + "Electric guitars have a long narrow body with strings, pickups, and a headstock with tuning pegs distinguishing them from other objects.", + "An electric guitar has a long neck with frets, a solid body, and pickups, unlike most objects which lack these musical instrument features.", + "An electric guitar has a long thin neck, solid body, six strings, pickups, and control knobs distinguishing it from other objects.", + "An electric guitar has a long wooden body with six strings, pickups, and metal knobs, often with a sleek and angular design." + ], + "electric locomotive": [ + "Electric locomotives are long, boxy vehicles with pantographs on top and no wheels visible, unlike cars or buses.", + "An electric locomotive is a large rectangular train engine with a smooth streamlined body and pantographs on top for power lines.", + "Electric locomotives have a pantograph on top that collects power from overhead wires.", + "Electric locomotives have a long rectangular body with a pantograph on top and often multiple windows along the front and sides." + ], + "entertainment center": [ + "An entertainment center is a large cabinet or stand holding a TV and other media devices like speakers and gaming consoles.", + "Entertainment centers are large furniture units with shelves, compartments, and space for TVs and electronic devices.", + "An entertainment center is a large cabinet with shelves or compartments for electronics like TVs and speakers, often made of wood or metal.", + "An entertainment center is a large cabinet with shelves and compartments designed to hold TVs and media equipment, unlike simpler furniture." + ], + "envelope": [ + "An envelope is a flat rectangular paper container with a sealed flap, often with printed addresses and stamps.", + "An envelope has a rectangular paper flap that folds over to seal the contents inside.", + "An envelope is a flat rectangular paper container with a sealable flap, unlike books or boxes which are thicker and rigid.", + "An envelope is a flat rectangular paper container with a sealable flap, typically used for holding letters or documents." + ], + "espresso machine": [ + "Espresso machines have a distinctive portafilter, steam wand, and water tank making them easily recognizable among kitchen appliances.", + "Espresso machines are shiny metal appliances with a portafilter, steam wand, and buttons or dials on a compact rectangular body.", + "An espresso machine is a sleek metal appliance with buttons, a portafilter, and steam wand for making coffee.", + "Espresso machines are compact with a portafilter steam wand and control panel unlike coffee makers which are simpler and lack these features." + ], + "face powder": [ + "Face powder is a fine, loose or pressed powder with a matte or shimmery texture, unlike solid or liquid cosmetics.", + "Face powder has a fine, powdery texture that appears as a soft, matte layer on skin, unlike other objects.", + "Face powder appears as a fine, light-colored powder often in small containers or compacts with a soft, smooth texture.", + "Face powder appears as a small compact or loose container filled with fine, pale, powdery substance often with a soft puff applicator." + ], + "feather boa": [ + "A feather boa is a fluffy, long, and soft accessory made of many colorful or monochrome feathers strung together.", + "Feather boas are long fluffy accessories made of soft feathers, unlike other objects which are usually solid or less textured.", + "Feather boas are recognized by their long fluffy strands made of soft feathers often in bright colors and wrapped loosely.", + "A feather boa is a fluffy, colorful, and often long scarf-like accessory made from soft feathers, usually worn around the neck." + ], + "filing cabinet": [ + "A filing cabinet is a tall rectangular metal or wooden box with drawers for storing documents and folders.", + "Filing cabinets are rectangular metal or wooden boxes with multiple horizontal drawers and often a lock or handle on each drawer.", + "Filing cabinets are tall rectangular metal or wooden boxes with multiple horizontal drawers and often a lockable top drawer.", + "Filing cabinets are recognized by their rectangular shape, multiple stacked drawers, and metallic or wooden texture with horizontal handles." + ], + "fireboat": [ + "Fireboats are recognized by their water cannons bright colors and large size designed for spraying water to fight fires on ships or docks.", + "A fireboat is a large watercraft with powerful water cannons and bright red coloring designed for fighting fires on ships and docks.", + "A fireboat is a large watercraft with multiple water cannons and bright red coloring for firefighting on water.", + "A fireboat has water cannons, a large hull, and bright red or yellow colors unlike regular boats or ships." + ], + "fire truck": [ + "Fire trucks are large red vehicles with ladders, flashing lights, and emergency markings like \"FIRE\" or \"RESCUE\" on them.", + "Fire trucks are large red vehicles with ladders, flashing lights, sirens, and bold white lettering for emergency identification.", + "Fire trucks are large red vehicles with ladders, hoses, flashing lights, and emergency markings unlike regular cars or trucks.", + "A fire truck is a large red vehicle with ladders, hoses, flashing lights, and often bold lettering for emergency visibility." + ], + "fire screen": [ + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh barrier placed in front of a fireplace to block sparks and embers.", + "A fire screen is a mesh or glass barrier with a decorative frame, unlike other objects which lack these protective and ornamental features." + ], + "flagpole": [ + "A flagpole is a tall slender vertical pole often topped with a finial and designed to hold a flag unlike other objects.", + "A flagpole is a tall slender vertical pole often made of metal or wood with a flag attached at the top.", + "A flagpole is a tall slender vertical pole often topped with a decorative finial and used to display flags.", + "A flagpole is a tall slender vertical structure with a flag attached, often standing alone or atop buildings." + ], + "flute": [ + "A flute is recognized by its long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a slender, shiny, metal or wooden tube with holes and keys, often held sideways when played.", + "The flute has a long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a long thin tube with holes while similar objects like recorders have mouthpieces and clarinets have reeds." + ], + "folding chair": [ + "A folding chair is a lightweight portable seat with a collapsible frame and often a fabric or plastic seat and backrest.", + "Folding chairs have collapsible frames and often a fabric or plastic seat, unlike rigid chairs or stools with fixed structures.", + "Folding chairs have a collapsible frame with a seat and backrest that fold flat for easy storage and portability.", + "Folding chairs are lightweight with a collapsible frame, often having a fabric or plastic seat and metal legs that fold flat." + ], + "football helmet": [ + "A football helmet is a hard, rounded protective gear with a facemask and team colors or logos on its smooth outer shell.", + "A football helmet has a hard outer shell with a face mask and padding, unlike most objects which lack these protective features.", + "A football helmet has a hard shell with a facemask, ear holes, and team logos or colors for player identification and protection.", + "Football helmets have a hard outer shell with a face mask and chin strap designed for player protection during the game." + ], + "forklift": [ + "A forklift is a small industrial vehicle with a forked platform used to lift and move heavy loads.", + "A forklift has two parallel horizontal forks at the front used for lifting and moving heavy loads.", + "Forklifts have a distinct upright mast with forks and a small cab, unlike most vehicles which lack lifting mechanisms.", + "A forklift has a tall vertical mast with forks at the front and a small cab for the operator." + ], + "fountain": [ + "Fountains are water structures with sprays or streams, unlike solid objects like statues or buildings which lack flowing water features.", + "A fountain is identified by water spraying or flowing from a decorative structure often with a basin or pool below.", + "Fountains are recognized by their water jets or sprays often in decorative structures with basins or pools.", + "A fountain is a decorative structure that sprays water into the air, often found in parks or plazas with sculpted designs." + ], + "fountain pen": [ + "Fountain pens have a slender body with a pointed nib and often an ink-filled barrel distinguishing them from bulkier writing tools.", + "A fountain pen is a slender writing tool with a pointed nib, ink reservoir, and often a decorative cap.", + "A fountain pen has a long slender body with a pointed nib and often a cap or clip for carrying.", + "A fountain pen has a slender cylindrical body with a pointed nib and often an ink reservoir or cap." + ], + "four-poster bed": [ + "A four-poster bed has tall vertical posts at each corner often with curtains or a canopy framing the bed.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains at the top.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains unlike other beds or furniture.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains for a distinctive enclosed look." + ], + "freight car": [ + "A freight car is a large rectangular box on wheels used to transport goods by rail, typically made of metal.", + "Freight cars are long rectangular containers on wheels often seen on trains used for transporting goods in bulk.", + "Freight cars are long rectangular metal containers on wheels used for transporting goods by rail unlike other vehicles or objects.", + "Freight cars are long rectangular metal containers on wheels often seen in trains used for transporting goods." + ], + "French horn": [ + "The French horn is a large brass instrument with a coiled tube, wide bell, and valves, often gold or silver in color.", + "The French horn has a large coiled brass tube with a flared bell and is played by inserting a hand into the bell.", + "The French horn has a distinctive large coiled brass tube with a flared bell and funnel-shaped mouthpiece.", + "The French horn has a large coiled brass body with a wide flared bell and three rotary valves." + ], + "frying pan": [ + "A frying pan has a flat round surface with a long handle, unlike pots or skillets which may be deeper or have different shapes.", + "A frying pan is a round flat metal cooking tool with a long handle and shallow sides for frying food.", + "A frying pan has a flat circular bottom with a shallow depth and a long handle extending from one side.", + "A frying pan has a flat circular cooking surface with a long handle and shallow curved sides for easy flipping and stirring." + ], + "fur coat": [ + "Fur coats are long thick hairy garments while other objects vary in shape texture and material like smooth plastic or hard metal.", + "A fur coat is identified by its thick soft hairy texture and animal skin appearance often with long shaggy or smooth fur.", + "A fur coat is a thick, soft garment made from animal pelts, often fluffy and luxurious in appearance.", + "Fur coats have long dense hair covering the entire outer surface unlike most other garments or objects." + ], + "garbage truck": [ + "A garbage truck is a large vehicle with a compacting mechanism and often has a distinctive shape and bright colors.", + "Garbage trucks are large boxy vehicles with mechanical arms or compactors, distinct from regular trucks due to their waste collection features.", + "A garbage truck is large, boxy, often green or white, with a mechanical arm or rear compactor and labeled for waste collection.", + "A garbage truck has a large hydraulic lifting mechanism on the back for emptying trash bins." + ], + "gas mask or respirator": [ + "A gas mask or respirator has a face-covering mask with filters or tubes and often a clear eye window.", + "A gas mask or respirator is a face-covering device with filters and straps designed to protect against harmful air.", + "A gas mask or respirator has a large round facepiece with filters on the sides and straps for securing it tightly.", + "Gas masks and respirators cover the mouth and nose with filters and straps unlike most objects which lack protective face features." + ], + "gas pump": [ + "A gas pump is typically a tall metal machine with a hose nozzle and digital display for fueling vehicles at stations.", + "A gas pump is a tall metal device with a hose and nozzle for dispensing fuel, often seen at service stations.", + "Gas pumps have a distinct nozzle, hose, and digital display panel unlike most objects which lack these specific fueling components.", + "Gas pumps have a tall vertical body with a hose, nozzle, and digital display for fuel selection and payment." + ], + "goblet": [ + "A goblet is a stemmed drinking cup with a wide bowl, distinguishing it from other cups or vessels without stems or with different shapes.", + "A goblet is recognized by its stemmed cup shape with a wide bowl narrow base and often decorative details.", + "A goblet is a stemmed drinking cup with a wide bowl, often made of glass or metal, and usually taller than it is wide.", + "A goblet is a decorative drinking cup with a stem and base, often made of glass or metal, resembling a fancy wine glass." + ], + "go-kart": [ + "A go-kart is a small open-wheel racing car with a low frame, no roof, and a simple design for speed and agility.", + "A go-kart has a small open-wheel frame with no suspension and a low seat close to the ground.", + "A go-kart is a small open-wheel vehicle with a low frame, no suspension, and a single seat, often brightly colored.", + "Go-karts are small open-wheel vehicles with low frames no doors roll cages and often bright colors used for racing." + ], + "golf ball": [ + "A golf ball is small, white, dimpled, and round, often seen on grassy fields or near golf clubs.", + "A golf ball is small, white, dimpled, and spherical, often found on grassy courses or near clubs and tees.", + "Golf balls have a distinctive dimpled surface pattern that no other object has for aerodynamics and distance control.", + "Golf balls are small, white, dimpled spheres, unlike most objects which vary in color, texture, and shape." + ], + "golf cart": [ + "A golf cart has a small open vehicle design with seats and a bag holder for golf clubs.", + "A golf cart is a small open vehicle with seats and a roof designed for carrying golfers and their equipment around a course.", + "Golf carts are small open vehicles with seats and a roof, unlike cars or trucks, designed for short distances on golf courses.", + "Golf carts are small vehicles with open sides, a roof, and a simple rectangular shape, often seen on golf courses." + ], + "gondola": [ + "A gondola is a long narrow boat with a flat bottom and high curved ends, unlike other boats which are wider or differently shaped.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and curved ends used in Venice canals." + ], + "gong": [ + "A gong is a large, flat, circular metal disc that produces a resonant sound when struck with a mallet.", + "A gong is a large flat metal disc with a raised center and often ornate designs, unlike smaller or differently shaped percussion instruments.", + "A gong is a large flat metal disc with a raised center and often has ornate designs or engravings on its surface.", + "A gong is recognized by its large flat circular metal disc often with a raised center and struck with a mallet." + ], + "gown": [ + "A gown is a long flowing formal dress often worn for special occasions like weddings or ceremonies.", + "A gown is a long flowing dress often worn for formal events with elegant fabrics and intricate designs.", + "A gown is a long flowing dress typically worn for formal occasions unlike shorter casual dresses or other clothing items.", + "Gowns are long flowing garments with loose draping fabric often featuring elegant designs and formal embellishments." + ], + "grand piano": [ + "The grand piano has a distinctive large curved body with a horizontal lid that opens upwards.", + "A grand piano has a large curved body with a lid and strings inside, unlike upright pianos which are tall and straight.", + "A grand piano is a large musical instrument with a curved wooden body, open lid, and black and white keys.", + "A grand piano has a large curved body with a lid that opens upwards and a row of black and white keys." + ], + "greenhouse": [ + "Greenhouses are recognized by their transparent glass or plastic walls and roofs designed to let sunlight in for growing plants.", + "Greenhouses are typically made of transparent glass or plastic walls and roofs to let sunlight in, unlike most solid-walled structures.", + "A greenhouse is a glass or transparent structure for growing plants, often rectangular with a peaked or curved roof.", + "Greenhouses are typically transparent or glass structures with metal or plastic frames, often containing visible plants inside." + ], + "radiator grille": [ + "A radiator grille is a metal or plastic grid on a vehicle's front that allows airflow while protecting the radiator.", + "A radiator grille is a grid-like front panel on vehicles with horizontal or vertical slats for airflow and cooling the engine.", + "A radiator grille has evenly spaced vertical or horizontal slats designed for airflow, unlike solid or differently patterned surfaces on other objects.", + "A radiator grille has a repeating grid or mesh pattern often with horizontal or vertical bars for airflow and vehicle branding." + ], + "grocery store": [ + "Grocery stores are recognized by shelves stocked with packaged goods, shopping carts, checkout counters, and aisles with food products.", + "Grocery stores have shelves stocked with various packaged goods and fresh produce unlike single-item objects or uniform environments.", + "A grocery store is a large organized space with shelves stocked full of packaged foods fresh produce and household items.", + "Grocery stores have aisles filled with shelves stocked with various packaged foods and household products." + ], + "guillotine": [ + "A guillotine has a tall upright frame with a sharp angled blade that slides down to cut, distinct for its execution purpose.", + "A guillotine has a tall wooden frame with a diagonal blade, unlike most objects which lack such a distinct sharp cutting mechanism.", + "A guillotine is a tall wooden frame with a sharp angled blade used for executions by beheading.", + "A guillotine has a tall wooden frame with a diagonal blade at the top and a base to hold the victim." + ], + "hair clip": [ + "Hair clips are small, often curved or decorative, and designed to hold hair in place with a clasp or spring mechanism.", + "A hair clip is small, often curved or hinged, and designed to hold hair in place unlike larger or rigid objects.", + "A hair clip is a small, often decorative clasp with hinged or sliding parts designed to hold hair in place.", + "A hair clip is small, often curved or straight, with a clasp or decorative top, used to hold hair in place." + ], + "hair spray": [ + "Hair spray is a small aerosol can with a nozzle, often shiny and labeled, used to style hair.", + "Hair spray is a small aerosol can with a nozzle while similar items like perfumes or deodorants often have different shapes or spray mechanisms.", + "Hair spray is recognized by its aerosol can shape, nozzle, and often colorful or metallic packaging with hair-related branding.", + "Hair spray appears as a small aerosol can with a nozzle and often has colorful labels or branding." + ], + "half-track": [ + "A half-track has both front wheels and rear tank-like tracks, unlike vehicles with only wheels or full tracks.", + "A half-track has a truck-like front with tank-like rear tracks instead of wheels for off-road mobility.", + "A half-track is a rugged military vehicle with front wheels and rear tank-like tracks for off-road mobility.", + "A half-track has a front truck-like section and rear tank-like tracks, combining wheels and continuous tracks for mobility." + ], + "hammer": [ + "A hammer has a long handle with a heavy metal head at one end for striking nails.", + "A hammer has a long handle with a heavy metal head, one flat side for striking and often a claw for pulling nails.", + "A hammer has a long handle with a heavy metal head at one end used for hitting nails or breaking things.", + "Hammers have a long handle and a heavy metal head, unlike most tools which are smaller or have different shapes." + ], + "hamper": [ + "A hamper is typically a large woven or fabric container with handles, often used for holding laundry or clothes.", + "A hamper is typically a large woven or fabric container with a lid, often used for storing laundry.", + "A hamper is recognized by its open-top woven or fabric container shape often used for holding laundry or storage.", + "A hamper is a large woven or fabric basket used for holding laundry or clothes, often with a lid and handles." + ], + "hair dryer": [ + "A hair dryer is a handheld device with a long nozzle, a handle, and vents, often with buttons or switches for controls.", + "A hair dryer is a handheld electric device with a nozzle and buttons, often shaped like a gun or tube for blowing hot air.", + "A hair dryer has a handle, a long nozzle, and a vented body with a cord for electrical power.", + "A hair dryer has a long nozzle and handle with buttons, unlike similar objects like drills or microphones which lack these features." + ], + "hand-held computer": [ + "Hand-held computers are flat rectangular devices with screens and buttons unlike bulkier or irregularly shaped everyday objects.", + "Hand-held computers are small rectangular devices with screens, buttons or touchscreens, and often have visible brand logos or ports.", + "Hand-held computers are small flat rectangular devices with screens, buttons or touchpads, and often a compact keyboard or stylus.", + "A hand-held computer typically has a touchscreen and physical buttons combined in a compact rectangular shape." + ], + "handkerchief": [ + "Handkerchiefs are small square cloths, often plain or patterned, while similar items like napkins or scarves vary in size, material, and use.", + "A handkerchief is a small square or rectangular piece of soft fabric often folded or carried in pockets for personal use.", + "Handkerchiefs are small square cloths often with decorative patterns or monograms used for personal hygiene or fashion accessories.", + "A handkerchief is a small square piece of cloth, often white or patterned, used for personal hygiene or as a fashion accessory." + ], + "hard disk drive": [ + "Hard disk drives are flat rectangular metal boxes with circuit boards and connectors unlike most objects which vary in shape and material.", + "A hard disk drive is a rectangular metal box with circuit boards on one side and smooth surfaces on the others.", + "Hard disk drives are flat rectangular metal boxes with circuit boards on one side and labeled stickers on top.", + "A hard disk drive is a rectangular metal box with circuit boards and connectors, often shiny and flat with labeled stickers." + ], + "harmonica": [ + "A harmonica is a small rectangular wind instrument with metal reeds and air holes in a row.", + "A harmonica is a small rectangular wind instrument with metal reeds and air holes, unlike most objects which lack these features.", + "A harmonica is a small rectangular instrument with metal reeds visible through air holes in a metal or plastic comb.", + "The harmonica has a distinctive row of small rectangular holes for airflow and sound production." + ], + "harp": [ + "A harp has tall vertical strings and a curved neck, unlike most instruments which are smaller and lack such prominent strings.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings stretched from top to bottom.", + "The harp's distinct features are its tall frame, multiple parallel strings, and curved neck, making it easily recognizable among instruments.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings played by plucking with fingers." + ], + "combine harvester": [ + "A combine harvester is a large farm machine with a wide cutting header grain tank and tracks or wheels for harvesting crops efficiently.", + "A combine harvester is a large farm machine with a cutting header, rotating reel, and grain tank for harvesting crops efficiently.", + "A combine harvester is large with a complex structure including a cutting header, threshing drum, and grain tank, unlike simpler farm vehicles.", + "A combine harvester uniquely has a large rotating header at the front that cuts and gathers crops in one pass." + ], + "hatchet": [ + "A hatchet has a short handle with a sharp metal blade on one end for chopping or cutting.", + "A hatchet is a small axe with a short handle and a sharp blade used for chopping wood or other tasks.", + "A hatchet has a sharp blade on one side and a hammerhead on the opposite side of a short handle.", + "A hatchet has a short handle and a sharp metal blade, unlike similar tools which may be longer or have different head shapes." + ], + "holster": [ + "A holster is a pouch or holder typically made of leather or fabric designed to securely carry a gun or tool.", + "A holster is typically a leather or fabric pouch with straps or clips designed to securely hold a gun or tool.", + "A holster is a leather or fabric pouch designed to hold a gun or tool securely on a belt or strap.", + "A holster is recognized by its pouch-like shape designed to snugly hold a firearm, often with a belt clip or strap." + ], + "home theater": [ + "Home theaters are recognized by large screens, multiple speakers, dark surroundings, and comfortable seating arranged for optimal viewing and sound.", + "Home theaters typically include multiple speakers a large screen and media components arranged for immersive viewing unlike simpler single-purpose devices.", + "A home theater resembles a setup with a large screen speakers and seating designed for a cinematic experience in a home.", + "Home theaters typically feature large screens, multiple speakers, and sleek media consoles often arranged in a dedicated room setup." + ], + "honeycomb": [ + "Honeycomb has a distinctive hexagonal pattern made of tightly packed wax cells created by bees.", + "Honeycomb has a distinctive hexagonal pattern with waxy, golden cells often clustered together in a flat or slightly curved structure.", + "Honeycomb has a distinctive hexagonal pattern with small, tightly packed cells, often golden or light brown, resembling a natural geometric grid.", + "Honeycomb has a unique hexagonal pattern of small uniform cells often in a golden or waxy color." + ], + "hook": [ + "A hook has a curved or bent end designed to catch, hold, or pull objects.", + "A hook is a curved or bent tool typically made of metal used for grabbing holding or hanging objects.", + "A hook is recognized by its curved or bent shape designed to catch, hold, or pull objects.", + "A hook has a curved or bent shape that tapers to a point, often with a smooth or sharp end for catching or holding." + ], + "hoop skirt": [ + "A hoop skirt has a rigid, circular frame that creates a wide, bell-shaped silhouette unlike other skirts or garments.", + "A hoop skirt is recognized by its wide, rigid, circular frame that creates a bell-shaped silhouette under fabric.", + "A hoop skirt is a wide, structured skirt with horizontal rings that holds its shape outward from the waist.", + "A hoop skirt has a rigid, bell-shaped frame that visibly extends the fabric outward in a wide circular form." + ], + "gymnastic horizontal bar": [ + "A gymnastic horizontal bar is a long thin metal bar mounted horizontally between two sturdy vertical supports.", + "The gymnastic horizontal bar is a long, thin, metal bar mounted horizontally on upright supports for athletic exercises.", + "The gymnastic horizontal bar is a long thin metal bar mounted horizontally between two upright supports unlike other objects.", + "A long thin horizontal metal bar elevated on upright supports used for gymnastic routines like swings and flips." + ], + "horse-drawn vehicle": [ + "A horse-drawn vehicle is a carriage or cart pulled by horses, typically with wooden wheels and a bench or enclosed seating area.", + "Horse-drawn vehicles have large wheels, a carriage body, and are pulled by horses unlike motorized vehicles or animal riders.", + "Horse-drawn vehicles have wooden wheels, a carriage body, and are pulled by horses, distinguishing them from motorized vehicles and animals alone.", + "Look for a carriage or wagon pulled by horses with large wheels and a driver's seat." + ], + "hourglass": [ + "An hourglass has two glass bulbs connected by a narrow neck with sand flowing between them unlike most objects.", + "An hourglass is a glass device with two bulbous chambers connected by a narrow waist holding sand that flows between them.", + "An hourglass is recognized by its symmetrical glass bulbs connected by a narrow waist with sand flowing between them.", + "An hourglass has two rounded glass bulbs connected by a narrow middle with sand flowing from the top to the bottom." + ], + "iPod": [ + "An iPod is a small rectangular device with a click wheel or touchscreen and a sleek metal or plastic body.", + "iPods are small sleek rectangular devices with a click wheel or touchscreen unlike most objects which vary widely in shape and function.", + "An iPod is a small rectangular device with a smooth surface, a click wheel or touchscreen, and often a white or metallic finish.", + "An iPod is recognized by its small rectangular shape, click wheel, and sleek design with a screen and minimal buttons." + ], + "clothes iron": [ + "A clothes iron is a smooth flat metal base with a handle and a pointed tip used for pressing wrinkles out of fabric.", + "A clothes iron has a flat smooth metal base a handle on top and a tapered pointed front for pressing fabric.", + "A clothes iron has a flat smooth metal plate with a handle and often a pointed tip for pressing wrinkles out of fabric.", + "A clothes iron has a flat heated metal plate with a handle, unlike most objects which lack this smooth surface and grip design." + ], + "carved pumpkin": [ + "Carved pumpkins have hollow interiors with cut-out faces or designs, while other objects are solid or have different surface textures.", + "A carved pumpkin is an orange hollowed-out gourd with a face or design cut into its surface often lit from inside.", + "Carved pumpkins have distinct jagged cut-out facial features and hollow interiors with glowing candlelight visible through the openings.", + "A carved pumpkin has a hollowed-out orange shell with cut-out facial features like eyes and a mouth often lit from inside." + ], + "jeans": [ + "Jeans are recognized by their sturdy blue denim fabric, stitching patterns, and characteristic pockets and metal rivets.", + "Jeans have distinctive parallel stitched seams on the front pockets and along the outer leg edges.", + "Jeans are blue denim pants with stitching details, pockets, and a zipper or button fly.", + "Jeans are sturdy blue denim pants with visible stitching and metal rivets unlike most other clothing or objects." + ], + "jeep": [ + "Jeeps are recognized by their boxy shape, rugged tires, open top or removable roof, and distinctive front grille with round headlights.", + "Jeeps have a boxy shape, rugged tires, open top or removable roof, and a distinctive front grille with round headlights.", + "Jeeps are rugged vehicles with boxy shapes, large tires, open tops or removable doors, and a distinctive front grille.", + "A jeep is a rugged, boxy vehicle with large tires, open top or removable roof, and a distinctive grille." + ], + "T-shirt": [ + "A T-shirt has a short-sleeved or sleeveless design with a round neckline and no buttons or collar.", + "A T-shirt is a soft, short-sleeved, collarless garment made of stretchy fabric, unlike structured or rigid items like jackets or sweaters.", + "A T-shirt is a lightweight, short-sleeved, collarless garment with a round neckline, typically made of soft, stretchy fabric.", + "A T-shirt is recognized by its short sleeves, round neckline, and casual fabric, typically worn as everyday clothing." + ], + "jigsaw puzzle": [ + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns unlike most solid uniform objects.", + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns forming a complete image when assembled correctly.", + "A jigsaw puzzle is a flat, interlocking cardboard piece with colorful, irregular edges forming a complete picture when assembled.", + "Jigsaw puzzles have interlocking pieces with unique irregular edges and colorful fragmented images when incomplete." + ], + "rickshaw": [ + "A rickshaw is a small two or three-wheeled passenger cart pulled by a person or bicycle, unlike motorized vehicles or animal-drawn carriages.", + "A rickshaw is a small three-wheeled passenger vehicle often pulled by a person or powered by a motor with a covered seating area.", + "A rickshaw is a small two or three-wheeled passenger cart often pulled by a person or bicycle with a canopy and seating area.", + "A rickshaw is a small two-wheeled passenger cart pulled by a person or bicycle, often with a canopy for shade." + ], + "joystick": [ + "A joystick is a handheld control device with a stick that pivots on a base and often has buttons.", + "A joystick has a stick-like handle on a base with buttons or triggers for controlling games or machinery.", + "A joystick has a stick-like handle on a base with buttons often used for controlling games or machinery.", + "A joystick has a stick-like handle and buttons, unlike similar objects which may lack the stick or have different control layouts." + ], + "kimono": [ + "Kimonos are recognized by their long flowing sleeves, wide sash belt, and intricate traditional patterns on silk fabric.", + "A kimono is a long, flowing Japanese robe with wide sleeves, often made of silk and featuring intricate patterns.", + "A kimono is a long robe with wide sleeves and a sash belt often featuring intricate patterns and vibrant colors.", + "Kimonos are long flowing robes with wide sleeves and intricate patterns, unlike shorter or simpler garments like shirts or dresses." + ], + "knee pad": [ + "Knee pads are curved padded protectors that strap around the knee, unlike flat or rigid objects like plates or boards.", + "A knee pad is a cushioned protective gear worn around the knee, often made of foam or plastic with straps for securing.", + "Knee pads are typically curved padded gear strapped around knees often seen in sports or construction with protective hard shells or soft cushioning.", + "Knee pads have a curved rigid shell with soft padding designed to fit snugly around the knee joint." + ], + "knot": [ + "A knot appears as a tightly looped and twisted section of rope or string often forming a secure or decorative fastening.", + "Knots are identified by their twisted or looped rope or string shapes often forming tight, irregular bundles or interwoven patterns.", + "Knots are twisted or tied sections of rope or string, unlike straight or loose strands, forming loops or tight bundles.", + "Knots have intertwined loops with visible overlaps and tight bends distinguishing them from straight or loosely tangled objects." + ], + "lab coat": [ + "A lab coat is a long white coat with buttons down the front, typically worn by scientists or medical professionals.", + "A lab coat is a long white coat with buttons, pockets, and a notched collar, typically worn by scientists or doctors.", + "A lab coat is a long white coat with buttons, typically worn by professionals, unlike other jackets or coats in style and purpose.", + "A lab coat is a long white coat with buttons, pockets, and a collar, typically worn by scientists or medical professionals." + ], + "ladle": [ + "A ladle is a large deep spoon with a long handle used for serving soups or stews.", + "A ladle has a long handle and deep round bowl for scooping liquids unlike spoons or cups which are smaller or differently shaped.", + "A ladle has a deep round bowl and a long handle designed for scooping and serving liquids.", + "A ladle has a deep round bowl with a long handle used for scooping and serving liquids like soup or sauce." + ], + "lampshade": [ + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is a conical or cylindrical cover that diffuses light from a bulb, often made of fabric, paper, or glass.", + "Lampshades are typically conical or cylindrical fabric covers that diffuse light, unlike solid objects like vases or bowls." + ], + "laptop computer": [ + "A laptop computer is a flat rectangular device with a screen and keyboard, often thin and portable, sometimes with a hinged lid.", + "A laptop computer is a flat rectangular device with a screen on one side and a keyboard on the other.", + "Laptop computers are flat, rectangular devices with a hinged screen and keyboard, distinguishing them from bulkier or differently shaped electronics.", + "A laptop computer has a hinged screen attached to a keyboard in a single portable flat device." + ], + "lawn mower": [ + "A lawn mower typically has a metal body with rotating blades underneath and wheels for pushing or riding across grass.", + "A lawn mower has a distinct rotating blade, wheels, and a handle, often with a large engine or motor on a rectangular base.", + "A lawn mower typically has a metal or plastic body with rotating blades underneath and often has wheels or handles for pushing.", + "Lawn mowers typically have a distinct cutting deck, wheels, and a handle, unlike similar objects which may lack these features." + ], + "lens cap": [ + "A lens cap is a small flat circular or rectangular cover specifically designed to fit snugly over camera lenses.", + "A lens cap is a small circular or rectangular cover that protects camera lenses from dust and scratches.", + "A lens cap is a small circular or rectangular cover that protects camera lenses by fitting snugly over them.", + "A lens cap is a small round or square flat cover typically black with a clip or groove to attach to cameras." + ], + "letter opener": [ + "A letter opener is a slender flat tool with a pointed or rounded blade often resembling a small knife or decorative paper knife.", + "A letter opener is a slim flat tool with a pointed or blunt end often resembling a small knife or decorative blade.", + "A letter opener is a slim flat blade with a pointed or rounded tip often resembling a small knife or decorative paper knife.", + "A letter opener is typically long thin and flat with a sharp edge unlike bulkier or rounded objects like knives or scissors." + ], + "library": [ + "Libraries are recognized by rows of bookshelves filled with books, study tables, reading lamps, and often a quiet, organized atmosphere.", + "A library typically features shelves filled with books, reading tables, and a quiet, organized space with people studying or browsing.", + "A library can be identified by rows of bookshelves filled with books, often with reading tables and a quiet study atmosphere.", + "Libraries are large buildings with many windows and often columns, while other objects vary widely in size shape and design." + ], + "lifeboat": [ + "Lifeboats are typically bright orange or red, have a rigid or inflatable design, and often include safety rails or oars.", + "Lifeboats are bright orange or red, have a pointed bow, and often display bold letters or numbers for high visibility.", + "A lifeboat is an orange or white floating vessel with a pointed bow, often inflatable or rigid, used for emergency rescues at sea.", + "Lifeboats are typically bright orange or red, boat-shaped, often with a canopy, and marked with rescue labels or numbers." + ], + "lighter": [ + "A lighter is a small handheld device with a metal body and a trigger that produces a flame for lighting fires.", + "A lighter has a small elongated body with a trigger mechanism and a flame outlet for ignition.", + "Look for small handheld objects with metallic bodies and a spark wheel or button on top.", + "Lighters are small handheld devices with a trigger or wheel that produce a flame and often have a metallic or plastic body." + ], + "limousine": [ + "A limousine is a long, sleek, luxury car with a stretched body, often black, shiny, and with tinted windows.", + "A limousine is a long, sleek, luxury car with stretched body, tinted windows, and often a chauffeur-driven black or white design.", + "A limousine is recognized by its elongated body, luxury styling, dark tinted windows, and often a chauffeur-driven appearance.", + "Limousines are longer and more stretched than regular cars with a sleek elegant design and often have a chauffeur partition." + ], + "ocean liner": [ + "Ocean liners are large elongated ships with multiple decks designed for long-distance passenger travel across open seas.", + "An ocean liner is a massive passenger ship with a long sleek hull multiple decks and large smokestacks for long sea voyages.", + "Ocean liners are large elongated ships with multiple decks tall smokestacks and often have a sleek streamlined design for long voyages.", + "Ocean liners are uniquely identified by their massive elongated hulls with multiple passenger decks and prominent smokestacks." + ], + "lipstick": [ + "Lipstick is a small cylindrical cosmetic item with a pointed tip, often in vibrant colors and shiny or matte finishes.", + "Lipstick is a small cylindrical object with a smooth shiny surface and a pointed or rounded tip in vibrant colors.", + "Lipstick has a small cylindrical shape with a smooth shiny surface and often comes in vibrant solid colors.", + "Lipstick is a small cylindrical cosmetic item with a smooth shiny surface and vibrant colors unlike most everyday objects." + ], + "slip-on shoe": [ + "Slip-on shoes are flat, collarless footwear with elastic sides or a loose fit, lacking laces or buckles for easy wearing.", + "A slip-on shoe is a casual footwear without laces, often with elastic sides and a low profile for easy wearing.", + "Slip-on shoes lack laces or fasteners and have an open top for easy sliding of the foot.", + "Slip-on shoes lack laces and have elastic or stretchy openings for easy wearing without fasteners." + ], + "lotion": [ + "Lotion usually comes in bottles or tubes with smooth textures and often has a creamy or slightly translucent appearance.", + "Lotion typically appears as a creamy or liquid substance in a bottle or pump container with a smooth glossy texture.", + "Lotion typically comes in bottles or tubes with smooth creamy textures unlike solid or powdery items like soap or makeup.", + "Lotion typically appears as a small bottle or tube with a smooth texture and often has a creamy or liquid consistency." + ], + "music speaker": [ + "Music speakers are typically box-shaped with grilles or mesh fronts and often have buttons or dials for volume control.", + "Music speakers are typically boxy with grilles or cones, often black or metallic, and may have buttons or lights on the front.", + "Music speakers are recognized by their grille covers, control buttons, and often a cylindrical or rectangular shape with visible drivers inside.", + "Music speakers typically have a boxy shape with grilles or mesh fronts and visible drivers unlike most other objects." + ], + "loupe magnifying glass": [ + "A loupe magnifying glass is a small handheld device with a lens for close-up viewing of fine details.", + "A loupe magnifying glass has a single lens with a handle designed for close-up viewing of small objects.", + "A loupe magnifying glass is smaller, handheld, and often has a single lens, while others are larger or have handles or stands.", + "A loupe magnifying glass is small, handheld, with a single lens for close-up viewing, often used by jewelers or watchmakers." + ], + "sawmill": [ + "A sawmill is a large industrial facility with log piles, conveyor belts, and cutting machinery, unlike smaller tools or natural wood objects.", + "A sawmill is a large industrial facility with logs, saws, conveyor belts, and stacks of lumber, often in a forested area.", + "A sawmill is a large industrial building with logs, sawdust piles, cutting equipment, and stacks of lumber outside.", + "A sawmill has large log piles, cutting machinery, conveyor belts, and stacks of processed lumber in an industrial outdoor setting." + ], + "magnetic compass": [ + "A magnetic compass is a small round device with a needle that points north, often inside a flat case with marked directions.", + "A magnetic compass has a freely rotating needle that always points to the Earth's magnetic north.", + "A magnetic compass has a flat circular dial with a needle that points north, unlike most objects which lack directional indicators.", + "A magnetic compass has a circular dial with a rotating needle that always points north, set in a flat, often handheld case." + ], + "messenger bag": [ + "Messenger bags have a single long strap and a flat rectangular shape designed to hang diagonally across the body.", + "Messenger bags have a single shoulder strap and a flat rectangular shape unlike backpacks or briefcases which have two straps or rigid structures.", + "A messenger bag is a rectangular or trapezoidal bag with a long strap worn diagonally across the body.", + "A messenger bag is a rectangular or trapezoidal shoulder bag with a flap closure and a long strap worn across the body." + ], + "mailbox": [ + "A mailbox is typically a rectangular metal or plastic box with a hinged door or slot for mail, often mounted on a post.", + "A mailbox has a distinctive slot or door for inserting mail, often mounted on a post or attached to a building.", + "A mailbox is a rectangular or cylindrical container with a slot for mail, often mounted on a post near a house.", + "A mailbox typically has a rectangular or cylindrical shape with a slot for letters and often a flag or door for access." + ], + "tights": [ + "Tights are sheer stretchy leg coverings unlike pants or socks which are thicker shorter or less form fitting.", + "Tights are stretchy leg coverings with a smooth texture and tight fit often worn under skirts or as athletic wear.", + "Tights are stretchy leg coverings that are thin, skin-tight, and often sheer, resembling stockings but without feet.", + "Tights are thin stretchy leg coverings that resemble sheer pants often in skin tones or colors reaching from waist to toes." + ], + "one-piece bathing suit": [ + "One-piece bathing suits are tight-fitting, cover the torso, and often have simple designs compared to looser, more varied clothing or objects.", + "A one-piece bathing suit is a tight-fitting garment covering the torso and legs designed for swimming or sunbathing.", + "A one-piece bathing suit is a single tight-fitting garment covering the torso designed for swimming or sunbathing.", + "One-piece bathing suits are form-fitting, cover the torso, and often have unique patterns or solid colors for swimwear." + ], + "manhole cover": [ + "A manhole cover is typically a round, flat, metal disc with a textured or patterned surface, often found on streets or sidewalks.", + "A manhole cover is a heavy round metal lid with patterns or holes, flush with the ground, often found on streets.", + "Manhole covers are typically round metal discs with textured patterns, while similar objects vary in shape material and surface design.", + "Manhole covers are round metal discs with textured patterns and often have city names or logos embossed on them." + ], + "maraca": [ + "Maracas are handheld musical instruments with a round hollow body filled with beads or seeds and a long handle for shaking.", + "A maraca is a handheld musical instrument with a round hollow body filled with beads or seeds that rattle when shaken.", + "Maracas are recognized by their oval hollow bodies with handles and loose beads inside that create sound when shaken.", + "Maracas are handheld shakers with round hollow bodies filled with beads, unlike solid or differently shaped percussion instruments." + ], + "marimba": [ + "A marimba is a large wooden percussion instrument with tuned bars and resonators, resembling a xylophone but deeper in tone.", + "The marimba has wooden bars arranged like a keyboard with resonators underneath, unlike drums or xylophones which lack such tubes.", + "A marimba has long wooden bars arranged like a keyboard with resonators underneath, played with mallets, distinguishing it from other instruments.", + "The marimba has wooden bars arranged in a keyboard layout with resonators underneath each bar." + ], + "mask": [ + "A mask covers the face partially or fully hiding facial features while allowing visibility of the eyes or mouth.", + "Masks cover the face partially or fully while other objects do not typically obscure facial features in the same way.", + "Masks are typically face-sized coverings with straps or loops often showing eye holes and a textured or colored surface.", + "A mask is a facial covering typically made of fabric or plastic, often with straps to secure it over the nose and mouth." + ], + "matchstick": [ + "A matchstick is a small thin wooden or cardboard stick with a coated tip for striking to create fire.", + "A matchstick is a thin wooden stick with a colored tip and often a slightly rough or textured surface.", + "A matchstick has a small wooden stick with a colored tip coated in flammable material for striking.", + "Matchsticks are thin wooden sticks with a colored tip and uniform length, often bundled together in a small box." + ], + "maypole": [ + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with ribbons and flowers, unlike other poles which are usually plain or functional.", + "A maypole is recognized by its tall wooden pole decorated with colorful ribbons, flowers, and often topped with a festive crown." + ], + "maze": [ + "A maze is a complex network of paths or walls designed to confuse and challenge navigation through its intricate patterns.", + "Mazes are recognized by their intricate, interconnected pathways forming complex patterns with no clear straight lines or simple shapes.", + "Mazes are flat complex patterns with interconnected paths while other objects have varied three-dimensional shapes and textures.", + "Mazes are intricate networks of winding paths or walls often forming symmetrical or geometric patterns with clear entry and exit points." + ], + "measuring cup": [ + "A measuring cup typically has a handle, spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup is a kitchen tool with a handle, spout, and marked lines to indicate volume for liquids or dry ingredients.", + "Measuring cups have a handle, pour spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup has clear markings for measurements and a spout, unlike regular cups which are plain and lack these features." + ], + "medicine cabinet": [ + "A medicine cabinet is typically a small mirrored wall-mounted box with a door often found in bathrooms for storing medical items.", + "A medicine cabinet is a small mirrored storage box typically mounted on a wall in bathrooms for holding medicines and toiletries.", + "A medicine cabinet is a small wall-mounted storage unit with a mirrored door and shelves for holding medical supplies and toiletries.", + "A medicine cabinet typically has a mirrored door and shelves designed to store small medical or personal care items." + ], + "megalith": [ + "A megalith is a large ancient stone structure often standing upright or arranged in circles like Stonehenge.", + "Megaliths are large ancient stone structures, often standing upright or stacked, unlike smaller or naturally formed rocks and modern constructions.", + "Megaliths are large ancient stone structures often arranged in patterns or standing alone with rough weathered surfaces and massive scale.", + "Megaliths are large ancient stone structures often standing upright or arranged in circles with rough uneven surfaces and simple shapes." + ], + "microphone": [ + "A microphone is typically a slender device with a round or oval head on a stand or handheld body.", + "Microphones are typically slender with a grille or mesh head and often have a stand or cord unlike most other objects.", + "A microphone has a round mesh grille covering its top end to capture sound waves distinctly.", + "A microphone typically has a slender body with a rounded or mesh-covered top for sound capture and often a stand or base." + ], + "microwave oven": [ + "A microwave oven is a boxy appliance with a glass door, control panel, and often a turntable inside for even heating.", + "A microwave oven is a boxy kitchen appliance with a glass door, control panel, and often a turntable inside for heating food.", + "Microwave ovens have a square door with a window and control panel, unlike other kitchen appliances which vary in shape and features.", + "A microwave oven has a square door with a window, control panel, and handle, often mounted in a kitchen cabinet or countertop." + ], + "military uniform": [ + "Military uniforms have structured designs with badges and camouflage patterns distinguishing them from casual or formal civilian clothing.", + "Military uniforms are structured garments with distinct colors, insignia, and designs, often featuring camouflage, badges, and tailored fits for soldiers.", + "Military uniforms can be identified by their structured design, camouflage patterns, badges, and often include matching pants and jackets.", + "Military uniforms have distinct camouflage patterns, structured designs, badges, and often include headgear like berets or caps for easy recognition." + ], + "milk can": [ + "Milk cans are typically cylindrical with a handle, metallic finish, and a spout or lid for pouring or sealing.", + "A milk can typically has a cylindrical metal body with a handle and tight lid, unlike other containers which may vary in shape and material.", + "A milk can is a cylindrical metal container with a handle and a lid, often painted white or silver.", + "A milk can typically has a distinctive rounded body with a narrow neck and a hinged lid for pouring." + ], + "minibus": [ + "A minibus is a small boxy vehicle with multiple windows, seating rows, and sliding or hinged doors for passenger transport.", + "A minibus has a long rectangular body with multiple side windows for passenger seating and is smaller than a full-size bus.", + "A minibus is recognized by its elongated body, multiple side windows, and passenger seating capacity larger than a car but smaller than a full bus.", + "A minibus is a small passenger vehicle with a boxy shape, multiple windows, and seating for around ten to twenty people." + ], + "miniskirt": [ + "A miniskirt is a very short skirt ending well above the knees often made of lightweight fabric with a flared or straight cut.", + "A miniskirt is a short skirt ending well above the knees unlike longer skirts or dresses which extend below the knees.", + "A miniskirt is a short skirt typically ending well above the knees, often made of fabric and worn as fashionable clothing.", + "A miniskirt is recognized by its short length above the knees tight fit and often flared or pleated design on female clothing." + ], + "minivan": [ + "Minivans are boxy vehicles with sliding rear doors, large windows, and a tall roof for extra passenger and cargo space.", + "A minivan has a tall boxy shape with sliding rear doors and a spacious interior for passengers.", + "Minivans are boxy vehicles with sliding rear doors, high roofs, and spacious interiors designed for family transportation.", + "A minivan is a boxy vehicle with sliding doors, large windows, and a spacious interior designed for families." + ], + "missile": [ + "A missile is a long slender cylindrical object with fins and a pointed nose often seen flying or launching vertically.", + "Missiles are long, cylindrical, and often have fins or wings, unlike most objects which are more varied in shape and size.", + "A missile has a pointed nose cone and fins at the rear for aerodynamic stability.", + "Missiles are long slender tubes with fins or wings and pointed tips often seen flying or launching with a fiery exhaust trail." + ], + "mitten": [ + "Mittens are hand coverings with a single compartment for fingers and a separate one for the thumb, often made of thick warm material.", + "Mittens are small hand coverings with a single space for fingers, often made of wool or fabric, resembling thick stubby gloves.", + "Mittens have a single compartment for all fingers while gloves have individual slots for each finger.", + "Mittens are hand coverings with a single space for fingers and a separate thumb section, usually soft and often knitted or padded." + ], + "mixing bowl": [ + "A mixing bowl is typically round deep and wide with a smooth interior and often has a slight rim or pouring spout.", + "A mixing bowl has a wide shallow shape with a rounded bottom and high sides for easy stirring and mixing.", + "Mixing bowls are wide deep round containers with high curved sides and often a flat bottom for blending ingredients.", + "A mixing bowl is a deep round dish with a wide opening and often has a flat bottom for stability during food preparation." + ], + "mobile home": [ + "A mobile home is a rectangular, trailer-like structure with windows, a door, and often a small porch or steps.", + "A mobile home is a rectangular, elongated structure with windows, a door, and often a pitched roof, typically on wheels or a foundation.", + "Mobile homes are long rectangular structures with wheels, metal siding, and often have a trailer hitch at the front.", + "Mobile homes are long rectangular structures with wheels and a trailer hitch, resembling a small house on a chassis." + ], + "ford model t": [ + "The Ford Model T has a distinct boxy black body with large wheels and an open-top or enclosed cabin unlike most vehicles.", + "The Ford Model T is a classic black car with a boxy shape, large wheels, and a tall upright windshield.", + "The Ford Model T has a distinctive high square black body with large spoked wheels and a curved front hood.", + "The Ford Model T has a distinct boxy black body, large round headlights, and a tall narrow radiator grille." + ], + "modem": [ + "A modem is a small rectangular box with lights on the front and ports on the back for cables.", + "A modem is a small rectangular box with indicator lights and ports, unlike most household objects which lack these technical features.", + "A modem typically has multiple indicator lights and ports for cables on a small rectangular box.", + "A modem typically has a rectangular box shape with multiple ports, indicator lights, and antennas for wireless connectivity." + ], + "monastery": [ + "Monasteries are recognized by their large religious architecture with arched windows tall spires and often secluded peaceful surroundings.", + "A monastery is uniquely identified by its combination of religious architecture, secluded setting, and often a central courtyard or cloister.", + "Monasteries are large religious buildings with distinctive architectural features like domes, spires, and courtyards, unlike smaller or secular structures.", + "A monastery typically appears as a large stone or brick building with arches, towers, and religious symbols surrounded by peaceful gardens." + ], + "monitor": [ + "A monitor has a flat rectangular screen displaying images or text, distinguishing it from other objects.", + "A monitor has a flat rectangular screen with a bezel, often displaying images or text, and is typically placed on a desk or mounted.", + "Monitors are flat rectangular screens with thin bezels while other objects vary widely in shape size and material.", + "Monitors are flat rectangular screens with thin bezels often mounted on stands or attached to walls displaying images or videos." + ], + "moped": [ + "Mopeds have a small motorcycle-like frame with step-through design, small wheels, and often a visible engine or motor.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a compact engine between the wheels.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a small engine often under the seat.", + "Mopeds are small motorized bikes with step-through frames, small wheels, and often have a compact engine and minimal bodywork." + ], + "mortar and pestle": [ + "A mortar is a bowl and a pestle is a heavy club-shaped tool used together for grinding or crushing substances.", + "A mortar is a bowl and a pestle is a club-shaped tool used together for grinding or crushing substances.", + "A mortar is a sturdy bowl and a pestle is a heavy club-shaped tool used together to grind or crush substances.", + "A mortar and pestle is a bowl with a heavy club-like tool, unlike other kitchen items which are usually flat or have handles." + ], + "graduation cap": [ + "A graduation cap has a flat square top with a tassel hanging from the center and is typically worn with a gown.", + "A graduation cap has a flat square top and a tassel, unlike most hats which are rounded or lack a tassel.", + "A graduation cap is a flat square board with a tassel on top, usually black and worn on the head.", + "A graduation cap is a flat square board with a tassel attached to a center button on a skullcap." + ], + "mosque": [ + "Mosques can be identified by their domes minarets and large prayer halls often with intricate designs and arched entrances.", + "A mosque typically has domes minarets and large open prayer halls unlike other buildings which lack these distinct Islamic architectural features.", + "Mosques are recognized by their domes minarets and large prayer halls often with intricate geometric patterns and arched doorways.", + "A mosque typically has domes minarets and large open prayer halls often decorated with intricate geometric patterns and calligraphy." + ], + "mosquito net": [ + "A mosquito net is a fine, lightweight, often white or translucent mesh fabric hung loosely around beds or windows to block insects.", + "Mosquito nets are lightweight, finely woven, and often white or translucent, designed to drape over beds or windows for insect protection.", + "Mosquito nets are lightweight finely woven mesh fabrics typically hung above beds to protect against insects with a delicate see-through texture.", + "A mosquito net is a fine mesh fabric draped over beds or windows to keep insects out while allowing air flow." + ], + "vespa": [ + "Vespas have a distinctive sleek curved body, small wheels, and a prominent front shield with a single headlight.", + "A vespa is a small sleek motor scooter with a rounded body step through frame and often bright colors.", + "Vespas are small scooters with a sleek curved body, rounded front shield, and often bright colors or chrome details.", + "The unique visual cue of a vespa is its distinctive curved body shape with a narrow waist and bold striped coloration." + ], + "mountain bike": [ + "Mountain bikes have wide knobby tires a sturdy frame flat handlebars and a suspension system for rough terrain.", + "Mountain bikes have a sturdy frame, wide knobby tires, and suspension systems for rough terrain unlike smoother road bikes or motorcycles.", + "Mountain bikes have rugged frames, wide knobby tires, flat handlebars, and suspension systems for off-road terrain.", + "Mountain bikes have wide knobby tires and a sturdy frame designed for rough off-road terrain." + ], + "tent": [ + "A tent is a portable shelter made of fabric or similar material stretched over a frame, often used for camping outdoors.", + "A tent is a portable shelter made of fabric or similar material stretched over poles and secured to the ground with ropes.", + "Tents are typically made of fabric with poles and have a distinctive triangular or dome shape for shelter outdoors.", + "Tents have a triangular or dome shape with fabric stretched over a frame and often have zippered openings for entry." + ], + "computer mouse": [ + "A computer mouse is a small handheld device with buttons and a scroll wheel, often shaped like an oval with a cord or wireless.", + "A computer mouse has a distinctive elongated body with a scroll wheel between two buttons and a cord or wireless sensor underneath.", + "A computer mouse is small, handheld, typically has buttons and a scroll wheel, and connects via wire or wireless dongle.", + "A computer mouse has a small oblong shape with buttons, a scroll wheel, and a cord or wireless receiver for easy identification." + ], + "mousetrap": [ + "A mousetrap is a small wooden or plastic device with a spring-loaded bar designed to catch and kill mice.", + "A mousetrap is a small rectangular device with a spring-loaded metal bar and a bait holder, often made of wood or plastic.", + "A mousetrap typically has a spring-loaded metal bar and a small wooden or plastic base, unlike most household objects.", + "A mousetrap typically has a spring-loaded metal bar, a bait trigger, and a wooden or plastic base to catch mice." + ], + "moving van": [ + "A moving van is a large rectangular truck with a boxy shape, often white or plain-colored, used for transporting furniture and household goods.", + "A moving van typically has large bold lettering and branding on its sides for identification and advertising purposes.", + "Moving vans are large boxy vehicles with plain colors and often have company logos or advertisements on their sides.", + "A moving van is a large rectangular truck often painted white or with company logos and has a tall enclosed cargo area." + ], + "muzzle": [ + "A muzzle is a strap or cage covering an animal's snout while similar objects like masks or guards serve different purposes or cover other areas.", + "A muzzle is a protruding mouth and nose area of an animal, often covered in fur or leather, with visible nostrils and straps.", + "A muzzle is a protruding part of an animal's face covering the mouth and nose often made of leather or metal straps.", + "A muzzle is a strap or cage fitted over an animal's snout to prevent biting or eating, resembling a snug mesh or leather cover." + ], + "metal nail": [ + "A metal nail is a slender, straight, pointed object with a smooth or ridged shaft and a flat or rounded head.", + "A metal nail is a small slender shiny object with a smooth cylindrical shaft and a flat or slightly rounded head.", + "A metal nail has a slender pointed tip and a smooth cylindrical shaft with a flat head.", + "Metal nails are slender, straight, and shiny with a pointed tip and smooth or ridged surface, unlike bulkier or irregularly shaped objects." + ], + "neck brace": [ + "A neck brace is a rigid medical collar that supports the head and limits neck movement for injury recovery or spinal stability.", + "A neck brace is a rigid or padded support device worn around the neck to immobilize and protect it from movement.", + "A neck brace is a rigid or padded support worn around the neck, unlike other objects which are not designed for neck support.", + "A rigid orthopedic device worn around the neck to support and immobilize the head and spine." + ], + "necklace": [ + "A necklace is a slender decorative chain or string of beads, gems, or pearls worn around the neck.", + "A necklace is a decorative chain or string of beads gems or metal worn around the neck often shiny and delicate.", + "A necklace is a decorative chain or string of beads, gems, or metal worn around the neck for adornment.", + "A necklace is a flexible decorative chain worn around the neck, unlike rigid or non-wearable items like pendants or collars." + ], + "baby pacifier": [ + "A baby pacifier is a small nipple-shaped object with a shield and handle, usually made of soft silicone or rubber.", + "A baby pacifier is a small nipple-shaped object with a shield and handle, often made of soft silicone or rubber.", + "A baby pacifier has a nipple-shaped teat, a shield to prevent swallowing, and often a ring or handle for easy gripping.", + "A baby pacifier has a small nipple-shaped mouthpiece attached to a flat shield often with a handle or ring." + ], + "notebook computer": [ + "A notebook computer is a thin flat rectangular device with a screen and keyboard, unlike bulkier or differently shaped electronics and objects.", + "A notebook computer is a thin, flat, rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is a thin rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is recognized by its thin rectangular shape, hinged screen, keyboard, and compact portable design." + ], + "obelisk": [ + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like point at the top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, often standing alone or as a monument.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, unlike most other objects." + ], + "oboe": [ + "The oboe is a slender wooden wind instrument with metal keys, distinguished by its conical bore and double reed mouthpiece.", + "An oboe is a slender wooden wind instrument with a conical bore, metal keys, and a flared bell at the bottom.", + "An oboe is a slender wooden wind instrument with a long black body, silver keys, and a double reed at the top.", + "The oboe has a long black wooden body with silver keys and a distinct double reed at the top." + ], + "ocarina": [ + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often shaped like an egg or sweet potato.", + "An ocarina is a small handheld wind instrument with an oval or round body and finger holes unlike larger or differently shaped instruments.", + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often made of clay or ceramic.", + "The ocarina is recognized by its small egg-shaped body with finger holes and a mouthpiece for blowing." + ], + "odometer": [ + "An odometer is a small rectangular device with a digital or mechanical display showing mileage numbers inside a vehicle dashboard.", + "An odometer is a small digital or mechanical display in a vehicle dashboard showing mileage unlike larger or non-numeric objects.", + "An odometer has a numeric display showing mileage, often with rotating digits or a digital screen, set within a vehicle dashboard.", + "Odometers are small rectangular displays with numbers showing mileage often found on a vehicle's dashboard near the steering wheel." + ], + "oil filter": [ + "An oil filter is a cylindrical metal can with a ridged surface and a threaded hole on one end.", + "An oil filter is typically a cylindrical metal can with a textured surface and a threaded hole on one end.", + "Oil filters are cylindrical with threaded ends, often metal, and have a ridged or textured surface for grip and a central hole.", + "An oil filter is typically cylindrical, metal, and smaller than most car parts, with a ridged or smooth surface and threaded ends." + ], + "pipe organ": [ + "A pipe organ has tall vertical pipes arranged in rows, unlike most objects which are compact or irregularly shaped.", + "A pipe organ is a large musical instrument with rows of vertical pipes, often found in churches and concert halls.", + "A pipe organ is identified by its large size, multiple vertical pipes of varying heights, and a keyboard console at the base.", + "A pipe organ has tall vertical pipes arranged in rows, often with intricate designs and a large keyboard console at the base." + ], + "oscilloscope": [ + "An oscilloscope is a rectangular electronic device with a screen, knobs, and buttons, resembling a small boxy monitor with control panels.", + "An oscilloscope has a rectangular screen with grid lines, control knobs, and input ports on a flat or slightly angled panel.", + "Oscilloscopes have a rectangular screen with grid lines displaying waveform graphs and multiple knobs or buttons for control settings.", + "An oscilloscope has a rectangular screen with grid lines and multiple knobs and buttons for controlling electronic signal displays." + ], + "overskirt": [ + "An overskirt is a decorative outer skirt worn over another skirt, often layered and flowing for added volume or style.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or sheer, extending slightly shorter or longer than the underlayer.", + "An overskirt is a decorative outer skirt layered over another skirt, often shorter and more ornate than regular skirts.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or flared, adding volume and contrasting fabric." + ], + "bullock cart": [ + "A bullock cart is a wooden cart with two large wheels pulled by oxen, typically used for transporting goods or people.", + "A bullock cart has a wooden or metal frame with two large wheels pulled by oxen, often carrying loads or people.", + "A bullock cart is a wooden cart with two large wheels pulled by oxen, often with a flat or curved platform for carrying loads.", + "A bullock cart has a wooden frame with large wheels pulled by oxen, unlike vehicles with engines or smaller animal-drawn carts." + ], + "oxygen mask": [ + "An oxygen mask is a clear or translucent plastic cup covering the nose and mouth with elastic straps around the head.", + "An oxygen mask is a clear plastic cup covering the nose and mouth with elastic straps to secure it around the head.", + "Oxygen masks have a clear plastic cup shape with elastic straps unlike most objects which lack these specific features.", + "An oxygen mask has a clear plastic cup shape with elastic straps and a tube for delivering oxygen to the face." + ], + "product packet / packaging": [ + "Product packaging typically has uniform shapes, logos, labels, and bright colors designed to attract attention and protect contents.", + "Product packaging typically appears as boxes, bags, or containers with labels, logos, and designs to hold and protect items for sale.", + "Look for rectangular shapes with labels logos or barcodes often made of cardboard plastic or shiny materials.", + "Product packaging stands out with logos barcodes brand names colorful designs and uniform shapes for easy identification on shelves." + ], + "paddle": [ + "A paddle is a long flat tool with a handle used for rowing or stirring, typically narrow and often made of wood or plastic.", + "A paddle is a long flat tool with a broad end, often tapered, used for stirring or moving through water.", + "Paddles are long, flat, and often have a handle at one end, unlike other objects which vary more in shape and size.", + "A paddle is long flat and often tapered with a handle used for propelling or steering boats through water." + ], + "paddle wheel": [ + "A paddle wheel has large flat blades arranged evenly around a central hub, often seen on boats or in water.", + "The paddle wheel has large flat blades arranged radially around a central hub for pushing water.", + "A paddle wheel is a large circular frame with flat blades around its rim used to propel boats through water.", + "A paddle wheel has large flat blades arranged radially around a central hub, often seen on boats or watercraft for propulsion." + ], + "padlock": [ + "A padlock is a small metal device with a U-shaped bar that snaps into a solid body to secure things.", + "Padlocks are small metal devices with a U-shaped bar that swings open when unlocked and snaps shut when locked.", + "Padlocks are small metal devices with a shackle that opens with a key or combination unlike most objects which lack these features.", + "A padlock has a small metal body with a U-shaped shackle that opens when unlocked and secures when closed." + ], + "paintbrush": [ + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end often appearing stiff or slightly fanned out.", + "A paintbrush has bristles on one end and a long handle, unlike most objects which lack bristles and vary in shape." + ], + "pajamas": [ + "Pajamas are loose, soft clothing typically with long sleeves and pants, often in simple patterns or solid colors.", + "Pajamas are loose, comfortable clothing typically made of soft fabric, often featuring pants and a matching top, designed for sleeping.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns or stripes, typically worn for sleep or lounging.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns like stripes or prints, typically worn for sleep." + ], + "palace": [ + "Palaces are large grand buildings with ornate designs, while other objects vary widely in size shape and simplicity.", + "Palaces are recognized by grand architectural designs, large ornate facades, towering domes, intricate details, and expansive surrounding gardens or courtyards.", + "Palaces are large, grand buildings with ornate designs, tall columns, domes, and expansive facades often surrounded by gardens or walls.", + "Palaces are uniquely distinguished by their grand architectural designs featuring ornate details and expansive structures often surrounded by landscaped gardens." + ], + "pan flute": [ + "The pan flute has multiple vertical tubes of varying lengths bound together unlike most instruments which are solid or have strings.", + "A pan flute is a set of vertical tubes of varying lengths bound together side by side often made from bamboo or wood.", + "The pan flute has multiple vertical pipes of varying lengths bound together in a curved or straight row producing distinct sound.", + "The pan flute is a row of hollow tubes of varying lengths bound together horizontally, resembling a set of vertical pipes." + ], + "paper towel": [ + "A paper towel is a thin, rectangular sheet of absorbent paper, often white or patterned, usually found in rolls or folded stacks.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface designed for absorbing liquids.", + "Paper towels are thin, rectangular, and often perforated with a soft, slightly textured surface, usually white or patterned.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface for absorbing liquids." + ], + "parachute": [ + "A parachute is a large, lightweight canopy with strings, used to slow descent, typically made of fabric and shaped like an umbrella.", + "A parachute is a large, lightweight canopy with strings, often brightly colored, used to slow descent through the air.", + "A parachute is a large, lightweight fabric canopy with strings, used for slowing descent, unlike compact or rigid objects.", + "Parachutes have a large, round canopy with suspension lines and a harness, often seen open in midair during descent." + ], + "parallel bars": [ + "Parallel bars are long horizontal metal bars mounted on vertical supports, distinct from single bars or gym equipment like rings or beams.", + "Parallel bars are two horizontal rails of equal length spaced apart, typically used in gymnastics for exercises and routines.", + "Parallel bars have two long horizontal bars of equal length positioned parallel to each other at a fixed distance apart.", + "Parallel bars are long horizontal metal rails supported by vertical stands, used in gymnastics for exercises and routines." + ], + "park bench": [ + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces for resting.", + "A park bench is a long wooden or metal seat with a backrest, often found outdoors in public spaces.", + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces.", + "A park bench is a long outdoor seat with a backrest and armrests, typically made of wood or metal, placed in public spaces." + ], + "parking meter": [ + "Parking meters have a tall narrow body with a coin slot, display screen, and often a metal pole or post for mounting.", + "Parking meters are small metal boxes with a coin slot, display screen, and often a pole or post for mounting.", + "A parking meter is a small upright metal box with a coin slot, display screen, and timer, often mounted on a pole.", + "Parking meters are small metal boxes with a coin slot and display screen mounted on poles near streets for parking payment." + ], + "railroad car": [ + "A railroad car is a long rectangular vehicle with wheels designed to run on tracks typically used for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels designed to run on tracks often connected in a series for transporting goods or passengers.", + "Railroad cars have long rectangular bodies with multiple wheels aligned in pairs on tracks for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels, often connected in series, used for transporting goods or passengers on tracks." + ], + "patio": [ + "A patio is an outdoor paved area with furniture or plants often adjacent to a house and designed for relaxation or dining.", + "A patio is an outdoor space with paved flooring, often featuring furniture and surrounded by gardens or walls.", + "Patios are flat outdoor spaces with furniture or plants, often made of stone or wood, connected to a house or building.", + "Patios are flat outdoor surfaces made of stone or concrete, often with furniture, unlike grassy lawns or enclosed indoor spaces." + ], + "payphone": [ + "A payphone is a standalone booth or wall-mounted unit with a keypad, handset, and coin slot, unlike mobile phones or other communication devices.", + "A payphone is a tall metal box with a coin slot, keypad, and a handset attached by a coiled cord.", + "A payphone has a coin slot, handset on a cord, keypad, and is mounted on a stand or wall in public spaces.", + "A payphone has a distinctive handset attached to a metal box with a keypad and coin slot." + ], + "pedestal": [ + "A pedestal is a flat-topped stand or base that supports other objects, often decorative and taller than typical stands.", + "A pedestal is a raised base supporting an object, often decorative, with a simple sturdy shape contrasting the item it holds.", + "A pedestal is a sturdy base with a flat top, often plain or slightly decorated, supporting statues or other displayed objects.", + "A pedestal is a sturdy base or support that elevates and displays objects like statues vases or trophies often decorative and simple." + ], + "pencil case": [ + "A pencil case is a small rectangular pouch often made of fabric or plastic with a zipper to hold writing tools.", + "A pencil case is a small container usually rectangular or cylindrical with a zipper or snap closure to hold writing tools.", + "A pencil case is a small rectangular pouch with a zipper or snap closure designed to hold pens pencils and other stationery items.", + "A pencil case is typically a small rectangular pouch with a zipper or snap closure often made of fabric plastic or leather." + ], + "pencil sharpener": [ + "A pencil sharpener is a small handheld or mounted device with a blade or mechanism to sharpen pencils to a fine point.", + "A pencil sharpener is typically small with a blade hole for pencils and a container for shavings often made of metal or plastic.", + "A pencil sharpener has a small blade inside a cylindrical or rectangular body with a hole to insert and rotate the pencil.", + "A pencil sharpener has a small, cylindrical hole designed specifically to hold and sharpen pencil tips." + ], + "perfume": [ + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside, unlike most everyday objects.", + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside showing through clear glass.", + "Perfume typically appears as small elegant glass bottles with decorative caps and often a spray nozzle.", + "Perfume bottles are small often decorative glass containers with spray nozzles or stoppers and colorful liquid inside." + ], + "Petri dish": [ + "A Petri dish is a shallow, clear, round glass or plastic dish with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic container with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic dish with a lid, unlike most objects which are solid and opaque.", + "A Petri dish is a shallow transparent cylindrical lidded container used for culturing cells or bacteria in labs." + ], + "photocopier": [ + "Photocopiers are rectangular machines with a flat glass surface, paper trays, and control panels often found in offices.", + "A photocopier is a large rectangular machine with a flat glass top for scanning and paper trays on the side.", + "A photocopier is a large boxy machine with a flat glass surface for scanning and paper trays, unlike smaller simpler office devices.", + "A photocopier is a large boxy machine with a flat glass top for scanning and paper trays on the side." + ], + "plectrum": [ + "A plectrum is a small flat tool, usually triangular, made of plastic or metal, used to pluck or strum stringed instruments.", + "A plectrum is small flat and triangular with a pointed tip used to pluck strings on musical instruments like guitars.", + "A plectrum is a small flat tool with a pointed tip, unlike similar objects which may be larger or differently shaped.", + "A plectrum is small flat and often triangular with smooth edges made of plastic metal or other materials for picking strings." + ], + "Pickelhaube": [ + "The Pickelhaube has a distinctive pointed metal spike on top, unlike other helmets which are smooth or rounded.", + "The Pickelhaube has a distinctive pointed metal spike on top of its helmet.", + "A Pickelhaube is a spiked helmet with a rounded metal top and a prominent front spike, typically made of leather or metal.", + "A Pickelhaube is a spiked helmet with a round metal base, a tall front spike, and often has a chin strap and decorative elements." + ], + "picket fence": [ + "A picket fence is a white wooden fence with evenly spaced vertical slats and a horizontal top and bottom rail.", + "A picket fence is a short wooden fence with evenly spaced vertical boards and a horizontal rail, often painted white.", + "A picket fence has evenly spaced vertical wooden slats with pointed tops attached to horizontal rails.", + "A picket fence has evenly spaced vertical wooden slats attached to horizontal rails, unlike solid walls or chain-link fences." + ], + "pickup truck": [ + "Pickup trucks have a cab with seats and an open cargo bed at the back for hauling items.", + "A pickup truck is a rugged vehicle with an open cargo bed, four wheels, and a cab for passengers.", + "Pickup trucks have a cab and an open cargo bed, unlike cars or SUVs which are fully enclosed or vans which have a boxy shape.", + "Pickup trucks have a cab with seats and an open flatbed at the back for hauling items." + ], + "pier": [ + "A pier is a long wooden or concrete structure extending over water, supported by pillars, used for walking, docking boats, or fishing.", + "A pier is a long wooden or metal structure extending into water supported by pillars with boats or people nearby.", + "A pier is a long narrow structure extending into water supported by pillars unlike docks or wharves which are usually solid and shore-connected.", + "Piers are long structures extending over water supported by pillars often with railings and used for docking boats or walking." + ], + "piggy bank": [ + "Piggy banks are typically shaped like pigs with a coin slot, while other objects vary widely in form and function.", + "Piggy banks are typically small, shaped like pigs with a coin slot on top, often made of ceramic or plastic.", + "A piggy bank is a small, often round container shaped like a pig with a slot for saving coins.", + "A piggy bank is typically a small hollow pig-shaped container with a slot on top for inserting coins." + ], + "pill bottle": [ + "Pill bottles are small cylindrical containers with labels and child-resistant caps often in white or orange plastic.", + "Pill bottles are small cylindrical containers with labels and childproof caps unlike similar objects which vary in shape size and lid type.", + "A pill bottle is a small cylindrical container with a child-resistant cap, often made of translucent plastic and labeled with medication information.", + "Pill bottles are typically small cylindrical containers with childproof caps and often have white labels and orange translucent plastic." + ], + "pillow": [ + "Pillows are soft rectangular objects with fabric covers often found on beds or couches for comfort and support.", + "Pillows are soft rectangular cushions often with fabric covers while other objects vary in shape texture and material like hard or angular surfaces.", + "A pillow is a soft rectangular cushion often with fabric covering used for head or body support during rest or sleep.", + "A pillow is a soft rectangular or square object with a smooth fabric cover often slightly puffed and used for head support." + ], + "ping-pong ball": [ + "Ping-pong balls are small, white, lightweight, and perfectly round with a smooth matte surface unlike most other balls.", + "A ping-pong ball is small, white or orange, smooth, lightweight, and perfectly round with a matte finish.", + "A ping-pong ball is small, lightweight, white or orange, smooth, matte, and spherical with a distinctive hollow sound when bounced.", + "A ping-pong ball is small, white or orange, lightweight, spherical, and has a smooth, matte surface with a slightly shiny finish." + ], + "pinwheel": [ + "Pinwheels are colorful spinning toys with radiating blades or petals attached to a central stick or rod.", + "A pinwheel is a colorful toy with spinning blades attached to a stick that twirls in the wind.", + "Pinwheels are recognized by their colorful spinning blades attached to a central axis on a stick, often with a wind-catching design.", + "Pinwheels have colorful spinning blades attached to a stick while similar objects lack these moving parts or bright designs." + ], + "pirate ship": [ + "Pirate ships have tall masts, sails, wooden hulls, and often feature flags or cannons unlike modern boats or other vessels.", + "A pirate ship is a large wooden sailing vessel with tall masts, sails, and often features a Jolly Roger flag.", + "Pirate ships have tall masts with multiple sails, wooden hulls, Jolly Roger flags, and often cannons visible on the sides.", + "A pirate ship is uniquely identified by its black flag with a white skull and crossbones." + ], + "drink pitcher": [ + "A drink pitcher typically has a handle, a spout, and a tall narrow body designed for pouring liquids easily.", + "A drink pitcher is a tall container with a handle and spout, usually made of glass or plastic for pouring liquids.", + "A drink pitcher typically has a handle, a spout, and a tall cylindrical shape for pouring liquids easily.", + "A drink pitcher typically has a prominent spout for pouring liquids and a handle for easy gripping." + ], + "block plane": [ + "A block plane is a small hand tool with a low-angle blade for smoothing wood, distinguished by its compact size and flat sole.", + "A block plane is smaller with a low-angle blade and simple design compared to larger more complex woodworking planes.", + "A block plane is a small hand tool with a flat metal body and a sharp blade for smoothing wood surfaces.", + "A block plane has a compact metal body with a low-angle blade set close to the front edge." + ], + "planetarium": [ + "A planetarium is a dome-shaped building or room with a projector displaying stars and celestial objects on the ceiling.", + "A planetarium is a domed building or room with a projector displaying stars and planets unlike regular buildings or natural objects.", + "A planetarium typically appears as a large dome-shaped building with a round or hemispherical roof and often has a futuristic or scientific design.", + "A planetarium is recognized by its domed ceiling displaying projected stars and celestial scenes in a dark, theater-like setting." + ], + "plastic bag": [ + "A plastic bag is a thin, lightweight, often crinkly and translucent or colored container made of flexible plastic material.", + "Plastic bags are thin, crinkly, often transparent or brightly colored, and have handles or folds for carrying items.", + "Plastic bags are thin, crinkly, and often transparent or semi-transparent, unlike most objects which are solid and rigid.", + "A plastic bag is thin, crinkly, often transparent or colored, and has a smooth, shiny surface with folds or wrinkles." + ], + "plate rack": [ + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright and separate unlike most other storage objects.", + "A plate rack is a shelf or stand with slots or hooks designed to hold plates upright for drying or storage.", + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright for drying or storage.", + "A plate rack is a flat open shelf or stand with slots or pegs to hold plates vertically for drying or storage." + ], + "farm plow": [ + "A farm plow is a large metal blade with handles or wheels used to turn over soil in fields for planting crops.", + "A farm plow has a large curved metal blade and handles, distinct from smaller or differently shaped farming tools and equipment.", + "A farm plow has a large curved metal blade designed to turn over soil for planting crops.", + "A farm plow has a large curved metal blade attached to a frame, often pulled by animals or tractors, used for tilling soil." + ], + "plunger": [ + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger typically has a rubber suction cup on a straight wooden or plastic handle used for clearing clogged drains.", + "A plunger has a rubber suction cup on a straight handle, unlike most tools which have varied shapes and materials." + ], + "Polaroid camera": [ + "A Polaroid camera is a rectangular instant film device with a lens viewfinder and a slot for ejecting printed photos.", + "A Polaroid camera is a rectangular box with a lens, viewfinder, and a slot for instant photos to eject from.", + "Polaroid cameras are square-shaped with a lens on top and a slot for instant photos, unlike most cameras or everyday objects.", + "Polaroid cameras have a square body with a lens on one side and a slot for instant photos to eject on the other." + ], + "pole": [ + "A pole is a long, slender, vertical or horizontal object with a uniform shape and minimal width compared to its length.", + "A pole is a long, slender, vertical or horizontal rod, often made of wood or metal, used for support or structure.", + "A pole is a long, slender, vertical structure often made of wood or metal, used for support or marking boundaries.", + "Poles are long, thin, and straight, often vertical, while other objects vary more in shape, size, and orientation." + ], + "police van": [ + "Police vans are large boxy vehicles with emergency lights, sirens, and often marked with police logos or colors.", + "Police vans are boxy with barred windows and often have official markings or lights distinguishing them from regular vehicles.", + "A police van is a large, boxy vehicle with emergency lights, often painted in bold colors like white or black with police markings.", + "Police vans are typically boxy with emergency lights, bold lettering, and a sturdy design often in black, white, or blue colors." + ], + "poncho": [ + "A poncho is a sleeveless garment with an opening for the head, made from a single piece of fabric or waterproof material.", + "A poncho is a loose outer garment with a simple opening for the head and no sleeves, often made from wool or waterproof fabric.", + "A poncho is a large, flat piece of fabric with a head hole, while similar items like cloaks or capes often have sleeves or fasteners.", + "A poncho is uniquely identified by its large flat fabric with a central head opening and no sleeves." + ], + "pool table": [ + "A pool table has a flat rectangular surface with pockets and felt covering, distinct from most furniture or sports equipment.", + "A pool table is a large rectangular surface covered with green felt and surrounded by cushioned edges with pockets in the corners.", + "A pool table is a large rectangular surface with a green felt covering, six pockets, and wooden or metal rails around the edges.", + "A pool table has a distinctive green felt surface with six pockets and marked rails for playing billiards." + ], + "soda bottle": [ + "Soda bottles are typically tall cylindrical containers with narrow necks and labels, often made of clear or colored plastic.", + "A soda bottle is a tall cylindrical container with a narrow neck, often made of plastic or glass, and usually has a label.", + "Soda bottles are typically tall cylindrical containers with colorful labels and a narrow neck often capped with a twist-off or pop-top lid.", + "Soda bottles are typically tall cylindrical containers with narrow necks often labeled with colorful branding and sometimes have ridges or curves." + ], + "plant pot": [ + "Plant pots are typically round or square containers with open tops, made of clay or plastic, often holding soil and plants.", + "A plant pot is typically a small container with an open top, often made of clay or plastic, holding soil and plants.", + "Plant pots are typically round or square containers with open tops and drainage holes, often made of clay or plastic.", + "A plant pot is a small container, usually round or square, made of clay, plastic, or ceramic, designed to hold plants." + ], + "potter's wheel": [ + "A potter's wheel is a flat spinning disk on a stand with a foot pedal or motor for shaping clay.", + "A potter's wheel is a flat spinning disk on a stand, unlike stationary tools or decorative items that don't rotate.", + "A potter's wheel is a flat rotating disk on a stand used for shaping clay with hands or tools.", + "A potter's wheel has a spinning flat disk where clay is shaped by hand while rotating." + ], + "power drill": [ + "A power drill has a rotating chuck at the front that holds interchangeable bits for drilling or driving screws.", + "A power drill has a cylindrical body, trigger handle, rotating chuck, and often a cord or battery pack for operation.", + "A power drill is a handheld tool with a trigger grip, cylindrical body, and rotating bit for drilling holes or driving screws.", + "Power drills have a distinct pistol grip with a rotating chuck and trigger, unlike other tools which lack these combined features." + ], + "prayer rug": [ + "Prayer rugs have intricate patterns, a central arch or niche design, and are often rectangular with rich colors and detailed borders.", + "A prayer rug is a small rectangular fabric with intricate designs often featuring geometric patterns or mosque motifs.", + "Prayer rugs are rectangular with intricate patterns often featuring a niche design pointing towards the direction of prayer.", + "A prayer rug has a distinct arched or mihrab design pointing towards Mecca for proper orientation during prayer." + ], + "printer": [ + "Printers are typically boxy with flat surfaces, buttons, and paper trays, unlike other objects which vary more in shape and function.", + "A printer is a rectangular box with buttons, a paper tray, and often a display screen for printing documents and images.", + "Printers are boxy with flat tops, often have paper trays, display panels, and multiple buttons or slots for paper and ink.", + "Printers are typically rectangular with a flat top, control panel, paper tray, and often have a sleek design with brand logos." + ], + "prison": [ + "Prisons are large secure buildings with fences and barred windows unlike ordinary structures which are open and less fortified.", + "Prisons have high walls with barbed wire, guard towers, barred windows, and uniform rows of cell blocks inside secure perimeters.", + "Prisons are identified by high walls with barbed wire, guard towers, barred windows, and large secure gates.", + "Prisons typically resemble large fortified buildings with high walls, barred windows, and heavy gates surrounded by fences or barbed wire." + ], + "projector": [ + "A projector is recognized by its lens light source and rectangular shape used to display images or videos on surfaces.", + "A projector is typically a rectangular box with a lens on one side and vents for cooling on the sides or back.", + "A projector is a rectangular device with a lens on one side and often has vents and input ports on the back.", + "Projectors are rectangular with a lens at the front while similar objects like TVs or monitors lack lenses and are often flatter." + ], + "hockey puck": [ + "A hockey puck is a flat, hard, black rubber disc, much smaller and simpler than most other sports equipment or round objects.", + "A hockey puck is a small, flat, hard black disc with smooth edges and uniform thickness used in ice hockey games.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a slightly raised rim.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a uniform circular shape." + ], + "punching bag": [ + "A punching bag is a cylindrical or teardrop-shaped object typically made of leather or vinyl, hanging from a chain or rope.", + "A punching bag is a tall cylindrical or teardrop-shaped object usually made of leather or vinyl hanging from a chain or rope.", + "A punching bag is typically cylindrical, hangs from a chain or rope, and is made of leather or synthetic material.", + "A punching bag is a cylindrical or teardrop-shaped object hung vertically, often made of leather or vinyl, used for striking in training." + ], + "purse": [ + "A purse is a small bag with a handle or strap used to carry personal items like money and makeup.", + "Purses are small handheld bags with straps or handles used to carry personal items like money and makeup.", + "A purse is typically a small soft bag with a handle or strap, often made of leather or fabric, designed to hold personal items.", + "A purse is a small stylish bag with straps, often made of leather or fabric, used to carry personal items like money and makeup." + ], + "quill": [ + "A quill is a long feather with a sharpened tip, unlike pens or pencils which are solid and lack natural feathery textures.", + "A quill has a long feather with a sharpened tip used for writing, distinct from other objects.", + "A quill is a long feather with a sharp pointed tip and hollow shaft, often used for writing with ink.", + "A quill is a slender writing tool with a pointed feather at one end and an ink-dipped tip at the other." + ], + "quilt": [ + "Quilts are thick fabric layers stitched in decorative patterns unlike flat sheets or plain blankets.", + "A quilt is a thick, soft bed cover made of stitched fabric layers, often with colorful patterns or patchwork designs.", + "A quilt is a layered textile with stitching patterns often featuring colorful fabric squares or rectangles sewn together.", + "Quilts have distinct patchwork patterns, stitching lines, and layered fabric textures that set them apart from other textiles and household items." + ], + "race car": [ + "Race cars are sleek low vehicles with bold colors sponsor logos large rear wings and aerodynamic shapes for speed.", + "Race cars are sleek, low-profile vehicles with bold colors and sponsor logos, designed for speed and aerodynamics unlike everyday cars.", + "Race cars have sleek aerodynamic designs vibrant colors sponsor logos and large rear wings for high speed performance.", + "Race cars have sleek aerodynamic bodies with large spoilers and bold racing decals for high-speed performance and branding." + ], + "racket": [ + "A racket has a long handle with a flat oval or round head strung with a tight mesh or netting.", + "Rackets have a long handle and a flat oval or round frame with strings or mesh stretched across it.", + "A racket typically has a long handle and an oval frame with a tightly strung netting for hitting balls in sports.", + "Rackets have a long handle with a circular or oval frame strung with a tight mesh netting for hitting balls." + ], + "radiator": [ + "A radiator is typically a flat metal panel with vertical or horizontal fins used for heating and often mounted on walls.", + "A radiator is a metal device with fins or coils, often wall-mounted, used for heating rooms by circulating hot water or steam.", + "Radiators have a series of evenly spaced metal fins or tubes designed for heat dissipation.", + "A radiator is a metal panel with fins or pipes, often wall-mounted, while similar objects lack these distinct heat-dissipating features." + ], + "radio": [ + "Radios have dials, buttons, speakers, and often a rectangular shape with a display screen or frequency tuner.", + "Radios typically have dials, buttons, and speakers, while other objects vary widely in shape, size, and functional features.", + "A radio typically has a rectangular body with buttons dials and an antenna often displaying a speaker grille or digital screen.", + "Radios typically have dials, buttons, speakers, and an antenna, often housed in a rectangular or boxy shape with a display screen." + ], + "radio telescope": [ + "A radio telescope is a large dish or array of dishes often mounted on a movable structure for capturing radio waves from space.", + "Radio telescopes have large dish-shaped reflectors and support structures, unlike smaller or differently shaped objects like satellites or antennas.", + "A radio telescope has a large parabolic dish for capturing radio waves from space.", + "A radio telescope is a large dish-shaped structure with a central receiver used to detect radio waves from space." + ], + "rain barrel": [ + "A rain barrel is a cylindrical container with a spout or hose attachment, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a cylindrical container with a spigot, often made of plastic or wood, designed to collect and store rainwater.", + "A rain barrel is typically a cylindrical container with a spout, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a large cylindrical container, often made of plastic or wood, used to collect and store rainwater." + ], + "recreational vehicle": [ + "Recreational vehicles are large, boxy, mobile homes with wheels, often featuring windows, a door, and sometimes an awning or external storage.", + "Recreational vehicles are large, boxy, and often have windows, awnings, and external features like ladders or storage compartments.", + "Recreational vehicles are large boxy vehicles with living spaces, often featuring windows, a door, and sometimes an awning or external storage.", + "A recreational vehicle is a large motorhome or camper van designed for travel and living, resembling a bus or truck." + ], + "fishing casting reel": [ + "A fishing casting reel is a cylindrical device with a handle, spool, and metal frame, often mounted on a fishing rod.", + "A fishing casting reel has a spool release button and a handle on the same side for controlled line casting.", + "A fishing casting reel has a cylindrical body with a handle, spool, and line guide, often made of metal and plastic.", + "A fishing casting reel has a cylindrical spool with a handle and line guide, unlike similar objects which lack these specific fishing features." + ], + "reflex camera": [ + "Reflex cameras have a distinctive bulky body with a lens protruding from the front and a viewfinder on top.", + "A reflex camera has a large lens, a viewfinder hump on top, and a rectangular body with buttons and dials.", + "Reflex cameras have a distinctive large lens, viewfinder hump, and body shape with buttons and dials for manual controls.", + "A reflex camera has a rectangular body with a lens in front, a viewfinder on top, and buttons on the back and sides." + ], + "refrigerator": [ + "A refrigerator is a large rectangular appliance with a door, handles, and often a freezer compartment, usually white or stainless steel.", + "A refrigerator is a large rectangular appliance with a door handle and often has a freezer compartment at the top or bottom.", + "A refrigerator is a large rectangular appliance with a door handle and often a shiny metallic or white surface.", + "Refrigerators are large boxy appliances with doors and handles, often white or metallic, while other objects vary in shape and function." + ], + "remote control": [ + "A remote control is a small rectangular device with buttons used to operate electronic gadgets from a distance.", + "Remote controls are small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Look for small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Remote controls are small rectangular devices with buttons, often featuring a smooth surface and sometimes an infrared sensor at the top." + ], + "restaurant": [ + "Restaurants are recognized by dining tables chairs menus food items and often a counter or open kitchen area.", + "A restaurant typically has tables, chairs, menus, food, and decor in a welcoming space for dining and socializing.", + "Restaurants can be identified by their signs, seating areas, menus, tables, counters, and often large windows or open entrances.", + "Restaurants are buildings with signs tables chairs and often large windows unlike smaller objects like furniture or utensils." + ], + "revolver": [ + "A revolver is a handgun with a rotating cylinder that holds bullets, featuring a short barrel and a distinctive trigger and grip.", + "A revolver has a rotating cylinder holding bullets and a short barrel, unlike most guns which have a straight magazine.", + "A revolver has a rotating cylinder, short barrel, and a handgun shape with a trigger and grip.", + "A revolver has a rotating cylinder with multiple chambers that hold bullets visible from the side." + ], + "rifle": [ + "A rifle is a long narrow firearm with a barrel stock and trigger designed for precision shooting and hunting.", + "Rifles are long slender guns with a barrel stock and trigger distinct from shorter handguns or non firearm objects.", + "A rifle has a long narrow barrel with a trigger and stock designed for precise aiming and firing bullets.", + "Rifles have a long narrow barrel with a trigger grip and often a stock for shoulder support distinguishing them from other objects." + ], + "rocking chair": [ + "A rocking chair has a curved base that allows it to rock back and forth, typically with armrests and a high back.", + "A rocking chair has curved legs that allow it to rock back and forth and often has a high back and armrests.", + "Rocking chairs have curved legs that allow them to rock back and forth unlike regular chairs with straight legs.", + "Rocking chairs have curved legs that allow back-and-forth movement and often have armrests and a high backrest for comfort." + ], + "rotisserie": [ + "A rotisserie is a cooking device with a rotating spit for evenly roasting meat over a heat source.", + "Rotisserie is identified by a rotating spit with skewered meat cooking evenly over a heat source often seen in delis or kitchens.", + "Rotisseries are recognized by their rotating skewer, evenly cooked meat, heat source below, and often a vertical or horizontal metal frame.", + "Rotisserie has rotating skewers with evenly spaced food items while other objects lack this specific rotating and spaced arrangement." + ], + "eraser": [ + "An eraser is typically a small rectangular or cylindrical rubber object used to remove pencil marks by rubbing.", + "An eraser is typically small rectangular or cylindrical with a smooth or slightly rough surface often in light colors like white or pink.", + "Erasers are typically small, rectangular, and made of soft rubber or foam, unlike hard or rigid objects like stones or metal tools.", + "Erasers are small, rectangular or oval, often white or pink, with a smooth or slightly rough texture and sometimes angled edges." + ], + "rugby ball": [ + "A rugby ball is oval with pointed ends while most other balls are round or spherical in shape.", + "A rugby ball is an elongated oval shape with pointed ends and a textured surface for better grip.", + "A rugby ball has a distinctive elongated oval shape with pointed ends unlike any other spherical or round sports ball.", + "A rugby ball is oval-shaped with pointed ends and typically has a textured surface with white stitching and a distinctive pattern." + ], + "ruler measuring stick": [ + "A ruler measuring stick is a long thin flat tool with marked lines for measurement unlike bulkier or unmarked objects.", + "A ruler measuring stick is a long thin flat object with marked lines and numbers for measuring length.", + "A ruler measuring stick has evenly spaced markings and a straight, flat shape for precise length measurement.", + "A ruler measuring stick is long, thin, flat, and has evenly spaced markings or numbers along its length for measuring." + ], + "sneaker": [ + "Sneakers have laces, rubber soles, and a fabric or leather upper with a distinctive sporty or casual design.", + "A sneaker is a lightweight shoe with a flexible rubber sole and soft fabric or leather upper, often used for sports or casual wear.", + "Sneakers are soft, flexible footwear with rubber soles and fabric or leather uppers, unlike hard-soled shoes or non-footwear items.", + "Sneakers are identified by their rubber soles, laces, and soft fabric or leather uppers designed for comfort and athletic use." + ], + "safe": [ + "A safe typically has a sturdy metal box shape with a thick door and a visible locking mechanism or keypad.", + "Safes are typically boxy with metal surfaces and keypads or dials unlike most objects which vary widely in shape and material.", + "A safe typically has a thick metal door with a prominent locking mechanism and handle.", + "A safe is a sturdy metal box with a thick door and a lock to securely store valuables and important items." + ], + "safety pin": [ + "A safety pin has a coiled spring, sharp point, and clasp to secure the pointed end, making it easily recognizable.", + "A safety pin is a small metal pin with a clasp that bends back to cover the sharp point and secure items.", + "A safety pin has a simple metal loop with a clasp to secure the pointed end unlike other pins or fasteners.", + "A safety pin is a small metal pin with a clasp that bends back to cover the point and secure it closed." + ], + "salt shaker": [ + "A salt shaker is a small container with a perforated top designed to sprinkle salt usually made of glass or plastic.", + "A salt shaker is small with a perforated top for sprinkling salt and often has a cylindrical or rounded shape.", + "A salt shaker typically has a few small holes on top for sprinkling salt evenly.", + "A salt shaker typically has small holes for sprinkling salt and is often smaller than similar containers like pepper shakers or sugar bowls." + ], + "sandal": [ + "Sandals have open designs with straps and lack full coverage compared to shoes or boots which enclose the foot more completely.", + "Shoes with open toes and straps or a flat sole, often lightweight and worn in warm weather.", + "A sandal is an open-toed footwear with straps or a sole held to the foot by thin bands or a simple design.", + "Sandal features include open toe straps a flat sole and often a Y-shaped design between the toes for secure foot placement." + ], + "sarong": [ + "A sarong is a long, wrapped cloth skirt, while similar items like skirts or kilts are typically pre-stitched and structured.", + "A sarong is a long colorful fabric wrapped around the waist, resembling a skirt or loose dress, often with vibrant patterns.", + "A sarong is a long, wrapped skirt or cloth with vibrant patterns, often worn around the waist and flowing loosely to the ankles.", + "A sarong is recognized by its long rectangular fabric often wrapped around the waist with vibrant patterns and flowing drapes." + ], + "saxophone": [ + "A saxophone is a shiny brass wind instrument with a curved body, keys, and a flared bell.", + "A saxophone has a curved metallic body with keys and a flared bell, unlike most instruments which are straight or differently shaped.", + "A saxophone is a shiny curved metal instrument with a flared bell and many buttons along its long tube.", + "The saxophone has a distinctive curved neck with a flared bell and multiple keys along its conical brass body." + ], + "scabbard": [ + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade.", + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade securely.", + "A scabbard is a long narrow sheath typically made of leather or metal used to hold and protect a sword or knife.", + "A scabbard is a long narrow sheath for a blade, often leather or metal, while similar objects may lack the shape or material specifics." + ], + "weighing scale": [ + "Weighing scales have a flat platform, display screen, and often numerical indicators for measuring weight clearly.", + "Weighing scales have flat platforms or trays with displays showing weight unlike other objects which vary in shape and function.", + "A weighing scale typically has a flat platform or tray and a display screen showing numbers for weight measurement.", + "A weighing scale is a flat platform or dish with a display showing weight often found in kitchens or bathrooms." + ], + "school bus": [ + "A school bus is a large yellow vehicle with windows, black trim, and a long rectangular shape for transporting children.", + "A school bus is recognized by its long yellow body black stripes large windows and stop sign arm for student transportation.", + "A school bus is a large yellow vehicle with black stripes, multiple windows, and often has stop signs and flashing lights.", + "A school bus is bright yellow with black stripes and large windows, while other vehicles vary in color and design." + ], + "schooner": [ + "A schooner is a sailing ship with two or more masts, typically with fore-and-aft sails and a sleek, elongated hull.", + "A schooner is a sailing ship with two or more masts and fore-and-aft sails, distinct from other boats by its tall sleek design.", + "A schooner is a sleek sailing ship with two or more masts and tall sails, often seen gliding on water.", + "A schooner has two or more tall masts with fore-and-aft sails and a sleek elongated hull designed for sailing." + ], + "scoreboard": [ + "Scoreboards display numbers or text on a flat panel often with bright colors and large fonts unlike most objects which are three-dimensional.", + "Scoreboards have large bold numbers bright colors and clear segmented displays for easy visibility and quick recognition from a distance.", + "Scoreboards are large flat panels with grids of numbers or letters often brightly lit and mounted high in stadiums or arenas.", + "Scoreboards uniquely display changing numbers or letters to show live game scores or information in a large visible format." + ], + "CRT monitor": [ + "A CRT monitor is a bulky boxy screen with a curved glass front and deep back, often black or beige.", + "CRT monitors are bulky with a large curved glass screen and thick backs unlike slim flat modern screens or other household objects.", + "CRT monitors have a bulky, boxy shape with a curved glass screen and a thick back containing the cathode ray tube.", + "A CRT monitor has a large, boxy shape with a curved or flat glass screen and a thick backside containing the cathode ray tube." + ], + "screw": [ + "Screws have a threaded cylindrical metal body with a slotted or shaped head for turning with a tool.", + "A screw is a small metal rod with a helical thread and a slotted or recessed head for turning with a tool.", + "Screws have a threaded cylindrical shaft and a slotted or shaped head, unlike nails which are smooth and bolts which have nuts.", + "Screws can be identified by their threaded cylindrical shaft and slotted or Phillips head for turning with a tool." + ], + "screwdriver": [ + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle often made of plastic or rubber.", + "A screwdriver has a long narrow metal shaft and a handle often with a distinct shape for gripping and turning screws.", + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle, unlike most tools or objects.", + "A screwdriver has a long narrow metal shaft ending in a flat or cross-shaped tip for turning screws." + ], + "seat belt": [ + "Seat belts are long flat straps with buckles while other objects vary widely in shape texture and function.", + "Seat belts are long flat straps with a buckle, usually made of fabric or metal, found in vehicles across seats.", + "A seat belt is a long narrow strap with a buckle designed to secure passengers in vehicles for safety.", + "Seat belts are long flat straps with buckles typically seen across car seats securing passengers with distinctive metal clasps." + ], + "sewing machine": [ + "A sewing machine is a compact device with a needle, thread spool, and foot pedal, often housed in a metal or plastic frame.", + "A sewing machine has a flat base, a raised arm with a needle, thread spool, and often a foot pedal or electric controls.", + "A sewing machine has a needle, thread spool, and foot pedal, while other objects lack these specific parts for stitching fabric.", + "A sewing machine has a needle, thread spool, foot pedal, and flat base with a distinctive mechanical arm for stitching fabric." + ], + "shield": [ + "A shield is typically a flat, broad piece of armor held for protection, often round or rectangular with a handle.", + "A shield is typically flat, broad, and often round or rectangular with a handle or straps on the back.", + "Shields are flat, often round or rectangular, with handles on the back and sometimes decorative patterns or emblems on the front.", + "Shields are typically flat, round or rectangular, with handles and often feature bold patterns or emblems for easy identification." + ], + "shoe store": [ + "A shoe store displays multiple shoes neatly arranged on shelves or racks unlike single shoes or other unrelated items.", + "A shoe store is a retail space filled with shelves and displays of various footwear styles arranged neatly for customers to browse.", + "A shoe store typically has rows of shelves displaying various shoes and often a seating area for trying them on.", + "Rows of shoes displayed on shelves or racks for customers to browse and try on." + ], + "shoji screen / room divider": [ + "Shoji screens and room dividers are typically lightweight, translucent, and framed with thin wooden grids, unlike solid or opaque furniture pieces.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, often rectangular and divided into grid-like sections.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, used as a room divider or sliding door.", + "Shoji screens are lightweight sliding panels with wooden frames and translucent paper panels arranged in a grid pattern." + ], + "shopping basket": [ + "A shopping basket is a handheld container with an open top and handle, typically made of woven materials or plastic.", + "Shopping baskets are typically open, lightweight containers with handles, made of wire or plastic, designed for carrying items while shopping.", + "A shopping basket is typically a lightweight, open container with handles, often made of wire or plastic, used for carrying items while shopping.", + "A shopping basket has an open-top woven or plastic structure designed for carrying items while shopping." + ], + "shopping cart": [ + "A shopping cart is a metal or plastic basket on wheels with a handle for holding items while shopping in stores.", + "Shopping carts have a large wire basket on wheels with a handlebar for pushing, unlike most objects which are solid and stationary.", + "Shopping carts have a metal wire frame with a large basket, four wheels, and a handlebar for pushing.", + "A shopping cart has a metal wire frame, four wheels, a large basket, and a handlebar for pushing." + ], + "shovel": [ + "A shovel has a long handle and a flat, broad blade used for digging or moving loose materials like dirt or snow.", + "A shovel has a long handle and a flat wide blade often curved or pointed for digging or lifting materials.", + "A shovel has a long handle and a flat or curved metal blade used for digging or moving loose materials.", + "A shovel has a long handle with a wide flat metal blade at the end for digging or lifting materials." + ], + "shower cap": [ + "A shower cap is a flexible, waterproof head covering with an elastic edge, unlike hats or scarves which are not waterproof or elastic.", + "A shower cap is a flexible waterproof dome that fits snugly over the head with elastic edges to keep hair dry.", + "A shower cap is a flexible waterproof hat that covers the hair, often made of plastic or elastic material, typically round and smooth.", + "A shower cap has a stretchable elastic rim designed to tightly cover hair and keep it dry during showers." + ], + "shower curtain": [ + "A shower curtain is a waterproof fabric or plastic sheet hanging from a rod to enclose a bathtub or shower area.", + "Shower curtains are typically made of waterproof fabric or plastic and hang from a rod to enclose a bathtub or shower area.", + "A shower curtain is a large rectangular fabric or plastic sheet hanging from a rod, often with colorful patterns or waterproof material.", + "Shower curtains are typically rectangular, made of waterproof fabric or plastic, often have patterns or prints, and hang from rings on a rod." + ], + "ski": [ + "Skis are long, narrow, flat, and often have curved tips and bindings, unlike most objects which are shorter or differently shaped.", + "Skis are long narrow flat boards with upturned tips, typically paired and used for gliding over snow.", + "Skis are long narrow flat boards with pointed tips and bindings, usually seen in snowy environments or with winter sports gear.", + "Skis are long narrow flat boards with upturned tips, often seen with bindings and used on snow for gliding." + ], + "balaclava ski mask": [ + "A balaclava ski mask is a tight-fitting cloth covering the head, neck, and often the face, leaving only the eyes or eyes and mouth exposed.", + "A balaclava ski mask fully covers the head and neck with openings for eyes and mouth, unlike hats or scarves.", + "A balaclava ski mask is a tight-fitting cloth headgear covering the head and face with openings for eyes and mouth.", + "A balaclava ski mask covers the entire head except for the eyes and sometimes the mouth, distinguishing it from other headwear." + ], + "sleeping bag": [ + "Sleeping bags are long padded fabric tubes with zippers designed to fully enclose a person lying down for warmth and comfort.", + "Sleeping bags are long padded fabric tubes with zippers and hoods designed for sleeping often in bright colors or patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper designed for sleeping outdoors often in bright colors or camouflage patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper often in bright colors and designed for one person to sleep inside." + ], + "slide rule": [ + "A slide rule is a long narrow ruler with sliding middle part marked with logarithmic scales for calculations.", + "A slide rule is a long narrow ruler with sliding middle parts marked with logarithmic scales for calculations.", + "A slide rule has numbered logarithmic scales on sliding parts while similar objects lack these precise measurement markings.", + "A slide rule has multiple parallel logarithmic scales that slide against each other for calculations." + ], + "sliding door": [ + "Sliding doors have a long horizontal panel that moves along a track without swinging open like traditional doors.", + "Sliding doors have long flat panels that move horizontally on tracks unlike hinged doors which swing open vertically.", + "Sliding doors are flat rectangular panels with handles that slide horizontally along a track embedded in the wall or frame.", + "A sliding door is a large rectangular panel that moves horizontally on a track to open and close an entrance." + ], + "slot machine": [ + "Slot machines have flashy lights, reels, and buttons, unlike most objects which lack these gaming-specific features.", + "A slot machine is a colorful upright device with reels, buttons, and a lever, often found in casinos.", + "Slot machines have colorful reels with symbols, a lever or button panel, and a payout tray at the bottom.", + "A slot machine has a colorful cabinet with reels, buttons, a lever, and often flashing lights and a coin slot." + ], + "snorkel": [ + "A snorkel is a curved tube with a mouthpiece used for breathing while swimming face down in water.", + "A snorkel is recognized by its curved tube with a mouthpiece for breathing underwater while keeping the face submerged.", + "A snorkel is a curved tube with a mouthpiece for breathing while swimming unlike other objects which lack this specific design.", + "A snorkel is a curved tube with a mouthpiece, often bright colored, used for breathing underwater while keeping the face submerged." + ], + "snowmobile": [ + "A snowmobile is a motorized vehicle with skis at the front and a continuous track at the back for traveling over snow.", + "A snowmobile has a long tracked rear tread and front skis for moving over snow.", + "Snowmobiles have a long narrow body with skis at the front and a continuous track at the back for snow travel.", + "Snowmobiles have a long seat, handlebars, skis at the front, and a track at the back for moving over snow." + ], + "snowplow": [ + "A snowplow has a large metal blade in front and is typically mounted on a truck or tractor for clearing snow.", + "A snowplow is a large vehicle with a wide metal blade in front used to clear snow from roads and pathways.", + "A snowplow has a large angled blade in front and often a cab with bright lights for clearing snow from roads.", + "A large angled blade at the front for pushing snow is unique to a snowplow." + ], + "soap dispenser": [ + "A soap dispenser is typically a plastic or glass bottle with a pump or lever to release liquid soap.", + "A soap dispenser is typically a bottle with a pump or push top often labeled and placed near sinks.", + "A soap dispenser has a pump or push mechanism on top of a bottle often labeled and designed for liquid soap.", + "Soap dispensers typically have a pump or nozzle for dispensing liquid and a container often shaped like a bottle or cylinder." + ], + "soccer ball": [ + "Soccer balls have distinctive black and white pentagon patterns while other balls are usually solid or have different designs.", + "A soccer ball is typically round with black and white pentagon or hexagon patches arranged in a distinctive pattern.", + "A soccer ball has a distinctive pattern of black and white pentagons and hexagons arranged in a spherical shape.", + "A soccer ball has a distinctive black and white hexagonal pattern with a spherical shape and uniform size." + ], + "sock": [ + "A sock is a soft, stretchy tube-shaped fabric item worn on feet, often colorful or patterned, and smaller than pants or shirts.", + "Socks are typically soft, stretchy, tubular, and often have patterns or colors, unlike rigid or solid-shaped objects.", + "Socks are soft, stretchy, tubular fabric items typically worn on feet, often with colorful patterns or plain designs.", + "Socks are typically soft, stretchy, tubular fabrics worn on feet, often with patterns, ribbing, or heel and toe shaping." + ], + "solar thermal collector": [ + "Solar thermal collectors are flat or curved panels with dark surfaces, often glass-covered, and connected to pipes for fluid circulation.", + "Solar thermal collectors are flat or tubular panels with reflective surfaces and pipes, unlike typical roofs or boxes which lack these features.", + "Solar thermal collectors have flat or curved reflective panels with tubes or channels designed to absorb and transfer heat from sunlight.", + "A solar thermal collector typically appears as a flat rectangular panel or curved tube array often mounted on rooftops or open ground." + ], + "sombrero": [ + "A sombrero has a wide brim and high pointed crown, unlike hats with smaller brims or flat tops.", + "A sombrero is a wide-brimmed, high-crowned hat often colorful and decorated commonly associated with Mexican culture.", + "A sombrero is recognized by its wide brim high pointed crown and often colorful decorative patterns.", + "A sombrero has an exceptionally wide brim that is much larger than typical hats." + ], + "soup bowl": [ + "Soup bowls are typically round deep dishes with high sides designed to hold liquid meals unlike plates or shallow bowls.", + "A soup bowl is typically round, deep, and has a wide opening with a flat base, often made of ceramic or porcelain.", + "A soup bowl is typically round deep and wide with a rim often made of ceramic or porcelain and holds liquid food.", + "A soup bowl is a deep round dish with a wide opening and often has handles or a rim for holding hot liquids." + ], + "keyboard space bar": [ + "The keyboard space bar is a long narrow rectangular key typically wider than other keys on a keyboard.", + "The keyboard space bar is a long flat rectangular key while other objects vary widely in shape size and texture.", + "The keyboard space bar is a long rectangular key typically wider than other keys and often blank or labeled with space.", + "The keyboard space bar is a long rectangular key often centered at the bottom with a smooth flat surface." + ], + "space heater": [ + "A space heater is a small, boxy or cylindrical device with vents or coils, often on wheels or with a handle.", + "Space heaters are compact, often boxy or cylindrical, with visible heating elements or grilles and sometimes a fan for air circulation.", + "Space heaters are typically compact, boxy, or cylindrical with visible heating elements or grilles, unlike most household objects.", + "Space heaters are typically small boxy or cylindrical devices with grilles or vents and often have visible heating elements or coils inside." + ], + "space shuttle": [ + "A space shuttle is a large winged spacecraft with a cylindrical body, rocket boosters, and external fuel tanks.", + "A space shuttle has wings and a large cylindrical fuel tank unlike rockets which are long and thin without wings.", + "A space shuttle has a white body with black wing edges and a large external fuel tank with two solid rocket boosters.", + "The space shuttle has a distinct winged shape with attached external fuel tanks and solid rocket boosters during launch." + ], + "spatula": [ + "A spatula is a flat thin utensil with a broad blade and a handle used for lifting or flipping food.", + "A spatula has a flat wide blade and a long handle unlike spoons or knives which are curved or sharp.", + "A spatula has a flat wide blade with a long handle used for lifting or flipping food making it easily recognizable.", + "A spatula has a flat wide blade with a thin edge for lifting or flipping food." + ], + "motorboat": [ + "A motorboat is a sleek, streamlined watercraft with an engine, propeller, and often a pointed bow for cutting through waves.", + "Motorboats have a streamlined hull, an outboard or inboard motor, and often a windshield or seating area on a small watercraft.", + "Motorboats are long with a pointed front, an open or enclosed cabin, and an outboard motor at the rear.", + "Motorboats are sleek, elongated watercraft with an engine at the rear, often featuring a pointed bow and seating area." + ], + "spider web": [ + "A spider web is a delicate, intricate network of thin, silky threads woven in circular or irregular patterns to catch prey.", + "Spider webs are thin silky threads forming delicate tangled or symmetrical patterns often found in corners or between objects.", + "Spider webs have delicate, intricate, silky threads forming patterns, unlike solid or dense objects like leaves or rocks.", + "Spider webs have delicate, symmetrical, silky threads forming intricate radial or spiral patterns often seen between surfaces like trees or corners." + ], + "spindle": [ + "A spindle is a slender, rod-shaped tool typically tapered at both ends, unlike broader or irregularly shaped objects.", + "A spindle is a slender rod or pin that tapers at both ends, often used for spinning or holding materials.", + "A spindle is a slender rod with tapered ends used for spinning or holding materials like thread or yarn.", + "A spindle is a slender rod with tapered ends often used for spinning or holding thread or yarn." + ], + "sports car": [ + "Sports cars are recognized by their low sleek body aggressive styling two doors and powerful engine appearance.", + "Sports cars are low sleek fast vehicles with two doors and a sporty design unlike larger or boxier everyday cars.", + "Sports cars are low sleek fast vehicles with two doors aggressive styling and often bright colors or shiny paint.", + "A sports car is a sleek low fast two-door vehicle with a powerful engine and aerodynamic design often brightly colored." + ], + "spotlight": [ + "A spotlight is a bright focused light beam while other objects are solid and reflect or emit light differently.", + "A spotlight is recognized by its intense focused beam of light often used to highlight or illuminate specific areas or objects.", + "A spotlight is a bright focused beam of light often seen in theaters or events highlighting specific areas or objects.", + "A spotlight is a bright, focused light with a distinct beam often mounted on a stand or attached to ceilings." + ], + "stage": [ + "A stage is typically flat, elevated, and open with clear boundaries designed for visibility and performance from all angles.", + "A stage is a raised platform used for performances, often with curtains, lights, and open space for actors or presenters.", + "A stage is uniquely defined by its elevated flat platform designed for performances and presentations.", + "Look for raised platforms with curtains, lights, and seating arranged to face the performance area." + ], + "steam locomotive": [ + "A steam locomotive is a large, heavy metal train with a smokestack, wheels, and a boiler, often black and emitting steam.", + "Steam locomotives have a large smokestack, cylindrical boiler, wheels with connecting rods, and often a tender car carrying coal or water.", + "Steam locomotives have a large boiler, smokestack, and wheels connected by rods, unlike most vehicles or machinery.", + "A steam locomotive has a large cylindrical boiler, smokestack, wheels with connecting rods, and often a tender car carrying coal or water." + ], + "through arch bridge": [ + "A through arch bridge has a distinctive arch above the deck that supports the structure while allowing clearance underneath.", + "An through arch bridge has a distinctive arch above the deck with supports connecting it to the roadway below.", + "A through arch bridge has a distinctive design where the deck passes between two large arch supports rising above it.", + "A through arch bridge has a distinctive design with the arch above the deck and supporting cables or beams visible below it." + ], + "steel drum": [ + "Steel drums have a shiny cylindrical metal body with a concave top and distinct ridges for tuning.", + "A steel drum is a shiny cylindrical metal container with a flat top and bottom, often ribbed or grooved for strength.", + "A steel drum has a shiny metallic cylindrical shape with concave surfaces, unlike most objects which are flat or irregularly shaped.", + "A steel drum is a large cylindrical metal container with a flat top and bottom, often used for storing liquids or goods." + ], + "stethoscope": [ + "A stethoscope has a long flexible tube with a chest piece and earpieces unlike most medical tools which are rigid or handheld.", + "A stethoscope is a long flexible tube with earpieces and a small round chest piece used for listening to body sounds.", + "A stethoscope has a distinctive Y-shaped tube with dual earpieces and a chest piece for listening to body sounds.", + "A stethoscope has a Y-shaped tube with earpieces and a round chest piece often made of metal and rubber." + ], + "scarf": [ + "Scarves are long and flexible fabric pieces worn around the neck unlike other clothing items which are rigid or shaped differently.", + "A scarf is a long flexible fabric piece often wrapped around the neck with patterns or fringes for warmth or style.", + "A scarf is a long, narrow piece of fabric worn around the neck for warmth or style, often colorful or patterned.", + "Scarves are long, thin, flexible fabrics often wrapped around the neck or head with varied patterns and textures." + ], + "stone wall": [ + "A stone wall is identified by its rough, uneven surface made of stacked or fitted natural stones, often gray or brown.", + "Stone walls are rough, uneven, and made of stacked or cemented rocks unlike smoother, uniform materials like wood or brick walls.", + "A stone wall is a sturdy, rough-textured barrier made of stacked or mortared rocks, often gray or brown, commonly found in rural or historic settings.", + "Stone walls are recognized by their rough uneven texture stacked rock layers and natural earthy colors." + ], + "stopwatch": [ + "A stopwatch is a small handheld device with a digital or analog display, buttons, and a strap for timing events precisely.", + "A stopwatch has a round face with buttons on top and a digital or analog display for timing unlike clocks or phones.", + "A stopwatch has a round face with numbered dials, buttons for timing functions, and often a wrist strap or stand.", + "A stopwatch has a round face with numbers, buttons on top, and a strap or stand for holding or propping it up." + ], + "stove": [ + "A stove has a flat cooking surface with burners or heating elements and control knobs or buttons for temperature adjustment.", + "A stove is a kitchen appliance with a flat cooking surface and burners or heating elements, often made of metal and glass.", + "A stove typically has a flat cooking surface with burners or heating elements and control knobs on the front or top.", + "A stove has burners or heating elements on a flat surface specifically designed for cooking food." + ], + "strainer": [ + "A strainer has a mesh or perforated surface with small holes for filtering liquids while keeping solids inside.", + "A strainer has a mesh or perforated surface to filter liquids, unlike solid bowls or spoons that lack holes.", + "A strainer has a mesh or perforated surface allowing liquids to pass while retaining solids inside.", + "A strainer has a mesh or perforated surface with holes to filter liquids while keeping solids inside, often with a handle." + ], + "tram": [ + "Trams are long rail vehicles with multiple connected carriages running on fixed tracks in urban areas.", + "Trams are long boxy vehicles with multiple windows running on fixed rails often seen in urban streets.", + "A tram is a rail vehicle that runs on city streets, resembling a bus but longer and connected to overhead electric wires.", + "Trams are long narrow vehicles with multiple connected sections running on fixed tracks unlike buses or cars." + ], + "stretcher": [ + "A stretcher has a long flat frame with handles and often fabric or straps for carrying injured or immobile people.", + "A stretcher is a long flat frame with handles used for carrying injured or sick people, resembling a portable bed.", + "A stretcher is a long flat frame with handles used for carrying people, unlike similar objects which are usually rigid or lack handles.", + "A stretcher is a long flat frame with handles used for carrying the sick or injured, typically made of canvas and metal poles." + ], + "couch": [ + "Couches are long padded seats with a backrest and often armrests designed for multiple people to sit on comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit on comfortably.", + "A couch is a long padded seat for multiple people with a backrest, unlike chairs or stools which are smaller and often lack padding." + ], + "stupa": [ + "A stupa is a dome-shaped Buddhist shrine with a spire, distinct from other objects by its religious and architectural design.", + "A stupa is a dome-shaped Buddhist shrine with a pointed top, often decorated and surrounded by intricate carvings or gates.", + "A stupa is a dome-shaped Buddhist shrine with a pointed spire often decorated with intricate carvings and surrounded by a fence.", + "A stupa is recognized by its dome-shaped structure often topped with a spire and surrounded by decorative gates or railings." + ], + "submarine": [ + "A submarine is long and tubular with a pointed front, smooth hull, and often has a conning tower or periscope on top.", + "Submarines are long cylindrical vessels with a conning tower and propellers, unlike most objects which have varied irregular shapes.", + "A submarine has a distinctive elongated cylindrical hull with a conning tower and often visible propellers or fins.", + "Submarines are long cylindrical vessels with a conning tower, smooth hull, and often visible propellers or fins underwater." + ], + "suit": [ + "A suit is a formal garment with a jacket and matching trousers or skirt, typically made of smooth, tailored fabric in solid colors.", + "A suit is a formal set of matching jacket and trousers or skirt made from fine fabric, often worn for professional or elegant occasions.", + "A suit is a formal outfit with matching jacket and trousers, often in dark colors, unlike casual or sporty clothing.", + "A suit is uniquely identified by its tailored jacket and matching trousers or skirt in formal fabric." + ], + "sundial": [ + "A sundial is a flat or curved surface with marked lines and a raised pointer that casts shadows to show time.", + "A sundial has a flat or curved surface with marked hours and a gnomon that casts a shadow to tell time.", + "A sundial has a flat dial with marked hours and a raised gnomon that casts a shadow to indicate time.", + "A sundial has a flat surface with marked hours and a raised gnomon that casts a shadow to show time." + ], + "sunglasses": [ + "Sunglasses are recognized by their dark tinted lenses and frames that cover the eyes and often the sides of the face.", + "Sunglasses are identified by their dark lenses, thin frames, and symmetrical shape often worn over the eyes.", + "Sunglasses are dark or tinted eyewear with two lenses and frames designed to protect eyes from sunlight.", + "Sunglasses have dark tinted lenses and frames designed to cover eyes while other objects lack these specific eye-covering features." + ], + "sunscreen": [ + "Sunscreen typically appears as a small tube or bottle with bright colors and labels mentioning SPF or sun protection.", + "Sunscreen often has a distinctive bright white or colored thick creamy texture in a tube or bottle with sun protection labels.", + "Sunscreen typically appears as small bottles or tubes with bright labels often found near beach or skincare products.", + "Sunscreen is recognized by its tube or bottle shape, bright colors, and labels with sun or SPF symbols." + ], + "suspension bridge": [ + "Suspension bridges have long spans with tall towers and cables hanging in curves supporting the roadway below.", + "Suspension bridges have long spans with tall towers and cables supporting the roadway below.", + "Suspension bridges have tall towers, long main cables, and a hanging deck, unlike other bridges or objects which lack these features.", + "Suspension bridges have long main spans hanging from vertical cables anchored to massive towers and supported by thick main cables." + ], + "mop": [ + "A mop has a long handle with absorbent strands or a sponge at the bottom unlike brooms or brushes which have stiff bristles.", + "A mop has a long handle with a bundle of absorbent strands or a sponge at the bottom for cleaning floors.", + "A mop has long strands or fibers attached to a handle designed for soaking up and wiping liquids.", + "A mop typically has a long handle with a bundle of absorbent strings or sponge at the bottom for cleaning floors." + ], + "sweatshirt": [ + "Sweatshirts are recognized by their soft fabric, long sleeves, ribbed cuffs, and often a hood or front pocket.", + "A sweatshirt is a soft, loose, long-sleeved pullover typically made of thick cotton fabric, often with a hood and ribbed cuffs.", + "Sweatshirts are typically soft, thick, and have a loose fit with long sleeves, often featuring a hood or a crewneck design.", + "A sweatshirt is a soft, thick, collarless pullover with long sleeves, often made of cotton and sometimes featuring a hood or front pocket." + ], + "swim trunks / shorts": [ + "Swim trunks are short quick-drying fabric garments with elastic waistbands often featuring bright colors or patterns.", + "Swim trunks are short loose-fitting quick-drying pants designed for swimming often in bright colors or patterns with elastic waistbands.", + "Swim trunks are lightweight quick-drying shorts with bright colors patterns elastic waistbands and often a mesh lining for swimming.", + "Swim trunks are lightweight quick-drying shorts with vibrant patterns and mesh linings designed for water activities unlike regular shorts." + ], + "swing": [ + "Look for a hanging or suspended part that moves freely back and forth or side to side when pushed or pulled.", + "A swing has a seat suspended by ropes or chains from a frame allowing back and forth motion.", + "A swing typically has a seat suspended by ropes or chains from a frame, allowing it to move back and forth freely.", + "A swing has a hanging seat suspended by ropes or chains that moves back and forth when pushed." + ], + "electrical switch": [ + "An electrical switch is a small rectangular device with a toggle or button, often mounted on walls to control power.", + "Electrical switches are small rectangular or square devices with buttons or toggles, often mounted on walls with visible screws.", + "Electrical switches are small rectangular devices with a toggle or button, often mounted on walls, featuring visible on-off markings or positions.", + "The unique visual cue for an electrical switch is a small rectangular plate with a toggle or rocker mechanism." + ], + "syringe": [ + "A syringe has a narrow tube with a plunger and needle, unlike most objects which are bulkier and lack these precise medical features.", + "A syringe is a slender tube with a plunger and a needle tip used for injecting or withdrawing fluids.", + "A syringe is a slender tube with a plunger and needle used for injecting or withdrawing fluids from the body.", + "A syringe has a hollow needle attached to a cylindrical tube with a plunger for injecting or withdrawing fluids." + ], + "table lamp": [ + "A table lamp is a small lighting fixture with a base, stem, and shade designed to sit on tables or desks.", + "A table lamp is a small light fixture with a base, stem, and shade, often placed on desks or bedside tables.", + "A table lamp has a base, a stem, and a shade designed to direct light upward or downward from a flat surface.", + "Table lamps have a base, a stem, and a shade, often with a bulb inside, making them distinct from other household objects." + ], + "tank": [ + "Tanks have long barrels, heavy armor, and treads unlike trucks or cars which have wheels and lighter frames.", + "A tank is a large armored military vehicle with tracks, a long gun barrel, and a heavy, boxy metal body.", + "A tank has a long gun barrel, armored tracks, a large rectangular body, and often a turret on top.", + "A tank is a large armored military vehicle with tracks, a rotating turret, and a long gun barrel for firing shells." + ], + "tape player": [ + "A tape player is a rectangular device with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player typically has a rectangular shape with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player has a rectangular shape with buttons, a cassette slot, and often a handle or speakers for easy recognition.", + "A tape player has a rectangular slot for inserting cassette tapes with visible reels inside." + ], + "teapot": [ + "A teapot is a small pot with a handle, spout, and lid, typically made of ceramic or metal, used for brewing tea.", + "A teapot has a rounded body, a spout, a handle, and a lid, distinguishing it from other containers like cups or pitchers.", + "A teapot has a rounded body, a spout for pouring, a handle for holding, and a lid on top.", + "Teapots typically have a spout handle and lid while similar objects like kettles or pitchers may lack one or more of these features." + ], + "teddy bear": [ + "A teddy bear is a soft, plush toy with a round body, small limbs, and a friendly face, often brown or pastel-colored.", + "Teddy bears have soft fuzzy fabric, round ears, stubby limbs, a plump body, and a friendly face with small eyes and nose.", + "Teddy bears are soft plush toys with round shapes, small ears, button eyes, and a friendly face resembling a bear.", + "Teddy bears are soft plush toys with round shapes and friendly faces, unlike hard or angular objects like furniture or tools." + ], + "television": [ + "A television is a rectangular screen with a thin frame, often mounted on a stand or wall, displaying moving images and sound.", + "A television is a flat rectangular screen with a thin frame often mounted on a stand or hung on a wall.", + "Televisions have flat rectangular screens with thin bezels and often a stand or wall mount unlike most other objects.", + "Televisions have a large rectangular screen with a thin frame often mounted on a stand or hung on a wall." + ], + "tennis ball": [ + "A tennis ball is bright yellow-green, fuzzy, and uniformly round with a visible seam, unlike most other balls.", + "A tennis ball has a bright yellow-green color with a fuzzy texture and distinctive white curved lines.", + "A tennis ball is bright yellow-green with a fuzzy texture and distinctive white curved lines forming a seam.", + "A tennis ball is bright yellow-green, fuzzy, small, round, and has a distinct white curved line seam." + ], + "thatched roof": [ + "A thatched roof has a rough, textured surface made of dried straw or reeds, unlike smoother or solid materials like tiles or metal.", + "Thatched roofs have a thick, rough texture with uneven, overlapping straw or reeds creating a distinctive natural and rustic appearance.", + "A thatched roof is a rustic, textured roof made of dried straw or reeds, often appearing golden and uneven compared to smoother modern roofs.", + "A thatched roof has a distinctive thick layered texture made of dry vegetation like straw or reeds tightly bundled together." + ], + "front curtain": [ + "Front curtains are typically made of fabric, hang vertically, and often cover windows or doorways unlike other objects which vary widely in material and purpose.", + "A front curtain is a fabric panel that hangs at the window's top edge, often decorative and used for privacy or light control.", + "Front curtains are long fabric panels that hang vertically often with pleats and are typically found framing windows or stages.", + "Look for a decorative fabric panel hanging at the top of a window often with folds and a gathered or pleated design." + ], + "thimble": [ + "A thimble is a small metal or plastic cap worn on the finger, unlike most objects which are larger and not finger-sized.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble has a small, deep cup shape with dimpled texture specifically designed to fit on a fingertip for sewing." + ], + "threshing machine": [ + "A threshing machine has rotating drums or beaters that separate grain from stalks, a feature distinct to agricultural processing equipment.", + "A threshing machine has a large, boxy frame with rotating drums or beaters to separate grain from stalks and often has a funnel-shaped intake.", + "A threshing machine is larger, has a complex mechanical structure with belts and gears, and often includes a conveyor or hopper.", + "A threshing machine is a large farm device with belts, wheels, and a hopper for separating grain from stalks." + ], + "throne": [ + "A throne is a large ornate chair often elevated with intricate designs symbolizing power and authority for royalty or leaders.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority or royalty.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority unlike simpler regular chairs.", + "A throne is recognized by its ornate high back, armrests, elevated seat, and regal decorations symbolizing authority and power." + ], + "tile roof": [ + "A tile roof is a sloped roof covered with overlapping curved or flat tiles, typically made of clay or concrete.", + "Tile roofs have overlapping rows of flat or curved clay or concrete pieces arranged in a distinctive repeating pattern.", + "Tile roofs have overlapping rows of flat rectangular tiles with visible edges and a slightly wavy or uniform pattern.", + "Tile roofs have overlapping curved or flat rectangular tiles arranged in rows creating a distinctive textured and layered surface pattern." + ], + "toaster": [ + "A toaster is a small rectangular kitchen appliance with slots on top to insert bread and a lever to lower it.", + "A toaster is a small boxy appliance with slots on top for bread and a lever to lower and raise the slices.", + "A toaster has a rectangular metal body with slots for bread and a lever to lower and raise slices for toasting.", + "A toaster is a small box with slots for bread and a lever, unlike other kitchen appliances which have different shapes and functions." + ], + "tobacco shop": [ + "Tobacco shops often display cigars, pipes, cigarette packs, and signage with tobacco brands in their windows or on shelves.", + "Tobacco shops are recognized by shelves of cigarette packs, cigars, rolling papers, and often a counter with a cash register.", + "Tobacco shops typically display cigarettes, cigars, and pipes in glass cases with branded logos and colorful packaging unlike other stores.", + "A tobacco shop typically features shelves of cigarettes, cigars, pipes, lighters, and often a counter with a cash register." + ], + "toilet seat": [ + "A toilet seat is an oval or round openable lid with a smooth surface and a hinge, typically found above a toilet bowl.", + "A toilet seat is typically oval or round, smooth, white or light-colored, and attached to a toilet bowl.", + "A toilet seat is a curved oval or round shape with a hinge, typically white or light-colored, designed to fit over a toilet bowl.", + "A toilet seat is a curved, often white or beige, oval or round ring attached to a toilet bowl for sitting." + ], + "torch": [ + "A torch is a handheld light source with a long narrow body and a bright flame or bulb at one end.", + "A torch is recognized by its elongated shape, flame or light source at one end, and often a handle or grip.", + "A torch is a handheld light source with a flame or bulb, while other objects vary widely in shape, function, and lack a light-emitting feature.", + "A torch is a handheld light source with a flame or bright bulb, often cylindrical and distinct among objects for its glowing tip." + ], + "totem pole": [ + "Totem poles are tall wooden carvings with stacked faces or figures, unlike shorter plain poles or single sculptures.", + "Totem poles are tall wooden carvings with stacked faces or figures, often brightly painted and featuring symbolic animal or human designs.", + "Totem poles are tall wooden carvings with stacked symbolic figures and faces often painted in bold colors.", + "A totem pole is a tall wooden carving with stacked animal and human figures, often painted in bright colors." + ], + "tow truck": [ + "Tow trucks have a large hook or winch on the back and often a sloped bed for lifting vehicles.", + "A tow truck is a large vehicle with a boom or flatbed used to lift and transport disabled or illegally parked cars.", + "A tow truck has a large metal boom or flatbed for lifting vehicles, unlike regular trucks which lack these towing features.", + "A tow truck has a large extended metal boom with a hook or winch at the end for lifting vehicles." + ], + "toy store": [ + "Toy stores are recognized by shelves filled with colorful toys, playful displays, and often a mix of stuffed animals and action figures.", + "Toy stores are filled with colorful shelves displaying various small playful items like dolls, games, and toys in a bright inviting setup.", + "A toy store is filled with colorful shelves displaying various toys like dolls, action figures, board games, and stuffed animals.", + "A toy store is colorful with shelves full of small bright toys like dolls cars and stuffed animals arranged neatly." + ], + "tractor": [ + "Tractors have large wheels, a heavy metal frame, and often a front loader or plow unlike most vehicles or machinery.", + "A tractor is a large, heavy vehicle with big rear wheels, a small front cabin, and often a hitch or plow attachment.", + "Tractors have large rugged wheels a distinct cab and often a front loader or rear hitch for heavy-duty farming tasks.", + "Tractors have large rear wheels, a small front cabin, and often a hitch or attachment at the back for farming equipment." + ], + "semi-trailer truck": [ + "A semi-trailer truck is a large vehicle with a tractor unit pulling a long detachable trailer for hauling freight.", + "A semi-trailer truck has a large boxy trailer attached to a powerful cab with multiple axles and no rear doors.", + "A semi-trailer truck has a large rectangular trailer attached to a cab, unlike smaller vehicles or single-unit trucks.", + "Semi-trailer trucks are recognized by their long rectangular trailers attached to a powerful cab with multiple axles and large wheels." + ], + "tray": [ + "A tray is a flat shallow container with raised edges used for carrying or holding items.", + "A tray is a flat shallow container with raised edges often rectangular or round used for carrying items.", + "A tray is a flat, shallow container with raised edges used to hold or carry items like food, dishes, or small objects.", + "A tray is typically flat with raised edges to hold items unlike plates or bowls which are deeper and cups which have handles." + ], + "trench coat": [ + "A trench coat is a long waterproof coat with a belt and deep pockets typically made from heavy fabric.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has shoulder straps and deep pockets.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has deep pockets and shoulder straps.", + "A trench coat is a long waterproof coat with a belt and deep pockets, unlike shorter or non-waterproof jackets and coats." + ], + "tricycle": [ + "A tricycle is a three-wheeled vehicle with a seat, handlebars, and pedals, typically smaller and simpler than a bicycle.", + "Tricycles have three wheels, a seat, and handlebars, distinguishing them from bicycles with two wheels or wagons without handlebars.", + "A tricycle has three wheels arranged in a stable triangular configuration unlike bicycles or other wheeled vehicles.", + "A tricycle has three wheels, a seat, handlebars, and pedals, often with a small frame and is larger than a toy but smaller than a car." + ], + "trimaran": [ + "A trimaran has three parallel hulls, unlike most boats which have one or two, making it wider and more stable in water.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls for stability and speed.", + "A trimaran has three distinct parallel hulls with a main central hull and two smaller outrigger hulls.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls on each side." + ], + "tripod": [ + "A tripod is a three-legged stand with a central mount, often used to support cameras or other equipment.", + "A tripod has three long legs extending from a central point, often with adjustable height and a mounting platform for cameras or equipment.", + "A tripod has three evenly spaced legs extending from a central point to provide stable support.", + "A tripod has three long legs and a central mount, unlike most objects which are solid or have different shapes and supports." + ], + "triumphal arch": [ + "A triumphal arch is a large freestanding stone monument with a curved or flat top, unlike buildings or bridges.", + "A triumphal arch is a large monumental structure with a curved or square top, often decorated with sculptures and inscriptions.", + "A triumphal arch is a large monumental structure with a curved or square top and often features intricate carvings and inscriptions.", + "A triumphal arch is recognized by its large arched structure, often decorated with columns and sculptures, standing as a monumental gateway." + ], + "trolleybus": [ + "Trolleybuses have dual overhead poles connecting to power lines unlike other vehicles.", + "A trolleybus looks like a bus but has two overhead poles connecting to electric wires for power unlike regular buses or trams.", + "A trolleybus looks like a large bus with overhead poles connecting to power lines for electricity.", + "A trolleybus looks like a large electric bus with overhead poles connecting to power lines for energy." + ], + "trombone": [ + "A trombone is a long brass instrument with a sliding tube and flared bell, distinct among objects for its shiny curved shape.", + "A trombone has a long slide and a flared bell, unlike most brass instruments which use valves and have fixed tubing lengths.", + "A trombone has a long sliding tube and a flared bell making it distinct from other brass instruments.", + "The trombone has a long sliding U-shaped tube that adjusts pitch by moving in and out." + ], + "hot tub": [ + "A hot tub is a large round or square water-filled tub with seats and jets often made of wood or acrylic.", + "A hot tub is a large, round or oval water-filled tub with seating, jets, and often a cover, unlike smaller or non-water containers.", + "A hot tub is recognized by its large, round or oval water-filled basin with jets, often surrounded by seating and a rim.", + "A hot tub resembles a large round or square basin filled with water, often with seats and jets, typically made of acrylic or wood." + ], + "turnstile": [ + "A turnstile is a rotating gate with horizontal arms that allows one person to pass at a time.", + "A turnstile is a rotating barrier with horizontal arms that lets people pass one at a time unlike doors or gates.", + "A turnstile is a rotating gate with horizontal bars that allows one person to pass at a time when pushed.", + "Turnstiles have rotating horizontal bars or arms that allow one person to pass at a time, often seen in entryways or transit areas." + ], + "typewriter keyboard": [ + "A typewriter keyboard is a rectangular array of raised black and white keys with letters and symbols.", + "A typewriter keyboard has rows of raised round keys with letters and symbols arranged in a rectangular metal or plastic frame.", + "A typewriter keyboard has raised rectangular keys with letters arranged in rows and a metal frame often with visible mechanical parts.", + "A typewriter keyboard has rows of raised, round keys with letters and symbols, often metallic, while other objects vary in shape and texture." + ], + "umbrella": [ + "An umbrella has a curved handle with a central pole supporting a canopy of fabric or material that opens for rain protection.", + "An umbrella is a handheld canopy with a central rod and fabric stretched over ribs to shield from rain or sun.", + "An umbrella has a curved canopy with ribs and a central pole, often with a handle, designed to shield from rain or sun.", + "A canopy of fabric or material stretched over a folding frame supported by a central pole." + ], + "unicycle": [ + "A unicycle has a single wheel with no handlebars or additional wheels unlike bicycles or other wheeled objects.", + "A unicycle is a single-wheeled vehicle with a seat and pedals, resembling a bicycle but with only one wheel.", + "A unicycle has a single wheel with a seat and pedals, lacking handlebars or extra wheels like bicycles.", + "A unicycle has a single wheel with a seat and pedals, unlike bicycles with two wheels or scooters with handlebars and a platform." + ], + "upright piano": [ + "An upright piano is a tall rectangular musical instrument with black or white keys and a vertical wooden frame.", + "An upright piano is tall and rectangular with a vertical front panel and keys, unlike shorter or differently shaped furniture and instruments.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top." + ], + "vacuum cleaner": [ + "Vacuum cleaners typically have a long hose or tube, a dust collection bag or canister, and wheels for mobility unlike most other objects.", + "Vacuum cleaners typically have a long hose, a dust collection bag or canister, wheels, and a handle for pushing or pulling.", + "A vacuum cleaner typically has a long handle, a body with a motor, and a nozzle or brush for sucking up dirt.", + "A vacuum cleaner typically has a long hose, a dust collection bag or canister, and wheels for moving around on floors." + ], + "vase": [ + "A vase is typically a tall hollow container with a narrow neck and open top often decorated and made of glass or ceramic.", + "A vase is a tall hollow container with a base and often a narrow neck used to hold flowers or as decoration.", + "A vase is typically tall with a narrow neck and open top designed to hold flowers distinguishing it from similar containers.", + "Vases are typically tall hollow containers with an open top designed to hold flowers unlike bowls or jars which are shorter and wider." + ], + "vaulted or arched ceiling": [ + "Vaulted or arched ceilings have a curved upward shape creating an open spacious interior with visible structural ribs or smooth continuous curves.", + "A vaulted or arched ceiling is a curved or domed roof structure that rises upward creating an open and spacious interior feel.", + "Look for a curved or dome-shaped top on ceilings that rise upward in a smooth arch rather than being flat.", + "Vaulted ceilings have curved upward shapes forming arches while other objects typically have flat or straight surfaces." + ], + "velvet fabric": [ + "Velvet fabric has a soft, smooth texture with a distinctive sheen that changes when brushed in different directions.", + "Velvet fabric has a soft, smooth texture with a distinctive sheen that reflects light differently than most other fabrics.", + "Velvet fabric is a soft, smooth textile with a dense, even pile that gives it a luxurious, slightly shiny appearance.", + "Velvet fabric has a soft, dense pile with a smooth, shiny surface that reflects light differently from other fabrics." + ], + "vending machine": [ + "A vending machine is a tall rectangular box with buttons, a display, and a slot to dispense items like snacks or drinks.", + "Vending machines are typically rectangular with a glass front displaying items and buttons or a keypad for selection.", + "A vending machine is a tall rectangular box with a glass front displaying items and buttons or a touchscreen for selection.", + "Vending machines are boxy with a front panel displaying products, buttons, a coin slot, and a dispensing tray at the bottom." + ], + "vestment": [ + "Vestments are distinguished by their flowing fabric, ornate designs, and ceremonial appearance often associated with religious or formal rituals.", + "Vestments are ceremonial robes or garments, often ornate and flowing, typically worn by clergy during religious services or rituals.", + "Vestments are long flowing robes with intricate designs, often in religious contexts, unlike everyday clothing or plain garments.", + "Vestments are long flowing garments often with intricate designs and rich fabrics worn by clergy during religious ceremonies." + ], + "viaduct": [ + "A viaduct is a long elevated bridge with multiple arches or spans, unlike shorter or simpler bridges or non-elevated structures.", + "A viaduct is a long elevated bridge with multiple arches or spans, typically carrying roads or railways over valleys or other obstacles.", + "A viaduct is a long elevated bridge with multiple arches or spans, often carrying roads or railways over valleys or other obstacles.", + "A viaduct is recognized by its long elevated structure with multiple arches or spans carrying roads or railways over valleys or obstacles." + ], + "violin": [ + "A violin is a wooden string instrument with an hourglass shape, a long neck, and four strings played with a bow.", + "A violin has a slender wooden body with curved sides, strings, and a neck, unlike bulkier or differently shaped objects.", + "The violin has a distinctive hourglass shape with a narrow waist and curved sides unlike most other objects.", + "A violin has a hollow wooden body with an hourglass shape, four strings, a long neck, and is played with a bow." + ], + "volleyball": [ + "A volleyball is a round white ball with black or colored panels and stitching, slightly larger than a basketball.", + "A volleyball is a spherical ball with white, hexagonal and pentagonal panels often seen in mid-air during a game.", + "Volleyballs are round with a smooth or pebbled surface and often have colorful panels or stripes unlike other sports balls.", + "A volleyball is a round white ball with black or colored panels arranged in a symmetrical pattern." + ], + "waffle iron": [ + "A waffle iron is a metal kitchen appliance with two hinged plates that create a grid pattern on cooked waffles.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create textured waffles when heated.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create waffles unlike flat pans or smooth appliances.", + "A waffle iron has a hinged metal griddle with deep square or honeycomb patterns to create the distinct waffle shape." + ], + "wall clock": [ + "A wall clock is round or square with numbers or marks and hands or a digital display on a flat surface.", + "Wall clocks are flat round or square objects with numbers and hands mounted on walls unlike other clocks or decorative items.", + "A wall clock is a round or square object with numbers and hands, hanging on a wall to show time.", + "A wall clock has a circular face with numbers or marks and moving hands to indicate time mounted on a wall." + ], + "wallet": [ + "Wallets are small flat pouches typically made of leather or fabric designed to hold money and cards unlike bulkier bags or containers.", + "A wallet is a small flat case typically made of leather or fabric used to hold money cards and personal items.", + "A wallet is a small flat rectangular pouch often made of leather or fabric with slots for cards and cash.", + "Wallets are small flat rectangular objects often made of leather or fabric with slots for cards and a foldable design." + ], + "wardrobe": [ + "A wardrobe is a tall rectangular furniture piece with doors, often wooden, used for storing clothes and other items.", + "A wardrobe is a tall wooden cabinet with doors and shelves used for storing clothes and other personal items.", + "A wardrobe is a tall freestanding closet with doors and shelves for storing clothes unlike smaller or open storage furniture.", + "A wardrobe is a tall rectangular furniture piece with doors, shelves, and often mirrors, used for storing clothes and other items." + ], + "military aircraft": [ + "Military aircraft have sleek streamlined bodies wings mounted low or high and often display camouflage or military markings like stars or roundels.", + "Military aircraft typically have sleek streamlined bodies wings and tails with camouflage or gray coloring and visible weapon mounts or insignia.", + "Military aircraft are large winged vehicles with sleek designs often featuring camouflage colors and visible weaponry or insignia.", + "Military aircraft have sleek angular designs, camouflage colors, visible weaponry, and distinct insignias for quick identification in combat scenarios." + ], + "sink": [ + "A sink is typically a basin with faucets and drains often made of porcelain metal or ceramic found in kitchens or bathrooms.", + "A sink is a basin with faucets for washing, typically made of porcelain or stainless steel, often found in kitchens or bathrooms.", + "Sinks typically have a basin and faucet, unlike other objects which lack water fixtures and drainage features.", + "A sink has a basin with a faucet and drain, often set in a countertop or wall, used for washing hands or dishes." + ], + "washing machine": [ + "Washing machines are large rectangular appliances with round doors and control panels often found in laundry rooms or kitchens.", + "Washing machines are typically large rectangular appliances with round doors and control panels unlike most other household objects.", + "A washing machine is a large rectangular appliance with a round door on the front and control buttons or dials on top.", + "A washing machine has a large round door on its front for loading clothes unlike other appliances." + ], + "water bottle": [ + "Water bottles are typically cylindrical with a cap, often transparent or colored, and have a narrow neck for drinking.", + "A water bottle is typically a tall cylindrical container with a narrow neck and cap often made of plastic or metal.", + "A water bottle is typically a cylindrical or curved container with a narrow neck and often has a cap or lid.", + "Water bottles are typically cylindrical with a cap and made of clear or colored plastic or metal, unlike other objects." + ], + "water jug": [ + "A water jug typically has a distinct handle and a spout for pouring liquids.", + "A water jug typically has a handle and a spout for pouring, unlike bottles or cups which lack one or both features.", + "A water jug is a tall container with a handle and a spout, typically made of plastic, metal, or ceramic for holding liquids.", + "A water jug typically has a handle, a spout, and a rounded body designed for pouring and holding liquids." + ], + "water tower": [ + "Water towers are tall cylindrical or spherical structures on stilts, distinct from buildings or tanks by their elevated design and large water storage capacity.", + "A water tower is a tall cylindrical or spherical structure on stilts that stores and distributes water for a community.", + "A water tower is a tall cylindrical or spherical structure on stilts holding a large tank for storing water.", + "A water tower has a large elevated tank on tall supports to store and distribute water under pressure." + ], + "whiskey jug": [ + "A whiskey jug is typically a rounded ceramic or glass container with a narrow neck, handle, and often a cork or stopper.", + "A whiskey jug is a stout ceramic or glass container with a narrow neck and handle, often brown or amber in color.", + "A whiskey jug typically has a rounded body with a narrow neck and a handle for easy pouring.", + "A whiskey jug typically has a rounded body with a narrow neck and handle, often made of ceramic or glass." + ], + "whistle": [ + "A whistle is a small metal or plastic tube with a hole to blow into and a curved end for sound.", + "A whistle has a small hole for blowing air to create sound unlike most other objects.", + "A whistle is a small tube-shaped object with a mouthpiece and holes designed to produce a high-pitched sound when blown.", + "A whistle is typically small, tubular, with a mouthpiece and holes, often metallic or plastic and easy to hold." + ], + "hair wig": [ + "Hair wigs can be identified by their uniform strands unnatural sheen and often perfect styling unlike natural hair growth.", + "Hair wigs have uniform texture synthetic or natural strands arranged densely mimicking real hair often with a visible base or cap.", + "A hair wig resembles a head of artificial hair designed to mimic natural hairstyles, often made from synthetic fibers or real hair.", + "Hair wigs mimic natural hair with strands and scalp-like bases while other objects lack these realistic hair texture and attachment features." + ], + "window screen": [ + "A window screen is a fine mesh grid, usually metal or fiberglass, stretched tightly over a frame to cover a window opening.", + "A window screen is a flat mesh panel with a fine grid pattern designed to fit inside a window frame.", + "Window screens are recognized by their fine mesh grid pattern and rectangular frames often seen in windows for ventilation and insect protection.", + "Window screens are thin mesh grids with small holes, unlike solid or transparent objects like glass or curtains." + ], + "window shade": [ + "Window shades are flat, flexible panels or rolls of fabric or material designed to cover windows, unlike rigid or solid objects.", + "A window shade is a flat, rectangular panel or roll of fabric or material that covers a window to block light.", + "A window shade is a flat, rectangular fabric or material panel that rolls or folds to cover windows.", + "Window shades are recognized by their flat, rectangular shape, often with horizontal or vertical lines, and they hang over windows to block light." + ], + "Windsor tie": [ + "A Windsor tie is a sleek narrow necktie with a symmetrical triangular knot typically made of silk or polyester.", + "A Windsor tie is a necktie with a wide triangular knot, typically symmetrical and thick, made from silk or other fine fabrics.", + "A Windsor tie is a narrow, long, and patterned fabric strip worn around the neck, unlike broader or differently shaped accessories.", + "The Windsor tie has a wide triangular knot that is symmetrical and thicker than other tie knots." + ], + "wine bottle": [ + "A wine bottle is a tall glass container with a narrow neck and often has a label and cork or screw cap.", + "Wine bottles have a tall slender shape with a narrow neck and are often labeled with colorful designs or brand logos.", + "Look for a tall glass container with a narrow neck and a label often featuring vineyard or brand details.", + "Wine bottles are typically tall and slender with a narrow neck and often have labels or colored glass unlike most other objects." + ], + "airplane wing": [ + "An airplane wing is a long flat surface with a curved top and straight edges designed to lift and stabilize the aircraft.", + "Airplane wings are long flat and tapered with smooth surfaces while other objects vary in shape texture and size.", + "Airplane wings are long flat surfaces with smooth curves attached to the fuselage often seen with flaps or engines underneath.", + "An airplane wing has a long, tapered flat surface with a curved top and straight bottom for lift." + ], + "wok": [ + "A wok is a deep round-bottomed cooking pan with high sloping sides and typically made of metal.", + "A wok has a deep round shape with high sloping sides and a small flat bottom used for stir frying.", + "A wok is a deep round-bottomed cooking pan with high sloping sides often made of metal used for stir-frying.", + "A wok has a deep round bowl with high sloping sides and a small flat bottom unlike flatter or straighter pans." + ], + "wooden spoon": [ + "A wooden spoon is a smooth, light brown utensil with a long handle and a shallow oval or round bowl.", + "Wooden spoons have a long handle and a shallow oval bowl made of smooth unfinished wood with no sharp edges.", + "A wooden spoon has a long handle and a flat oval head made of smooth light brown wood with no shiny or metallic parts.", + "Wooden spoons have a long handle and a wide shallow bowl made of smooth unfinished wood with a simple rounded or oval shape." + ], + "wool": [ + "Wool has a soft, fuzzy texture with fine, curly fibers that often appear matted or slightly shiny in natural light.", + "Wool has a soft, fuzzy texture with fine, curly fibers, unlike smoother or more rigid materials like cotton or synthetic fabrics.", + "Wool has a distinctive fuzzy and slightly tangled texture with fine, soft fibers that appear matted or slightly curly.", + "Wool looks soft, fuzzy, and slightly textured with a matte finish, often appearing in natural white or dyed colors." + ], + "split-rail fence": [ + "Split-rail fences are recognized by their horizontal wooden rails stacked in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally without nails, unlike smooth or metal fences with uniform construction.", + "A split-rail fence consists of rough wooden logs stacked horizontally in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally between upright posts, creating a simple rustic barrier." + ], + "shipwreck": [ + "Shipwrecks are broken, sunken, or partially submerged vessels with rust, barnacles, and visible damage unlike intact floating ships or boats.", + "Shipwrecks are partially submerged broken ships with rusted hulls often surrounded by debris in water.", + "A shipwreck appears as a broken, sunken vessel often covered in rust, seaweed, and sand, lying underwater or washed ashore.", + "Shipwrecks appear as broken, sunken, or rusted ship parts often covered in seaweed or coral underwater or on shores." + ], + "sailboat": [ + "A sailboat is a slender watercraft with tall masts and large fabric sails that catch the wind to propel it forward.", + "Sailboats have tall masts with sails, a hull floating on water, and are often seen in open water or marinas.", + "Sailboats have tall masts with sails and are usually on water unlike other objects which lack these features and settings.", + "Sailboats have tall masts with sails, a hull that floats on water, and are often seen in coastal or open water settings." + ], + "yurt": [ + "A yurt is a round, portable tent with a domed roof, often made of felt or fabric over a wooden frame.", + "A yurt is a round, tent-like structure with a conical roof, often made of fabric or felt over a wooden frame.", + "A yurt has a distinctive circular lattice wall structure supporting a conical roof made of felt or skins.", + "A yurt is recognized by its round shape, domed roof, and lattice walls often covered with felt or fabric." + ], + "website": [ + "Websites are digital pages with text and images displayed on screens unlike physical objects which have tangible shapes and textures.", + "Websites are recognized by their rectangular screens displaying text images and interactive elements like buttons and menus.", + "Websites appear as screens displaying text, images, and interactive elements on devices like computers, phones, or tablets.", + "Websites appear as rectangular screens displaying text images and interactive elements on digital devices like computers or phones." + ], + "comic book": [ + "Comic books are colorful flat printed pages with illustrated panels and text bubbles unlike three-dimensional everyday objects.", + "Comic books have colorful illustrated covers with bold outlines, speech bubbles, and often display superheroes or action scenes.", + "A comic book is a colorful printed booklet with illustrated panels, speech bubbles, and glossy pages featuring superheroes or stories.", + "Comic books have distinct speech bubbles and panel layouts that set them apart from other printed materials." + ], + "crossword": [ + "A crossword appears as a grid of black and white squares with numbered clues typically found in newspapers or puzzle books.", + "Crosswords are flat grids with black and white squares containing letters, unlike solid objects with varied shapes and colors.", + "Crosswords have a grid of black and white squares with letters forming intersecting words in horizontal and vertical directions.", + "Crosswords appear as grid patterns with black and white squares containing small letters arranged in intersecting horizontal and vertical lines." + ], + "traffic or street sign": [ + "Traffic or street signs are flat, often metal, with bold colors and simple symbols or text for clear visibility.", + "Traffic signs have bold colors simple shapes clear symbols and standardized designs making them easily recognizable from other objects.", + "Traffic signs are typically flat, colorful, and have bold symbols or text on a high-contrast background for easy visibility.", + "Traffic signs have bold colors simple shapes and clear symbols unlike natural or complex man made objects." + ], + "traffic light": [ + "Traffic lights are recognized by their colored circular lights arranged vertically or horizontally on rectangular or pole-mounted structures.", + "Traffic lights are distinct with their colored circular lights arranged vertically or horizontally on a rectangular or pole-mounted box.", + "Traffic lights are identified by their rectangular or circular shape, bright colors red yellow green, and mounted on poles or overhead structures.", + "Traffic lights uniquely have three vertically or horizontally stacked colored circles or rectangles signaling stop, wait, and go." + ], + "dust jacket": [ + "A dust jacket is a removable paper cover with printed designs and text, often glossy and folded around a book's spine.", + "A dust jacket is a removable paper cover with printed designs and text, unlike solid objects like books or furniture.", + "A dust jacket is a removable paper cover on a book, often colorful with designs, titles, and author names.", + "A dust jacket is a removable paper cover on a book, often colorful with text and images, protecting the hardcover beneath." + ], + "menu": [ + "A menu is typically a printed or digital list of food and drink options often found in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images, often held or placed on tables, unlike three-dimensional objects like plates or cups.", + "Menus are flat rectangular sheets with text and images often held or placed on tables in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images often held in hands or placed on tables in dining settings." + ], + "plate": [ + "A plate is flat, round or oval, usually with a raised edge, and comes in various colors and simple patterns.", + "A plate is a flat round dish typically made of ceramic or metal used for serving food.", + "Plates are flat, round, and usually smooth with a raised edge, unlike bowls which are deeper or utensils which are not flat.", + "Plates are flat, round or oval, often with raised edges and simple patterns, used for serving or displaying food." + ], + "guacamole": [ + "Guacamole is a creamy green dip made from avocados, often with visible chunks, unlike solid foods or liquids.", + "Guacamole is a creamy green dip with a slightly chunky texture often served in a bowl with visible avocado pieces.", + "Guacamole is a creamy green dip made from mashed avocados often served in a bowl with chunks of vegetables or chips.", + "Guacamole is recognized by its creamy green texture with visible chunks of avocado often mixed with lime cilantro and onions." + ], + "consomme": [ + "Consomme is a clear, golden-brown liquid, unlike thicker soups or solid foods, with no visible chunks or particles.", + "Consomme is a clear, light-colored broth with no visible solids, appearing as a thin, translucent liquid in a bowl.", + "Consomme is a clear, golden broth often served in a bowl with minimal solid ingredients.", + "Consomme is a clear, golden broth with no solids, often served in a bowl with a shallow depth and light reflection." + ], + "hot pot": [ + "Hot pot is a large metal pot with boiling broth and ingredients inside, unlike other objects which are usually solid and not cooking vessels.", + "Hot pot is recognized by a simmering pot of broth surrounded by raw ingredients like meats, vegetables, and dipping sauces.", + "Hot pot is a large metal pot filled with boiling broth surrounded by plates of raw meats and vegetables for cooking.", + "A hot pot is a large metal pot with boiling broth and visible ingredients like meat vegetables and noodles inside." + ], + "trifle": [ + "A trifle is a layered dessert with colorful sponge cake fruit custard and cream often in a clear glass dish.", + "Trifle is a layered dessert with colorful ingredients like fruit custard cream and cake visible in clear glass bowls.", + "A trifle is a colorful layered dessert with sponge cake custard fruit jelly and cream often in a glass bowl.", + "Trifle is recognized by its layered appearance with colorful sponge cake fruit custard cream and often topped with whipped cream or nuts." + ], + "ice cream": [ + "Ice cream is identified by its creamy, soft texture, bright colors, and often served in cones or cups with toppings.", + "Ice cream has a soft, creamy texture, often served in cones or cups, with colorful scoops or swirls and sometimes toppings.", + "Ice cream is a colorful, creamy dessert often served in cones or cups with various toppings and swirls.", + "Ice cream is typically smooth, creamy, and served in cones or cups, often with visible swirls or layers, unlike harder or solid objects." + ], + "popsicle": [ + "Popsicles are colorful frozen treats on sticks with smooth icy surfaces unlike fruits or desserts which are often soft or textured.", + "Popsicles are colorful rectangular or oval frozen treats on sticks with smooth icy surfaces and often fruit bits visible.", + "A popsicle is a colorful frozen treat on a stick with a smooth icy texture and various fruity or creamy flavors.", + "Popsicles are recognized by their stick handle colorful icy rectangular shape and often dripping melted edges." + ], + "baguette": [ + "A baguette is a long thin loaf of French bread with a crispy crust and soft interior.", + "A baguette is a long thin loaf of French bread with a golden brown crust and diagonal slashes on top.", + "A baguette is long, thin, and crusty with a golden-brown color, unlike shorter, softer, or differently shaped breads and objects.", + "A baguette is recognized by its long slender shape golden brown crust and distinctive diagonal slashes on the surface." + ], + "bagel": [ + "A bagel is a round bread with a hole in the center, typically golden brown with a chewy texture and smooth surface.", + "A bagel is a round bread with a dense chewy interior and a golden brown crust often topped with seeds or grains.", + "Bagels are round with a hole in the middle and have a shiny crust unlike most breads or pastries.", + "A bagel has a round shape with a hole in the center and a shiny, chewy crust often topped with seeds or grains." + ], + "pretzel": [ + "Pretzels are twisted knot-shaped baked goods with a golden-brown crust, unlike straight or round breads and snacks.", + "Pretzels are twisted knot shaped baked goods with a golden brown crust and a smooth shiny surface.", + "Pretzels have a distinctive twisted knot shape with a glossy brown surface from baking.", + "A pretzel is a twisted knot-shaped baked good with a golden brown crust and a smooth shiny surface." + ], + "cheeseburger": [ + "A cheeseburger has layered ingredients like a bun patty cheese and toppings often with melted cheese visible between the bun halves.", + "A cheeseburger has a bun, melted cheese, and visible meat patty, unlike most objects which lack these layered food components.", + "A cheeseburger is a round sandwich with a beef patty melted cheese lettuce tomato and condiments between two buns.", + "A cheeseburger has a melted cheese layer visibly oozing between a beef patty and bun, distinguishing it from other sandwiches." + ], + "hot dog": [ + "A hot dog is a long thin sausage in a soft bun often topped with mustard ketchup or relish.", + "Hot dogs are long cylindrical meat rolls with a smooth texture typically served in a split bun.", + "A hot dog is a long thin bun with a smooth sausage inside often topped with condiments like mustard or ketchup.", + "Hot dogs are long cylindrical meat pieces in a bun, distinct from similar foods by their uniform shape and smooth texture." + ], + "mashed potatoes": [ + "Mashed potatoes are soft, creamy, and lumpy with a pale white or yellow color unlike most solid or textured foods.", + "Mashed potatoes have a soft lumpy texture with a creamy white color and no distinct individual shapes.", + "Mashed potatoes have a smooth creamy texture with soft lumps and a pale white or yellowish color often served in a bowl.", + "Mashed potatoes look like a soft creamy pile with a smooth or slightly lumpy texture and a pale white or yellowish color." + ], + "cabbage": [ + "Cabbages are round leafy vegetables with tightly packed layers of thick green or purple leaves forming a dense head.", + "Cabbage is round with tightly packed thick green or purple leaves forming a dense layered head on a short stem.", + "Cabbages have round, layered green or purple leaves forming a dense head, unlike most vegetables which are smaller or less tightly packed.", + "Cabbages have round layered leaves with a dense center and a smooth waxy texture in shades of green or purple." + ], + "broccoli": [ + "Broccoli is a green vegetable with a thick stem and a bushy top made of small, tightly packed florets.", + "Broccoli has a green clustered head with small florets and a thick edible stalk unlike smoother or differently shaped vegetables.", + "Broccoli has a green tree-like shape with a thick stalk and dense clusters of small bumpy florets on top.", + "Broccoli has a unique cluster of small green florets forming a tree-like shape on thick edible stalks." + ], + "cauliflower": [ + "Cauliflower is a white, round vegetable with a bumpy, textured surface made up of many small, tightly packed florets.", + "Cauliflower is a white, round, bumpy vegetable with thick green leaves at the base.", + "Cauliflower has a white, bumpy, rounded head with green leaves at the base, unlike smoother or differently colored vegetables.", + "Cauliflower has a unique bumpy white head made of tightly packed flower buds called curds." + ], + "zucchini": [ + "Zucchini is a long green vegetable with smooth skin while similar objects vary in color shape texture or are non vegetable items.", + "A zucchini is a long green cylindrical vegetable with smooth skin and slightly tapered ends resembling a cucumber.", + "Zucchini are long green cylindrical vegetables with smooth skin and slightly tapered ends resembling cucumbers but usually larger.", + "Zucchini has a long cylindrical shape with smooth dark green skin and subtle lighter green stripes." + ], + "spaghetti squash": [ + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oblong vegetable with stringy flesh resembling spaghetti when cooked unlike other squash types.", + "Spaghetti squash has a yellow oblong shape with stringy flesh resembling spaghetti when cooked." + ], + "acorn squash": [ + "Acorn squash is small, dark green, ribbed, and oval-shaped, unlike smoother or differently colored squashes and other round fruits or vegetables.", + "Acorn squash is a small, dark green, ribbed, oval-shaped winter squash with a distinctive acorn-like shape and yellow-orange flesh inside.", + "Acorn squash has a distinctive ridged dark green skin with a teardrop shape and often a patch of orange or yellow.", + "Acorn squash is small, dark green with ridges, shaped like an acorn, and has orange-yellow flesh inside." + ], + "butternut squash": [ + "Butternut squash has a distinctive elongated pear shape with a smooth tan skin and bulbous bottom.", + "Butternut squash has a long tan neck, bulbous orange base, and smooth skin with subtle ridges.", + "Butternut squash is a long tan-colored gourd with a bulbous end and smooth skin resembling a large pear.", + "Butternut squash has a smooth tan skin, elongated pear shape, and orange flesh inside." + ], + "cucumber": [ + "A cucumber is a long green vegetable with smooth skin and tapered ends resembling a zucchini but more slender and uniform.", + "Cucumbers are long, green, cylindrical vegetables with smooth skin and tapered ends, often darker at the stem.", + "Cucumbers are long green cylindrical vegetables with smooth skin while similar objects vary in color shape texture or size.", + "Cucumbers are recognized by their long green cylindrical shape smooth skin and small bumps with tapered ends." + ], + "artichoke": [ + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, slightly spiky base.", + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, spiky base.", + "Artichokes have a round green head with layered pointed scales and a thick stem.", + "Artichokes have layered green leaves with a spiky top and a round shape unlike most vegetables which are smoother and simpler." + ], + "bell pepper": [ + "A bell pepper is a colorful, glossy, and blocky vegetable with a smooth skin and a hollow interior containing seeds.", + "Bell peppers have a glossy, smooth skin with distinct ridges and a vibrant color ranging from green to red or yellow.", + "Bell peppers are shiny, smooth, and blocky with distinct ridges, unlike most fruits which are round or irregularly shaped.", + "Bell peppers are shiny, smooth, and come in vibrant colors like green, red, or yellow with a distinct blocky shape." + ], + "cardoon": [ + "A cardoon looks like a large thistle with silvery green leaves and tall stalks resembling celery or artichoke plants.", + "Cardoon has large, spiny, silvery-green leaves and tall flower stalks, unlike most vegetables which are smaller and less prickly.", + "Cardoon has large spiny silvery green leaves and thistle like purple flowers with a tall branching stem structure.", + "Cardoon looks like a large thistle with silvery green spiky leaves and purple flowers resembling an artichoke." + ], + "mushroom": [ + "Mushrooms typically have a rounded cap atop a slender stem often found in earthy colors like brown white or tan.", + "Mushrooms have a distinct cap and stem unlike plants or animals which have leaves branches or fur and limbs.", + "Mushrooms have a distinct cap and stem shape with gills or pores underneath and often grow in clusters on organic matter.", + "Mushrooms have a distinct umbrella-shaped cap with gills or pores underneath and a stem." + ], + "Granny Smith apple": [ + "A Granny Smith apple is a bright green round fruit with a smooth shiny skin and a slightly tart crisp flesh.", + "Granny Smith apples are bright green, round, and smooth with a shiny skin, unlike other fruits which vary in color and texture.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small dimple at the base.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small size." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny seeds on their surface and green leafy tops unlike other smooth or differently shaped objects.", + "Strawberries are recognized by their bright red color small seeds on the surface and green leafy tops.", + "Strawberries are small red fruits with green leafy tops and tiny yellow seeds covering their bumpy textured surface.", + "Strawberries are small red heart-shaped fruits with tiny yellow seeds on their surface and green leafy tops." + ], + "orange": [ + "Look for round or oval shapes with bright reddish-yellow color and smooth shiny skin like a typical orange fruit.", + "Oranges are round with a bright orange peel while similar objects vary in color shape and texture.", + "The vibrant reddish-yellow hue of orange is distinct and not commonly found in other natural objects.", + "Oranges are round with bright orange skin, a slightly bumpy texture, and often have a small green stem attached." + ], + "lemon": [ + "Lemons are bright yellow oval fruits with a textured peel and a distinctive sour taste often used in cooking and beverages.", + "Lemons are bright yellow oval fruits with a smooth shiny skin and a slightly tapered shape at both ends.", + "Lemons are bright yellow oval fruits with a textured peel unlike most other fruits which vary in color shape and skin texture.", + "A lemon is a bright yellow oval fruit with a smooth or slightly textured peel and a tapered shape at both ends." + ], + "fig": [ + "Figs have a distinctive teardrop shape with a small opening at the top and a textured skin covered in fine wrinkles.", + "A fig is a soft pear-shaped fruit with smooth skin, green or purple, containing tiny edible seeds inside sweet red flesh.", + "Figs are small pear-shaped fruits with smooth or slightly wrinkled skin in shades of green purple or black and soft sweet flesh inside.", + "Figs are recognized by their teardrop shape, wrinkled purple or green skin, and soft red interior with tiny edible seeds." + ], + "pineapple": [ + "A pineapple is a large tropical fruit with a rough spiky skin and a crown of green leaves on top.", + "Pineapples have a spiky green crown, rough brown-yellow skin, and oval shape unlike most smooth round fruits.", + "Pineapples have a distinctive spiky green crown and rough diamond-patterned yellow skin unlike any other fruit or object.", + "A pineapple has a rough spiky green crown, yellow-brown scaly skin, and a cylindrical shape with a sweet juicy interior." + ], + "banana": [ + "A banana is a long curved yellow fruit with a smooth peel and soft flesh, often found in bunches.", + "Bananas are long curved yellow fruits with smooth skin unlike most objects which vary widely in shape color and texture.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects." + ], + "jackfruit": [ + "Jackfruit has a distinctive bumpy green or yellow outer skin with large spiky protrusions unlike any other fruit or object.", + "Jackfruit has a large spiky green exterior with a bumpy texture and a sweet smell when ripe.", + "Jackfruit is large, bumpy, and greenish-yellow with a spiky exterior, unlike smoother or differently shaped fruits and objects.", + "Jackfruit is large, green, and spiky with a bumpy texture, often growing directly from the tree trunk." + ], + "cherimoya (custard apple)": [ + "Cherimoya has green scaly skin with a heart shape and soft creamy flesh unlike smoother skinned or differently textured fruits.", + "The cherimoya is a green heart-shaped fruit with bumpy scaly skin and creamy white flesh inside.", + "The cherimoya has a green scaly or bumpy skin with heart-shaped form and creamy segmented flesh inside.", + "Cherimoya has green scaly skin with heart-shaped bumps and creamy white flesh with large black seeds inside." + ], + "pomegranate": [ + "A pomegranate is a round red fruit with a thick leathery skin and a crown-like calyx at the top.", + "A pomegranate is a round red fruit with a tough outer rind and clusters of juicy red seeds inside.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx unlike most other fruits.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx at the top." + ], + "hay": [ + "Hay is a dry, golden, and fibrous plant material, often bundled or loose, while other objects vary widely in texture, color, and shape.", + "Hay is a dry, golden or light brown, fibrous plant material often bundled or scattered in loose strands.", + "Hay has a light golden color and a rough, dry texture with long, thin strands often bundled or loosely scattered.", + "Hay is dry, golden or light brown, and looks like thin, tangled grass stems often bundled or stacked loosely." + ], + "carbonara": [ + "Carbonara has a creamy white sauce with pasta strands mixed with bits of meat and black pepper, unlike plainer pasta dishes.", + "Carbonara is a creamy pasta dish with white sauce, often topped with crispy bacon bits and grated cheese.", + "Carbonara is a creamy pasta dish with spaghetti eggs cheese pancetta and black pepper often topped with grated cheese.", + "Carbonara features creamy egg sauce, spaghetti, crispy pancetta or guanciale, black pepper, and grated cheese like Pecorino or Parmesan." + ], + "chocolate syrup": [ + "Chocolate syrup is a thick dark liquid with a smooth glossy texture unlike solid or powdery foods.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled over desserts.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled on foods.", + "Chocolate syrup has a thick, glossy, dark brown liquid appearance with a smooth, flowing texture that drips in viscous strands." + ], + "dough": [ + "Dough is a soft, pliable mixture of flour and liquid, often pale and slightly sticky, resembling thick paste or clay.", + "Dough is soft, pliable, and often pale or beige, unlike harder, shaped, or colored objects like bread or baked goods.", + "Dough is soft, pale, and malleable with a smooth or slightly textured surface, often shaped into lumps or flattened pieces.", + "Dough is soft, pale, and slightly lumpy with a smooth yet sticky texture often shaped into balls or flattened pieces." + ], + "meatloaf": [ + "Meatloaf is a dense, loaf-shaped cooked ground meat dish with a browned exterior, unlike other foods which vary in shape and texture.", + "Meatloaf looks like a dense, rectangular or oval-shaped loaf of ground meat, often brown with a slightly crispy outer layer.", + "Meatloaf has a distinctive textured brown crust covering a dense loaf-shaped interior made of ground meat.", + "Meatloaf looks like a dense rectangular loaf of cooked ground meat with a browned crust on top." + ], + "pizza": [ + "Pizza is recognized by its round flat shape melted cheese toppings and crust often sliced into triangular pieces.", + "Pizza is flat and round with melted cheese and toppings while other objects vary in shape texture and ingredients.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings like meats or vegetables.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings often sliced into triangular pieces." + ], + "pot pie": [ + "A pot pie is recognized by its golden-brown crust with a flaky texture covering a savory filling in a small round dish.", + "Pot pies have a golden-brown crust covering a filling, distinguishing them from similar dishes with open tops or different textures.", + "Pot pie has a golden-brown flaky crust with visible filling peeking through the top or sides.", + "A pot pie has a golden-brown flaky crust covering a deep dish filled with visible chunks of meat and vegetables." + ], + "burrito": [ + "A burrito is a cylindrical, wrapped food with a soft tortilla exterior, often filled with beans, rice, meat, and cheese.", + "A burrito is a cylindrical wrapped food with visible tortilla folds, unlike similar items which may be flat or unwrapped.", + "A burrito is recognized by its cylindrical shape wrapped in a soft tortilla with visible fillings like beans, rice, and meat.", + "A burrito is a cylindrical wrapped food with visible tortilla edges often filled with beans rice meat and cheese." + ], + "red wine": [ + "Red wine is identified by its deep red or purple color in a clear glass with a smooth liquid surface.", + "Red wine is recognized by its deep red color, glass bottle shape, and often a wine label or cork.", + "Red wine appears as a deep ruby or purple liquid in a glass often with a smooth shimmering surface.", + "Red wine is a deep red or purple liquid typically stored in glass bottles with labels, unlike solid or differently colored objects." + ], + "espresso": [ + "Espresso is a small dark brown liquid in a tiny cup with a light crema layer on top.", + "Espresso is a small dark brown liquid in a tiny cup often with creamy foam on top.", + "Espresso is recognized by its small dark liquid in a tiny cup with creamy foam on top.", + "Espresso is a small dark concentrated coffee served in tiny cups unlike larger lighter brews in bigger mugs." + ], + "tea cup": [ + "A tea cup is a small handle bowl typically made of ceramic or porcelain used for drinking hot beverages.", + "A tea cup typically has a small rounded shape with a handle, unlike mugs which are larger or bowls which lack handles.", + "A tea cup typically has a small rounded shape with a handle and a saucer often made of ceramic or porcelain.", + "A tea cup is small with a handle and a deep round bowl often decorated and made of porcelain or ceramic." + ], + "eggnog": [ + "Eggnog is a creamy, pale yellow liquid often served in glasses or bowls, distinct from solid or non-dairy items.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow or off-white liquid often served in a glass or cup, sometimes with a sprinkle of nutmeg on top." + ], + "mountain": [ + "Mountains are large natural elevations with steep rocky slopes and peaks while other objects are typically smaller and man-made or smoother.", + "Mountains are large natural elevations with steep rocky slopes and peaks often covered in snow or greenery.", + "Mountains are recognized by their large elevated landforms with steep slopes and rugged peaks often covered in snow or vegetation.", + "Mountains are large, rugged landforms with steep slopes and peaks, often covered in snow or greenery, standing tall above surrounding terrain." + ], + "bubble": [ + "Bubbles are round, transparent, and shiny with a thin, fragile surface, unlike most solid or opaque objects.", + "Bubbles are round, transparent, shiny, and often appear in clusters with reflective surfaces and slight color distortions.", + "Bubbles are small, round, transparent spheres filled with air or gas, often shiny and floating in liquid or air.", + "Bubbles are round, transparent, and shiny with smooth surfaces, often reflecting light and appearing to float or cluster together." + ], + "cliff": [ + "Cliffs are steep rock faces with rugged textures and sharp edges, unlike smoother or flatter natural or man-made objects.", + "Cliffs are steep rocky slopes with jagged edges and exposed earth often towering above water or flat land below.", + "A cliff is a steep rock face often found near coasts or mountains with rugged edges and dramatic drops.", + "Cliffs are steep rock faces with sharp vertical drops and rugged textures, often overlooking water or valleys." + ], + "coral reef": [ + "Coral reefs have vibrant colors, intricate branching or mound shapes, and diverse textures from polyps and marine life.", + "A coral reef is a vibrant underwater structure made of colorful, branching corals teeming with diverse marine life.", + "Coral reefs are colorful underwater structures with intricate textures, unlike smoother or simpler shapes of most other objects.", + "Coral reefs are colorful underwater structures with bumpy textures formed by tiny coral polyps often seen in branching or rock-like shapes." + ], + "geyser": [ + "Geysers are tall natural structures that shoot steam and water, unlike static objects like mountains or man-made fountains.", + "Geysers are recognized by their tall steam or water jets erupting from the ground often in natural landscapes.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground." + ], + "lakeshore": [ + "A lakeshore appears as a water edge meeting land, often with gentle slopes, vegetation, and sometimes rocks or sandy beaches.", + "The unique visual cue for lakeshore is the distinct transition between land and calm water with surrounding natural scenery.", + "A lakeshore has water meeting land with natural edges, often surrounded by trees, rocks, or sand, creating a distinct boundary.", + "A lakeshore is a gently sloping land with water edges, often featuring sand, rocks, or vegetation blending into the lake." + ], + "promontory": [ + "A promontory is a high point of land jutting sharply into a body of water, unlike flat shores or rounded hills.", + "A promontory is recognized by its high, steep cliff or headland jutting sharply into a body of water or land.", + "A promontory is a high point of land or rock jutting sharply outward into a body of water, often with steep cliffs.", + "A promontory is a high cliff or headland jutting into a large body of water, often rocky and steep." + ], + "sandbar": [ + "A sandbar is a long narrow sandy ridge or shoal slightly submerged or exposed in shallow water near a shore.", + "A sandbar is a long narrow strip of sandy land rising above water often found near coasts or in shallow rivers.", + "A sandbar is a long narrow strip of sandy land in water while other objects vary in shape material and location.", + "A sandbar appears as a long, narrow strip of sandy or gravelly land slightly above water in a river or along a coast." + ], + "beach": [ + "Beaches are identified by sandy shores, ocean waves, sunny skies, and people relaxing or playing near the water.", + "Beaches have wide stretches of sand or pebbles with water edges unlike other objects which are solid or have defined shapes.", + "The unique visual cue for a beach is the combination of sand and water meeting at a shoreline.", + "A beach typically features sand, waves, shorelines, and sunny skies, often with people, umbrellas, or boats nearby." + ], + "valley": [ + "A valley is recognized by its low land between hills or mountains often with a river or stream running through it.", + "A valley is a low area between hills or mountains often with a river running through it surrounded by slopes.", + "Valleys are long low areas between hills or mountains, often with a river, unlike flat plains or isolated peaks.", + "Valleys appear as long low areas between hills or mountains often with rivers or greenery running through them." + ], + "volcano": [ + "Volcanoes are large mountain-like structures with craters that often emit smoke or lava unlike regular mountains or hills.", + "A volcano is a towering mountain with a crater at the top that erupts lava ash and smoke.", + "A volcano is a mountain with a crater at the top often emitting smoke lava or ash distinguishing it from other landforms.", + "A volcano has a conical shape with a crater at the top, often emitting smoke or lava, surrounded by rugged terrain." + ], + "baseball player": [ + "Baseball players wear uniforms with caps gloves and cleats and hold bats or gloves unlike most everyday objects or animals.", + "Baseball players wear uniforms with gloves and caps while holding bats or standing on a field ready to play.", + "A baseball player wears a uniform, cap, and glove, often holding a bat or standing on a field ready to play.", + "Baseball players wear caps, jerseys, and gloves while holding bats or standing on a field with cleats and protective gear." + ], + "bridegroom": [ + "A bridegroom is a well-dressed man in formal attire, often wearing a suit or tuxedo, standing beside the bride at a wedding.", + "A bridegroom typically wears formal attire like a suit or tuxedo often with a boutonniere distinguishing him from everyday clothing.", + "A bridegroom typically wears a formal suit or tuxedo, often with a boutonniere, and stands beside a bride in wedding attire.", + "A bridegroom typically wears a formal suit or tuxedo often with a boutonniere and stands beside a bride in wedding attire." + ], + "scuba diver": [ + "Scuba divers wear full-body wetsuits, masks, fins, and oxygen tanks unlike most objects which lack such complex human gear.", + "A scuba diver wears a wetsuit, fins, mask, and oxygen tank while submerged in water.", + "Scuba divers wear distinctive masks, fins, and oxygen tanks while submerged in water, often surrounded by bubbles and marine life.", + "A scuba diver wears a distinctive mask and breathing apparatus while submerged underwater." + ], + "rapeseed": [ + "Rapeseed appears as bright yellow flowering plants with small clustered blooms and green leaves on tall slender stems.", + "Rapeseed has bright yellow flowers and small round seeds, unlike most plants which have varied colors and seed shapes.", + "Rapeseed has bright yellow clustered flowers with four petals and small round seed pods on tall green stems.", + "Rapeseed has bright yellow flowers and small round green pods growing in clusters on tall slender stems." + ], + "daisy": [ + "A daisy is a small white flower with a yellow center and thin petals radiating outward from the middle.", + "Daisies have white petals with a yellow center while similar flowers may have different colors shapes or petal arrangements.", + "Daisies have a bright yellow center surrounded by evenly spaced white petals radiating outward.", + "Daisies have white petals around a yellow center and grow on thin green stems with small narrow leaves." + ], + "yellow lady's slipper": [ + "The yellow lady's slipper is a bright yellow orchid with a large slipper-shaped pouch and twisted greenish-brown petals.", + "The yellow lady's slipper has a distinctive pouch-like petal that resembles a slipper with vibrant yellow color and often red or purple spots.", + "The yellow lady's slipper is a bright yellow orchid with a distinctive pouch-like petal and slender green leaves.", + "Yellow lady's slipper has a unique pouch-like yellow flower with twisted petals unlike most other flowers or objects." + ], + "corn": [ + "Corn is a yellow or multicolored elongated grain with a husk often found in clusters on a thick central stalk.", + "Corn has long yellow kernels in tight rows on a thick cob, unlike most other objects which lack this distinct seed arrangement.", + "Corn can be identified by its long green husks covering yellow kernels arranged in tight rows on a thick central cob.", + "Corn has long yellow kernels arranged in tight rows on a thick central cob surrounded by green husks." + ], + "acorn": [ + "An acorn is a small brown nut with a smooth cap, often found on oak trees and the forest floor.", + "Acorns are small, oval, brown nuts with a smooth or slightly rough texture and a distinctive cap, unlike larger or differently shaped seeds.", + "Acorns are small, oval nuts with a smooth, glossy cap and a pointed tip, typically brown and found on oak trees.", + "Acorns are small oval nuts with a smooth shiny brown shell and a rough textured cap on top." + ], + "rose hip": [ + "Rose hips are small round or oval fruits with a bright red or orange color and a dry wrinkled texture unlike smooth petals or leaves.", + "Rose hips are small round or oval red orange fruits with a smooth shiny surface and a dried flower remnant at the tip.", + "Rose hips are small round or oval red-orange fruits with a crown-like sepals remnant at the top.", + "Rose hips are small round or oval red to orange fruits with a crown-like dried flower remnant at the top." + ], + "horse chestnut seed": [ + "Horse chestnut seeds are large, round, shiny brown nuts with a light scar, unlike smaller or differently shaped seeds and nuts.", + "Horse chestnut seeds are recognized by their smooth, shiny brown surface with a large pale scar on one side.", + "A horse chestnut seed is a round, glossy brown nut with a large pale scar on its flat side.", + "The horse chestnut seed has a smooth, shiny brown surface with a distinct light-colored scar resembling an eye." + ], + "coral fungus": [ + "Coral fungus has branching, coral-like structures with many small, delicate, upright fingers or tubes.", + "Coral fungus has branching, coral-like structures with vibrant colors and a clustered, upright growth pattern resembling underwater coral.", + "Coral fungus looks like underwater coral with branching, colorful, and delicate structures but grows on land among plants and trees.", + "Coral fungus looks like underwater coral with branching, colorful, or white clusters growing on the ground or decaying wood." + ], + "agaric": [ + "Agarics are mushrooms with a cap, gills underneath, and a stem, often found in white, brown, or red colors.", + "An agaric is a mushroom with a round cap, gills underneath, and a slender stem, often white or brightly colored.", + "Agarics have a distinct umbrella-shaped cap with gills underneath and a central stem unlike most other fungi or objects.", + "Agarics have a distinctive umbrella-shaped cap with gills underneath and often grow on decaying wood or soil." + ], + "gyromitra": [ + "Gyromitra mushrooms have wrinkled, brain-like caps unlike smooth or gilled caps found on most other mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps with irregular lobes and a reddish-brown color, distinguishing them from smooth-capped mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps, often reddish-brown, and a hollow stem, distinguishing them from other fungi.", + "Gyromitra mushrooms have a distinctive wrinkled brain-like cap unlike other fungi or objects." + ], + "stinkhorn mushroom": [ + "Stinkhorn mushrooms have a phallic shape with a slimy spore mass and a strong foul odor resembling rotting meat.", + "Stinkhorn mushrooms have a distinctive phallic shape with a slimy spore mass and strong odor unlike typical mushrooms or other objects.", + "Stinkhorn mushrooms have a foul-smelling slimy spore mass and a distinctive phallic or lattice-like shape.", + "Stinkhorn mushrooms have a tall, phallic shape with a slimy, smelly tip and often a net-like veil around the base." + ], + "earth star fungus": [ + "Earth star fungi have star-like rays around a central round spore sac, unlike typical mushrooms which lack this distinctive radiating structure.", + "Earth star fungus has a star-like shape with a central round spore sac and pointed rays spreading outward from the base.", + "Earth star fungus has a star-shaped outer layer that splits open to reveal a round spore sac in the center.", + "Earth star fungus looks like a small round puffball with star-like rays spreading outward from the center." + ], + "hen of the woods mushroom": [ + "The hen of the woods mushroom has clustered brownish-gray fronds resembling a ruffled chicken with no distinct cap or stem.", + "The hen of the woods mushroom has a clustered, frilly appearance resembling a brownish-gray rosette, unlike smooth or single-capped mushrooms.", + "The hen of the woods mushroom has tightly clustered, overlapping fronds resembling a ruffled brownish-gray fan growing at tree bases.", + "The hen of the woods mushroom looks like a cluster of brownish-gray ruffled fan-shaped layers growing at the base of trees." + ], + "bolete": [ + "Boletes have thick stems, sponge-like pores underneath their caps, and lack gills unlike many other mushrooms.", + "Boletes are mushrooms with thick stems and sponge-like pores under their caps instead of gills.", + "A bolete is a mushroom with a thick stem and a spongy underside instead of gills often found in forests.", + "Boletes are recognized by their thick stems spongy undersides and lack of gills distinguishing them from other mushrooms." + ], + "corn cob": [ + "A corn cob is a long cylindrical shape with tightly packed yellow kernels, unlike most other objects which vary widely in form and texture.", + "A corn cob is a long cylindrical shape with rows of tightly packed yellow kernels and a green husk when fresh.", + "A corn cob is a long cylindrical object with rows of yellow kernels tightly packed around a central core.", + "Corn cobs have tightly packed rows of yellow kernels attached to a central cylindrical core." + ], + "toilet paper": [ + "Toilet paper is a soft white roll with a cylindrical shape and often has a perforated edge for easy tearing.", + "Toilet paper is a soft white roll with a cylindrical shape and perforated edges unlike most solid or rigid household objects.", + "Toilet paper is a white or lightly colored soft roll with a cylindrical shape and often has a perforated edge.", + "Toilet paper has a tightly rolled cylindrical shape with perforated edges for easy tearing." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetSketch.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetSketch.json new file mode 100644 index 0000000..54723a3 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetSketch.json @@ -0,0 +1,5990 @@ +{ + "tench": [ + "A tench is a freshwater fish with a stout olive-green body, small scales, and a slightly forked tail.", + "Tench are freshwater fish with olive green bodies, small scales, and a thick tail, often found in rivers and lakes.", + "Tench are freshwater fish with olive-green bodies, small scales, and a distinctive barbel near their mouth unlike most other objects.", + "Tench are recognized by their olive-green color, slender body, small scales, and distinctive red eyes." + ], + "goldfish": [ + "Goldfish are small, orange, shiny, and have round bodies with flowing tails, often seen swimming in bowls or ponds.", + "Goldfish are small, orange or gold, shiny, with a plump body, bulging eyes, and flowing tail fins.", + "Goldfish are small, bright orange or red fish with flowing fins, bulging eyes, and a distinct double tail fin.", + "Goldfish are small, brightly colored fish with shiny scales and flowing fins, unlike most objects which lack these aquatic features." + ], + "great white shark": [ + "A great white shark is a large sleek gray predator with a pointed snout sharp teeth and a powerful tail.", + "The great white shark has a distinct pointed snout and large triangular dorsal fin.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, and sharp triangular teeth unlike most other sea creatures.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, pointed snout, and prominent triangular dorsal fin." + ], + "tiger shark": [ + "Tiger sharks have dark vertical stripes on their sides and a blunt snout with a broad, powerful body.", + "A tiger shark has a stout body with dark vertical stripes and a blunt snout resembling a tiger's pattern.", + "Tiger sharks have dark stripes on their backs and a blunt snout unlike most other sharks or sea creatures.", + "Tiger sharks have dark stripes on their backs and sides, a blunt snout, and a large, stocky body with a white underside." + ], + "hammerhead shark": [ + "Hammerhead sharks have a unique T-shaped head with eyes on the sides unlike other sharks or sea creatures.", + "Hammerhead sharks are recognized by their unique T-shaped head with eyes on the ends and a wide flat snout.", + "A hammerhead shark has a unique T-shaped head with eyes on the ends and a grayish body with a white underside.", + "A hammerhead shark has a unique flat T-shaped head with eyes on the sides and a long streamlined gray body." + ], + "electric ray": [ + "An electric ray is a flat rounded fish with a smooth body and a long tail that can generate electric shocks.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs, unlike most fish which are more streamlined and scaly.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs on their undersides for stunning prey.", + "Electric rays have flat bodies with round shapes and visible electric organs on their undersides." + ], + "stingray": [ + "A stingray is a flat diamond-shaped sea creature with a long tail and wide fins resembling a flying underwater kite.", + "Stingrays are flat diamond-shaped sea creatures with long tails and often have a smooth or spiky skin texture.", + "Stingrays have flat diamond-shaped bodies, long tails, and often a spotted or patterned underside for easy recognition.", + "Stingrays have a flat diamond-shaped body with a long thin tail often bearing a venomous spine." + ], + "rooster": [ + "A rooster is a colorful bird with a red comb, wattles, and tail feathers, often standing upright with a proud posture.", + "Roosters have bright combs, long tail feathers, and spurs, unlike hens which are smaller and less colorful.", + "A rooster has a bright red comb and wattle on its head which distinguishes it from other birds and animals.", + "A rooster has a bright red comb on its head, a wattle under its beak, and colorful iridescent feathers." + ], + "hen": [ + "Hens are medium-sized birds with plump bodies, small heads, short beaks, and often have red combs and wattles.", + "Hens have a small head with a beak, plump body, short legs, and often display feathers in brown, white, or black colors.", + "Hens are smaller than turkeys, have shorter tails than peacocks, and lack the colorful plumage of pheasants.", + "A hen is a medium-sized bird with a plump body, short wings, a small head, and a distinctive red comb on top." + ], + "ostrich": [ + "Ostriches are large flightless birds with long necks, legs, and distinctive feathers unlike most animals or objects.", + "Ostriches are large flightless birds with long necks, long legs, and black and white feathers on males.", + "Ostriches have long necks, large eyes, feathery bodies, strong legs, and are the tallest birds with two-toed feet.", + "Ostriches have long bare necks and legs with a large round body covered in fluffy feathers." + ], + "brambling": [ + "A brambling is a small colorful finch with an orange breast black head and white belly often seen in flocks.", + "A brambling is a small bird with an orange chest, black and white wings, and a distinctive white rump patch.", + "The male brambling has a distinctive orange breast and shoulders with black head in breeding season.", + "The brambling has an orange breast, white belly, black head, and white wing patches, distinguishing it from similar birds." + ], + "goldfinch": [ + "A goldfinch is a small bright yellow bird with black wings white markings and a distinctive red face.", + "Goldfinches are recognized by their bright yellow bodies, black wings with white bars, and distinctive red faces.", + "The male goldfinch has bright yellow plumage with striking black and white wing patterns during breeding season.", + "Goldfinches have bright yellow bodies with black wings and white markings, unlike other birds which often lack such vivid color contrasts." + ], + "house finch": [ + "The house finch is a small bird with a red head and chest brown streaks on its back and a conical beak.", + "House finches have streaked brown bodies, red heads and chests on males, and conical beaks suited for eating seeds.", + "A house finch has a red head and chest on males with brown streaks and a plain brown body on females.", + "The house finch has a small body with red or yellow on its head and chest, unlike most other birds and objects." + ], + "junco": [ + "Juncos are small gray or brown birds with white bellies and pink bills, unlike larger or more colorful birds and animals.", + "Juncos are small gray or brown birds with white outer tail feathers and pinkish bills often seen on the ground.", + "A junco is a small gray or brown bird with a white belly and a pinkish beak often seen in North America.", + "Juncos are small gray or brown birds with white bellies and pink bills often seen hopping on the ground." + ], + "indigo bunting": [ + "The indigo bunting is a small bright blue bird with a conical beak and short tail, often found in shrubs or trees.", + "The indigo bunting is a small bright blue bird with a conical bill and darker blue wings and tail.", + "The indigo bunting is a small bright blue bird with a conical beak, unlike most objects which lack such vivid colors and feathers.", + "The male indigo bunting has vibrant blue plumage that appears uniformly bright without any patterns or markings." + ], + "American robin": [ + "The American robin is a medium-sized bird with a reddish-orange breast, gray back, and a white belly with dark streaks.", + "The American robin has a reddish-orange breast, gray back, and white lower belly with dark streaks on its throat.", + "The American robin has a reddish-orange breast, dark gray back, white belly, and a yellow beak.", + "The American robin has a distinctive reddish-orange breast contrasting with its grayish-brown back and white lower belly." + ], + "bulbul": [ + "Bulbuls are small songbirds with short necks, slender bodies, rounded wings, and often have colorful plumage or crests.", + "Bulbul is a small songbird with a slender body, short neck, rounded wings, and often a slightly crested head.", + "Bulbuls are small songbirds with slender bodies, short necks, and often have crests or colorful markings on their heads and tails.", + "Bulbuls are recognized by their small size, short necks, rounded wings, slightly curved beaks, and often crested heads." + ], + "jay": [ + "Jays are colorful birds with blue, white, and black feathers, a crest on their head, and a loud, harsh call.", + "Jays are colorful birds with blue feathers, crests, and white markings, unlike most objects which lack such vibrant and distinct features.", + "A jay is a colorful bird with blue feathers, a crest on its head, and a loud, distinctive call.", + "Jays have striking blue and white plumage with bold black markings and a distinctive crest on their heads." + ], + "magpie": [ + "Magpies are black and white birds with long tails and iridescent feathers that shimmer in shades of blue or green.", + "A magpie is a black and white bird with a long tail and a distinctive chattering call often seen in open areas.", + "Magpies have striking black and white plumage with long tails and iridescent blue-green wing feathers.", + "Magpies have black and white plumage with long tails and a distinctive iridescent sheen unlike most other birds." + ], + "chickadee": [ + "A chickadee is a small round bird with a black cap and bib, white cheeks, and soft gray or brown feathers.", + "Chickadees are small birds with round bodies, black caps, and white cheeks, unlike larger or differently colored birds and objects.", + "Chickadees have a distinctive black cap and bib with white cheeks and a small, round body shape.", + "Chickadees are small birds with black caps and throats, white cheeks, and gray bodies, often seen perched on branches." + ], + "American dipper": [ + "The American dipper is a small grayish-brown bird with a plump body, short tail, and white eyelids, often found near fast-flowing streams.", + "The American dipper is a small gray bird with a plump body, short tail, and white eyelids often seen near fast-flowing streams.", + "The American dipper is a small, stocky gray bird with a short tail, often seen bobbing near fast-flowing streams.", + "The American dipper is recognized by its plump gray body, short tail, and habit of bobbing while standing near fast-flowing streams." + ], + "kite (bird of prey)": [ + "A kite is a medium-sized bird of prey with long wings, a forked tail, and a graceful soaring flight pattern.", + "Look for a medium-sized bird with long pointed wings, a forked tail, and a graceful soaring flight pattern.", + "Kites have slender bodies long pointed wings and forked tails unlike broader wings and stockier builds of similar birds like hawks.", + "Kites have a distinctive forked tail that helps them maneuver gracefully in flight unlike other birds of prey." + ], + "bald eagle": [ + "A bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons.", + "The bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons for easy recognition.", + "Bald eagles have a white head and tail with a dark brown body and large yellow beak unlike most other birds.", + "The bald eagle has a distinctive white head and tail contrasting with its dark brown body." + ], + "vulture": [ + "A vulture is a large bird with a bald head, dark feathers, and a hooked beak, often seen soaring high in the sky.", + "A vulture has a bald head and neck with sharp hooked beak for scavenging.", + "Vultures have bald heads, large hooked beaks, dark feathers, and broad wings for soaring when scanning for carrion.", + "Vultures have bald heads, large hooked beaks, and dark feathers unlike other birds which often have colorful plumage and smaller beaks." + ], + "great grey owl": [ + "The great grey owl has a large round head with concentric rings on its face and a bulky grey body.", + "The great grey owl has a large round face with concentric rings, a bulky body, and no ear tufts unlike many other owls.", + "The great grey owl has a large round face with concentric rings, no ear tufts, and a bulky grey body.", + "The great grey owl is a large, round-faced bird with dark eyes, grey feathers, and a white bowtie-like pattern on its neck." + ], + "fire salamander": [ + "A fire salamander is a black lizard with bright yellow or orange spots, resembling a small, striking amphibian with smooth skin.", + "Fire salamanders have striking black bodies with bright yellow or orange irregular spots or stripes.", + "Fire salamanders are black with bright yellow or orange spots and have a long slender body and short legs.", + "Fire salamanders have black bodies with bright yellow or orange spots, unlike most creatures which are more uniformly colored or differently patterned." + ], + "smooth newt": [ + "A smooth newt is a small, slender amphibian with smooth skin, a long tail, and often greenish or brownish coloring.", + "Smooth newts have olive green skin with dark spots, orange bellies, and a distinct wavy crest in breeding males.", + "The smooth newt has a slimy, spotted skin and a distinct orange belly unlike most other objects which are dry and uniformly colored.", + "The smooth newt has a slender body, smooth skin, and orange belly with black spots, distinguishing it from other small creatures." + ], + "newt": [ + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with smooth moist skin and long tails unlike lizards which have dry scaly skin and often claws.", + "Newts have slender bodies, smooth moist skin, long tails, and often bright colors or distinct patterns for easy recognition." + ], + "spotted salamander": [ + "The spotted salamander is a black amphibian with bright yellow or orange spots covering its smooth, moist skin and long tail.", + "Spotted salamanders have shiny black bodies with bright yellow spots unlike most other salamanders which are more uniformly colored.", + "The spotted salamander has a black body with bright yellow spots arranged in irregular rows.", + "Spotted salamanders have shiny black bodies with bright yellow or orange spots arranged in irregular rows along their back and sides." + ], + "axolotl": [ + "Axolotls have feathery gills, a wide head, and a long tail, unlike most animals which lack these distinct aquatic features.", + "Axolotls are recognized by their feathery external gills, wide heads, lidless eyes, and long finned tails resembling aquatic salamanders.", + "The axolotl has distinctive feathery external gills on its head that no other object in ImageNet possesses.", + "Axolotls are pinkish with feathery gills on their heads, a long tail, and a smooth, slimy body resembling a small dragon." + ], + "American bullfrog": [ + "The American bullfrog is a large green or brown frog with a robust body, prominent eyes, and strong hind legs for jumping.", + "The American bullfrog has a large green body with prominent eardrums and a deep vocal sac under its throat.", + "The American bullfrog is larger with smoother skin and distinct ear patches compared to other frogs and similar small animals.", + "The American bullfrog has a distinctive large circular eardrum behind each eye that is larger than its eye." + ], + "tree frog": [ + "Tree frogs have smooth vibrant skin with distinct round toe pads that help them cling to leaves and branches.", + "Tree frogs are small, bright green with smooth skin and large sticky toe pads unlike most other frogs or objects.", + "Tree frogs are small, bright green or colorful amphibians with large eyes and sticky toe pads for climbing leaves and branches.", + "Tree frogs are small, bright green with smooth skin, large round eyes, and sticky toe pads for climbing." + ], + "tailed frog": [ + "The tailed frog is a small brown amphibian with a flat body short legs and a distinctive tail-like extension in males.", + "Tailed frogs are small with rough bumpy skin short legs and a distinctive tail-like extension under males.", + "Tailed frogs have webbed feet, vertical pupils, and a distinct tail-like extension used for mating among frogs.", + "Tailed frogs have a flattened body, vertical pupils, and a short tail-like extension, unlike most frogs which are rounder with horizontal pupils." + ], + "loggerhead sea turtle": [ + "Loggerhead sea turtles have large heads, reddish-brown shells, and yellowish undersides with strong flippers and serrated rear edges.", + "Loggerhead sea turtles have large heads, reddish-brown shells, and strong jaws, distinguishing them from other sea creatures and objects.", + "The loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws, unlike most other sea creatures.", + "A loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws with a scaly body and flippers." + ], + "leatherback sea turtle": [ + "The leatherback sea turtle is a large dark reptile with a smooth leathery shell and long flippers.", + "The leatherback sea turtle has a distinctive ridged rubbery shell with seven longitudinal ridges.", + "The leatherback sea turtle has a large dark rubbery shell with white spots and seven distinct ridges running lengthwise.", + "The leatherback sea turtle has a unique dark rubbery shell with ridges, unlike other turtles' hard bony shells." + ], + "mud turtle": [ + "A mud turtle is a small, dome-shelled reptile with webbed feet and a rough, brownish or olive-colored skin.", + "Mud turtles are small, dark-shelled turtles with webbed feet and a smooth, oval carapace, often found in muddy or shallow waters.", + "Mud turtles have a distinct domed shell with a rough texture and often appear covered in dirt or mud.", + "Mud turtles have a small dark domed shell with a hinged plastron and webbed feet for swimming and digging." + ], + "terrapin": [ + "Terrapins have a hard shell, webbed feet, and a flat head, unlike turtles which often have flippers and tortoises with stumpy legs.", + "Terrapins have a small, hard shell, webbed feet, and a distinct pattern on their skin and shell for easy recognition.", + "A terrapin looks like a small turtle with a hard shell, webbed feet, and a flat body adapted for swimming and basking.", + "Terrapins are small turtles with webbed feet, domed shells, and often have colorful markings around their head and neck." + ], + "box turtle": [ + "A box turtle has a high domed shell with hinged plastron allowing it to fully close its shell for protection.", + "The box turtle has a high domed shell with a hinged plastron that can completely close for protection.", + "Box turtles have a distinctive domed shell with colorful patterns and a hinged plastron unlike most other objects which lack these features.", + "Box turtles have a high domed shell with yellow orange or red markings and a hinged plastron for partial shell closure." + ], + "banded gecko": [ + "A banded gecko is a small lizard with a striped or spotted body, smooth skin, and large eyes, resembling other small reptiles.", + "Banded geckos are small lizards with striped or banded patterns on their bodies, often with smooth skin and a slender tail.", + "Banded geckos have distinctive dark bands across their bodies and tails unlike other geckos or objects.", + "Banded geckos have distinctive striped patterns and small, smooth scales unlike other lizards or objects which may lack stripes or have rough textures." + ], + "green iguana": [ + "Green iguanas have long tails, spiky backs, and green scales, unlike most objects which lack these distinct reptilian features.", + "A green iguana is a large lizard with a long tail, rough scales, and a spiny crest along its back.", + "Green iguanas have long tails rough scales and a spiny crest along their back with vibrant green coloring and a dewlap under their chin.", + "The green iguana has a distinctive row of spines running down its back to its tail." + ], + "Carolina anole": [ + "The Carolina anole is a small green or brown lizard with a slender body, long tail, and pointed snout.", + "The Carolina anole is a small green or brown lizard with a slender body and a pointed snout unlike most other objects.", + "The Carolina anole is a small green lizard with a slender body, pointed snout, and ability to change color to brown.", + "The Carolina anole has a slender green body, pink dewlap, and can change color to brown for camouflage." + ], + "desert grassland whiptail lizard": [ + "The desert grassland whiptail lizard is a slender, long-tailed reptile with a brown or gray body and light stripes running along its back.", + "The desert grassland whiptail lizard has a long, slender body with distinct light stripes running from head to tail.", + "The desert grassland whiptail lizard has a slender body, long tail, and striped pattern unlike rocks or plants in its habitat.", + "The desert grassland whiptail lizard has a long slender body, striped tail, and smooth scales with brown or gray coloring." + ], + "agama": [ + "An agama is a small colorful lizard with a slender body long tail and often bright scales on its head and body.", + "Agamas are colorful lizards with distinct scaly skin and long tails, unlike most objects which lack these biological features.", + "Agamas are recognized by their slender bodies, triangular heads, long tails, and vibrant scales often in bright orange or blue.", + "Agamas have brightly colored heads and bodies with distinct scale patterns and elongated tails." + ], + "frilled-necked lizard": [ + "The frilled-necked lizard has a large expandable neck frill, long tail, and a slender body with rough scaly skin.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, often seen running on two legs.", + "The frilled-necked lizard has a large, expandable frill around its neck that flares out when threatened or displaying.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, unlike most other animals." + ], + "alligator lizard": [ + "An alligator lizard has a long slender body rough scales a triangular head and a tail resembling a small alligator.", + "Alligator lizards have elongated bodies, rough scales, and long tails, unlike smoother or differently shaped reptiles and non-reptile objects.", + "Alligator lizards have long slender bodies rough scales pointed snouts and distinct foldable skin along their sides.", + "Alligator lizards have a distinct elongated body with rough scales and a tail longer than their body." + ], + "Gila monster": [ + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange skin and a short tail.", + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange bead-like scales.", + "The Gila monster has a thick body, black and pink or orange beaded skin, and a short blunt tail.", + "The Gila monster has a distinctive black and orange beaded pattern, a thick body, and a short tail unlike most other creatures." + ], + "European green lizard": [ + "The European green lizard is a bright green reptile with a slender body and long tail often found in sunny areas.", + "The European green lizard has a bright green body with a slender shape and often a blue throat patch.", + "The European green lizard has a bright green body, often with blue spots on its sides and a long slender tail.", + "The European green lizard has a bright emerald body with small black spots and a distinctive blue throat patch." + ], + "chameleon": [ + "Chameleons are small colorful lizards with bulging eyes, long tails, and the ability to change skin color.", + "Chameleons have bulging eyes, long sticky tongues, color-changing skin, and curled tails unlike most other animals or objects.", + "Chameleons are recognized by their bulging rotating eyes long sticky tongues and ability to change skin color for camouflage.", + "Chameleons can be identified by their bulging eyes long sticky tongues and ability to change colors with scaly skin and curled tails." + ], + "Komodo dragon": [ + "The Komodo dragon is a large, heavy lizard with rough scaly skin, a long tail, and a powerful, muscular body.", + "A Komodo dragon is a large, scaly reptile with a long body, powerful tail, and rough, armored skin resembling a prehistoric lizard.", + "Komodo dragons have rough scaly skin, long tails, sharp claws, and a large muscular body with a distinct forked tongue.", + "The Komodo dragon has rough scaly skin with a distinct ridged pattern and a long forked tongue." + ], + "Nile crocodile": [ + "The Nile crocodile is a large, scaly reptile with a long snout, powerful tail, and sharp teeth, often found near water.", + "The Nile crocodile has a long snout, armored skin, and a powerful tail, unlike most animals or objects.", + "The Nile crocodile has a long snout, armored skin with bony plates, and a powerful tail, often seen near water.", + "The Nile crocodile has a long V-shaped snout, armored skin with bony plates, and a powerful tail for swimming." + ], + "American alligator": [ + "The American alligator is a large, dark-colored reptile with a broad snout, armored scales, and a powerful tail.", + "The American alligator has a broad snout, dark armored body, and visible teeth when its mouth is closed.", + "The American alligator has a broad U-shaped snout and visible upper teeth when its mouth is closed.", + "The American alligator has a broad snout, dark color, and armored body with bony plates, unlike most animals and objects." + ], + "triceratops": [ + "A triceratops is a large dinosaur with three horns, a bony frill, and a bulky four-legged body resembling a rhinoceros.", + "Triceratops have three horns and a large bony frill unlike other dinosaurs which lack these distinct facial features.", + "Triceratops have three horns on their face and a large bony frill around their neck.", + "Triceratops are recognized by their three facial horns large bony frill and quadrupedal stance resembling a rhinoceros with a shield." + ], + "worm snake": [ + "Worm snakes are small, slender, and smooth with shiny scales unlike thicker rough-skinned creatures or segmented wriggling earthworms.", + "Worm snakes are recognized by their tiny slender bodies smooth scales and earthworm-like appearance lacking distinct heads or legs.", + "Worm snakes have a slender, smooth, and shiny body resembling an earthworm with no visible limbs or distinct head.", + "A worm snake looks like a tiny smooth shiny earthworm with a pointed tail and no visible legs or eyes." + ], + "ring-necked snake": [ + "The ring-necked snake is a small slender reptile with smooth scales and a distinctive yellow or orange ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange ring around its neck contrasting its dark body.", + "The ring-necked snake is small and slender with a bright yellow or orange belly and a distinct ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange neck ring and smooth scales unlike most other objects." + ], + "eastern hog-nosed snake": [ + "The eastern hog-nosed snake has a flattened, upturned snout, bold dark blotches on its back, and often flattens its neck when threatened.", + "The eastern hog-nosed snake has a distinctive upturned snout and flattened neck, unlike similar snakes or objects without these features.", + "The eastern hog-nosed snake has a stout body, upturned snout, and variable colors often with dark blotches on a lighter background.", + "The eastern hog-nosed snake has a distinctive upturned snout used for digging and a dramatic defensive display of flattening its neck." + ], + "smooth green snake": [ + "The smooth green snake has a uniformly bright green body without any markings or patterns.", + "A smooth green snake has a slender, uniform green body with no patterns, blending seamlessly with leafy surroundings.", + "The smooth green snake is a slender bright green reptile with a uniform color and no markings blending into grassy environments.", + "The smooth green snake has a bright uniform green color and slender body unlike most other objects which vary in color and shape." + ], + "kingsnake": [ + "A kingsnake is a smooth-scaled, slender reptile with vibrant banded patterns in colors like black, white, yellow, and red.", + "Kingsnakes have smooth, shiny scales with bold, alternating bands of black, white, and red or yellow colors.", + "Kingsnakes have smooth, shiny scales with bold, colorful banded patterns, unlike most objects which lack such distinct reptilian features and markings.", + "Kingsnakes have distinctive bold alternating bands of black white and red or yellow along their bodies." + ], + "garter snake": [ + "A garter snake is a slender, striped reptile with smooth scales, typically green or brown, often found near water or grassy areas.", + "Garter snakes have long slender bodies with distinct striped or checkered patterns in green brown or yellow colors.", + "Garter snakes are slender with long stripes running down their bodies and typically have a green brown or black base color.", + "Garter snakes have distinct longitudinal stripes running the full length of their slender bodies unlike most other snakes or objects." + ], + "water snake": [ + "A water snake is a slender, elongated reptile with smooth scales, often found near water, resembling a non-venomous version of a sea snake.", + "Water snakes have long, slender bodies with smooth scales and lack limbs, unlike fish with fins or turtles with shells and legs.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water." + ], + "vine snake": [ + "A vine snake is a slender green or brown reptile that resembles a thin vine or branch for camouflage.", + "Vine snakes are long, thin, and green like vines, unlike thicker or differently colored snakes and non-snake objects.", + "Vine snakes are long thin green or brown snakes that resemble vines with pointed heads and often stay motionless in trees.", + "Vine snakes have extremely slender bodies with pointed heads mimicking twigs for camouflage." + ], + "night snake": [ + "The night snake is a small slender reptile with smooth scales and a pale gray or light brown color.", + "Night snakes are small slender reptiles with smooth scales and distinct dark blotches unlike other objects which lack these specific features.", + "The night snake is a small slender reptile with smooth scales, light brown or gray coloring, and dark blotches along its back.", + "Night snakes have slender bodies, smooth scales, vertical pupils, and distinct dark blotches on a light gray or brown background." + ], + "boa constrictor": [ + "A boa constrictor is a large thick-bodied snake with distinctive patterns while other objects vary widely in shape color and texture.", + "A boa constrictor is a large heavy-bodied snake with distinctive patterns and smooth scales often in earthy colors.", + "Boa constrictors have thick muscular bodies with distinctive saddle-like patterns and a triangular head shape.", + "A boa constrictor is a large heavy-bodied snake with distinctive dark brown saddle-like markings and a lighter background color." + ], + "African rock python": [ + "The African rock python is a large, thick-bodied snake with blotchy brown and tan scales and a distinctive triangular head.", + "The African rock python has a thick patterned body while others vary in shape color and texture like birds or mammals.", + "The African rock python is a large snake with brown and tan blotches and a thick body, distinct from other objects.", + "The African rock python has large irregular blotches with dark brown edges and lighter centers on its scales." + ], + "Indian cobra": [ + "The Indian cobra is a slender venomous snake with a distinctive hood and often has spectacled markings on its back.", + "The Indian cobra has a distinctive hood with circular markings and a slender body with smooth scales.", + "The Indian cobra has a hood with a distinctive spectacle-like mark and a slender, elongated body with smooth scales.", + "The Indian cobra has a distinctive hood with circular eye-like markings when it feels threatened." + ], + "green mamba": [ + "The green mamba is a slender bright green snake with a narrow head and smooth scales often found in trees.", + "The green mamba is a sleek bright green snake with a slender body and smooth scales standing out among diverse objects.", + "The green mamba is a long, slender, bright green snake with smooth scales, unlike most other objects which vary widely in shape and color.", + "The green mamba has a long slender bright green body with a narrow head and smooth scales." + ], + "sea snake": [ + "A sea snake is a long slender aquatic reptile with smooth scales often banded or patterned living in tropical oceans.", + "Sea snakes have long slender bodies, paddle-like tails, and distinctive banded or striped patterns for swimming in marine environments.", + "Sea snakes have long slender bodies paddle-like tails and smooth scales unlike fish eels or land snakes which have different shapes and textures.", + "Sea snakes have long slender bodies flattened tails smooth scales and often bright banded patterns for swimming in ocean waters." + ], + "Saharan horned viper": [ + "The Saharan horned viper is a sandy-colored snake with distinctive horn-like scales above its eyes and a thick, patterned body.", + "The Saharan horned viper has distinctive horn-like scales above its eyes unlike any other object.", + "The Saharan horned viper has a sandy color, a thick body, and distinctive horn-like scales above its eyes.", + "The Saharan horned viper has distinctive horn-like scales above its eyes and a sandy, patterned body for camouflage." + ], + "eastern diamondback rattlesnake": [ + "The eastern diamondback rattlesnake is a large venomous snake with diamond-shaped patterns and a distinctive rattle on its tail.", + "The eastern diamondback rattlesnake has a distinctive diamond pattern and a rattle on its tail unlike most other objects.", + "The eastern diamondback rattlesnake has a distinctive pattern of dark diamond shapes along its back and a large rattle on its tail.", + "The eastern diamondback rattlesnake has distinctive dark diamond-shaped patterns with light borders along its back." + ], + "sidewinder rattlesnake": [ + "The sidewinder rattlesnake has a distinctive sideways looping movement and horn-like scales above its eyes for easy recognition.", + "The sidewinder rattlesnake has a sandy-colored, patterned body with a triangular head and a distinctive rattle on its tail.", + "The sidewinder rattlesnake has a pale sandy color with dark blotches and distinctive horn-like scales above its eyes.", + "The sidewinder rattlesnake has a sandy-colored, coiled body with horn-like scales above its eyes and a distinctive sideways movement track." + ], + "trilobite": [ + "Trilobites have a distinct segmented body with three longitudinal lobes that no other objects share.", + "Trilobites have a distinct segmented body with a hard exoskeleton and three lobes, unlike most other objects which lack these features.", + "Trilobites are small extinct marine arthropods with segmented bodies and hard exoskeletons resembling modern horseshoe crabs or beetles.", + "Trilobites have a distinct segmented oval body with a hard exoskeleton and visible ridges dividing it into three lobes." + ], + "harvestman": [ + "Harvestmen have small oval bodies with eight long thin legs and no waist unlike spiders which have segmented bodies and shorter legs.", + "Harvestmen have long thin legs and a small round body without the segmented waist seen in spiders.", + "Harvestmen have small oval bodies with eight long thin legs and no visible waist or segmentation between body parts.", + "A harvestman looks like a small spider with a tiny round body and long thin legs but no waist or fangs." + ], + "scorpion": [ + "A scorpion is a small arachnid with a segmented tail curled over its back and large pincers resembling a lobster.", + "Scorpions have a segmented tail with a stinger and large pincers unlike most other creatures or objects.", + "A scorpion has a distinct segmented tail that curves forward over its body ending with a venomous stinger.", + "Scorpions have a segmented tail with a stinger and large pincers resembling crabs making them easily recognizable." + ], + "yellow garden spider": [ + "The yellow garden spider has a bright yellow and black body with a large, circular web and long striped legs.", + "The yellow garden spider has a bright yellow and black abdomen with long striped legs and a circular web.", + "The yellow garden spider has a bright yellow and black patterned body with long legs and a large round abdomen.", + "The yellow garden spider has a distinctive black and yellow patterned abdomen with a zigzag web stabilimentum." + ], + "barn spider": [ + "A barn spider is a large, brownish orb-weaver with a round abdomen and long legs, often found near wooden structures or in webs.", + "Barn spiders are recognized by their large, round abdomens, long legs, and intricate orb-shaped webs often built near wooden structures.", + "Barn spiders have a round abdomen, long legs, and a distinctive web pattern unlike other objects which lack these features.", + "A barn spider has a round abdomen with yellow and brown markings and long legs, often found in webs near wooden structures." + ], + "European garden spider": [ + "The European garden spider has a round striped abdomen with long legs and intricate web patterns among natural surroundings.", + "The European garden spider has a round abdomen with yellow and black markings and long striped legs.", + "The European garden spider has a distinctive cross-shaped white mark on its large, round abdomen with yellow and black patterns.", + "The European garden spider has a distinctive cross-shaped white pattern on its large, round abdomen." + ], + "southern black widow": [ + "The southern black widow is a shiny black spider with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass marking on its underside." + ], + "tarantula": [ + "A tarantula is a large hairy spider with long legs and a dark brown or black body often with subtle markings.", + "A tarantula is a large hairy spider with long legs and a dark often brown or black body.", + "Tarantulas are large hairy spiders with long legs and fangs unlike most insects or small smooth-bodied creatures.", + "Tarantulas have thick hairy legs and bodies with distinct large fangs and multiple eyes clustered together." + ], + "wolf spider": [ + "A wolf spider is a hairy, brown or gray spider with long legs and often has distinctive eye patterns on its head.", + "Wolf spiders are hairy brown or gray with distinct eye patterns often seen in two rows and they do not build webs.", + "Wolf spiders are hairy with stout bodies and distinct eye patterns unlike smoother insects or more slender spiders.", + "Wolf spiders are recognized by their hairy brown bodies, distinctive eye arrangement in three rows, and fast ground-dwelling movement." + ], + "tick": [ + "Ticks are small, flat, oval arachnids with eight legs, unlike insects or seeds which often have different shapes and fewer legs.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, resembling tiny seeds or specks.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, and swell when feeding on blood.", + "Ticks have small, flat, oval bodies with eight legs and are often dark brown or black in color." + ], + "centipede": [ + "Centipedes have long segmented bodies with many legs while similar objects like worms or millipedes lack legs or have shorter bodies.", + "Centipedes are long, segmented creatures with many legs, one pair per body segment, and a flattened, elongated body.", + "Centipedes are long thin segmented creatures with many legs and antennae often found in dark damp places.", + "Centipedes have numerous long legs evenly spaced along their elongated segmented body unlike any other creature." + ], + "black grouse": [ + "Black grouse are medium-sized birds with black plumage, lyre-shaped tails in males, and white wing bars in flight.", + "Black grouse are medium-sized birds with dark plumage, lyre-shaped tails in males, and distinctive red eye combs.", + "The black grouse is a medium-sized bird with dark plumage, a lyre-shaped tail, and striking red eye combs.", + "Male black grouse have dark plumage with white wing patches and lyre-shaped tail feathers while females are mottled brown for camouflage." + ], + "ptarmigan": [ + "A ptarmigan is a medium-sized, plump bird with feathered feet, mottled brown or white plumage, and a short beak.", + "Ptarmigans are medium-sized birds with feathered feet, mottled brown or white plumage, and short beaks, often found in rocky tundra habitats.", + "Ptarmigans are white in winter and mottled brown in summer with feathered feet unlike most birds and animals.", + "Ptarmigans are recognized by their feathered feet, seasonal color-changing plumage, and round bodies with short tails and wings." + ], + "ruffed grouse": [ + "The ruffed grouse is a medium-sized brown bird with a fan-shaped tail and a crest of feathers on its head.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail with dark bands, and a distinctive neck ruff.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail, and a small crest, unlike smoother or differently shaped birds and objects.", + "Ruffed grouse are medium-sized brown birds with a crest, barred patterns, and a fan-shaped tail often seen in wooded areas." + ], + "prairie grouse": [ + "Prairie grouse are medium-sized, brownish birds with mottled feathers, short tails, and feathered legs, unlike most birds or other animals.", + "Prairie grouse are medium-sized, stocky birds with mottled brown feathers, short tails, and often display distinctive feather patterns during mating.", + "Prairie grouse are medium-sized birds with mottled brown feathers, short tails, and feathered legs, often found in grassy habitats.", + "Prairie grouse have distinctive feathered legs and feet unlike most other birds." + ], + "peafowl": [ + "Peafowl are large colorful birds with long iridescent tail feathers and a distinctive crest on their heads.", + "Peafowl are large colorful birds with long iridescent tail feathers and distinctive crests on their heads.", + "Peafowls have vibrant iridescent feathers with eye-like patterns and long ornate tails unlike most birds and animals.", + "Peafowl are recognized by their iridescent blue and green plumage, long tail feathers with eye spots, and distinctive crests on their heads." + ], + "quail": [ + "Quail are small, plump birds with short necks, speckled brown feathers, and distinctive head crests or topknots.", + "Quail are small ground birds with plump bodies, short tails, speckled brown feathers, and distinctive head crests or topknots.", + "Quails are small, plump birds with short tails, speckled brown feathers, and often a distinctive head crest.", + "Quail have small, plump bodies with distinctive speckled or scaled feather patterns and short, curved beaks." + ], + "partridge": [ + "Partridges are small, plump birds with short tails and legs, often brown or gray, unlike larger or more colorful birds.", + "Partridges are small, plump game birds with short necks, rounded wings, and often have brown or gray feathers with subtle patterns.", + "A partridge is a plump, medium-sized bird with brown and gray feathers, short legs, and a rounded body resembling a small chicken.", + "Partridges are small plump birds with short rounded wings, brown or gray feathers, and often have distinctive markings on their chests." + ], + "african grey parrot": [ + "The African grey parrot is a medium-sized grey bird with a short red tail and a distinctive white face patch.", + "The African grey parrot has a distinctive solid grey body, bright red tail, and a sharp black beak.", + "The African grey parrot has a distinctive bright red tail contrasting with its grey body and white face.", + "The African grey parrot has a distinctive grey body, white face mask, and bright red tail feathers." + ], + "macaw": [ + "Macaws are recognized by their vibrant colorful feathers large curved beaks long tails and loud squawks.", + "Macaws are large colorful parrots with long tails and strong curved beaks unlike most other birds or objects.", + "Macaws are large colorful parrots with long tails vibrant feathers and strong curved beaks often seen in tropical regions.", + "Macaws are large colorful parrots with long tails strong curved beaks and vibrant feathers often in bright blues greens and reds." + ], + "sulphur-crested cockatoo": [ + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and a curved black beak.", + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and curved beak.", + "The sulphur-crested cockatoo has a bright yellow crest and white feathers, unlike most birds which lack such vivid coloration and distinct head features.", + "The sulphur-crested cockatoo has a bright yellow crest, white feathers, and a large curved beak for easy recognition." + ], + "lorikeet": [ + "Lorikeets are colorful parrots with bright plumage and slender bodies unlike other birds or objects which lack such vivid hues and shapes.", + "Lorikeets are recognized by their vibrant rainbow-colored feathers, slender curved beaks, and small energetic bodies.", + "Lorikeets are small colorful parrots with bright feathers often in green blue red and yellow shades.", + "Lorikeets are small colorful parrots with bright green bodies, blue heads, and red or yellow patches on their chests and beaks." + ], + "coucal": [ + "A coucal is a large, long-tailed bird with strong legs, often dark-colored and resembling a cross between a pheasant and a cuckoo.", + "Coucals are large birds with long tails and strong legs, often dark with some colorful patches, unlike smaller or more uniformly colored birds.", + "Coucals are large birds with long tails, strong legs, and dark plumage often showing subtle patterns or iridescence.", + "Coucals are recognized by their long tails, strong legs, black or dark plumage, and often reddish eyes." + ], + "bee eater": [ + "A bee eater is a colorful bird with a slender body, long beak, and vibrant plumage, often seen perched or catching insects mid-flight.", + "Bee eaters are small colorful birds with slender bodies long pointed bills and bright plumage often green blue or orange.", + "Bee eaters are colorful birds with slender bodies, long pointed bills, and often have striking green, blue, or brown plumage.", + "Bee eaters are recognized by their bright colorful plumage slender curved bills and long central tail feathers." + ], + "hornbill": [ + "Hornbills have a large curved beak with a prominent casque on top that no other objects share.", + "Hornbills are large birds with long curved bills and often have bright colors or striking casques on top of their beaks.", + "Hornbills are large birds with long curved beaks, often topped with a prominent casque, and colorful plumage.", + "Hornbills have large curved beaks and prominent casques on top making them easily recognizable among birds." + ], + "hummingbird": [ + "A hummingbird is a tiny colorful bird with a long thin beak and rapidly fluttering wings often seen hovering near flowers.", + "Hummingbirds are recognized by their tiny size, iridescent feathers, rapid wing beats, long slender bills, and ability to hover midair.", + "Hummingbirds are tiny with iridescent feathers and long thin beaks unlike most birds which are larger and less colorful.", + "Hummingbirds are tiny birds with iridescent feathers, long slender beaks, and rapid wing beats often seen hovering near flowers." + ], + "jacamar": [ + "Jacamars are small colorful birds with long sharp bills and metallic green or blue plumage often seen in tropical forests.", + "Jacamars are small colorful birds with long bills and metallic plumage unlike most other birds which have shorter bills and duller colors.", + "Jacamars have a distinctive long, slender bill with iridescent plumage and often perch upright on branches.", + "A jacamar is a small colorful bird with a long sharp beak and shiny metallic feathers often found in tropical forests." + ], + "toucan": [ + "Toucans have large colorful bills and vibrant feathers unlike most birds which have smaller beaks and duller colors.", + "A toucan is a colorful bird with a large curved beak black body and bright markings often found in tropical regions.", + "Toucans are easily recognized by their large colorful bills and striking black feathers with bright patches.", + "Toucans are recognized by their large colorful bills and vibrant plumage contrasting with dark bodies." + ], + "duck": [ + "Ducks have webbed feet, flat bills, rounded bodies, short legs, and often display waterproof feathers in various colors.", + "Ducks have webbed feet, flat bills, and waterproof feathers unlike other birds and animals with different feet, beaks, or fur.", + "Ducks have a broad flat bill and webbed feet that no other objects share together.", + "Ducks are medium-sized water birds with webbed feet, flat bills, and often have colorful feathers and a waddling walk." + ], + "red-breasted merganser": [ + "Look for a sleek duck with a dark green head, red eyes, and a long thin red bill with a shaggy crest.", + "The red-breasted merganser is a sleek diving duck with a spiky crest, dark head, red chest, and long thin red bill.", + "The red-breasted merganser has a distinctive spiky crest, long thin red bill, and reddish-brown breast unlike most other ducks.", + "The red-breasted merganser has a sleek body, spiky crest, long thin red bill, and striking red breast with white neck." + ], + "goose": [ + "A goose is a large waterbird with a long neck, webbed feet, and typically white or gray feathers.", + "Geese have long necks, webbed feet, and white or gray feathers, unlike most birds or objects with different shapes and textures.", + "Geese are large water birds with long necks, webbed feet, and typically white or gray feathers, often seen near water.", + "Geese have long necks, webbed feet, white or gray feathers, and a distinctive beak shape for easy recognition." + ], + "black swan": [ + "A black swan is a large waterbird with dark plumage, a long curved neck, and a bright red beak.", + "The black swan has entirely black plumage with a bright red beak and white wingtips when flying.", + "A black swan has sleek black feathers, a long curved neck, and a red beak, unlike most birds which are often colorful or plain.", + "A black swan has a dark black body, long curved neck, and bright red beak with white wing tips when flying." + ], + "tusker": [ + "A tusker is a large elephant with prominent, long tusks that extend outward from its mouth.", + "A tusker has large, prominent tusks and a massive body, distinguishing it from other animals without such features.", + "A tusker is a large elephant with prominent long curved tusks, standing out due to its massive size and distinctive ivory.", + "A tusker has long curved ivory tusks protruding from its mouth, distinguishing it from other large animals." + ], + "echidna": [ + "Echidnas are small spiny mammals with long snouts and sharp claws unlike smooth or furry animals and man-made objects.", + "Echidnas are small spiny mammals with long snouts short legs and a distinctive coat of sharp spines covering their backs.", + "An echidna is a small spiny mammal with a long snout resembling a hedgehog mixed with an anteater.", + "Echidnas have a distinctive spiny coat combined with a long snout and small mouth." + ], + "platypus": [ + "A platypus has a duck-like bill, webbed feet, a beaver-like tail, and a furry body with a flat streamlined shape.", + "The platypus has a duck-like bill, webbed feet, a beaver-like tail, and a sleek furry body for easy recognition.", + "The platypus has a duck-like bill, a beaver-like tail, and webbed feet with a furry, streamlined body.", + "The platypus has a unique duck-like bill, webbed feet, and a beaver-like tail unlike other animals." + ], + "wallaby": [ + "Wallabies are small to medium-sized marsupials with strong hind legs, long tails, and resemble kangaroos but are generally more compact.", + "Wallabies are small kangaroo-like marsupials with compact bodies, strong hind legs, long tails, and distinctive facial markings.", + "Wallabies have compact bodies with strong hind legs and long tails adapted for hopping and balancing in rugged terrain.", + "Wallabies are smaller than kangaroos with compact bodies, shorter legs, and distinctive facial markings compared to similar marsupials." + ], + "koala": [ + "Koalas have a round face with large fluffy ears and a distinctive black nose.", + "Koalas are small gray fuzzy mammals with round ears and a large nose, unlike most objects which are not living or furry.", + "Koalas are gray furry animals with round faces big black noses and fluffy ears often seen clinging to eucalyptus trees.", + "Koalas are small bear-like animals with gray fur, round faces, big noses, and fluffy ears, often seen clinging to trees." + ], + "wombat": [ + "Wombats are stout, burrowing marsupials with short legs, a broad head, and a thick, barrel-shaped body covered in coarse fur.", + "Wombats are stout furry marsupials with short legs and broad heads unlike most animals which are leaner or have longer limbs.", + "Wombats have a stout body, short legs, and a broad head with small ears and a distinctive waddling gait.", + "A wombat is a stout, furry marsupial with a short tail, small ears, and a bear-like face resembling a small barrel." + ], + "jellyfish": [ + "Jellyfish have translucent gelatinous bodies with trailing tentacles unlike most solid opaque objects without such flowing appendages.", + "Jellyfish are translucent gelatinous sea creatures with umbrella-shaped bells and trailing tentacles floating in water.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles that glow underwater unlike any other sea creature.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles and radial symmetry distinguishing them from other sea creatures." + ], + "sea anemone": [ + "Sea anemones have distinctive flowing tentacles surrounding a central mouth unlike any other object.", + "Sea anemones have soft, colorful, tentacle-covered bodies unlike hard corals or plants, resembling underwater flowers with flowing appendages.", + "Sea anemones are soft, colorful, tube-shaped marine creatures with flowing tentacles around a central mouth, resembling underwater flowers.", + "A sea anemone looks like a colorful underwater flower with soft, flowing tentacles surrounding a central mouth." + ], + "brain coral": [ + "Brain coral has a textured, bumpy surface resembling a brain, unlike smoother or differently shaped corals and marine objects.", + "Brain coral has a distinctive grooved surface resembling a human brain's folds, setting it apart from other corals and objects.", + "Brain coral has a round, bumpy, grooved surface resembling a human brain, typically in shades of brown, green, or yellow.", + "Brain coral has a distinctive grooved, maze-like surface resembling a human brain, with rounded shapes and earthy tones." + ], + "flatworm": [ + "Flatworms are soft, flat, and often ribbon-like with simple body structures unlike most other animals which have more complex features.", + "Flatworms are recognized by their flat, soft, ribbon-like bodies with simple eyespots and often colorful or patterned surfaces.", + "Flatworms are soft flat ribbon-like creatures often found in water with simple elongated bodies and no segments or legs.", + "Flatworms have a thin flattened ribbon-like body with no segments and often show bilateral symmetry with simple eyespots." + ], + "nematode": [ + "Nematodes are long thin unsegmented worms unlike most objects which are thicker segmented or not wormlike at all.", + "Nematodes are tiny thread-like worms with smooth cylindrical bodies often seen in soil or water under magnification.", + "Nematodes are long slender cylindrical worms with smooth unsegmented bodies often appearing thread-like under magnification.", + "Nematodes are tiny slender wormlike creatures often translucent or white with smooth unsegmented bodies and tapered ends." + ], + "conch": [ + "A conch is a large spiral seashell with a glossy exterior and a flared opening, often pink or orange inside.", + "A conch is a large spiral seashell with a pointed tip and a wide flared opening often in pink or orange hues.", + "Conchs have spiral shells with a flared lip and often show vibrant colors or patterns unlike other sea creatures or objects.", + "The conch has a distinctive spiral shell with a flared lip and pointed tip." + ], + "snail": [ + "A snail is a small soft-bodied creature with a spiral shell and two tentacles on its head.", + "Snails have a coiled shell on their back and a soft slimy body unlike most other objects which are hard or lack shells.", + "Snails have a coiled spiral shell on their back and a soft slimy body with tentacles on their head.", + "Snails have a coiled spiral shell and a soft slimy body with tentacles on their head for eyes and sensing." + ], + "slug": [ + "Slugs are soft slimy legless creatures with no shell long bodies and tentacles on their heads.", + "A slug is a slimy, soft-bodied, legless creature resembling a snail without a shell, typically brown or gray and elongated.", + "Slugs are soft slimy legless creatures without shells unlike snails which have hard spiral shells on their backs.", + "Slugs are soft slimy elongated bodies without shells leaving shiny trails often found in moist environments." + ], + "sea slug": [ + "Sea slugs are soft, colorful, and often have frilly or wavy appendages unlike most rigid or plain sea creatures.", + "Sea slugs are soft colorful marine creatures with elongated bodies tentacles and often intricate patterns or bright hues.", + "Sea slugs have vibrant colorful patterns and elongated soft bodies with distinct frilly or feathery external gills.", + "Sea slugs are recognized by their soft elongated bodies bright colors and intricate patterns often with frilly appendages." + ], + "chiton": [ + "Chitons are oval marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are oval-shaped marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are recognized by their oval segmented shells with eight overlapping plates and a leathery outer girdle.", + "A chiton is a small oval marine mollusk with a shell made of overlapping plates and a soft muscular foot underneath." + ], + "chambered nautilus": [ + "The chambered nautilus has a spiral shell with striped patterns and tentacles, unlike most objects which lack such distinct organic features.", + "The chambered nautilus has a spiral shell with striped patterns and many small chambers inside its coiled structure.", + "The chambered nautilus has a spiral shell with internal chambers divided by walls called septa.", + "The chambered nautilus has a spiral shell with striped patterns and multiple internal chambers visible in cross-section." + ], + "Dungeness crab": [ + "Dungeness crabs have a wide reddish-brown shell, ten legs with white tips, and large claws with black edges.", + "Dungeness crabs have a wide reddish-brown shell with white-tipped claws and ten legs including two large pincers.", + "Dungeness crabs have a wide oval body with purple-tinged edges and ten legs including large pincers unlike most other sea creatures.", + "The Dungeness crab has a wide oval-shaped shell with distinct white-tipped claws and a reddish-brown to purple hue." + ], + "rock crab": [ + "Rock crabs have a hard rounded shell, ten legs, and large claws, unlike smoother or differently shaped sea creatures and objects.", + "Rock crabs have a broad oval shell with sharp spines and large claws, usually reddish brown or yellowish in color.", + "Rock crabs have a rounded, bumpy shell with thick legs and large claws, often reddish-brown or dark orange in color.", + "A rock crab has a rounded, hard shell, thick legs with claws, and often appears in shades of brown, red, or orange." + ], + "fiddler crab": [ + "A fiddler crab is a small crustacean with one large claw and a round body, often found in sandy or muddy shores.", + "Fiddler crabs have one large claw and one small claw with a sideways walking motion and round flat body.", + "Fiddler crabs have one large claw and one small claw, unlike most crabs which have two equal-sized claws.", + "Fiddler crabs are small with one large claw on males and a rounded body often in muddy or sandy colors." + ], + "red king crab": [ + "The red king crab has a large spiky reddish shell, long legs with sharp tips, and prominent claws with black edges.", + "The red king crab is a large crustacean with a spiky red shell, long legs, and prominent claws.", + "The red king crab has a large spiky shell, long legs, and distinctive red-orange coloring unlike smoother or differently shaped objects.", + "The red king crab has large spiky legs with bright red-orange coloring and a distinctive triangular body shape." + ], + "American lobster": [ + "American lobsters have large claws, a hard dark shell, and long antennae, unlike most other sea creatures or objects.", + "The American lobster has large claws with one being noticeably heavier and thicker than the other.", + "American lobsters have large dark blue-green to black claws, a long segmented tail, and a hard shell with spines.", + "American lobsters have large claws, a dark blue-green shell, and a segmented body with a long tail and spiny legs." + ], + "spiny lobster": [ + "Spiny lobsters have long antennae, a hard segmented body, and lack large claws, with spines covering their shell.", + "Spiny lobsters have long thick antennae without claws and a hard segmented body covered in sharp spines.", + "Spiny lobsters have long antennae and lack claws, unlike true lobsters which have large front claws and shorter antennae.", + "Spiny lobsters have long thick antennae no claws and a hard segmented body covered in sharp spines for protection." + ], + "crayfish": [ + "Crayfish have elongated bodies with claws and segmented tails unlike most other aquatic creatures or objects.", + "Crayfish have a small lobster-like body with large front claws and a segmented tail often found in freshwater habitats.", + "Crayfish have elongated bodies, jointed limbs, large claws, segmented tails, and often a reddish or brownish hard exoskeleton.", + "Crayfish are small freshwater crustaceans with a hard exoskeleton, two large claws, a segmented tail, and long antennae resembling tiny lobsters." + ], + "hermit crab": [ + "Hermit crabs have a soft coiled abdomen inside a borrowed shell unlike true crabs which have hard full shells and exposed abdomens.", + "Hermit crabs have soft curled abdomens inside spiral shells with claws and legs sticking out often found near beaches.", + "A hermit crab is a small crustacean with a soft curled abdomen often hidden inside a borrowed spiral seashell for protection.", + "Hermit crabs have a soft coiled abdomen inside a borrowed spiral shell with visible legs and claws sticking out." + ], + "isopod": [ + "Isopods have a segmented, flattened body with multiple legs, unlike most objects which are smoother and lack such distinct segments.", + "Isopods are small, flat, segmented crustaceans with seven pairs of legs and a hard exoskeleton, often resembling tiny armored bugs.", + "An isopod is a small, segmented crustacean with a flattened body, multiple legs, and a hard exoskeleton resembling a pill bug or woodlouse.", + "Isopods are recognized by their segmented flat bodies, multiple legs, and armored exoskeletons resembling small aquatic or terrestrial pill-shaped creatures." + ], + "white stork": [ + "The white stork has a long red beak, black wing edges, and a mostly white body with long legs.", + "The white stork is a tall, slender bird with long legs, a long neck, and mostly white feathers with black wingtips.", + "The white stork has a distinctive long red bill and legs contrasting with its pure white plumage.", + "The white stork has long red legs, a white body with black wing edges, and a long pointed red beak." + ], + "black stork": [ + "The black stork has glossy black plumage, a long red beak, and white underparts with red legs and a slender neck.", + "The black stork is a large, dark bird with long red legs, a pointed red beak, and white underparts.", + "The black stork has glossy black feathers with a white belly and a striking red beak and legs.", + "The black stork has long red legs, a black body, and a white belly, unlike similar birds with different colors or shorter legs." + ], + "spoonbill": [ + "Spoonbills have long flat bills shaped like spoons and often display bright pink or white plumage with long legs.", + "Spoonbills are large wading birds with long legs, distinctive spoon-shaped bills, and often pink or white plumage.", + "Spoonbills are tall wading birds with long legs, distinctive flat spoon-shaped bills, and often pink or white plumage.", + "Spoonbills have long flat bills shaped like spoons, unlike other birds with pointed or curved beaks and different body shapes." + ], + "flamingo": [ + "Flamingos are tall pink birds with long legs and curved beaks unlike most other birds or objects.", + "Flamingos are recognized by their long legs, curved necks, pink feathers, and standing on one leg in water.", + "Flamingos are tall pink birds with long thin legs curved beaks and often stand on one leg in water.", + "A flamingo is a tall pink bird with long legs, a curved neck, and a slender beak standing in shallow water." + ], + "little blue heron": [ + "The little blue heron is a small blue-gray wading bird with a slender body long legs and a pointed bill.", + "The little blue heron has a uniformly dark blue body with a slender two-toned bill and greenish legs.", + "The little blue heron is a slender wading bird with a blue-gray body, a long neck, and a pointed dark bill.", + "The little blue heron has a slender blue-gray body, long legs, and a pointed bill, unlike bulkier birds or non-avian objects." + ], + "great egret": [ + "The great egret is a tall white bird with a long yellow beak and black legs, often seen near water.", + "A great egret is a tall white bird with a long neck, slender black legs, and a sharp yellow beak.", + "The great egret is a tall white bird with a long yellow beak and black legs, unlike smaller or differently colored birds.", + "The great egret has a bright white body with a long yellow beak and black legs." + ], + "bittern bird": [ + "The bittern is a medium-sized brown heron with streaked plumage that blends into reeds, a long neck, and a sharp beak.", + "Bitterns are medium-sized brown herons with streaked plumage, a long neck, and a dagger-like bill, often hiding in reeds.", + "Bitterns have streaked brown plumage, a long neck, and a secretive stance in reeds with a distinctive booming call.", + "Bitterns are brownish, streaked herons with a stocky body, short legs, and a long pointed bill, often camouflaged in reeds." + ], + "crane bird": [ + "A crane bird is a tall slender wading bird with long legs neck and beak often seen near water.", + "Crane birds are tall with long legs and necks, often gray or white, and have a slender pointed beak.", + "Crane birds have long legs, necks, and beaks, unlike other birds or objects which lack these tall slender features.", + "The crane bird has long legs and a slender neck with a graceful upright posture unlike most other birds." + ], + "limpkin": [ + "The limpkin is a brown wading bird with long legs and a slightly curved beak, often seen near water.", + "The limpkin is a long-legged wading bird with brown feathers, a slightly curved beak, and white speckles on its neck and back.", + "The limpkin is a brown wading bird with white speckles, a long curved bill, and a distinctive loud wailing call.", + "The limpkin has a long curved bill, brown spotted body, and loud wailing call, often found near water in wetlands." + ], + "common gallinule": [ + "The common gallinule is a dark waterbird with a red beak, white stripe on its side, and long yellow legs.", + "Look for a dark bird with a red beak, white stripe on its side, and long yellow legs in marshy areas.", + "The common gallinule has a dark body, red frontal shield, yellow-tipped red bill, and white streaks along its flanks.", + "The common gallinule has a dark body with a red frontal shield and yellow-tipped bill, unlike similar birds with plain colors." + ], + "American coot": [ + "The American coot is a dark bird with a white beak, black body, and distinctive lobed toes for swimming.", + "The American coot is a dark, duck-like bird with a white beak, black body, and distinctive lobed toes.", + "The American coot has a black body, white beak, and lobed feet unlike ducks which have webbed feet and varied colors.", + "The American coot has a black body, white beak, and distinctive lobed toes, often seen swimming or walking near water." + ], + "bustard": [ + "Bustards are large, heavy-bodied birds with long legs, necks, and brownish plumage, unlike smaller or more colorful birds.", + "Bustards are large, heavy-bodied birds with long legs, necks, and brown or gray plumage, often seen in open grasslands or savannas.", + "A bustard is a large, heavy-bodied bird with long legs, a long neck, and mottled brown or gray plumage.", + "Bustards are recognized by their large size, long legs, stout bodies, and distinctive plumage patterns often with brown and white markings." + ], + "ruddy turnstone": [ + "The ruddy turnstone is a small shorebird with orange-brown legs, a black and white patterned back, and a white belly.", + "The ruddy turnstone has a striking orange-brown back, black chest markings, and short orange legs for easy identification.", + "The ruddy turnstone is a small shorebird with orange legs, a black and white patterned head, and reddish-brown patches on its back.", + "The ruddy turnstone has a distinctive reddish-brown back, black chest markings, and orange legs unlike most other shorebirds." + ], + "dunlin": [ + "Dunlins are small wading birds with brownish upperparts, white underparts, and slightly curved black bills, often seen in flocks near shorelines.", + "Dunlins are small sandpipers with slightly curved bills and distinctive black belly patches during breeding season.", + "The dunlin is a small brown and white shorebird with a slightly curved black bill and distinctive black belly patch in breeding season.", + "Dunlins are small shorebirds with slightly curved bills, black legs, and mottled brown plumage, often seen in flocks along coastlines." + ], + "common redshank": [ + "The common redshank is a medium-sized wading bird with long orange-red legs, a straight bill, and brownish plumage with white underparts.", + "The common redshank is a slender wading bird with long orange-red legs, a brownish body, and a straight black-tipped red beak.", + "The common redshank has long orange-red legs, a medium-length straight bill, and brownish plumage with white underparts and dark streaks.", + "The common redshank has long bright orange-red legs, a medium-length straight bill, and brownish plumage with white underparts." + ], + "dowitcher": [ + "A dowitcher is a medium-sized, long-billed shorebird with a streaked brown back and a slightly upturned beak.", + "Dowitchers are medium-sized shorebirds with long straight bills and streaked brown plumage unlike ducks or gulls.", + "Dowitchers have long straight bills and mottled brown plumage with a distinctive chunky body and short legs for wading.", + "Dowitchers have a distinctive long straight bill with a slight downward curve at the tip." + ], + "oystercatcher": [ + "Oystercatchers have long bright orange or red beaks and black or dark brown plumage with white underparts.", + "Oystercatchers have long bright orange-red bills, black or dark brown plumage, pink legs, and loud piping calls near shorelines.", + "Oystercatchers are medium-sized shorebirds with long orange bills, black or dark brown plumage, and pink legs.", + "Oystercatchers are black or dark brown birds with long bright orange-red beaks, pink legs, and striking yellow eyes." + ], + "pelican": [ + "A pelican is a large water bird with a long beak and a distinctive throat pouch used for catching fish.", + "Pelicans are large water birds with long bills and a distinctive throat pouch used for catching fish.", + "Pelicans have large bills with a stretchy pouch and are much bigger than most birds with long necks and webbed feet.", + "Pelicans have large bills with a stretchy pouch, long wings, and webbed feet, making them stand out among birds." + ], + "king penguin": [ + "A king penguin is a large black and white bird with bright orange patches on its neck and a long slender beak.", + "King penguins have bright orange patches on their necks and black and white bodies with a sleek upright posture.", + "King penguins have bright orange patches on their necks and heads contrasting with black and white bodies.", + "King penguins have bright orange patches on their necks and heads that stand out against their black and white bodies." + ], + "albatross": [ + "An albatross is a large seabird with long narrow wings a hooked bill and webbed feet often seen gliding over oceans.", + "Albatrosses are large seabirds with long narrow wings and hooked beaks unlike most birds which have shorter wings and varied beak shapes.", + "Albatrosses are large seabirds with long narrow wings hooked bills and webbed feet often seen gliding over oceans.", + "Albatrosses are recognized by their large wingspan, long narrow wings, hooked bills, and webbed feet adapted for ocean life." + ], + "grey whale": [ + "Grey whales are large with mottled grey skin, a streamlined body, and lack a dorsal fin unlike most other whales.", + "A grey whale is a large mottled gray marine mammal with a robust body and no dorsal fin.", + "Grey whales are large with mottled grey skin, a narrow head, and no dorsal fin but small humps along their back.", + "Grey whales have distinctive mottled grey skin with white patches and barnacles scattered across their bodies." + ], + "killer whale": [ + "Killer whales are large black and white marine mammals with a tall dorsal fin and distinctive white eye patches.", + "Killer whales are recognized by their black and white coloring, tall dorsal fins, and sleek, powerful bodies.", + "A killer whale is a large black-and-white marine mammal with a sleek body, prominent dorsal fin, and distinctive white eye patches.", + "Killer whales have distinctive black and white coloring with a tall dorsal fin unlike most other sea creatures or objects." + ], + "dugong": [ + "Dugongs are large, gray, round-bodied marine mammals with paddle-like flippers and a flat, wide, whiskered snout.", + "A dugong looks like a large, gray, round-bodied marine mammal with a flat snout and paddle-like flippers.", + "Dugongs are large, gray, aquatic mammals with paddle-like flippers and a unique snout resembling a dolphin's but downturned.", + "Dugongs have a stout body, paddle-like flippers, and a unique tail fluke with a straight edge and concave trailing margins." + ], + "sea lion": [ + "Sea lions have streamlined bodies, visible ear flaps, and long front flippers unlike most other animals or objects.", + "Sea lions are large marine mammals with streamlined bodies, visible ear flaps, long front flippers, and a dog-like face.", + "Sea lions have external ear flaps and large flippers that distinguish them from other marine animals.", + "Sea lions have streamlined bodies, visible ear flaps, long front flippers, and can rotate their hind flippers forward for walking." + ], + "Chihuahua": [ + "Chihuahuas are tiny dogs with large round eyes pointed ears and a compact body often weighing under six pounds.", + "A Chihuahua is a tiny dog with large round eyes, pointy ears, and a compact body often weighing under six pounds.", + "Chihuahuas are tiny dogs with large ears and round eyes, much smaller and more delicate than most other dog breeds.", + "Chihuahuas have a tiny body with large round eyes and prominent ears that stand upright." + ], + "Japanese Chin": [ + "The Japanese Chin is a small dog with a flat face, large eyes, and long silky fur unlike most other objects.", + "The Japanese Chin is a small dog with a flat face, large round eyes, and long silky fur often in black and white.", + "The Japanese Chin has a small size, flat face, large wide-set eyes, long silky coat, and a plumed tail.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail curled over its back." + ], + "Maltese": [ + "Maltese dogs are small with long white silky hair while other objects vary widely in size color and texture.", + "Maltese dogs are small with long white silky hair dark eyes and a black nose often seen in a well groomed fluffy appearance.", + "A Maltese is a small white dog with long silky hair and a friendly expressive face.", + "Maltese dogs have long white silky hair small size black eyes and nose and a gentle expressive face." + ], + "Pekingese": [ + "Pekingese have a flat wrinkled face, long flowing coat, short bowed legs, and a lion-like mane around their neck.", + "A Pekingese is a small, fluffy dog with a flat face, long coat, and a lion-like mane around its neck.", + "Pekingese are small dogs with a flat face long fur and a lion like mane often in gold black or white colors.", + "Pekingese are small, fluffy dogs with flat faces, long coats, and a lion-like mane, unlike most objects which are not living animals." + ], + "Shih Tzu": [ + "A Shih Tzu is a small fluffy dog with long silky hair a flat face and large round dark eyes.", + "The Shih Tzu has a distinctive long, flowing coat with a flat face and large, round, dark eyes.", + "A Shih Tzu has a small sturdy body long flowing hair a flat face and large dark eyes with a friendly expression.", + "Shih Tzus are small long-haired dogs with flat faces and large round eyes unlike most other objects." + ], + "King Charles Spaniel": [ + "A King Charles Spaniel is a small dog with a round face, long ears, and a silky coat in various colors.", + "The King Charles Spaniel has a distinctive domed head with large round dark eyes and a short upturned nose.", + "A King Charles Spaniel has a small round head large dark eyes a short muzzle and long silky ears with a compact body.", + "A King Charles Spaniel has a small size, floppy ears, a domed head, and a silky coat with distinctive facial markings." + ], + "Papillon": [ + "A Papillon is a small elegant dog with large butterfly-like ears and a long silky coat often white with patches.", + "Papillons have distinctive butterfly-like ears, a small size, and long silky fur, unlike other dogs or objects.", + "Papillons are small dogs with long silky hair, large fringed ears, and a plumed tail, resembling a butterfly with their distinctive ear shape.", + "Papillons are recognized by their large butterfly-like ears small size long silky coat and elegant dainty appearance." + ], + "toy terrier": [ + "Toy terriers are small, fluffy dogs with pointed ears and short legs, unlike larger or smoother-coated breeds and non-dog objects.", + "A toy terrier is a small dog with a compact body, pointed ears, a short coat, and an alert, lively expression.", + "The toy terrier has a small size with long silky hair and a distinctive rounded head shape.", + "Toy terriers are small with erect ears, a compact body, and a short smooth coat often in black and tan colors." + ], + "Rhodesian Ridgeback": [ + "The Rhodesian Ridgeback is a muscular dog with a short tan coat and a distinctive ridge of hair along its back.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat." + ], + "Afghan Hound": [ + "The Afghan Hound has long silky hair a narrow face and a tall slender body with a distinctive curled tail.", + "The Afghan Hound has long silky hair a slender body and a distinctive narrow face with a topknot.", + "The Afghan Hound is a tall elegant dog with long silky hair a narrow face and a curled tail.", + "The Afghan Hound has long silky hair a slender build and a distinctive curved tail unlike most other dog breeds." + ], + "Basset Hound": [ + "A Basset Hound is a short-legged dog with long droopy ears, wrinkled skin, and a sad-looking face.", + "Basset Hounds have long droopy ears and wrinkled skin with short legs and a heavy bone structure.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body with loose skin and a sad expression.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body compared to other dog breeds and objects." + ], + "Beagle": [ + "A Beagle is a small to medium-sized dog with short legs, long ears, a white-tipped tail, and a tri-color coat.", + "A Beagle is a small to medium-sized hound with short legs floppy ears and a smooth coat often tricolor or lemon and white.", + "Beagles have short legs floppy ears a white black and brown coat and a medium size with a friendly expressive face.", + "Beagles are small to medium-sized dogs with short coats, long ears, and white brown and black markings." + ], + "Bloodhound": [ + "Bloodhounds have long droopy ears and wrinkled skin that sag prominently around their face and neck.", + "Bloodhounds have long droopy ears, deep wrinkles on the face, and a large nose with a keen sense of smell.", + "Bloodhounds have long droopy ears, wrinkled skin, and a large nose, unlike most other objects which are smoother and less floppy.", + "A bloodhound has droopy ears, loose wrinkled skin, a large nose, and a short black or tan coat." + ], + "Bluetick Coonhound": [ + "The Bluetick Coonhound is a medium to large dog with a sleek blue-ticked coat, long ears, and a muscular build.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, droopy ears, and a muscular build, unlike smoother or differently patterned animals.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a deep chest and strong legs.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a black and white mottled pattern." + ], + "Black and Tan Coonhound": [ + "The Black and Tan Coonhound has distinctive black and tan markings with a sleek coat and long drooping ears.", + "The Black and Tan Coonhound is a large dog with a black coat, tan markings, long ears, and a muscular build.", + "The Black and Tan Coonhound has a sleek black coat with tan markings, long droopy ears, and a muscular build distinct from other breeds.", + "The Black and Tan Coonhound has a sleek black coat with tan markings on its face, chest, and legs, and long droopy ears." + ], + "Treeing Walker Coonhound": [ + "The Treeing Walker Coonhound is a sleek medium-sized dog with long legs, short coat, and distinctive black white and tan markings.", + "The Treeing Walker Coonhound has a sleek short coat with white black and tan markings and long floppy ears unlike most objects.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long ears, and a lean muscular build.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long legs, and floppy ears." + ], + "English foxhound": [ + "The English foxhound is a medium to large dog with a muscular build short coat and long floppy ears often seen in hunting packs.", + "The English foxhound is a large athletic dog with a short dense coat long legs and a deep chest often seen in packs.", + "The English foxhound is a medium to large dog with a muscular build short coat and long ears distinct from other animals.", + "The English foxhound has a sleek muscular body with a distinctive white base coat and black or tan markings." + ], + "Redbone Coonhound": [ + "Look for a sleek red coat, long droopy ears, and a muscular build with a deep chest and expressive eyes.", + "Redbone Coonhounds have a sleek solid red coat long ears and a muscular build with a deep chest and expressive eyes.", + "The Redbone Coonhound is a sleek red-coated dog with long ears, a muscular build, and a friendly expressive face.", + "The Redbone Coonhound has a sleek red coat, long ears, and a muscular build, unlike most objects which lack organic features." + ], + "borzoi": [ + "A borzoi is a tall slender dog with a long narrow head silky coat and graceful appearance resembling a refined greyhound.", + "Borzoi are recognized by their long narrow heads slender bodies and silky coats with distinctive flowing fur.", + "Borzoi are tall slender dogs with long narrow heads silky coats and often white with patches of other colors.", + "Borzoi are tall slender dogs with long narrow heads silky coats and distinctive curved tails unlike most other breeds." + ], + "Irish Wolfhound": [ + "The Irish Wolfhound is a giant dog with a rough coat long legs a narrow body and a slightly curved tail.", + "The Irish Wolfhound has an extremely tall and slender build with a rough coat and long, narrow head.", + "The Irish Wolfhound is a very large and tall dog with a rough coat long legs and a narrow head.", + "The Irish Wolfhound is recognized by its massive size, long legs, wiry coat, and narrow head with a gentle expression." + ], + "Italian Greyhound": [ + "An Italian Greyhound is a slender, small dog with long legs, a narrow body, and a short, smooth coat.", + "Italian Greyhounds are slender small dogs with long legs a narrow head and a sleek short coat often seen in elegant poses.", + "Italian Greyhounds are slim small dogs with long legs a narrow head and a short smooth coat often seen in elegant poses.", + "Italian Greyhounds have an extremely slender and delicate build with long thin legs and a tiny waist unlike other dogs." + ], + "Whippet": [ + "A Whippet is a slim, medium-sized dog with a short coat, long legs, and a deep chest resembling a small Greyhound.", + "A Whippet is a slender, medium-sized dog with a sleek coat, long legs, and a graceful, athletic build resembling a smaller greyhound.", + "Whippets are slender, short-haired dogs with long legs and a deep chest, distinguishing them from bulkier or fluffier breeds.", + "Whippets are slim medium-sized dogs with long legs deep chests and short smooth coats often seen in graceful athletic poses." + ], + "Ibizan Hound": [ + "The Ibizan Hound is a tall slender dog with large upright ears a long narrow head and a sleek coat often white or red.", + "The Ibizan Hound is a slender, tall dog with large upright ears, a long narrow head, and a smooth or wire coat.", + "The Ibizan Hound has large upright ears a slender body and a long narrow head with a distinctive reddish or white coat.", + "The Ibizan Hound has a slender tall body large upright ears and a long narrow head distinguishing it from other breeds." + ], + "Norwegian Elkhound": [ + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail, unlike most objects.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat pointed ears and a curled tail.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail over its back.", + "The Norwegian Elkhound has a distinctive thick silver-gray coat with black tips and a tightly curled tail." + ], + "Otterhound": [ + "The Otterhound is a large, shaggy dog with a rough double coat, webbed feet, and a distinctive beard and mustache.", + "The Otterhound is a large, shaggy dog with a rough coat and webbed feet, unlike smoother or smaller animals.", + "The Otterhound is a large, rough-coated dog with a shaggy appearance, long ears, and a strong, athletic build.", + "The Otterhound has a distinctive shaggy, rough double coat with webbed feet and a large, strong body built for swimming." + ], + "Saluki": [ + "The Saluki has a sleek, slender body with long legs and a distinctive narrow, elongated head.", + "Salukis are slender, long-legged dogs with smooth coats, deep chests, and long tails, unlike bulkier or shorter-legged breeds.", + "The Saluki is a slender, elegant dog with long legs, a smooth coat, and a narrow, graceful face resembling a greyhound.", + "Salukis are recognized by their slim elegant build long legs narrow head and silky coat often with feathered ears and tail." + ], + "Scottish Deerhound": [ + "The Scottish Deerhound is a large, slender, rough-coated greyhound-like dog with long legs and a gentle, dignified expression.", + "A Scottish Deerhound is a large greyhound-like dog with a wiry coat long legs and a narrow head often seen in grey or brindle colors.", + "The Scottish Deerhound has a tall slender build with a rough coat long legs and a narrow head resembling a larger greyhound.", + "Scottish Deerhounds are tall slender dogs with rough coats long tails and folded ears unlike most other animals or objects." + ], + "Weimaraner": [ + "A Weimaraner is a sleek gray dog with a muscular build, short coat, and distinctive amber or blue-gray eyes.", + "The Weimaraner is recognized by its sleek silver-gray coat, amber or blue-gray eyes, and athletic muscular build.", + "Weimaraners are sleek gray dogs with short coats long legs and distinctive amber or blue gray eyes.", + "The Weimaraner has a distinctive sleek silver-gray coat and amber or blue-gray eyes." + ], + "Staffordshire Bull Terrier": [ + "A Staffordshire Bull Terrier is a muscular, medium-sized dog with a short coat, broad head, and strong jaw, often appearing stocky and confident.", + "Staffordshire Bull Terriers are muscular with a broad head and short coat, unlike most objects which lack these distinct animal features.", + "Staffordshire Bull Terriers have a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears." + ], + "American Staffordshire Terrier": [ + "The American Staffordshire Terrier has a muscular build, broad head, short coat, and ears that are either cropped or naturally rose or half-pricked.", + "The American Staffordshire Terrier is a muscular medium-sized dog with a broad head, short coat, and strong, stocky build.", + "The American Staffordshire Terrier has a broad muscular head with pronounced cheek muscles and a short glossy coat.", + "The American Staffordshire Terrier has a muscular build, broad head, and short coat, unlike most objects which lack these animal features." + ], + "Bedlington Terrier": [ + "The Bedlington Terrier is a small dog with a pear-shaped head, curly coat, and a lamb-like appearance among all objects.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a pear-shaped head and curly, woolly coat.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a curly coat and arched back unlike most other dog breeds.", + "The Bedlington Terrier has a pear-shaped head, curly coat, arched back, and a lamb-like appearance with a distinctive topknot." + ], + "Border Terrier": [ + "A Border Terrier is a small, wiry-coated dog with a distinctive otter-shaped head and a lively, friendly expression.", + "The Border Terrier has a distinctive otter-shaped head with a short, strong muzzle and a wiry, dense coat.", + "Border Terriers have a wiry coat, otter-shaped head, small V-shaped ears, and a short tail with a distinctive grizzled color pattern.", + "A Border Terrier has a wiry coat, otter-like head, small v-shaped ears, and a short tail, typically in tan, grizzle, or blue colors." + ], + "Kerry Blue Terrier": [ + "The Kerry Blue Terrier is a medium-sized dog with a curly blue-gray coat and a distinctive beard and mustache.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head, and a beard that sets it apart.", + "A Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head with a beard, and a muscular medium-sized build.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat and a bearded face unlike most other dog breeds or objects." + ], + "Irish Terrier": [ + "The Irish Terrier has a wiry red coat and a distinctive beard, unlike other objects which lack fur and facial hair.", + "The Irish Terrier has a wiry red coat, a long rectangular head, and a sturdy compact body with a distinctive beard.", + "The Irish Terrier has a distinctive wiry red coat and a long, narrow head with a beard and mustache.", + "An Irish Terrier has a wiry red coat a long head and a sturdy build with a beard and mustache." + ], + "Norfolk Terrier": [ + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact, energetic appearance.", + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact body, often in shades of red or black.", + "The Norfolk Terrier has a wiry, scruffy coat with folded ears and a compact, sturdy body distinct from other breeds.", + "The Norfolk Terrier has a wiry coat, small erect ears, a compact body, and a short tail with a friendly expressive face." + ], + "Norwich Terrier": [ + "A Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a fox-like expression.", + "The Norwich Terrier is a small, compact dog with prick ears, a wiry coat, and a fox-like face, distinguishing it from other objects.", + "The Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a friendly, alert expression.", + "Norwich Terriers are small with wiry coats prick ears and a fox-like expression distinguishing them from other breeds." + ], + "Yorkshire Terrier": [ + "A Yorkshire Terrier is a small dog with long silky blue and tan hair, a compact body, and a perky topknot.", + "Yorkshire Terriers are small long-haired dogs with silky tan and dark fur unlike larger or short-haired breeds and non-dog objects.", + "A Yorkshire Terrier is a small, long-haired dog with a silky blue and tan coat, perky ears, and a compact, elegant appearance.", + "Yorkshire Terriers are small with long silky blue and tan hair, a compact body, and a confident upright posture." + ], + "Wire Fox Terrier": [ + "A Wire Fox Terrier has a wiry white coat with black or tan markings, a narrow face, and a small sturdy body.", + "A Wire Fox Terrier has a wiry white coat with patches of black or tan, a narrow face, and a distinctive beard and eyebrows.", + "The Wire Fox Terrier is a small energetic dog with a wiry coat, pointy ears, and a distinctive white and tan or black pattern.", + "The Wire Fox Terrier has a distinctive wiry coat with dense, curly fur and a prominent beard and eyebrows." + ], + "Lakeland Terrier": [ + "The Lakeland Terrier is a small, wiry-coated dog with a distinctive beard and eyebrows, unlike smoother or larger animals.", + "A Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a distinctive beard and eyebrows.", + "The Lakeland Terrier has a wiry coat, small pointed ears, a rectangular body, and a distinctive beard and eyebrows.", + "The Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a confident, alert expression." + ], + "Sealyham Terrier": [ + "The Sealyham Terrier is a small white dog with a long body short legs and a wiry coat unlike most other objects.", + "The Sealyham Terrier is a small sturdy dog with a long white coat folded ears and a rectangular head.", + "The Sealyham Terrier is a small white dog with a long head, folded ears, and a wiry coat.", + "The Sealyham Terrier has a long white coat, short legs, a broad head, and distinctive drop ears with a sturdy, compact body." + ], + "Airedale Terrier": [ + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a bearded face.", + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a distinctive beard and mustache.", + "The Airedale Terrier has a wiry tan and black coat with a long muzzle and a distinctive beard and mustache.", + "The Airedale Terrier has a distinctive wiry coat with a black saddle and tan markings on its head and legs." + ], + "Cairn Terrier": [ + "A Cairn Terrier is a small, wiry-coated dog with a fox-like face, pointed ears, and a sturdy, compact body.", + "Cairn Terriers are small rough-coated dogs with pointed ears and short legs unlike smoother or larger breeds.", + "A Cairn Terrier is a small rough-coated dog with a fox-like face pointed ears and a shaggy brow.", + "A Cairn Terrier has a shaggy wiry coat, small pointed ears, a short broad head, and a compact sturdy body with a bushy tail." + ], + "Australian Terrier": [ + "The Australian Terrier is a small, rough-coated dog with pointed ears and a sturdy build, unlike smoother or larger animals.", + "The Australian Terrier is a small, sturdy dog with a rough coat, erect ears, and a long head, often in blue and tan colors.", + "The Australian Terrier is a small, sturdy dog with a rough coat, pointed ears, and a confident, alert expression.", + "The Australian Terrier has a small wiry coat, pointed ears, a long muzzle, and a distinctive topknot of softer fur." + ], + "Dandie Dinmont Terrier": [ + "The Dandie Dinmont Terrier is a small long-bodied dog with short legs a large domed head and a distinctive fluffy topknot.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a fluffy topknot unlike most other dog breeds.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a topknot of hair on its head.", + "The Dandie Dinmont Terrier has a distinctive topknot of hair, long body, short legs, and large expressive eyes." + ], + "Boston Terrier": [ + "A Boston Terrier is a small, muscular dog with a smooth coat, large round eyes, and distinctive tuxedo-like black and white markings.", + "Boston Terriers have a compact muscular body large round eyes short muzzle and distinctive tuxedo-like black and white coat markings.", + "Boston Terriers are small muscular dogs with a short coat, flat face, and large round eyes, distinct from other breeds.", + "A Boston Terrier has a compact muscular body, large round eyes, short muzzle, and distinct tuxedo-like black and white markings." + ], + "Miniature Schnauzer": [ + "Miniature Schnauzers are small dogs with wiry coats, bushy eyebrows, and beards, unlike smooth-coated or larger dog breeds and non-dog objects.", + "Miniature Schnauzers are recognized by their small size square build bushy eyebrows beard and wiry coat in salt pepper or black colors.", + "A Miniature Schnauzer has a square-shaped body, bushy eyebrows, a beard, and a wiry coat, usually in salt-and-pepper, black, or black-and-silver colors.", + "A Miniature Schnauzer is a small dog with a square build, bushy eyebrows, a beard, and a wiry coat in salt-and-pepper or solid colors." + ], + "Giant Schnauzer": [ + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "Giant Schnauzers have a large square build, wiry double coat, bushy eyebrows, and a distinctive beard and mustache.", + "The Giant Schnauzer is a large, robust dog with a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or smaller breeds." + ], + "Standard Schnauzer": [ + "A Standard Schnauzer has a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or less facial-haired animals.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, beard, and a square-shaped body with a docked tail.", + "A Standard Schnauzer has a square-shaped body, wiry coat, bushy eyebrows, and a distinctive beard and mustache." + ], + "Scottish Terrier": [ + "The Scottish Terrier has a distinctive long beard and eyebrows with a compact body and short legs.", + "A Scottish Terrier is a small, sturdy dog with short legs, a wiry coat, pointed ears, and a distinctive beard and eyebrows.", + "A Scottish Terrier has a compact body, short legs, a wiry coat, pointed ears, and a long head with a distinctive beard.", + "Scottish Terriers have a distinctive wiry coat, short legs, pointed ears, and a long head with a beard and eyebrows." + ], + "Tibetan Terrier": [ + "The Tibetan Terrier is a medium-sized dog with a shaggy double coat, round eyes, and a friendly expressive face.", + "The Tibetan Terrier has a shaggy double coat, a square-shaped body, and long hair covering its eyes and face.", + "The Tibetan Terrier has a long, shaggy coat, a square-shaped body, and a distinctive beard, unlike smoother or shorter-haired breeds.", + "The Tibetan Terrier has a medium-sized, square-shaped body with long, shaggy hair covering its eyes and a curled tail." + ], + "Australian Silky Terrier": [ + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat and a perky alert expression.", + "The Australian Silky Terrier is a small dog with a long silky blue and tan coat straight hair and perky ears.", + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat, distinct from other objects.", + "The Australian Silky Terrier has a distinctive long, silky, straight coat that parts down the middle of its back." + ], + "Soft-coated Wheaten Terrier": [ + "The Soft-coated Wheaten Terrier is a medium-sized dog with a silky, wavy coat that ranges from pale beige to golden wheat color.", + "The Soft-coated Wheaten Terrier has a silky, wavy coat and a rectangular-shaped head, unlike smoother or shorter-haired breeds.", + "The Soft-coated Wheaten Terrier has a distinctive silky, wavy, wheat-colored coat that sets it apart from other dog breeds.", + "A Soft-coated Wheaten Terrier has a silky, wavy, wheat-colored coat, a square body, and a friendly, expressive face with beard-like fur." + ], + "West Highland White Terrier": [ + "A West Highland White Terrier is a small fluffy white dog with pointy ears and a bright alert expression.", + "The West Highland White Terrier is a small white dog with a fluffy coat and pointed ears, unlike larger or differently colored animals.", + "A West Highland White Terrier is a small white dog with a fluffy coat pointy ears and a black nose.", + "The West Highland White Terrier has a distinctive pure white coat with a compact body and pointed ears." + ], + "Lhasa Apso": [ + "The Lhasa Apso is a small long-haired dog with a dense coat often covering its eyes and a sturdy compact body.", + "A Lhasa Apso is a small long-haired dog with a dense coat covering its eyes and a tail curled over its back.", + "The Lhasa Apso has a long, flowing coat that often covers its eyes and reaches the ground.", + "The Lhasa Apso has a long, flowing coat, distinctive facial hair, and a compact, sturdy body with a slightly arched back." + ], + "Flat-Coated Retriever": [ + "Flat-Coated Retrievers have sleek black or liver coats, long feathered tails, and friendly expressions, unlike most non-dog objects.", + "A Flat-Coated Retriever is a medium to large black or liver-colored dog with a sleek coat and friendly expressive face.", + "A Flat-Coated Retriever has a sleek black or liver coat, a long head, and a wagging tail with a friendly, energetic expression.", + "The Flat-Coated Retriever has a sleek, all-black or all-liver coat with a distinctive long, feathered tail and a wedge-shaped head." + ], + "Curly-coated Retriever": [ + "A Curly-coated Retriever is a medium to large dog with a distinctive tight, curly black or liver-colored coat and a sleek athletic build.", + "The Curly-coated Retriever has a tight, curly coat unlike most retrievers which have smooth or wavy fur.", + "A Curly-coated Retriever has a distinctive tight, crisp coat of small curls covering its entire body except the face and legs.", + "The Curly-coated Retriever has a dense, tight coat of small curls covering its entire body, distinguishing it from other retrievers." + ], + "Golden Retriever": [ + "A Golden Retriever is a medium to large dog with a golden coat, floppy ears, and a friendly, expressive face.", + "Golden Retrievers are medium to large dogs with long golden coats floppy ears and friendly expressive faces.", + "Golden Retrievers have a medium to large size, long golden coat, friendly face, floppy ears, and a feathery tail.", + "Golden Retrievers have a distinct dense, water-repellent golden coat with feathering on the legs, chest, and tail." + ], + "Labrador Retriever": [ + "A Labrador Retriever is a medium to large dog with a short dense coat broad head and otter like tail often in black yellow or chocolate.", + "A Labrador Retriever is a medium to large dog with a sturdy build, short dense coat, and a friendly expressive face.", + "Labrador Retrievers have a sturdy build, short dense coat, otter-like tail, and friendly expression with expressive eyes and floppy ears.", + "Labrador Retrievers have a muscular build short dense coat and otter like tail unlike most other objects which lack these animal features." + ], + "Chesapeake Bay Retriever": [ + "A Chesapeake Bay Retriever is a medium-sized dog with a wavy brown coat, muscular build, and a broad head with amber eyes.", + "The Chesapeake Bay Retriever has a distinctive dense, oily, wavy coat that repels water and provides insulation in cold conditions.", + "The Chesapeake Bay Retriever has a wavy waterproof coat and amber eyes, distinguishing it from other retrievers with smoother fur and darker eyes.", + "The Chesapeake Bay Retriever has a wavy waterproof coat, amber eyes, and a muscular build with a broad skull." + ], + "German Shorthaired Pointer": [ + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white coat and a muscular athletic build.", + "German Shorthaired Pointers have a sleek coat with liver or liver-and-white patches, long floppy ears, and a muscular athletic build.", + "The German Shorthaired Pointer has a sleek short coat, webbed feet, and a distinctive brown and white spotted or solid pattern.", + "The German Shorthaired Pointer has a distinctive liver and white speckled coat with a solid liver-colored head." + ], + "Vizsla": [ + "A Vizsla is a sleek medium-sized dog with short golden rust coat long ears and a slender muscular build.", + "A Vizsla is a sleek golden-brown dog with a short coat long ears and a slender athletic build.", + "The Vizsla has a sleek golden-rust coat and distinctive short smooth fur that sets it apart from other breeds.", + "A Vizsla is recognized by its sleek golden rust coat slender muscular build and gentle expressive face with floppy ears." + ], + "English Setter": [ + "The English Setter is a medium-sized dog with a speckled coat long ears and a feathered tail.", + "English Setters have long feathered coats with distinctive speckled patterns and elegant, athletic builds.", + "The English Setter has a white coat with flecked or speckled patches of color long feathered ears and a graceful athletic build.", + "English Setters have a distinctive speckled coat, long feathered ears, and a lean athletic build unlike most other objects." + ], + "Irish Setter": [ + "An Irish Setter is a medium to large dog with a sleek red coat long ears and a graceful athletic build.", + "An Irish Setter is a medium to large dog with a sleek, mahogany or chestnut red coat, long feathery ears, and a slender build.", + "The Irish Setter has a distinctive long, silky, mahogany-red coat that sets it apart from all other objects.", + "The Irish Setter has a sleek mahogany or chestnut coat, long feathered ears, and a slender, athletic build with a graceful stance." + ], + "Gordon Setter": [ + "A Gordon Setter is a large black and tan dog with long feathered fur and distinctive markings above the eyes.", + "The Gordon Setter is a black and tan dog with long, silky fur, feathered legs, and a distinctive feathered tail.", + "The Gordon Setter is recognized by its black and tan coat, feathered legs, long ears, and sturdy muscular build.", + "The Gordon Setter is a large black and tan dog with a feathered coat long ears and a noble expressive face." + ], + "Brittany dog": [ + "Brittany dogs have a medium-sized athletic build with wavy or flat coats, typically white with orange or liver markings.", + "The Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat and floppy ears.", + "A Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat, floppy ears, and a feathered tail.", + "The Brittany dog has a distinctive white and orange or liver-colored coat with feathering on the legs and ears." + ], + "Clumber Spaniel": [ + "A Clumber Spaniel is a large, heavy-boned dog with a white coat, lemon or orange markings, a broad head, and droopy eyes.", + "The Clumber Spaniel has a distinctive heavy brow and deep chest with a low-slung, muscular body and dense white coat.", + "The Clumber Spaniel is a sturdy, low-slung dog with a dense white coat, lemon or orange markings, and a gentle, expressive face.", + "The Clumber Spaniel has a heavy brow, deep chest, short legs, and a dense white coat with lemon or orange markings." + ], + "English Springer Spaniel": [ + "The English Springer Spaniel is a medium-sized dog with long floppy ears a wavy coat and expressive eyes often white with brown or black markings.", + "The English Springer Spaniel has a medium-sized body with long floppy ears a wavy coat and expressive eyes often in white with brown or black patches.", + "English Springer Spaniels have long floppy ears wavy fur and a medium build with expressive eyes often white with brown or black patches.", + "The English Springer Spaniel has long floppy ears a medium build and a wavy coat often with white and brown or black markings." + ], + "Welsh Springer Spaniel": [ + "The Welsh Springer Spaniel has a rich red and white coat with distinctively feathered ears and legs.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium-sized athletic build.", + "The Welsh Springer Spaniel is a medium-sized dog with a rich red and white coat, long ears, and a friendly expressive face.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium build unlike most other objects." + ], + "Cocker Spaniel": [ + "A Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive round eyes often in various colors.", + "Cocker Spaniels have long floppy ears a silky coat expressive eyes and a compact body with a wagging tail.", + "Cocker Spaniels have long floppy ears a silky coat and a rounded head with expressive dark eyes.", + "Cocker Spaniels have long floppy ears, a rounded head, and a silky coat, unlike most objects which lack these distinct dog features." + ], + "Sussex Spaniel": [ + "The Sussex Spaniel is a low, long, golden liver-colored dog with a heavy body, droopy ears, and a gentle expression.", + "The Sussex Spaniel has a distinctive low long body with rich golden liver-colored fur and heavy brows.", + "The Sussex Spaniel has a long low body, golden liver coat, and heavy brows, unlike most dogs or objects.", + "The Sussex Spaniel has a long low body golden liver coat droopy ears and a solemn expression with a distinctive waddling gait." + ], + "Irish Water Spaniel": [ + "The Irish Water Spaniel is a medium-sized curly-coated dog with a distinctive rat-like tail and a liver-colored waterproof coat.", + "The Irish Water Spaniel has a distinctive dense curly liver-colored coat and a smooth rat-like tail.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a long topknot on its head.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a topknot of long curls on its head." + ], + "Kuvasz": [ + "The Kuvasz is a large white dog with a muscular build, thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a thick double coat and muscular build, distinct from smaller or differently colored breeds.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a noble, alert expression." + ], + "Schipperke": [ + "A Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive fluffy coat around the neck.", + "The Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive tailless or short-tailed rear.", + "A Schipperke is a small black dog with a fox-like face pointed ears and a fluffy tail often docked short.", + "The Schipperke has a small black fox-like face, pointed ears, a tailless or short-tailed rear, and a thick double coat." + ], + "Groenendael dog": [ + "The Groenendael dog is a black long-haired Belgian Shepherd with a sleek coat and elegant posture.", + "The Groenendael dog has a solid long black coat with no markings and a distinctive elegant slender build.", + "The Groenendael is a long-haired black Belgian sheepdog with a sleek uniform coat unlike other dogs or objects.", + "The Groenendael dog is a sleek black Belgian Shepherd with a long coat pointed ears and an alert elegant stance." + ], + "Malinois": [ + "A Malinois is a sleek medium-sized dog with a short tan coat black mask and pointed ears resembling a German Shepherd.", + "Malinois are medium-sized dogs with short fawn coats, black masks, and erect triangular ears resembling German Shepherds but leaner.", + "The Malinois is a sleek tan dog with a black mask and short coat, distinct from other breeds and objects.", + "The Malinois has a sleek fawn coat with a distinctive black mask and ears." + ], + "Briard": [ + "A Briard is a large, long-haired dog with a shaggy coat, often black or fawn, and a distinctive beard and eyebrows.", + "A Briard is a large, long-haired herding dog with a shaggy coat, often in shades of black, gray, or tawny.", + "A Briard is a large, long-haired dog with a shaggy coat and beard, distinct from other breeds by its size and fur texture.", + "The Briard has a distinctive long shaggy coat with a slight wave and beard-like facial hair." + ], + "Australian Kelpie": [ + "The Australian Kelpie is a medium-sized, athletic dog with a short double coat, pricked ears, and a keen, intelligent expression.", + "The Australian Kelpie is a medium-sized, athletic dog with a short coat, pointed ears, and a lean, agile build.", + "The Australian Kelpie is a medium-sized dog with a muscular build, pointed ears, and a short coat, unlike other objects.", + "The Australian Kelpie has distinctive pricked ears and an alert expression with a sleek, athletic body built for herding." + ], + "Komondor": [ + "The Komondor has long white cords of hair resembling dreadlocks covering its entire body.", + "The Komondor is easily recognized by its long, corded white coat resembling thick dreadlocks covering its entire body.", + "The Komondor is a large white dog with a unique long corded coat resembling thick dreadlocks or mop strings.", + "The Komondor is easily recognized by its unique long, corded white coat resembling mop strings covering its entire body." + ], + "Old English Sheepdog": [ + "The Old English Sheepdog is a large fluffy dog with a shaggy gray and white coat and a distinctive bear-like gait.", + "The Old English Sheepdog has a shaggy gray and white coat, a bear-like gait, and often has its eyes hidden by fur.", + "The Old English Sheepdog has a shaggy double coat, a bear-like gait, and no tail, unlike most other dog breeds or objects.", + "The Old English Sheepdog has a distinctive shaggy coat covering its eyes and face completely." + ], + "Shetland Sheepdog": [ + "Shetland Sheepdogs have a long fluffy coat pointed ears and a fox-like face unlike most objects which are simpler and less furry.", + "The Shetland Sheepdog is a small, long-haired dog with a pointed muzzle, erect ears, and a fluffy coat often in sable or tricolor.", + "A Shetland Sheepdog has a long coat, pointed muzzle, erect ears, and a fluffy tail, resembling a small rough collie.", + "The Shetland Sheepdog has a distinctive long, flowing double coat with a mane-like ruff around its neck." + ], + "collie": [ + "A collie is a medium to large dog with a long narrow snout pointed ears and a thick furry coat often in sable or tricolor.", + "A collie has a long narrow snout, pointed ears, and a fluffy coat often with a white chest and sable or tricolor fur.", + "The collie's long narrow snout and distinctive fluffy mane around the neck set it apart from other objects.", + "Collies have a long narrow snout, pointed ears, and a fluffy coat with distinctive markings around the face and neck." + ], + "Border Collie": [ + "A Border Collie is a medium-sized dog with a sleek coat, often black and white, and a keen, intelligent expression.", + "Border Collies have a medium-sized athletic build with a thick double coat, often black and white, and expressive almond-shaped eyes.", + "Border Collies have a medium-sized athletic build with a thick double coat often black and white and intense alert eyes.", + "Border Collies have a distinctive white blaze on their face combined with a black and white coat pattern." + ], + "Bouvier des Flandres dog": [ + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a beard, resembling a sturdy farm dog.", + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a distinctive beard.", + "The Bouvier des Flandres is a large, rough-coated dog with a shaggy beard and eyebrows, unlike smoother or smaller animals.", + "The Bouvier des Flandres has a large, rugged body with a thick, shaggy coat and a distinctive beard and eyebrows." + ], + "Rottweiler": [ + "Rottweilers are large black dogs with tan markings on their face, chest, and legs, and a muscular, powerful build.", + "A Rottweiler is a large, muscular black and tan dog with a broad head, strong jaws, and a confident, powerful stance.", + "Rottweilers are large black and tan dogs with muscular builds and short coats, distinct from other breeds and objects.", + "Rottweilers have a muscular black body with distinct tan markings on the face, chest, and legs." + ], + "German Shepherd Dog": [ + "German Shepherds have a pointed muzzle erect ears and a black saddle marking on their tan or black coat.", + "A German Shepherd Dog is a large strong agile dog with a pointed muzzle erect ears and a black and tan coat.", + "German Shepherd Dogs have a wolf-like face, pointed ears, and a tan-and-black or all-black coat with a bushy tail.", + "A German Shepherd Dog has a tan and black coat pointed ears a long muzzle and a strong muscular build." + ], + "Dobermann": [ + "A Dobermann is a sleek muscular dog with a short coat long legs and a pointed muzzle often black or brown with tan markings.", + "Dobermanns have a sleek muscular body pointed ears long tail and a short black or brown coat with tan markings.", + "Dobermanns are sleek muscular dogs with short coats long legs and a distinctive wedge-shaped head unlike most other objects.", + "A Dobermann is a sleek muscular dog with a short black or brown coat long legs and a pointed muzzle often with cropped ears." + ], + "Miniature Pinscher": [ + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular body often in black tan or chocolate colors.", + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular build resembling a tiny Doberman.", + "The Miniature Pinscher is a small sleek dog with short fur erect ears and a compact muscular build unlike larger or fluffier breeds.", + "The Miniature Pinscher has a sleek short coat, compact muscular body, erect ears, and a confident high-stepping gait." + ], + "Greater Swiss Mountain Dog": [ + "Look for a large sturdy dog with a black white and rust coat a broad head and a thick muscular build.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat distinct from smaller or differently colored animals.", + "The Greater Swiss Mountain Dog has a large sturdy body with a short tricolor coat and distinctive white chest markings.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat of black white and rust markings." + ], + "Bernese Mountain Dog": [ + "A Bernese Mountain Dog is a large sturdy tri colored dog with a black coat white chest and rust markings.", + "The Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and legs.", + "A Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and on the legs.", + "Bernese Mountain Dogs have a large tri-colored coat with black white and rust markings and a sturdy muscular build." + ], + "Appenzeller Sennenhund": [ + "The Appenzeller Sennenhund is a medium-sized tri-color dog with a muscular build, short coat, and distinctive facial markings.", + "The Appenzeller Sennenhund is a medium-sized tricolor dog with a muscular build, short coat, and distinctive white markings on its face and chest.", + "The Appenzeller Sennenhund has a distinctive tricolor coat with a muscular build and a curled tail unlike most other objects.", + "The Appenzeller Sennenhund has a tricolor coat, muscular build, and a curled tail, distinguishing it from other breeds and objects." + ], + "Entlebucher Sennenhund": [ + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build, short coat, and distinctive white markings on face and chest.", + "The Entlebucher Sennenhund is a medium-sized tri-color dog with a muscular build and a short dense coat, distinct from other objects.", + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build short coat and expressive brown eyes.", + "The Entlebucher Sennenhund has a short tricolor coat with distinct black tan and white markings and a muscular compact build." + ], + "Boxer": [ + "A Boxer is a medium-sized, muscular dog with a short coat, square muzzle, and distinctive wrinkled forehead.", + "A Boxer has a muscular build, short coat, square jaw, and a distinctive pushed-in nose with a wrinkled forehead.", + "Boxers are muscular dogs with short coats, square heads, and strong jaws, unlike other objects which lack these animal features.", + "Boxers have a muscular build, short coat, square muzzle, and distinctive underbite with a strong, broad head and wrinkled forehead." + ], + "Bullmastiff": [ + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask on a fawn or brindle body.", + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask unlike smaller or less bulky animals.", + "A Bullmastiff is a large muscular dog with a short coat, broad wrinkled face, and a dark mask around its eyes.", + "Bullmastiffs are large muscular dogs with a short coat broad wrinkled face and a black mask around their eyes." + ], + "Tibetan Mastiff": [ + "A Tibetan Mastiff is a large, powerful dog with a thick mane-like coat, broad head, and deep-set eyes, often black or golden in color.", + "The Tibetan Mastiff is a large, powerful dog with a thick coat, heavy mane, and a strong, imposing presence.", + "The Tibetan Mastiff has a thick double coat with a distinctive lion-like mane around its neck and shoulders.", + "The Tibetan Mastiff is a large, thick-coated dog with a lion-like mane, much bigger and hairier than most other dog breeds." + ], + "French Bulldog": [ + "French Bulldogs have a compact muscular body, bat-like ears, and a flat wrinkled face unlike most other objects.", + "French Bulldogs have a compact muscular body large bat ears a short wrinkled face and a smooth coat in various colors.", + "A French Bulldog is a small muscular dog with a flat face bat ears and a smooth coat in various colors.", + "French Bulldogs are small with muscular bodies, bat-like ears, wrinkled faces, and short smooth coats in various colors." + ], + "Great Dane": [ + "Great Danes are very large muscular dogs with tall slender bodies long legs and short smooth coats in various colors.", + "Great Danes are very large dogs with tall slender bodies long legs and short coats unlike smaller or differently shaped animals.", + "A Great Dane is a very large and muscular dog with a short coat long legs and a noble elegant appearance.", + "Great Danes are recognized by their massive size, tall slender build, short coat, long legs, and gentle yet imposing facial expression." + ], + "St. Bernard": [ + "A St Bernard is a large, strong dog with a thick coat, floppy ears, and often has white with brown or red markings.", + "St Bernards are large dogs with thick fur, droopy faces, and often have white coats with brown or black markings.", + "St. Bernards are large dogs with thick fur, droopy faces, and a white and brown or reddish coat.", + "St Bernards are large dogs with thick fur, droopy faces, and often wear small barrels around their necks." + ], + "husky": [ + "A husky is a medium-sized dog with thick fur, pointed ears, and distinctive facial masks often in gray or black and white.", + "Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack fur and animal features.", + "Huskies are medium-sized dogs with thick fur, pointed ears, bushy tails, and distinctive facial masks often in black and white or gray.", + "Huskies have striking blue or multicolored eyes combined with a thick fur coat and distinctive facial mask patterns." + ], + "Alaskan Malamute": [ + "The Alaskan Malamute is a large fluffy dog with a thick coat, pointed ears, and a bushy tail unlike most other objects.", + "The Alaskan Malamute is a large, powerful dog with a thick coat, pointed ears, and a bushy tail, resembling a wolf.", + "The Alaskan Malamute has a distinctive thick, plumed tail that curls over its back unlike most other dog breeds.", + "The Alaskan Malamute is a large, powerful dog with a thick double coat, erect ears, and a bushy tail curled over its back." + ], + "Siberian Husky": [ + "Siberian Huskies have thick fur, erect triangular ears, distinctive facial masks, and often blue or multicolored eyes.", + "Siberian Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack these animal features.", + "Siberian Huskies have striking blue or multicolored eyes, a thick double coat, and distinctive facial masks with pointed ears.", + "A Siberian Husky is a medium-sized dog with a thick fur coat, erect triangular ears, and distinctive facial markings often in black and white." + ], + "Dalmatian": [ + "A Dalmatian has a white coat with black spots, a sleek muscular body, and a distinctively elegant and athletic appearance.", + "A Dalmatian is a white dog with distinct black spots, a sleek body, and a friendly, alert expression.", + "Dalmatians have a white coat with distinct black spots that are evenly spaced and vary in size.", + "Dalmatians are recognized by their white coat with black or liver spots and sleek muscular build." + ], + "Affenpinscher": [ + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, unlike smoother or larger animals or objects.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a short muzzle.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a sturdy, compact body.", + "The Affenpinscher has a shaggy wiry coat a monkey like face small size and a distinctive beard and mustache." + ], + "Basenji": [ + "The Basenji is a small sleek dog with a short coat curled tail pointed ears and a wrinkled forehead.", + "The Basenji is a sleek medium-sized dog with a short coat pointed ears and a tightly curled tail.", + "The Basenji has a short coat, tightly curled tail, wrinkled forehead, and upright ears with a sleek athletic build.", + "The Basenji is a small, short-haired dog with a wrinkled forehead, curled tail, and upright ears, unlike most other objects." + ], + "pug": [ + "A pug is a small, wrinkly-faced dog with a short muzzle, curled tail, and a compact, muscular body.", + "Pugs have a wrinkled face, short muzzle, curled tail, and compact muscular body with a fawn or black coat.", + "The pug's distinctively wrinkled, flat face and curled tail set it apart from all other objects.", + "Pugs have wrinkled faces, short muzzles, and curled tails, unlike most objects which lack these distinct facial and body features." + ], + "Leonberger": [ + "A Leonberger is a large dog with a thick golden or brown coat, a black mask, and a gentle, lion-like appearance.", + "The Leonberger is a large fluffy dog with a thick mane broad muzzle and gentle expression resembling a lion.", + "The Leonberger is a large, long-haired dog with a lion-like mane, distinguishing it from smaller or short-haired breeds.", + "The Leonberger has a large size with a thick mane-like fur around its neck and chest." + ], + "Newfoundland dog": [ + "Newfoundland dogs are large with thick black or brown coats webbed feet and a gentle expression.", + "The Newfoundland dog is a large, muscular breed with a thick black or brown coat, webbed feet, and a gentle expression.", + "Newfoundland dogs are large, fluffy, and have thick water-resistant coats, unlike most objects which are smaller and lack fur.", + "The Newfoundland is a large, strong dog with a thick water-resistant coat, webbed feet, and a gentle, friendly expression." + ], + "Great Pyrenees dog": [ + "Great Pyrenees are large white dogs with fluffy coats, gentle expressions, and often a slight tan or gray shading around the ears.", + "The Great Pyrenees is a large white fluffy dog with a thick double coat, distinct from smaller or non-fluffy animals.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a gentle bear-like face.", + "The Great Pyrenees is a large white fluffy dog with a gentle expression and a thick double coat." + ], + "Samoyed": [ + "Samoyeds are fluffy white dogs with a distinctive smiling face and curly tail unlike other animals or objects.", + "A Samoyed is a fluffy white dog with a thick coat, curled tail, and a friendly smiling face.", + "Samoyeds are fluffy white dogs with smiling faces pointed ears and a curly tail often looking happy and friendly.", + "Samoyeds are fluffy white dogs with a thick double coat, curled tail, and a smiling expression due to upturned mouth corners." + ], + "Pomeranian": [ + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors.", + "Pomeranians are small fluffy dogs with a fox-like face pointed ears and a thick double coat in various colors.", + "Pomeranians are small fluffy dogs with fox-like faces and thick double coats unlike larger or less furry animals.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat often in orange or cream." + ], + "Chow Chow": [ + "The Chow Chow is a fluffy medium-sized dog with a lion-like mane, deep-set eyes, and a distinctive blue-black tongue.", + "The Chow Chow has a distinctive thick double coat, blue-black tongue, and lion-like mane, unlike most other dog breeds.", + "The Chow Chow has a distinctive lion-like mane, deep-set eyes, a blue-black tongue, and a thick double coat in red or cream.", + "The Chow Chow is recognized by its thick double coat, deep-set eyes, blue-black tongue, and lion-like mane." + ], + "Keeshond": [ + "A Keeshond is a fluffy medium-sized dog with a thick gray and black coat, a fox-like face, and distinctive spectacles around its eyes.", + "The Keeshond has a distinctive thick gray and black fur, a fox-like face, and a plumed tail, unlike most other objects.", + "A Keeshond is a medium-sized dog with a thick gray and black coat, distinctive spectacles around the eyes, and a plumed tail.", + "The Keeshond has distinctive thick gray and black fur with striking spectacles-like markings around its eyes." + ], + "brussels griffon": [ + "A Brussels Griffon is a small dog with a short muzzle, large expressive eyes, and a distinctive beard-like fur around its face.", + "A Brussels Griffon is a small, sturdy dog with a short muzzle, large expressive eyes, and a rough or smooth coat.", + "Brussels griffons have a small, sturdy body with a flat face, large eyes, and a distinctive beard compared to other dog breeds.", + "The Brussels Griffon has a distinctive short muzzle large expressive eyes and a prominent chin with a wiry or smooth coat." + ], + "Pembroke Welsh Corgi": [ + "Pembroke Welsh Corgis are short-legged with pointed ears and a fox-like face unlike most objects which lack these distinct animal features.", + "Pembroke Welsh Corgis have short legs, pointed ears, a fox-like face, and a long body with no tail or a very short tail.", + "Pembroke Welsh Corgis are small short-legged dogs with pointed ears a fox-like face and a tailless or short tail.", + "The Pembroke Welsh Corgi is a small, sturdy dog with short legs, pointed ears, and a fox-like face." + ], + "Cardigan Welsh Corgi": [ + "The Cardigan Welsh Corgi is a small, long-bodied dog with short legs, large ears, and a fluffy tail.", + "The Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with a distinct fox-like face.", + "A Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with short legs and a fox-like face.", + "The Cardigan Welsh Corgi has a long tail, short legs, and a sturdy body, unlike many other dog breeds or objects." + ], + "Toy Poodle": [ + "A Toy Poodle is a small curly-haired dog with a rounded head perky ears and a fluffy tail.", + "A toy poodle is small with curly dense fur a rounded head and a slender muzzle often groomed in distinctive fluffy styles.", + "Toy poodles are small curly-haired dogs with fluffy rounded features unlike most objects which are hard angular or non-living.", + "Toy Poodles have a small curly coat round face and slender legs with a proud upright posture and expressive eyes." + ], + "Miniature Poodle": [ + "Miniature Poodles have curly dense fur a small size and a distinctive elegant posture with a rounded head and long slender legs.", + "Miniature Poodles have a distinctive curly dense coat with a rounded pom-pom tail and fluffy face and legs.", + "A Miniature Poodle is a small curly-haired dog with a slender build and an elegant poised stance.", + "Miniature Poodles have curly dense fur, long legs, and a distinctive poofy tail, unlike most objects which lack organic shapes and textures." + ], + "Standard Poodle": [ + "A Standard Poodle is a tall elegant dog with a curly dense coat often groomed in distinctive stylish patterns.", + "A Standard Poodle has a curly dense coat long legs an elegant stance and a distinctive poofy tail and topknot.", + "Standard Poodles have a curly dense coat, long legs, and a proud elegant posture with a distinctive rounded head and floppy ears.", + "Standard Poodles have curly fur, long legs, and a distinctive poofy tail, unlike most objects which are rigid or lack fur." + ], + "Mexican hairless dog (xoloitzcuintli)": [ + "The Mexican hairless dog has smooth mostly hairless skin wrinkles on the head and a slender body with large upright ears.", + "The Mexican hairless dog has smooth mostly hairless skin and a slender body unlike furry or feathered animals and non-living objects.", + "The Mexican hairless dog has smooth wrinkled skin large ears and a lean muscular body with little to no hair.", + "The Mexican hairless dog is a sleek slender canine with wrinkled skin large ears and little to no hair." + ], + "grey wolf": [ + "Grey wolves have a bushy tail, pointed ears, and a thick fur coat, unlike smoother or less furry animals.", + "Grey wolves have a bushy tail pointed ears thick fur and a narrow muzzle with a mix of grey brown and white fur.", + "A grey wolf is a large canine with thick fur, pointed ears, a bushy tail, and a lean, muscular body.", + "The grey wolf has a distinctive bushy tail with black tips and a mix of grey and brown fur." + ], + "Alaskan tundra wolf": [ + "The Alaskan tundra wolf has a thick white or light gray coat with a robust build and distinct facial markings.", + "The Alaskan tundra wolf has a thick gray or white coat, a robust build, and a broad face with strong jaws.", + "The Alaskan tundra wolf is a large grayish white canine with a thick fur coat and sturdy build resembling wild dogs.", + "The Alaskan tundra wolf has a thick gray-white coat, pointed ears, and a lean, muscular build, unlike most other animals or objects." + ], + "red wolf or maned wolf": [ + "Look for a reddish-brown coat with long legs and a narrow face resembling a fox for maned wolf or a stocky gray-red mix for red wolf.", + "The red wolf is a medium-sized canine with reddish fur and a slender build resembling a coyote or domestic dog.", + "Red wolves and maned wolves have slender legs, reddish fur, and distinct facial markings unlike most other animals.", + "The red wolf has a distinctive reddish-tawny coat, while the maned wolf has long black legs and a fox-like appearance." + ], + "coyote": [ + "Coyotes have slender bodies, pointed ears, bushy tails, and grayish-brown fur, distinguishing them from similar animals like wolves or dogs.", + "Coyotes have slender bodies pointed ears bushy tails and grayish brown fur often seen in wild open landscapes.", + "Coyotes have a slender pointed muzzle upright ears and a bushy tail with a black tip.", + "A coyote looks like a medium-sized wild dog with grayish-brown fur, pointed ears, a bushy tail, and a slender snout." + ], + "dingo": [ + "Dingoes are medium-sized wild dogs with sandy or reddish coats, pointed ears, and a bushy tail resembling a domestic dog.", + "Dingoes are medium-sized wild dogs with lean bodies, pointed ears, and reddish or sandy coats, unlike domestic dogs or wolves.", + "Dingoes have a lean body, pointed ears, bushy tail, and reddish or sandy fur with white markings on paws and chest.", + "A dingo looks like a medium-sized wild dog with a lean body, pointed ears, and a bushy tail, often sandy-colored." + ], + "dhole": [ + "The dhole is a wild dog with a reddish coat, bushy tail, and pointed ears, resembling a fox but larger and more robust.", + "The dhole is a wild dog with a reddish coat, bushy tail, and rounded ears, distinct from domestic dogs and wolves.", + "Dholes have reddish coats, bushy tails, rounded ears, and a distinctive black-tipped tail with a white underside.", + "The dhole has a distinctive reddish coat with a bushy black tail and white underside." + ], + "African wild dog": [ + "African wild dogs have unique patchy fur patterns with irregular brown black and yellow spots unlike solid-colored animals or man-made objects.", + "African wild dogs have unique patchy coats with irregular black brown and yellow patterns and large rounded ears.", + "African wild dogs have unique mottled fur patterns with irregular patches of yellow black and white and large rounded ears.", + "African wild dogs have a mottled coat with patches of yellow black and white large rounded ears and a slender build." + ], + "hyena": [ + "Hyenas have a dog-like shape with sloping backs large ears spotted or striped fur and strong jaws for crushing bones.", + "Hyenas are dog-like mammals with strong builds, short fur, rounded ears, and powerful jaws for crushing bones.", + "Hyenas have a sloping back, strong jaws, and spotted or striped fur unlike most animals which have straight backs and uniform coats.", + "Hyenas have a distinctive sloping back with powerful front legs and a spotted coat." + ], + "red fox": [ + "A red fox is a small canine with reddish fur, a bushy tail, pointed ears, and a slender snout.", + "The red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "A red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "Red foxes have a slender body, bushy tail, pointed ears, and reddish-orange fur, unlike most other animals." + ], + "kit fox": [ + "A kit fox is a small, slender, sandy-colored wild canine with large ears, a bushy tail, and pointed muzzle.", + "The kit fox has a small slender body large ears and a bushy tail unlike similar animals which may vary in size fur and ear shape.", + "The kit fox has large ears relative to its head size and a slender body with a bushy tail.", + "A kit fox has large ears, a slender body, grayish or yellowish fur, and a bushy tail with a black tip." + ], + "Arctic fox": [ + "The Arctic fox is a small white or gray furry animal with a bushy tail and pointed ears.", + "The Arctic fox has a white winter coat and smaller size compared to similar animals like the red fox or wolves.", + "The Arctic fox has thick white winter fur, a small round face, and short ears for surviving cold climates.", + "The Arctic fox has pure white winter fur that blends seamlessly with snowy landscapes." + ], + "grey fox": [ + "The grey fox is a small canine with grizzled grey fur a black stripe on its tail and a reddish neck.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish legs, unlike most animals with solid or less distinct markings.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown markings on its neck and legs.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown accents on its neck and legs." + ], + "tabby cat": [ + "Tabby cats have striped, dotted, or swirled fur patterns and a distinctive M-shaped mark on their forehead.", + "Tabby cats have striped, dotted, lined, or swirled patterns on their fur with a distinctive M-shaped mark on their forehead.", + "A tabby cat has distinctive striped, dotted, or swirled fur patterns often with an M-shaped mark on its forehead.", + "A tabby cat has a striped, spotted, or swirled coat pattern with an M-shaped mark on its forehead and often green or yellow eyes." + ], + "tiger cat": [ + "A tiger cat has a striped or spotted coat resembling a small tiger with a slender body and pointed ears.", + "Tiger cats have striped fur and a feline shape unlike other objects which vary in color texture and form.", + "Tiger cats have distinctive striped or spotted fur patterns resembling a tiger with a small domestic cat body shape.", + "Tiger cats have distinctive dark stripes and spots on a lighter background unlike other cats and objects." + ], + "Persian cat": [ + "Persian cats have long fluffy fur a flat face round eyes and a stocky body making them stand out.", + "Persian cats have long fluffy fur round faces short noses and large round eyes often with a flat face.", + "Persian cats have long fluffy fur flat faces and round eyes unlike most other objects which are not living animals.", + "A Persian cat is a fluffy long-haired cat with a round face short muzzle and large expressive eyes among all objects." + ], + "Siamese cat": [ + "Siamese cats have sleek bodies, blue almond-shaped eyes, short coats with color points on ears face paws and tail.", + "Siamese cats have sleek bodies, pointed color patterns on ears face paws and tail and striking blue almond-shaped eyes.", + "Siamese cats have striking blue almond-shaped eyes, short sleek coats with color points on ears face paws and tail.", + "A Siamese cat has a sleek body with blue almond-shaped eyes and distinctive pointed color patterns on its ears face paws and tail." + ], + "Egyptian Mau": [ + "The Egyptian Mau is a sleek spotted cat with a muscular body large green eyes and a graceful agile appearance.", + "The Egyptian Mau has a sleek spotted coat and distinctive mascara-like markings unlike other cats or objects.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau has a spotted coat, green eyes, and a distinctive mascara-like marking around its eyes." + ], + "cougar": [ + "A cougar is a large tan or brown cat with a long tail and a muscular body resembling a big domestic cat.", + "A cougar is a large tan cat with a long tail, slender body, and no distinct markings like spots or stripes.", + "A cougar has a uniform tan coat with no markings and a long thick tail relative to other big cats.", + "A cougar has a tan coat, muscular body, long tail, and a small head with rounded ears distinguishing it from other animals." + ], + "lynx": [ + "A lynx is a medium-sized wild cat with tufted ears, a short tail, and a spotted or striped coat.", + "Lynx are medium-sized wild cats with tufted ears, short tails, and spotted or streaked fur often seen in forested areas.", + "Lynx have tufted ears, short tails, and spotted coats with long legs and large paws for snowy habitats.", + "The lynx has distinctive long black tufts of hair on the tips of its ears." + ], + "leopard": [ + "Leopards have golden yellow fur with black rosettes and are sleek muscular cats smaller than lions and tigers.", + "A leopard is a large spotted cat with a golden coat and black rosettes, known for its strength and agility.", + "Leopards have golden coats with black rosettes and spots, sleek bodies, and long tails for climbing and balance.", + "Leopards have golden yellow fur with black rosette spots and a muscular slender body with a long tail." + ], + "snow leopard": [ + "A snow leopard is a large, pale gray cat with dark spots and a long, thick tail, living in mountainous regions.", + "Snow leopards have thick fur, rosette patterns, and a long tail, unlike other animals with plain coats or different body shapes.", + "Snow leopards have thick gray fur with black rosettes and spots, a long bushy tail, and a stocky build for mountain habitats.", + "A snow leopard has thick gray fur with black spots and rosettes, a long tail, and a muscular body built for cold mountains." + ], + "jaguar": [ + "Jaguars have a golden-yellow coat with black rosettes and a muscular build unlike other big cats or vehicles.", + "A jaguar is a large, muscular wild cat with a golden-yellow coat covered in dark rosettes and spots.", + "Jaguars have a golden-yellow coat with black rosettes and a muscular build, distinguishing them from other big cats and animals.", + "A jaguar has a golden-yellow coat with black rosettes and spots, a muscular build, and a large head with powerful jaws." + ], + "lion": [ + "A lion has a distinctive thick mane around its head which no other object or animal has.", + "Lions have a distinctive mane, muscular body, tawny fur, and a tail with a tuft unlike most other animals.", + "A lion is a large golden-brown cat with a mane around its head, sharp claws, and a muscular body.", + "A lion is a large tawny cat with a shaggy mane for males and a muscular body with a long tail." + ], + "tiger": [ + "Tigers have orange fur with black stripes, a muscular body, and a distinctive face with white markings and powerful jaws.", + "A tiger is a large striped orange and black cat with a powerful body sharp claws and a long tail.", + "Tigers have bold black stripes on orange fur, a white underside, and a powerful muscular body with a distinctive face.", + "A tiger has orange fur with black stripes, a white belly, and a muscular body with a long tail and sharp claws." + ], + "cheetah": [ + "Cheetahs have slender bodies black tear marks and spotted coats built for speed with long tails and small heads.", + "A cheetah is a sleek, spotted big cat with a slender body, long legs, and a distinctive black tear stripe on its face.", + "Cheetahs have slender bodies, black spots, and distinctive black tear marks on their faces unlike other big cats or animals.", + "Cheetahs are slender big cats with black spots, a long tail, and distinctive black tear marks on their faces." + ], + "brown bear": [ + "A brown bear is a large furry animal with a bulky body, round ears, and thick brown fur.", + "Brown bears are large furry mammals with a humped shoulder and long claws, unlike most objects which are smaller and less hairy.", + "Brown bears have a distinctive hump on their shoulders not found in other bear species or animals.", + "Brown bears are large with thick brown fur a muscular hump on their shoulders and long curved claws." + ], + "American black bear": [ + "The American black bear is a large, furry mammal with a stocky body, short tail, and round ears, usually dark brown or black.", + "American black bears have a stocky body, short tail, rounded ears, and thick black fur distinguishing them from other objects.", + "The American black bear has a stocky body, short tail, rounded ears, and fur ranging from black to light brown.", + "American black bears are medium-sized with black fur, a straight facial profile, and no shoulder hump like brown bears." + ], + "polar bear": [ + "Polar bears are large white bears with long necks small ears and black noses living in snowy Arctic regions.", + "Polar bears have thick white fur a large body and a long neck distinguishing them from other animals and objects.", + "A polar bear is a large white furry bear with a long neck and black nose living in icy Arctic regions.", + "Polar bears are large white bears with thick fur and black skin, unlike most other animals or objects in color and size." + ], + "sloth bear": [ + "The sloth bear is a shaggy black bear with a long snout, white muzzle, and curved claws for digging insects.", + "Sloth bears have shaggy black fur a white V on their chest and long curved claws unlike smoother shorter clawed bears.", + "The sloth bear has a distinct long shaggy black coat and a white V-shaped mark on its chest.", + "Sloth bears have shaggy black fur, a white V-shaped chest mark, and a long snout for sucking insects." + ], + "mongoose": [ + "A mongoose is a small slender furry mammal with a pointed face short legs and a long tail often brown or gray.", + "Mongooses are small slender mammals with pointed noses long tails short legs and often gray or brown fur.", + "Mongooses are small slender mammals with pointed faces short legs long tails and often a grizzled or speckled fur pattern.", + "Mongooses are small slender mammals with pointed faces and long tails unlike most other objects which are not animals." + ], + "meerkat": [ + "Meerkats have slender bodies, pointed faces, dark eye patches, and stand upright on their hind legs often in groups.", + "A meerkat is a small slender mongoose with a pointed face, short legs, and a long tail, often standing upright.", + "Meerkats are small slender mongooses with pointed faces, short legs, long tails, and dark eye patches on light brown fur.", + "Meerkats are small slender mongooses with pointed faces long tails and distinctive dark eye patches unlike most other animals." + ], + "tiger beetle": [ + "Tiger beetles have long legs, large eyes, and metallic-colored bodies with distinct patterns unlike most other insects and objects.", + "Tiger beetles have large bulging eyes and long slender legs that distinguish them from other insects and objects.", + "Tiger beetles are small, colorful, fast-moving insects with long legs, large eyes, and metallic or patterned bodies resembling tiny vibrant beetles.", + "Tiger beetles are recognized by their metallic colors, large eyes, long legs, and fast running speed among insects." + ], + "ladybug": [ + "Ladybugs are small round beetles with bright red or orange shells and black spots unlike most other insects or objects.", + "A ladybug is a small round beetle with bright red or orange wings and black spots, often found on plants.", + "Ladybugs are small round beetles with bright red or orange shells and black spots on their backs.", + "Ladybugs are recognized by their small round red bodies with black spots and shiny dome-shaped wing covers." + ], + "ground beetle": [ + "Ground beetles are small, shiny, and have hard wing covers with distinct ridges, unlike most other insects or objects.", + "Ground beetles are small shiny black or metallic insects with hard wing covers and long legs often found under rocks.", + "Ground beetles are small, shiny, dark-colored insects with hard wing covers and long legs, often found under rocks or logs.", + "Ground beetles are recognized by their shiny elongated bodies, ridged wing covers, and fast legs adapted for running." + ], + "longhorn beetle": [ + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical bodies with distinctive bold patterns or colors.", + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical shapes unlike most other beetles or insects.", + "Longhorn beetles have extremely long antennae often longer than their bodies distinguishing them from other insects and objects.", + "Longhorn beetles are recognized by their extremely long antennae often longer than their bodies and cylindrical elongated bodies." + ], + "leaf beetle": [ + "Leaf beetles are small, shiny, oval-shaped insects with bright colors or metallic sheen often found on leaves.", + "Leaf beetles are small, shiny, and often brightly colored with hard wing covers, unlike most other beetles which are duller or larger.", + "Leaf beetles are small, oval-shaped insects with bright, often metallic colors and hard wing covers, resembling tiny, shiny jewels on plants.", + "Leaf beetles are recognized by their small oval bodies, bright metallic colors, and distinct patterns on their wing covers." + ], + "dung beetle": [ + "A dung beetle is a small dark oval-shaped insect with a hard shell and strong legs for rolling dung balls.", + "Dung beetles are small dark oval-shaped insects with strong legs often seen rolling balls of dung.", + "Dung beetles are small, oval-shaped insects with hard shells and often have shiny black or metallic colors unlike most other objects.", + "Dung beetles are recognized by their oval body, shiny black or brown shell, and strong legs for rolling dung balls." + ], + "rhinoceros beetle": [ + "The rhinoceros beetle is a large dark insect with a prominent horn on its head resembling a rhino's horn.", + "A rhinoceros beetle has a large horn on its head and a shiny dark body with a hard shell.", + "Rhinoceros beetles have a large horn on their head and a thick armored body making them easy to recognize.", + "Rhinoceros beetles have a large horn on their head and a hard shiny shell unlike most other insects or objects." + ], + "weevil": [ + "Weevils are small beetles with elongated snouts and often have a hard shell compared to other insects or objects.", + "Weevils are small beetles with elongated snouts and often have a hard shell with a slightly curved or bent body shape.", + "Weevils have elongated snouts, small round bodies, and distinctive antennae often bent at an angle.", + "Weevils are small beetles with elongated snouts and often have a hard shell and segmented antennae." + ], + "fly": [ + "Flies are small with transparent wings, large eyes, and a slender body often seen near food or waste.", + "A fly is a small winged insect with a dark slender body large eyes and transparent veined wings.", + "Flies have small slender bodies transparent wings large eyes and six legs often seen hovering or resting on surfaces.", + "Flies have small, slender bodies with transparent wings and large compound eyes unlike most other objects in ImageNet." + ], + "bee": [ + "A bee is a small flying insect with a fuzzy striped body, transparent wings, and often seen near flowers.", + "Bees have striped yellow and black bodies, transparent wings, and are smaller than most similar flying insects like wasps or hornets.", + "Bees are small flying insects with yellow and black striped bodies, transparent wings, and often seen near flowers.", + "Bees have distinctive black and yellow striped bodies with translucent wings and fuzzy hair covering their thorax." + ], + "ant": [ + "Ants are small with six legs, a segmented body, and antennae, unlike most objects which lack these distinct insect features.", + "An ant is a small, slender insect with six legs, a segmented body, and often black or reddish-brown in color.", + "Ants have a distinct segmented body with a narrow waist and bent antennae unlike most other insects or objects.", + "Ants are small, six-legged insects with segmented bodies, thin waists, and bent antennae, often seen crawling in lines or carrying food." + ], + "grasshopper": [ + "Grasshoppers have long hind legs for jumping, slender bodies, and antennae, unlike most other insects and objects.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and antennae, often green or brown to blend into grass.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and wings, often green or brown for camouflage.", + "Grasshoppers have long hind legs for jumping and segmented bodies with large eyes and antennae." + ], + "cricket insect": [ + "Crickets are small, slender insects with long antennae, strong hind legs for jumping, and wings that some species use to chirp.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings that lie flat on their backs.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings, unlike most non-insect objects.", + "Crickets have long antennae and powerful hind legs adapted for jumping unlike most other insects and objects." + ], + "stick insect": [ + "Stick insects have long slender bodies resembling twigs or branches with legs that mimic small sticks for camouflage.", + "Stick insects are long and thin resembling twigs while other objects vary widely in shape color and texture.", + "Stick insects look like thin twigs or branches with long slender bodies and legs blending into their surroundings.", + "Stick insects uniquely resemble thin twigs or branches with elongated bodies and legs mimicking plant parts perfectly." + ], + "cockroach": [ + "Cockroaches are dark brown oval-shaped insects with long antennae six legs and a shiny flattened body often found scurrying quickly.", + "Cockroaches have flat oval bodies long antennae and six spiny legs unlike most insects which may have wings or different body shapes.", + "Cockroaches are small dark brown insects with oval flat bodies long antennae and six legs often found in damp places.", + "Cockroaches have flat oval bodies long antennae and six spiny legs often appearing shiny brown or black with a segmented appearance." + ], + "praying mantis": [ + "Praying mantises have long slender bodies triangular heads and folded spiked forelegs used for catching prey.", + "A praying mantis has a long slender green or brown body with large eyes and folded forelegs for catching prey.", + "Praying mantises have long slender bodies triangular heads and front legs adapted for grasping unlike most other insects or objects.", + "Praying mantises have long slender bodies triangular heads and front legs bent like they are praying often green or brown." + ], + "cicada": [ + "Cicadas have large transparent wings, prominent eyes, and a stout body, unlike most insects which are smaller with varied wing shapes.", + "Cicadas have large transparent wings, bulging eyes, and a stout body, often green or brown, with distinctive loud buzzing sounds.", + "Cicadas are small winged insects with large transparent wings bulging eyes and often green or brown bodies.", + "Cicadas have large transparent wings with prominent veins and a distinct body shape among insects." + ], + "leafhopper": [ + "A leafhopper is a small, slender, winged insect with vibrant colors, often green or brown, resembling tiny leaves or grasshoppers.", + "Leafhoppers are small, wedge-shaped insects with colorful or patterned wings and strong hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with colorful, often patterned wings and large hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with vibrant colors, large hind legs for jumping, and often have intricate patterns on their wings." + ], + "lacewing": [ + "Lacewings have delicate transparent veined wings, long antennae, and bright golden eyes, distinguishing them from other insects and objects.", + "Lacewings are delicate insects with transparent veined wings and long antennae, unlike other objects which lack these specific features.", + "Lacewings have delicate transparent wings with intricate veining patterns and a distinctive green or golden body.", + "Lacewings are delicate insects with transparent veined wings, long antennae, and bright green or pale bodies, often found near plants." + ], + "dragonfly": [ + "Dragonflies have long slender bodies, large transparent wings, and bulging eyes unlike most other insects or objects.", + "Dragonflies are recognized by their long slender bodies, large transparent wings, and large multifaceted eyes.", + "Dragonflies have long slender bodies, large transparent wings, and big bulging eyes, often seen near water.", + "A dragonfly has a long slender body large transparent wings and big eyes often seen near water with vibrant colors." + ], + "damselfly": [ + "A damselfly is a slender winged insect with a long body and delicate transparent wings resembling a small dragonfly.", + "Damselflies have slender bodies, delicate wings held together when resting, and long thin abdomens unlike bulkier dragonflies or other flying insects.", + "Damselflies have slender bodies, long thin wings held together when resting, and large widely separated eyes on their heads.", + "Damselflies have long slender bodies with two pairs of similarly sized wings held together when at rest." + ], + "red admiral butterfly": [ + "The red admiral butterfly has dark wings with bold orange-red bands and white spots, making it easily recognizable.", + "The red admiral butterfly has striking black wings with orange-red bands and white spots, unlike most other butterflies or objects.", + "The red admiral butterfly has bold orange-red bands on black wings with white spots near the tips.", + "The red admiral butterfly has black wings with striking orange-red bands and white spots along the wing edges." + ], + "ringlet butterfly": [ + "A ringlet butterfly is a small, dark brown butterfly with circular eye-like spots on its wings and a delicate, fluttering flight.", + "The ringlet butterfly has distinctive small eyespots with white centers on its underwings surrounded by dark rings.", + "Ringlet butterflies have small, dark wings with subtle ring-like patterns, unlike brighter or plainer insects and objects.", + "Ringlet butterflies have small, dark wings with white-ringed spots and a delicate, fluttering flight pattern." + ], + "monarch butterfly": [ + "The monarch butterfly has distinctive bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have vibrant orange and black wings with white spots along the edges and veins.", + "A monarch butterfly has vibrant orange and black wings with white spots and a delicate, slender body among all objects." + ], + "small white butterfly": [ + "Small white butterflies have delicate white wings with faint black or yellow markings, unlike most objects which are bulkier and lack wings.", + "Look for tiny white wings with delicate patterns and thin black edges fluttering near flowers or plants.", + "Small white butterflies have delicate white wings with subtle black tips and faint yellow or greenish undersides.", + "Small white butterflies have delicate white wings with faint black tips and subtle yellow or greenish undersides." + ], + "sulphur butterfly": [ + "A sulphur butterfly is a small yellow or orange butterfly with delicate wings often seen fluttering near flowers.", + "Sulphur butterflies have bright yellow or orange wings with black edges and small dark spots on their forewings.", + "Sulphur butterflies are bright yellow or orange with black wing edges and small dark spots on their wings.", + "Sulphur butterflies have bright yellow or orange wings with distinct black edges and minimal patterns." + ], + "gossamer-winged butterfly": [ + "Gossamer-winged butterflies have delicate, translucent wings with fine scales and slender bodies, unlike bulkier insects or birds with opaque feathers.", + "Gossamer-winged butterflies are small delicate insects with thin translucent wings often displaying vibrant colors and intricate patterns.", + "Gossamer-winged butterflies are small with delicate, translucent wings often showing bright colors or intricate patterns.", + "Gossamer-winged butterflies have delicate, translucent wings with vibrant colors and intricate patterns, often appearing small and fragile." + ], + "starfish": [ + "Starfish have five or more arms radiating from a central body and are often bumpy or spiny with bright colors.", + "Starfish have radial symmetry, five or more arms, rough textured skin, and bright colors or patterns.", + "Starfish have five or more radiating arms with a rough texture and often bright colors unlike smoother symmetrical objects.", + "Starfish are marine creatures with five or more arms radiating from a central body, often colorful and covered in small bumps or spines." + ], + "sea urchin": [ + "Sea urchins are small round spiny creatures with a hard shell often found in ocean habitats.", + "Sea urchins are round spiky marine creatures with a hard shell, unlike most other objects which are smoother or differently shaped.", + "Sea urchins have round spiny shells with radial symmetry and small tube feet between their spines.", + "Sea urchins are small spiny round creatures found in oceans resembling prickly balls with tiny tube feet underneath." + ], + "sea cucumber": [ + "Sea cucumbers are soft elongated tube-shaped marine animals often with leathery skin and small bumps or spines.", + "Sea cucumbers have a distinct elongated cylindrical body with soft leathery skin and small tube feet.", + "Sea cucumbers are elongated soft-bodied marine animals with leathery skin unlike most sea creatures which have shells or hard exoskeletons.", + "Sea cucumbers are recognized by their elongated soft cylindrical bodies and bumpy leathery skin often found on ocean floors." + ], + "cottontail rabbit": [ + "A cottontail rabbit is a small brown or gray furry animal with a fluffy white tail and long ears.", + "Cottontail rabbits have fluffy white tails and brown-gray fur, unlike other objects which lack these specific natural features.", + "Cottontail rabbits have small brown bodies with white fluffy tails and long ears but no black markings like some hares.", + "Cottontail rabbits have a small fluffy white tail, large ears, brown-gray fur, and a compact body with long hind legs." + ], + "hare": [ + "A hare is a fast long-eared mammal resembling a rabbit but larger with longer legs and stronger hindquarters for leaping.", + "Hares have long ears, strong hind legs, short tails, and brown or gray fur with a lean body.", + "Hares have long ears and legs with a lean body and brownish fur unlike similar animals which vary in size color and shape.", + "Hares have long ears, strong hind legs, a lean body, and fast movement, distinguishing them from similar animals like rabbits." + ], + "Angora rabbit": [ + "The Angora rabbit is a fluffy, long-haired rabbit with soft, thick fur that often appears round and woolly.", + "Angora rabbits have long soft fur and floppy ears unlike most objects which are hard smooth or lack fur and ears.", + "Angora rabbits are recognized by their long soft wool floppy ears and round faces with a fluffy compact body shape.", + "Angora rabbits are fluffy with long soft wool often covering their eyes and ears making them look like round fur balls." + ], + "hamster": [ + "Hamsters are small furry rodents with short tails and chubby cheeks unlike other animals or objects in their category.", + "Hamsters have small round bodies with short legs and distinctive cheek pouches for storing food.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive facial markings and whiskers.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive fur patterns or colors." + ], + "porcupine": [ + "Porcupines have long sharp quills covering their bodies which no other animal or object has in such abundance and arrangement.", + "Porcupines have long sharp quills covering their bodies unlike similar animals which have fur or shorter softer spines.", + "Porcupines are medium-sized rodents with sharp quills covering their bodies for protection against predators.", + "Porcupines are easily recognized by their long sharp quills covering their body and their stout slow moving shape." + ], + "fox squirrel": [ + "The fox squirrel is a large tree squirrel with reddish brown fur a bushy tail and a white belly.", + "Fox squirrels are larger with bushy tails and reddish-brown fur, unlike smaller gray squirrels or non-squirrel animals with different colors and shapes.", + "A fox squirrel has a bushy tail, reddish-brown fur, and is larger than most squirrels with a white belly.", + "Fox squirrels have large bushy tails, reddish-brown fur, and are often seen climbing trees or foraging on the ground." + ], + "marmot": [ + "A marmot is a stout, furry rodent with short legs, a bushy tail, and rounded ears, resembling a large ground squirrel.", + "Marmots are stout, furry rodents with short legs, bushy tails, and rounded ears, often seen in rocky or grassy areas.", + "Marmots are large ground-dwelling rodents with stout bodies, short legs, and bushy tails, unlike most similar animals.", + "Marmots are recognized by their stout bodies, short legs, bushy tails, and brown or gray fur often found in rocky mountainous areas." + ], + "beaver": [ + "A beaver is a large brown rodent with a flat tail webbed feet and sharp teeth often seen near water.", + "Beavers are large brown rodents with flat tails, webbed hind feet, and sharp teeth, often found near water.", + "Beavers have flat tails, webbed feet, and brown fur, unlike most animals which lack these specific aquatic adaptations.", + "Beavers have flat scaly tails, webbed hind feet, and large front teeth for gnawing wood near water." + ], + "guinea pig": [ + "Guinea pigs are small furry rodents with round bodies short legs and no tails unlike most other pets or objects.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and smooth fur in various colors and patterns." + ], + "common sorrel horse": [ + "A common sorrel horse has a solid reddish-brown coat with no black points, unlike other animals or objects with varied colors and patterns.", + "The common sorrel horse has a solid reddish-brown coat without black points like mane or tail.", + "A common sorrel horse has a reddish-brown coat with a uniform color, often with a flaxen mane and tail.", + "A common sorrel horse has a solid reddish-brown coat with a similar mane and tail, lacking black markings or other color variations." + ], + "zebra": [ + "Zebras are easily recognized by their black and white striped patterns and horse-like body shape.", + "Zebras have bold black and white stripes covering their entire body unlike any other animal.", + "A zebra is a striped horse-like animal with black and white patterns standing out among other animals and objects.", + "Zebras are recognized by their black and white striped patterns unique among animals and distinct from all other objects." + ], + "pig": [ + "Pigs have stout bodies, short legs, a snout for a nose, and often curly tails with pink or dark skin.", + "Pigs have stout bodies, short legs, flat snouts, and curly tails, unlike most animals which have leaner builds and different facial features.", + "Pigs are stout animals with short legs, a round body, a snout, and often pink skin covered with sparse hair.", + "Pigs have stout bodies, short legs, curly tails, and a distinctive snout used for rooting in the ground." + ], + "wild boar": [ + "Wild boars have dark coarse fur, a long snout, small eyes, and prominent tusks in males, with a sturdy muscular body.", + "Wild boars have coarse fur, tusks, and a stocky build unlike smoother or less muscular animals like pigs or deer.", + "A wild boar is a stocky, hairy animal with a large head, short legs, and prominent tusks, resembling a rugged pig.", + "Wild boars have a stocky body, coarse dark fur, a long snout, and prominent tusks making them easily recognizable." + ], + "warthog": [ + "Warthogs are wild pigs with large curved tusks, coarse gray or brown hair, and distinctive facial warts.", + "A warthog is a wild pig with a stocky body, coarse gray skin, large tusks, and distinctive facial warts.", + "Warthogs have distinctive large tusks, warty facial bumps, and a mane of coarse hair along their back.", + "Warthogs have distinctive large curved tusks and warty facial bumps that set them apart from other animals." + ], + "hippopotamus": [ + "A hippopotamus is a large gray aquatic mammal with a bulky body short legs and a wide mouth with big teeth.", + "Hippopotamuses are large, barrel-shaped with thick gray skin, small ears, wide mouths, and nearly hairless bodies unlike most other animals.", + "A hippopotamus is a large, barrel-shaped animal with thick gray skin, a huge mouth, and small ears and eyes on top of its head.", + "Hippopotamuses have massive barrel-shaped bodies with thick gray skin and tiny ears compared to their huge heads." + ], + "ox": [ + "An ox is a large, sturdy bovine with a muscular body, thick neck, and often has horns and a short coat.", + "Oxen are large, sturdy animals with muscular bodies, long tails, and prominent horns, unlike smaller or hornless livestock and objects.", + "Oxen are large, sturdy animals with broad bodies, thick necks, and curved horns, often seen with a muscular build and short hair.", + "Oxen are recognized by their large sturdy bodies long curved horns and strong muscular shoulders used for labor." + ], + "water buffalo": [ + "A water buffalo is a large, dark, stocky animal with curved horns, a broad muzzle, and a heavy, muscular body.", + "Water buffalo are large, dark gray or black animals with massive curved horns and a stocky, muscular body.", + "Water buffaloes are large, stocky animals with curved horns, dark gray or black skin, and a heavy build compared to similar animals.", + "Water buffalo have large curved horns that sweep back and up forming a distinctive crescent shape." + ], + "bison": [ + "Bison are large, shaggy brown mammals with massive heads, short horns, and humped shoulders, resembling wild cattle or buffalo.", + "Bison are large, shaggy-haired mammals with massive heads and humped shoulders, unlike most animals which are smaller or smoother.", + "Bison are large, shaggy brown mammals with massive heads, short curved horns, and a pronounced hump on their shoulders.", + "Bison have a massive humped shoulder and a thick shaggy mane that distinguishes them from other animals." + ], + "ram (adult male sheep)": [ + "A ram is a sturdy adult male sheep with large curved horns, a thick woolly coat, and a muscular build.", + "The ram has large curved horns that are thicker and more spiraled than other horned animals.", + "Rams have large curved horns a thick woolly coat and a muscular build distinguishing them from other animals.", + "Look for a large sturdy animal with curved horns thick wool a short tail and a muscular build compared to female sheep." + ], + "bighorn sheep": [ + "Bighorn sheep have large curved horns, stocky bodies, and brown fur, unlike most animals or objects which lack these distinct features.", + "Bighorn sheep have large curved horns a stocky brown body and white rump distinguishing them from other animals.", + "Bighorn sheep are large brown wild sheep with massive curved horns and a muscular body adapted for rugged mountainous terrain.", + "Bighorn sheep are recognized by their large curved horns muscular build brown-gray fur and preference for rocky mountainous habitats." + ], + "Alpine ibex": [ + "The Alpine ibex is a large wild goat with long curved horns a shaggy brown coat and a sturdy muscular body.", + "Alpine ibex are wild goats with long curved horns a light brown coat and a sturdy muscular build living in rocky mountains.", + "Alpine ibex have long curved horns with prominent ridges and a distinctive backward sweep.", + "Alpine ibex have long curved horns ridged rings and a sturdy grey brown body adapted for mountainous terrain." + ], + "hartebeest": [ + "Hartebeest are large antelopes with long narrow faces sloping backs and short twisted horns in both males and females.", + "A hartebeest is a large antelope with a long face, steeply sloping back, and ringed curved horns.", + "Hartebeests have long faces, short necks, and high shoulders, unlike other antelopes which are more streamlined or have different horn shapes.", + "Hartebeests have long narrow faces steeply sloping foreheads and short twisted horns with a reddish brown coat and long legs." + ], + "impala (antelope)": [ + "An impala is a slender, medium-sized antelope with reddish-brown fur, white underparts, and distinctive black markings on its face and tail.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impala have slender bodies, long legs, reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinct black stripes on their tails and hind legs." + ], + "gazelle": [ + "Gazelles are slender with long legs, short tails, and curved horns, often tan or light brown with white underbellies.", + "Gazelles are slender with long legs and horns while similar animals vary in size shape or lack horns.", + "Gazelles have slender bodies long legs and distinctive curved horns with a smooth glossy coat and white underbelly.", + "Gazelles are slender, long-legged antelopes with smooth coats, short tails, and often curved horns, built for speed in open grasslands." + ], + "arabian camel": [ + "The Arabian camel has a single hump while other camels have two humps.", + "The Arabian camel has a single hump, long legs, and a slender body compared to other camels and animals.", + "The Arabian camel has a long curved neck, a single hump, and a sandy-colored coat with long slender legs.", + "The Arabian camel has a single hump, long curved neck, slender legs, and a short coat, distinguishing it from other camels and animals." + ], + "llama": [ + "Llamas have long necks, slender legs, and woolly coats, unlike most animals which are shorter or have smoother fur.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas are tall furry mammals with long necks slender legs and a distinctive face resembling a camel but smaller and woolly." + ], + "weasel": [ + "A weasel is a small slender furry animal with short legs a long body and a pointed snout.", + "Weasels are small slender mammals with long bodies short legs pointed snouts and brown or white fur often with black tips.", + "Weasels have long slender bodies short legs pointed faces and brown or white fur often with a black-tipped tail.", + "Weasels are small slender mammals with long bodies short legs and brown fur while similar animals vary in size shape and color." + ], + "mink": [ + "Minks are small slender mammals with short legs, pointed snouts, and thick glossy fur, unlike most other animals.", + "Minks are small slender mammals with glossy dark brown fur short legs and a long tail.", + "A mink is a small sleek furry animal with a long body short legs and a pointed face resembling a weasel.", + "The mink has a sleek, elongated body with glossy dark brown fur and a small pointed face." + ], + "European polecat": [ + "The European polecat is a small, slender, dark-furred mammal with a white face mask and a long, bushy tail.", + "The European polecat has a dark brown coat with lighter underfur and a distinctive white face mask and dark legs.", + "The European polecat has a slender body, dark fur with a white face mask, and a bushy tail, unlike similar animals.", + "European polecats have slender bodies, dark masks around their eyes, and a mix of dark brown and cream fur with a bushy tail." + ], + "black-footed ferret": [ + "The black-footed ferret is a slender, long-bodied animal with dark legs, a pale body, and a distinctive black mask.", + "The black-footed ferret has a slender body with a black mask, black feet, and a tan coat with white underparts.", + "The black-footed ferret has a slender body, black mask, and dark feet, unlike similar animals with different markings or body shapes.", + "The black-footed ferret has distinctive dark markings on its feet and a black mask around its eyes." + ], + "otter": [ + "Otters have sleek furry bodies long tails webbed feet and small rounded ears unlike most aquatic or land animals.", + "Otters are sleek furry mammals with long tails webbed feet and whiskers often seen swimming or floating on water.", + "Otters are sleek furry mammals with long bodies short legs webbed feet and whiskers often seen swimming or holding hands.", + "Otters have a sleek streamlined body with webbed feet and a long tapered tail for swimming." + ], + "skunk": [ + "A skunk is a black and white furry mammal with a bushy tail and distinctive stripes, often emitting a strong odor.", + "Skunks are small black and white mammals with a bushy tail and distinctive white stripes or spots on their fur.", + "Skunks are recognized by their black fur with bold white stripes or spots and a bushy tail.", + "Skunks have distinctive black and white fur patterns and a bushy tail unlike most animals which have more uniform colors." + ], + "badger": [ + "Badgers are stout furry animals with short legs, black and white striped faces, and strong claws for digging.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws unlike most similar animals.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws for digging.", + "Badgers are stocky with short legs, black and white striped faces, and grayish fur on their low slung bodies." + ], + "armadillo": [ + "An armadillo is a small armored mammal with a hard bony shell, short legs, and a pointed snout.", + "Armadillos have a unique armored shell made of bony plates unlike most animals which have fur scales or smooth skin.", + "Armadillos have a distinctive leathery armored shell made of bony plates covering their back and sides.", + "Armadillos have a unique armored shell made of bony plates covering their back, head, legs, and tail." + ], + "three-toed sloth": [ + "Three-toed sloths have long limbs, curved claws, and a slow-moving, shaggy brown or gray fur coat unlike most other animals.", + "A three-toed sloth is a slow-moving, furry mammal with long limbs, curved claws, and a distinctive face, often hanging upside down in trees.", + "Three-toed sloths have long limbs, curved claws, a round face with a permanent smile, and shaggy gray-brown fur.", + "Three-toed sloths have a round face with a stubby snout, long limbs with three claws, and shaggy gray-brown fur." + ], + "orangutan": [ + "An orangutan is a large reddish brown ape with long arms shaggy hair and a distinctive face resembling humans.", + "Orangutans have long reddish-brown hair, large bodies, and no tails with prominent cheek pads on adult males.", + "Orangutans have long reddish-brown fur and distinctive cheek pads in males.", + "Orangutans have long reddish hair, large bodies, and no tails, unlike most animals and objects in ImageNet." + ], + "gorilla": [ + "A gorilla is a large, dark-haired primate with a muscular body, broad chest, and a strong, expressive face.", + "Gorillas are large black-haired primates with broad shoulders and no tails unlike many other animals and objects.", + "Gorillas are recognized by their large size, dark fur, broad shoulders, and distinctive facial features like a pronounced brow ridge.", + "Gorillas are large black-haired primates with broad chests, muscular arms, and a distinctively shaped head with a prominent brow ridge." + ], + "chimpanzee": [ + "Chimpanzees have black fur, long arms, hairless faces with large ears, and prominent brows, resembling humans but covered in coarse hair.", + "Chimpanzees are hairy primates with long arms, dark faces, and expressive eyes resembling humans but covered in coarse black or brown fur.", + "Chimpanzees have dark fur, long arms, expressive faces, and no tails unlike many animals and objects in ImageNet.", + "Chimpanzees have dark hairy bodies long arms expressive faces and opposable thumbs distinguishing them from other animals and objects." + ], + "gibbon": [ + "Gibbons are small slender apes with long arms no tails and fur ranging from black to light brown or cream.", + "Gibbons are small apes with long arms and no tail, unlike monkeys which often have tails and shorter limbs.", + "Gibbons are small apes with long arms, no tail, and a slender body, often seen swinging in trees.", + "Gibbons have long arms small bodies no tails and are often seen swinging in trees with their distinctive slender frames." + ], + "siamang": [ + "A siamang is a large black gibbon with long arms, a throat sac, and shaggy fur, resembling a small ape.", + "Siamangs are black-furred apes with long arms, large throat pouches, and no tail, unlike most primates and other animals.", + "Siamangs are large black gibbons with long arms, shaggy fur, and a distinctive throat sac that inflates when they vocalize.", + "Siamangs are recognized by their large size, long arms, black fur, and distinctive throat sacs used for loud vocalizations." + ], + "guenon": [ + "Guenons are small monkeys with colorful fur, long tails, and distinct facial markings unlike most other animals or objects.", + "A guenon is a colorful, slender monkey with a long tail, distinctive facial markings, and often a white or bright nose.", + "Guenons are small monkeys with colorful fur, long tails, and distinctive facial markings like mustaches or bright nose spots.", + "Guenons are recognized by their colorful fur patterns, long tails, and distinctive facial markings like mustaches or bright nose spots." + ], + "patas monkey": [ + "Patas monkeys are slender with long limbs reddish fur white bellies and distinctive black facial markings.", + "Patas monkeys have long slender limbs reddish fur white bellies and distinctive black facial markings for easy recognition.", + "Patas monkeys have long limbs reddish fur and white bellies unlike other monkeys which often have darker fur and different body shapes.", + "The patas monkey has a slender body, long limbs, reddish-brown fur, a white belly, and a distinctive black face with a white mustache." + ], + "baboon": [ + "Baboons have distinctive dog-like snouts, long tails, and fur-covered bodies unlike most primates and other animals.", + "A baboon is a large monkey with a long muzzle, bare face, and a short tail, often seen in groups.", + "Baboons have dog-like muzzles long tails and colorful hairless faces with distinctive fur patterns on their bodies.", + "Baboons have distinctive long dog-like muzzles and brightly colored hairless patches on their faces and rumps." + ], + "macaque": [ + "Macaques have fur, long tails, and expressive faces, unlike objects which lack organic features and movement.", + "Macaques are medium-sized monkeys with brown or gray fur, long tails, and expressive faces resembling humans with cheek pouches.", + "Macaques are medium-sized monkeys with brown or gray fur, expressive faces, long tails, and often seen sitting or climbing.", + "Macaques have distinctive pink or light-colored faces and rumps with expressive eyes and short tails." + ], + "langur": [ + "Langurs are slender long-tailed monkeys with distinct facial markings and fur colors unlike most animals or objects.", + "Langurs are slender, long-tailed monkeys with black faces, often gray or golden fur, and distinctive white markings around their eyes.", + "A langur is a slender, long-tailed monkey with a black face and gray or golden fur, often seen in trees.", + "Langurs have long tails slender bodies and distinctive facial markings often with light fur around their dark faces." + ], + "black-and-white colobus": [ + "Black-and-white colobus monkeys have striking black fur with long white mantles and tails unlike most animals or objects.", + "The black-and-white colobus is a monkey with striking black fur and long white mantle and tail.", + "Black and white colobus monkeys have striking black fur with long white mantles and tails, often seen in trees.", + "The black-and-white colobus has striking long white fur and a black face with a white mantle and tail." + ], + "proboscis monkey": [ + "The proboscis monkey has a large, long nose, a pot belly, and reddish-brown fur with a pale face and tail.", + "The proboscis monkey has a large, protruding nose, a potbelly, and reddish-brown fur with a long tail.", + "The proboscis monkey has a large nose potbelly and webbed feet unlike most other monkeys or animals.", + "The proboscis monkey has a large nose potbelly reddish fur and long tail living in trees near water." + ], + "marmoset": [ + "A marmoset is a small monkey with a furry body, long tail, and distinctive facial markings resembling a tiny lion.", + "Marmosets are small monkeys with fluffy fur, long tails, and distinctive white ear tufts or facial markings.", + "Marmosets are small monkeys with fluffy fur long tails and distinct facial markings unlike most other animals or objects.", + "Marmosets are recognized by their small size, claw-like nails, and distinctive white ear tufts or facial markings." + ], + "white-headed capuchin": [ + "The white-headed capuchin is a small monkey with a white face and chest and a dark brown body.", + "The white-headed capuchin has a distinctive white face and chest with a dark body and a prehensile tail.", + "The white-headed capuchin has a distinctive black body with a white face and chest, unlike most animals and objects.", + "The white-headed capuchin has a distinctive white face and chest with a black body and limbs." + ], + "howler monkey": [ + "Howler monkeys have shaggy fur, long tails, and large throats, unlike most objects which are smoother and lack these distinct animal features.", + "Howler monkeys have a distinctive thick beard and long prehensile tail not found in other similar primates.", + "Howler monkeys are large, dark-furred primates with wide faces, strong limbs, and prehensile tails, often seen in trees.", + "Howler monkeys are recognized by their large size, dark fur, prehensile tails, and loud vocalizations in dense forest habitats." + ], + "titi monkey": [ + "Titi monkeys are recognized by their small size long tails and soft fur often with reddish or grayish tones.", + "Titi monkeys are small primates with fluffy fur, long tails, and round faces unlike most non-primate objects.", + "Titi monkeys are small with fluffy fur, long tails, and rounded faces often in shades of brown gray or black.", + "Titi monkeys have distinctive long fluffy tails and small round faces with soft fur." + ], + "Geoffroy's spider monkey": [ + "Geoffroy's spider monkey has long limbs, a prehensile tail, and a dark face, unlike most objects which lack such distinct biological features.", + "Geoffroy's spider monkey has long limbs and a prehensile tail with a slender dark brown or black furry body.", + "Geoffroy's spider monkey has long limbs, a prehensile tail, and black fur with a lighter face and chest.", + "Geoffroy's spider monkey has long slender limbs a prehensile tail and a small head with a black face and light fur." + ], + "common squirrel monkey": [ + "Look for a small monkey with a white face, dark muzzle, and yellowish orange fur on its back and limbs.", + "The common squirrel monkey is a small, agile primate with short fur, a long tail, and a white face with dark eyes.", + "The common squirrel monkey has a small, agile body with a short grayish coat, black muzzle, and distinctive white face markings.", + "The common squirrel monkey has a distinctive white face with black muzzle and yellow-orange arms." + ], + "ring-tailed lemur": [ + "A ring-tailed lemur has a slender body, long black-and-white striped tail, pointed face, and large yellow eyes.", + "Ring-tailed lemurs have long striped tails and pointed faces unlike most animals which lack such distinct tail patterns and facial features.", + "The ring-tailed lemur has a long black and white striped tail and a pointed fox-like face.", + "The ring-tailed lemur has a long black and white striped tail and a pointed face with bright yellow eyes." + ], + "indri": [ + "The indri is a large lemur with black and white fur, short ears, and no tail unlike most other primates.", + "The indri is a large black and white lemur with a round face, small ears, and a short tail.", + "The indri has distinctive black and white fur with large greenish eyes and no visible tail.", + "Indri are large black and white lemurs with round ears, long limbs, and no tail, often seen clinging to tree trunks." + ], + "Asian elephant": [ + "An Asian elephant is a large gray animal with a long trunk small ears and a humped back.", + "Asian elephants have smaller ears relative to their head size compared to African elephants.", + "Asian elephants have smaller ears, a single finger-like projection on their trunk, and a more arched back compared to African elephants.", + "Asian elephants have smaller ears rounded at the top and a single dome-shaped head compared to African elephants' larger ears." + ], + "African bush elephant": [ + "African bush elephants are recognized by their large size long curved tusks big ears and wrinkled gray skin.", + "African bush elephants have large ears shaped like the African continent and long curved tusks.", + "The African bush elephant is a massive gray animal with large ears, a long trunk, and prominent tusks.", + "African bush elephants are large gray animals with long trunks big ears and tusks unlike most other objects or animals." + ], + "red panda": [ + "A red panda is a small furry mammal with reddish brown fur a long tail and white face markings.", + "A red panda has reddish-brown fur, a long bushy tail, white face markings, and is smaller than a giant panda.", + "Red pandas have reddish-brown fur, bushy ringed tails, white face markings, and a bear-like body shape with short legs.", + "Red pandas are small, reddish-brown mammals with bushy tails and white facial markings, unlike most other animals or objects." + ], + "giant panda": [ + "A giant panda is a large black and white bear with round ears and distinctive black patches around its eyes.", + "Giant pandas have distinctive black and white fur with round faces and large black patches around their eyes and ears.", + "The giant panda has distinctive black and white fur patches around its eyes ears and body unlike any other animal.", + "Giant pandas are recognized by their black and white fur, black eye patches, round face, and large body with a black and white pattern." + ], + "snoek fish": [ + "The snoek fish has a long slender body with a distinct protruding lower jaw and sharp teeth.", + "Snoek fish are long slender silver fish with pointed snouts unlike rounder bulkier fish or non-fish objects.", + "Snoek fish are long slender silver fish with a pointed snout and a distinct dark stripe along their back.", + "The snoek fish is a long slender silver fish with a pointed snout and dark stripes along its back." + ], + "eel": [ + "Eels are long, slender, and snake-like with smooth skin, unlike most fish which have scales and more varied body shapes.", + "Eels have long slender snake-like bodies smooth skin and lack pelvic fins distinguishing them from fish and other aquatic creatures.", + "Eels are long slender snake-like fish with smooth slippery skin and no visible scales or fins.", + "An eel is a long, slender, snake-like fish with smooth, slippery skin and a fin running along its back and tail." + ], + "silver salmon": [ + "Silver salmon have sleek silver bodies with black spots and a slightly forked tail unlike most other fish or objects.", + "Silver salmon have a distinct bright silver body with small black spots on their back and tail.", + "Silver salmon have a metallic silver body with black spots on their back and tail and a slightly forked tail fin.", + "Silver salmon are shiny, silvery fish with black spots on their back and tail, often found in freshwater and coastal waters." + ], + "rock beauty fish": [ + "Rock beauty fish have bright yellow bodies with dark blue edges and a black spot near the tail.", + "The rock beauty fish has bright yellow and black patterns with a round body unlike most other fish or objects.", + "The rock beauty fish has a bright yellow body with a dark black patch and blue accents around its face and tail.", + "The rock beauty fish has a striking bright yellow body with a bold black band from its dorsal fin to its belly." + ], + "clownfish": [ + "Clownfish are small, brightly colored orange fish with white stripes and often found near sea anemones.", + "Clownfish are small, brightly colored orange fish with white stripes, often found near sea anemones, unlike most other fish.", + "Clownfish are small, bright orange fish with white stripes and black outlines often seen near sea anemones.", + "Clownfish have bright orange bodies with white stripes outlined in black and often live among sea anemones." + ], + "sturgeon": [ + "Sturgeons are long slender fish with bony plates, pointed snouts, and whisker-like barbels near their mouths.", + "Sturgeons have long slender bodies, bony plates instead of scales, and elongated snouts with whisker-like barbels.", + "Sturgeons have long pointed snouts and rows of bony plates called scutes along their bodies.", + "Sturgeons have long slender bodies with bony plates and pointed snouts unlike most fish which are smoother and more rounded." + ], + "gar fish": [ + "Gar fish have long slender bodies needle-like snouts and diamond-shaped scales unlike most other fish which are shorter and rounder.", + "Gar fish are long slender fish with needle-like snouts sharp teeth and diamond-shaped scales often green or brown.", + "Gar fish have long slender bodies pointed snouts and diamond-shaped scales making them easily recognizable.", + "The gar fish is a long slender fish with sharp teeth and armor-like scales resembling a prehistoric reptile." + ], + "lionfish": [ + "Lionfish have long, flowing, venomous spines that fan out distinctively from their bodies unlike any other creature.", + "Lionfish have striking red and white striped bodies with long, venomous spines and fan-like pectoral fins.", + "Lionfish have striking striped bodies with long venomous spines unlike most fish which are smoother and lack such dramatic patterns.", + "Lionfish have striped red, white, and brown bodies with long, venomous spines and fan-like pectoral fins." + ], + "pufferfish": [ + "Pufferfish are round, spiky fish that inflate into a ball shape when threatened, with small fins and large eyes.", + "Pufferfish are round with spiky skin, small fins, and can inflate into a ball shape when threatened.", + "Pufferfish are round with spiky skin and can inflate into a ball shape when threatened.", + "Pufferfish have round, spiky bodies that inflate when threatened, unlike most fish which stay streamlined and smooth." + ], + "abacus": [ + "An abacus is a rectangular frame with rows of beads on rods used for counting and calculations.", + "An abacus is a rectangular frame with rows of beads sliding on rods used for counting and calculations.", + "An abacus has rows of beads on rods in a frame, unlike calculators or counting tools which have buttons or digital displays.", + "An abacus has rows of beads on rods in a frame used for counting unlike any other object." + ], + "abaya": [ + "An abaya is a long loose flowing black robe worn by some women often paired with a headscarf.", + "The abaya is a long flowing black robe often with intricate embroidery or embellishments worn as traditional Islamic clothing.", + "An abaya is a long loose flowing black robe worn by some women often with intricate embroidery or simple designs.", + "An abaya is a long, loose black robe worn over clothes, differing from other garments by its simplicity and full-body coverage." + ], + "academic gown": [ + "An academic gown is a long flowing robe typically black with wide sleeves worn during graduation ceremonies by scholars and students.", + "Academic gowns are long flowing robes with wide sleeves, often black and worn over clothes, unlike regular coats or dresses.", + "Academic gowns are long flowing robes with wide sleeves often black or dark colored and worn with a square academic cap.", + "Academic gowns are long flowing robes with wide sleeves often featuring distinctive colors or hoods indicating academic achievements." + ], + "accordion": [ + "An accordion is a boxy musical instrument with a folded central bellows and buttons or piano keys on both sides.", + "An accordion is a boxy musical instrument with a folding bellows and buttons or keys on both sides.", + "An accordion has a boxy shape with pleated bellows and buttons or keys, unlike most instruments which are solid and smooth.", + "An accordion has a boxy shape with a pleated bellows, piano keys or buttons, and straps for holding it while playing." + ], + "acoustic guitar": [ + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long neck.", + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long narrow neck.", + "An acoustic guitar has a hollow wooden body with a sound hole, a long neck with frets, and six strings stretched from head to base.", + "An acoustic guitar has a hollow wooden body with a sound hole and a long neck with strings stretched from head to body." + ], + "aircraft carrier": [ + "An aircraft carrier is a massive warship with a long flat deck for launching and recovering military aircraft.", + "Aircraft carriers have a long flat deck with a distinctive runway for launching and landing military aircraft.", + "Aircraft carriers are massive flat-decked ships with runways, distinct from other vessels by their size and flight operations area.", + "Aircraft carriers are massive flat-topped ships with a long runway and often have many parked planes on their deck." + ], + "airliner": [ + "Airliners are recognized by their long tubular fuselage, high-mounted swept wings, and multiple jet engines under the wings.", + "An airliner is a large commercial jet with a long cylindrical body, swept wings, and multiple engines under the wings.", + "Airliners are large elongated aircraft with multiple windows, swept wings, and jet engines, unlike smaller or propeller-driven planes.", + "Airliners are large elongated aircraft with swept wings multiple windows underbelly engines and a pointed nose for passenger transport." + ], + "airship": [ + "An airship is a large elongated balloon with a gondola underneath and often has propellers or fins for steering.", + "An airship is a large elongated balloon with a cabin underneath, resembling a blimp or dirigible floating in the sky.", + "An airship is a large elongated balloon with a gondola, distinct from airplanes by its lack of wings and slower movement.", + "An airship is recognized by its large elongated gas-filled balloon with a gondola underneath and often has propellers or fins." + ], + "altar": [ + "An altar typically has a flat surface for offerings and may include religious symbols unlike other furniture or decorative objects.", + "An altar is a flat elevated structure often made of stone or wood used for religious ceremonies and offerings.", + "An altar typically has a flat elevated surface often decorated with religious symbols candles or offerings for worship ceremonies.", + "An altar typically has a flat raised surface often decorated with religious symbols candles or offerings standing out in sacred settings." + ], + "ambulance": [ + "Ambulances are large white vehicles with red crosses flashing lights and sirens unlike regular cars or trucks.", + "Ambulances are typically white or yellow with red crosses flashing lights and bold lettering making them stand out.", + "An ambulance is a large white vehicle with bold red crosses and flashing lights used for emergency medical transport.", + "Ambulances are recognized by their white and red colors, flashing lights, sirens, and prominent medical cross or star symbols." + ], + "amphibious vehicle": [ + "Amphibious vehicles have a boat-like hull and wheels or tracks allowing both land and water travel unlike regular cars or boats.", + "Amphibious vehicles have boat-like hulls, wheels or tracks, and often a flat front for water and land movement.", + "Amphibious vehicles have both wheels for land and a boat-like hull for water in one compact design.", + "Amphibious vehicles have both wheels for land and boat-like hulls for water with visible propellers or water jets." + ], + "analog clock": [ + "An analog clock has hour and minute hands that rotate around a fixed dial to show time.", + "An analog clock has a round face with numbers and moving hour minute and second hands to show time.", + "Analog clocks have a round face with numbers and moving hour and minute hands to show time.", + "An analog clock is a round face with numbers and moving hour, minute, and second hands to show time." + ], + "apiary": [ + "An apiary is a collection of beehives, often wooden boxes stacked together, unlike single natural beehives or unrelated objects like buildings or trees.", + "An apiary is a collection of beehives often seen as wooden boxes stacked together in a field or garden.", + "An apiary typically consists of stacked wooden boxes with small entrance holes where bees enter and exit frequently.", + "Apiaries are recognized by wooden beehive boxes stacked in rows, often with bees flying around and nearby beekeeping equipment." + ], + "apron": [ + "An apron is a cloth garment tied at the waist covering the front of the body often used for cooking or cleaning.", + "An apron is a protective garment covering the front of the body typically tied around the waist and often made of cloth or leather.", + "An apron is a piece of cloth worn over clothes to protect them, typically tied around the waist and covering the front.", + "An apron is recognized by its front-facing fabric panel tied around the waist and neck, often covering the torso and legs." + ], + "trash can": [ + "A trash can is typically a metal or plastic container with an open top and sometimes a lid for holding waste.", + "Trash cans are typically cylindrical or rectangular with an open top and often made of metal or plastic for holding waste.", + "A trash can is typically a container with an open top, often made of metal or plastic, and may have a lid or pedal.", + "A trash can is typically a cylindrical or rectangular container with an open top for discarding waste, often made of metal or plastic." + ], + "assault rifle": [ + "Assault rifles are long guns with a pistol grip, detachable magazine, and often a barrel shroud or muzzle device.", + "Assault rifles have a long barrel, pistol grip, detachable magazine, and often a shoulder stock for stability and control.", + "Assault rifles are long with a barrel, stock, and magazine, unlike shorter handguns or non-gun objects lacking these features.", + "An assault rifle is a long black firearm with a magazine grip and barrel designed for rapid fire and military use." + ], + "backpack": [ + "Backpacks have straps, a main storage compartment, and often pockets, distinguishing them from other bags and objects.", + "Backpacks have two adjustable shoulder straps designed to be worn on the back for carrying items.", + "A backpack is a sturdy fabric bag with shoulder straps, often rectangular, used to carry items on one's back.", + "Backpacks have straps and a pouch for carrying items while other objects lack these specific features for storage and transport." + ], + "bakery": [ + "A bakery typically features bread loaves pastries cakes ovens counters and display cases with baked goods arranged neatly.", + "Baked goods like bread and pastries have golden-brown crusts, soft interiors, and flour dusting on surfaces.", + "Bakeries typically display multiple baked goods like bread and pastries in a shop setting with counters and shelves unlike single food items.", + "A bakery can be identified by its display of bread loaves pastries cakes and often a counter with glass cases." + ], + "balance beam": [ + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances.", + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances and routines.", + "A balance beam is a long narrow rectangular object while similar items like benches or logs are often thicker or irregularly shaped.", + "A long narrow rectangular beam elevated on supports used in gymnastics for balance and acrobatic performances." + ], + "balloon": [ + "A balloon is a colorful, inflatable, rubber or latex object often round or oval, floating when filled with air or gas.", + "Balloons are typically round, smooth, and brightly colored, often filled with air or gas, making them lighter and more flexible than most objects.", + "Balloons are recognized by their smooth, rounded, inflatable shapes and bright, often shiny colors floating in air or tied with strings.", + "Balloons are typically round, smooth, and brightly colored with a shiny or matte surface, often inflated and tied with a string." + ], + "ballpoint pen": [ + "A ballpoint pen is a slender cylindrical object with a pointed tip and a cap or click mechanism for writing.", + "A ballpoint pen is slim, cylindrical, and has a pointed tip, unlike bulkier or differently shaped objects like markers or pencils.", + "A ballpoint pen is a slim cylindrical object with a pointed tip and often has a clip near the top.", + "A ballpoint pen has a slim cylindrical shape with a tapered tip and often a clip near the top for easy attachment." + ], + "Band-Aid": [ + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors like red or blue.", + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors.", + "Band-Aids are small, flat, rectangular adhesive strips with a central pad, often flesh-colored or patterned, unlike bulkier medical items or plain tapes.", + "A Band-Aid is a small rectangular strip with a sticky adhesive backing and a soft padded center for covering wounds." + ], + "banjo": [ + "A banjo is a stringed instrument with a round body, long neck, and typically four or five strings.", + "A banjo has a round body with a stretched skin head and a long neck with strings and metal frets.", + "The banjo has a distinctive circular body with a tightly stretched membrane and a long fretted neck.", + "A banjo has a round body with a stretched membrane and a long neck with strings, unlike guitars or ukuleles." + ], + "baluster / handrail": [ + "Balusters and handrails are long vertical or horizontal bars often made of wood or metal supporting or edging stairs and railings.", + "Balusters and handrails are long thin vertical or horizontal rods often found in rows supporting or alongside staircases and railings.", + "A baluster or handrail is a vertical or horizontal support pillar or rail often found on staircases or balconies.", + "Balusters and handrails are long, slender, often vertical or slightly curved supports typically found alongside stairs or balconies." + ], + "barbell": [ + "A barbell is a long metal bar with heavy round weights attached at both ends used for weightlifting.", + "A barbell is a long metal bar with heavy round weights on both ends used for weightlifting exercises.", + "Barbells have a long metal bar with weights on both ends unlike other objects which lack this specific symmetrical weighted design.", + "A barbell has a long metal bar with symmetrical weighted discs on both ends used for weightlifting." + ], + "barber chair": [ + "A barber chair has a tall back, adjustable height, footrest, often leather upholstery, and sometimes a headrest or armrests.", + "A barber chair has a tall backrest, adjustable height, footrest, often leather upholstery, and sometimes a headrest or reclining feature.", + "A barber chair is a tall, padded seat with a high back, armrests, and often a footrest and adjustable height mechanism.", + "A barber chair has a tall back, adjustable height, footrest, and often a reclining feature, unlike regular chairs or furniture." + ], + "barbershop": [ + "A barbershop typically has barber chairs, mirrors, and hair cutting tools, unlike other places which lack these specific grooming features.", + "Barbershops are recognized by barber chairs, striped poles, mirrors, scissors, combs, and customers getting haircuts.", + "A barbershop can be identified by its striped pole, chairs with headrests, mirrors, and shelves with hair products.", + "A barbershop typically features barber chairs, mirrors, scissors, razors, and hair products in a clean, organized setting." + ], + "barn": [ + "Barns are large rectangular buildings with sloped roofs often made of wood or metal unlike smaller or differently shaped structures.", + "Barns are large rectangular structures with high pitched roofs often made of wood or metal and found in rural areas.", + "A barn is a large, sturdy, rectangular farm building with a high-pitched roof, often made of wood or metal, typically red or brown.", + "A barn is uniquely identified by its large, sloped roof and prominent doors designed for storing farm equipment and housing livestock." + ], + "barometer": [ + "A barometer is a small round or rectangular device with a dial and needle to measure atmospheric pressure.", + "A barometer typically has a round dial with measurement markings and a glass cover often mounted on a wooden or metal base.", + "A barometer typically has a round dial with pressure markings and a needle, unlike similar objects which lack these specific features.", + "A barometer has a round dial with pressure markings and a needle, often mounted on a wooden or metal base." + ], + "barrel": [ + "Barrels are recognized by their cylindrical shape, rounded sides, and often wooden or metal construction with horizontal bands.", + "A barrel is a large cylindrical container with rounded sides, typically made of wood or metal, used for storing liquids or goods.", + "A barrel is a cylindrical container with a rounded belly, often made of wood or metal, and typically wider in the middle than at the ends.", + "Barrels are cylindrical with rounded sides and often have metal bands while similar objects may be differently shaped or lack bands." + ], + "wheelbarrow": [ + "A wheelbarrow is a small cart with one wheel at the front and two handles at the back for carrying loads.", + "A wheelbarrow has a single wheel at the front, a deep tray for carrying loads, and two handles at the back for pushing.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying loads.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying materials." + ], + "baseball": [ + "A baseball is a small white round object with red stitching typically seen in sports settings or with gloves and bats.", + "A baseball is a small white sphere with red stitching forming two curved lines around its surface.", + "The unique visual cue for baseball is the red stitching pattern on the white leather surface of the ball.", + "Baseballs are white with red stitching, small and round, unlike bats which are long or gloves which are larger and padded." + ], + "basketball": [ + "A basketball is a large orange sphere with black lines forming a symmetrical pattern around its surface.", + "A basketball is a large orange sphere with black lines and a textured surface used in the sport of basketball.", + "Basketballs are orange with black lines and a bumpy texture unlike smoother round objects like soccer balls or volleyballs.", + "A basketball is recognized by its orange color, black lines forming a symmetrical pattern, and spherical shape with a textured surface." + ], + "bassinet": [ + "A bassinet is a small, high-sided baby bed with short legs or a stand, often hooded, unlike larger cribs or cradles.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for newborns to sleep in.", + "A bassinet has a small, high-walled, often hooded design for infants, typically on a stand or with rocking features.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for infants and typically on a stand or wheels." + ], + "bassoon": [ + "A bassoon is a long wooden wind instrument with a curved metal tube and many keys along its body.", + "A bassoon is a long wooden wind instrument with a curved metal tube and double reed at the top.", + "The bassoon has a long wooden body with a curved metal tube called a bocal at the top.", + "The bassoon is a long wooden wind instrument with a curved metal tube and multiple keys, unlike simpler or differently shaped objects." + ], + "swimming cap": [ + "A swimming cap is a smooth, tight-fitting, often brightly colored or shiny head covering made of latex, silicone, or lycra.", + "A swimming cap is a tight, smooth, often colorful silicone or latex head covering that reduces drag in water.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, covering the head snugly with a rubbery or silicone texture.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, unlike looser or textured headwear like hats or helmets." + ], + "bath towel": [ + "Bath towels are typically rectangular, made of absorbent fabric, and often have textured surfaces unlike other objects which vary widely in shape and material.", + "A bath towel is a large rectangular piece of soft absorbent fabric often with colorful patterns or solid pastel colors.", + "A bath towel is typically rectangular, made of soft absorbent fabric, often with a textured surface and comes in various colors or patterns.", + "Bath towels are rectangular with a soft textured surface often featuring fringed edges and come in various solid or patterned colors." + ], + "bathtub": [ + "A bathtub is a large open container with smooth curved sides designed for holding water unlike sinks or buckets which are smaller.", + "A bathtub is a large rectangular or oval container with smooth sides designed to hold water for bathing.", + "A bathtub is recognized by its large open rectangular or oval basin designed for holding water and fitting a human body.", + "A bathtub is a large rectangular or oval container with smooth curved sides designed to hold water for bathing." + ], + "station wagon": [ + "Station wagons are longer than sedans with a extended rear roof and more cargo space but shorter than minivans.", + "Station wagons have a long roof extending to the rear with a spacious cargo area and typically four doors like sedans.", + "A station wagon is a long car with a flat roof and a rear hatchback extending from the trunk to the roofline.", + "A station wagon is a long car with a flat roof and a large rear cargo area behind the back seats." + ], + "lighthouse": [ + "A lighthouse is a tall tower with a bright light on top, often near water, unlike most other structures.", + "A lighthouse is a tall tower with a bright light on top often found near coastlines to guide ships.", + "A lighthouse is a tall tower with a bright light on top, often striped or white, near water to guide ships.", + "A lighthouse has a tall tower with a bright rotating light at the top to guide ships at night." + ], + "beaker": [ + "A beaker is a clear cylindrical glass or plastic container with a flat bottom and a small spout for pouring.", + "A beaker is a cylindrical glass container with a flat bottom and a small spout, unlike cups or bowls which lack spouts.", + "A beaker is a tall cylindrical glass container with a flat base and a small spout used in laboratories for holding liquids.", + "A beaker has a cylindrical shape with a flat bottom and a small spout for pouring liquids." + ], + "military hat (bearskin or shako)": [ + "Military hats like bearskins and shakos are tall rigid and often furred or plumed unlike regular hats which are shorter and softer.", + "Military hats like bearskins or shakos are tall, rigid, and often have plumes, badges, or distinctive shapes setting them apart from regular headwear.", + "Military hats like bearskins or shakos are tall rigid often furred or plumed with a distinct formal uniformed appearance.", + "A military hat like a bearskin or shako is tall, rigid, and ornate, often with plumes or badges, standing out among other headwear." + ], + "beer bottle": [ + "A beer bottle is a tall glass container with a narrow neck, often brown or green, labeled and sometimes capped with metal or cork.", + "Beer bottles are typically tall cylindrical glass containers with narrow necks and labels, often brown or green, unlike wider or differently shaped objects.", + "Beer bottles are recognized by their elongated glass shape with a narrow neck and often have labels or logos.", + "A beer bottle is typically tall with a narrow neck, made of glass or aluminum, often labeled and colored green or brown." + ], + "beer glass": [ + "A beer glass typically has a tall cylindrical shape with a handle and is often filled with golden bubbly liquid.", + "A beer glass is typically tall, clear, cylindrical or tapered, with a handle or stem, often frosted or filled with golden liquid.", + "A beer glass is a tall transparent vessel with a handle or stem, often cylindrical or tapered, used for serving beer.", + "A beer glass is typically tall and cylindrical with a handle or stem often made of clear glass showing golden liquid inside." + ], + "bell tower": [ + "A bell tower is a tall structure with open sides or windows, housing bells, often part of a church or municipal building.", + "A bell tower is a tall structure with open sides and a peaked roof, often holding bells, unlike solid buildings or shorter towers.", + "A bell tower is tall and narrow with a peaked roof often featuring arches or openings for bells to be visible or heard.", + "A bell tower is tall and narrow with a peaked roof and open arches or windows housing bells for ringing." + ], + "baby bib": [ + "A baby bib is a small cloth or plastic item worn around a baby's neck to catch spills and food during feeding.", + "A baby bib is a small piece of fabric or plastic worn around a baby's neck to catch spills and drool.", + "Baby bibs are small cloth or plastic garments with fasteners designed to catch spills, unlike larger clothing or non-wearable items.", + "Baby bibs are small cloth or plastic coverings tied around a baby's neck to catch spills during feeding." + ], + "tandem bicycle": [ + "A tandem bicycle has two seats two sets of pedals and a longer frame than a regular bicycle.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame than a regular bicycle for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a long frame with two wheels, designed for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame compared to single-rider bikes or other vehicles." + ], + "bikini": [ + "A bikini is a two-piece swimsuit with minimal fabric, while other objects vary widely in shape, size, and material.", + "A bikini is a small two-piece swimsuit typically made of colorful fabric with triangular or rectangular top and bottom parts.", + "Bikinis are small two-piece swimsuits with distinct shapes and bright colors often worn at beaches or pools.", + "A bikini is a two-piece swimsuit with a top covering the chest and bottom covering the hips, often brightly colored or patterned." + ], + "ring binder": [ + "A ring binder has a rectangular shape with two or three metal rings inside that open and close to hold papers.", + "Ring binders have a distinctive rectangular shape with metal rings inside and a spine that opens and closes for holding papers securely.", + "A ring binder is a sturdy folder with metal rings inside that snap open and shut to hold loose papers securely.", + "A ring binder has metal rings and a spine to hold papers, unlike other objects which lack these specific binding features." + ], + "binoculars": [ + "Binoculars are handheld twin telescopes with a central hinge used for magnifying distant objects clearly with both eyes.", + "Binoculars have two parallel tubes with lenses for each eye unlike single-lens devices or non-optical objects.", + "Binoculars have two parallel tubes with lenses, a central hinge, and often a neck strap for easy carrying and use.", + "Binoculars are identified by two parallel tubes with lenses at each end and often have a central hinge for adjustment." + ], + "birdhouse": [ + "A birdhouse is a small enclosed structure with an entrance hole designed for birds to nest, unlike other objects.", + "A birdhouse is a small man-made structure with an entrance hole designed for birds to nest, often mounted on poles or trees.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to shelter birds.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to attract nesting birds." + ], + "boathouse": [ + "A boathouse is a small building by water with a roof and open sides to store boats and docking equipment.", + "A boathouse is a small building by water with large doors to store boats unlike regular houses or sheds.", + "A boathouse is a small building by water with large doors for storing boats and often has a dock or deck.", + "A boathouse is uniquely characterized by its structure built over water with direct access for boats underneath or inside." + ], + "bobsleigh": [ + "A bobsleigh is a long narrow streamlined sled with a rounded front and low sides used for racing on ice.", + "A bobsleigh is a long, narrow, aerodynamic sled with a rounded front and low seating area for multiple riders.", + "A bobsleigh has a long narrow aerodynamic sled with two pairs of runners and a steering mechanism for high-speed ice tracks.", + "A bobsleigh is recognized by its long narrow aerodynamic sled with two pairs of runners and a steering mechanism for icy tracks." + ], + "bolo tie": [ + "A bolo tie is a decorative cord with metal tips and a sliding clasp, unlike neckties or jewelry which lack its distinctive adjustable design.", + "A bolo tie is a decorative cord with metal tips and a sliding clasp, often worn like a necktie with Western-style clothing.", + "A bolo tie has a decorative metal clasp and braided leather cords with sliding tips worn as a neckpiece.", + "A bolo tie has a decorative metal clasp and a braided leather cord with metal tips worn like a necktie." + ], + "poke bonnet": [ + "A poke bonnet is a large, stiff, and deep bonnet with a wide brim that frames the face and extends forward.", + "A poke bonnet has a large stiff brim projecting forward and a deep crown often tied under the chin with ribbons.", + "A poke bonnet has a stiff, projecting brim framing the face, unlike other hats with smaller or flexible brims.", + "A poke bonnet has a large stiff brim projecting forward to shade the face often with ribbons or decorative trim." + ], + "bookcase": [ + "Bookcases are recognized by their tall rectangular shape with multiple horizontal shelves for storing books and other items.", + "Bookcases are tall rectangular furniture with multiple horizontal shelves designed to store books, unlike cabinets or dressers which have doors or drawers.", + "A bookcase is a tall wooden or metal shelf with multiple horizontal levels designed to hold books and other items.", + "A bookcase is a tall rectangular furniture piece with multiple horizontal shelves designed to hold books and other items." + ], + "bookstore": [ + "Bookstores have shelves filled with books, often arranged neatly in rows, distinguishing them from other retail spaces with varied merchandise displays.", + "A bookstore typically has shelves filled with books, a checkout counter, and reading areas with chairs or tables.", + "Bookstores feature rows of shelves packed with books, often with reading areas and checkout counters, distinct from libraries by selling items.", + "A bookstore typically has shelves filled with books, reading areas, and a cozy atmosphere with customers browsing or purchasing." + ], + "bottle cap": [ + "A bottle cap is a small round or cylindrical object typically made of metal or plastic that seals bottle openings.", + "A bottle cap is small round and often has ridges or a flat top with a threaded or snap-on design.", + "Bottle caps have a small round shape with ridges or grooves on the side for grip and a flat top.", + "Bottle caps are small, round, and flat with ridged edges, often made of metal or plastic, unlike larger or differently shaped objects." + ], + "hunting bow": [ + "A hunting bow is a curved or straight weapon with a taut string, used to shoot arrows, typically made of wood or composite materials.", + "A hunting bow has a curved shape with a string and limbs, distinct from straight tools or weapons like arrows or rifles.", + "A hunting bow has a curved shape with a string stretched between two ends and often includes arrows and a grip.", + "A hunting bow has a curved or straight rigid frame with a taut string and often includes arrow rests and camouflage patterns." + ], + "bow tie": [ + "A bow tie is a small symmetrical fabric knot worn at the neck unlike larger or asymmetrical neckwear like scarves or neckties.", + "A bow tie is a small symmetrical fabric knot with two loops worn around the neck for formal occasions.", + "Bow ties have a symmetrical, narrow fabric knot with two distinctive triangular or butterfly-shaped ends.", + "A bow tie is a small symmetrical fabric knot with two loops worn at the neck, distinct from neckties by its shape." + ], + "brass memorial plaque": [ + "A brass memorial plaque is flat, rectangular, often engraved with text, has a shiny golden-brown finish, and is mounted on walls or surfaces.", + "A brass memorial plaque is a flat rectangular metal plate with engraved text often mounted on walls or stone surfaces.", + "Brass memorial plaques are flat rectangular metal plates with engraved text often mounted on walls or stone for commemorative purposes.", + "Brass memorial plaques are flat, rectangular, often engraved with text or images, and have a shiny golden-brown metallic finish." + ], + "bra": [ + "A bra is a soft undergarment with cups straps and hooks designed to support and cover the breasts.", + "A bra typically has straps cups and clasps made of soft fabric unlike most other clothing or objects in shape and structure.", + "Bras have distinctive cup shapes, straps, hooks, lace or fabric textures, and are often symmetrical with smooth curves and padding.", + "A bra has two rounded cups connected by a center piece and straps designed to support the breasts." + ], + "breakwater": [ + "A breakwater is a long, sturdy structure made of rocks or concrete, extending into water to protect shores from waves.", + "A breakwater is a long, sturdy structure built offshore, typically made of rocks or concrete, to protect the coast from waves.", + "Breakwaters are long narrow structures made of rocks or concrete extending into water to protect shorelines from waves.", + "A breakwater looks like a long, sturdy wall or pile of rocks extending into the water to protect the shore." + ], + "breastplate": [ + "A breastplate is a piece of armor that covers the torso, typically made of metal or leather, often with decorative or protective details.", + "A breastplate is a curved metal armor piece covering the torso, often shiny with straps or buckles for securing it.", + "A breastplate is a curved metal armor piece covering the torso, unlike other objects which vary in shape, material, and purpose.", + "A breastplate is recognized by its curved metal shape covering the torso often with straps and decorative engravings." + ], + "broom": [ + "A broom has a long handle with dense bristles at one end used for sweeping floors.", + "A broom has a long handle with dense bristles or fibers at one end used for sweeping.", + "A broom has a long handle with dense bristles clustered at one end for sweeping.", + "A broom typically has a long handle with bristles at one end used for sweeping floors and cleaning debris." + ], + "bucket": [ + "A bucket is a round or cylindrical container with an open top and a handle, usually made of metal or plastic.", + "A bucket is recognized by its open top, cylindrical or tapered shape, and sturdy handle for carrying liquids or materials.", + "A bucket is typically a cylindrical or tapered container with an open top and a handle on the side.", + "Buckets are typically cylindrical with a handle, open top, and sturdy material, unlike similar objects which may vary in shape and function." + ], + "buckle": [ + "Buckles have a small, rigid frame with a movable pin or clasp, often metallic and decorative, used to fasten straps or belts.", + "A buckle is a small metal or plastic clasp with a frame and prong used to fasten straps or belts securely.", + "Look for a small metal or plastic clasp with a frame and prong used to fasten straps or belts together.", + "Buckles are small metal or plastic fasteners with a frame, prong, and often decorative designs unlike larger or simpler objects." + ], + "bulletproof vest": [ + "A bulletproof vest is a flat, often padded garment with straps and panels, unlike rigid or bulky protective gear.", + "Bulletproof vests are recognized by their rectangular padded panels, straps, and often a tactical or military-style appearance.", + "Bulletproof vests have a distinctive layered panel design often with visible stitching or straps for adjustable fit.", + "A bulletproof vest is a sleeveless padded garment with thick panels designed to protect the torso from gunfire and sharp objects." + ], + "high-speed train": [ + "High-speed trains are long, sleek, and aerodynamic with smooth surfaces and minimal protruding parts compared to other vehicles or objects.", + "High-speed trains have a long streamlined aerodynamic body with a pointed nose to reduce air resistance at high speeds.", + "High-speed trains have sleek aerodynamic designs long bodies and often bright colors with distinct branding on the front.", + "A high-speed train is a sleek, elongated vehicle with a pointed front, smooth metallic body, and often multiple connected carriages." + ], + "butcher shop": [ + "A butcher shop can be identified by raw meat cuts, display counters, hanging carcasses, and tools like cleavers and saws.", + "A butcher shop typically displays raw meat cuts and tools, unlike other stores which show packaged goods or different products.", + "Butcher shops feature raw meat displays, cutting tools, hanging carcasses, and white-coated workers behind counters.", + "The presence of raw meat cuts and cleavers displayed together is unique to a butcher shop." + ], + "taxicab": [ + "Taxicabs are typically yellow or black cars with rooftop signs and sometimes checkered patterns unlike regular cars.", + "A taxicab is typically a yellow or black car with a roof sign, clear markings, and sometimes a checkered pattern.", + "A taxicab is a yellow or black car with a roof sign, often marked with company logos and numbers.", + "A taxicab is recognized by its boxy shape, bright colors, rooftop taxi sign, and often has company logos or numbers." + ], + "cauldron": [ + "A cauldron is a large metal pot with a rounded bottom and handles, often used for boiling or cooking over an open fire.", + "A cauldron is a large metal pot with a rounded shape and handles, often used for boiling or cooking over a fire.", + "A cauldron is a large deep metal pot with a rounded bottom and a handle often used for boiling or cooking over fire.", + "A cauldron is recognized by its large round pot shape with a heavy base and handles often used for boiling or cooking." + ], + "candle": [ + "A candle is recognized by its slender wax body with a wick on top, often burning with a small flame.", + "A candle has a burning wick with a small flame that emits light and melts wax around it.", + "A candle is a slender wax stick with a wick in the center often burning with a small flame at the top.", + "Candles are slender wax sticks with a wick, often tapered or cylindrical, unlike broader or differently shaped objects like lamps or lanterns." + ], + "cannon": [ + "A cannon is a large metal tube on wheels designed to fire heavy projectiles over long distances.", + "Cannons are large metal tubes with a wide barrel opening, often mounted on wheels, unlike smaller or differently shaped weapons and objects.", + "A cannon is a large metal tube on wheels with a wide barrel opening used for firing heavy projectiles.", + "A cannon has a long metal barrel, large cylindrical body, and wheels, often with a distinctive shape for launching projectiles." + ], + "canoe": [ + "A canoe is a narrow lightweight boat with pointed ends, often open on top and propelled by paddles.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often propelled by paddles.", + "A canoe has a long narrow open-top boat shape with pointed ends and no keel.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often paddled by one or more people." + ], + "can opener": [ + "A can opener is a small handheld or electric tool with a rotating blade and handle used to cut open metal cans.", + "A can opener has a sharp rotating wheel and a lever handle designed specifically to cut and lift metal can lids.", + "A can opener typically has a metal cutting wheel and a handle, unlike most kitchen tools which are solid or smooth.", + "A can opener has a rotating cutting wheel, a handle for turning, and a serrated edge to grip and open metal cans." + ], + "cardigan": [ + "A cardigan is a knitted sweater with an open front, usually buttoned or zipped, resembling a jacket but made of soft fabric.", + "A cardigan is a knitted sweater with an open front, usually with buttons or a zipper, and often has long sleeves.", + "A cardigan is a knitted sweater with an open front and buttons or a zipper unlike pullovers which are closed and lack fasteners.", + "A cardigan has a V-neckline with an open front fastened by buttons or a zipper unlike most other garments." + ], + "car mirror": [ + "A car mirror is a small reflective surface attached to the side or front of a car often rectangular or rounded with a sleek frame.", + "A car mirror has a reflective surface mounted on a thin adjustable arm attached to the vehicle's side or interior.", + "A car mirror is a small reflective surface attached to vehicles for visibility, often rectangular or rounded with a sleek metallic frame.", + "Car mirrors are typically small, reflective, and mounted on vehicles, unlike other objects which vary widely in size, shape, and function." + ], + "carousel": [ + "A carousel is a large circular platform with rotating seats often shaped like horses or other animals for amusement rides.", + "A carousel has rotating platforms with seats like horses or benches often found in amusement parks and decorated brightly.", + "A carousel is a large circular ride with rotating platforms, decorative horses or animals, and bright colorful lights.", + "A carousel is a large rotating platform with seats like animals or chairs unlike static objects or single moving vehicles." + ], + "tool kit": [ + "Tool kits typically include multiple small organized items like screws and wrenches unlike single larger objects such as hammers or saws.", + "A tool kit typically includes various handheld tools like wrenches, screwdrivers, and pliers, often stored in a case or box.", + "Tool kits are recognized by their organized collection of varied handheld tools often stored in cases or boxes for practical use.", + "A tool kit typically appears as a compact case or pouch containing various small hand tools like screwdrivers, wrenches, and pliers." + ], + "cardboard box / carton": [ + "Cardboard boxes are flat, rectangular, and made of dull brown material, unlike other objects which vary in shape, color, and texture.", + "A cardboard box is a rigid rectangular container made of thick brown paper, often with folds and seams for storage or shipping.", + "Cardboard boxes are rectangular with flat surfaces, uniform edges, and often have printed labels or tape on their sides.", + "Cardboard boxes are rectangular with flat surfaces, often brown or plain colored, and have visible seams or folds on the edges." + ], + "car wheel": [ + "Car wheels are round with a central hub and often have spokes or rims and are made of metal or alloy materials.", + "Car wheels are round with a central hub and spokes or solid design, often made of metal or alloy, unlike most objects.", + "A car wheel is round with a hub in the center and often has spokes or a solid design with a rubber tire around it.", + "A car wheel has a circular rim with evenly spaced holes or spokes around a central hub." + ], + "automated teller machine": [ + "Automated teller machines are typically freestanding rectangular boxes with a screen keypad and card slot unlike most other objects.", + "An automated teller machine is a freestanding rectangular box with a screen, keypad, card slot, and cash dispenser, often branded by a bank.", + "Automated teller machines have a rectangular screen, keypad, card slot, and cash dispenser often in a standalone metal or plastic enclosure.", + "An automated teller machine is a rectangular metal box with a screen, keypad, and card slot, often found in banks or public spaces." + ], + "cassette": [ + "Cassettes are flat rectangular plastic cases with reels inside and labels, unlike CDs or records which are round and shiny.", + "A cassette is a small rectangular plastic case with two exposed reels inside and a central spindle hole.", + "A cassette is a small rectangular plastic case with two reels of magnetic tape visible through a clear window.", + "Cassettes are small rectangular plastic cases with reels inside and a magnetic tape visible through a clear window." + ], + "cassette player": [ + "A cassette player is a rectangular electronic device with buttons, a slot for tapes, and often a handle for portability.", + "A cassette player has a rectangular shape with buttons, a tape compartment, and often a headphone jack or volume control.", + "A cassette player has a rectangular shape with buttons, a tape slot, and often a handle, unlike most other electronic devices.", + "A cassette player typically has rectangular shape with buttons, a tape compartment, and often a speaker or headphone jack." + ], + "castle": [ + "Castles are large stone structures with towers and walls, unlike smaller or simpler buildings without such grand defensive features.", + "A castle is a large fortified stone building with towers, high walls, and often a grand entrance, resembling a medieval fortress.", + "Castles are large stone structures with tall walls towers and often a grand entrance typically found on elevated or strategic locations.", + "Castles are large stone structures with tall walls, towers, and often a central keep, standing out for their historical and fortified appearance." + ], + "catamaran": [ + "A catamaran has two parallel hulls while most other boats have a single hull or different shapes like pontoons or sails.", + "A catamaran has two parallel hulls and a wide deck, making it distinct from single-hulled boats and other watercraft.", + "A catamaran is a twin-hulled boat with a wide flat deck, often used for sailing or cruising on water.", + "A catamaran is recognized by its twin parallel hulls connected by a frame, distinct from single-hull boats." + ], + "CD player": [ + "A CD player is a rectangular device with a sliding tray or top lid buttons and a display screen for track information.", + "A CD player is a rectangular electronic device with a slot or tray for discs, buttons, and often a small display screen.", + "A CD player is a rectangular device with a disc tray, buttons, and a display screen, unlike other objects which vary widely in shape and function.", + "A CD player has a rectangular shape with a disc tray, control buttons, and a display screen for track information." + ], + "cello": [ + "The cello has a large wooden body with a distinctive curved shape and strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body and tall neck played upright between the knees.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow." + ], + "mobile phone": [ + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "Mobile phones are small rectangular devices with screens, buttons or touchscreens, cameras, and often a sleek metallic or plastic body.", + "Mobile phones are flat rectangular devices with screens and buttons or touchscreens, smaller than laptops but larger than credit cards." + ], + "chain": [ + "A chain is a series of interlinked metal rings used for fastening, pulling, or securing objects together.", + "Chains are identified by their interlinked metal loops forming a flexible, linear structure often used for binding or hanging.", + "A chain consists of interlinked metal rings forming a flexible linear series.", + "Chains have interlocking metal loops forming a flexible linear structure often used for binding or hanging objects." + ], + "chain-link fence": [ + "A chain-link fence is a metal grid of interwoven wires forming a diamond pattern used for barriers or enclosures.", + "Chain-link fences have a distinctive diamond-shaped wire mesh pattern formed by interwoven metal wires.", + "Chain-link fences have a grid of interwoven metal wires forming diamond-shaped patterns and are typically silver or black in color.", + "A chain-link fence has a grid of interwoven metal wires forming diamond patterns, unlike solid walls or wooden fences." + ], + "chain mail": [ + "Chain mail has a distinctive interlocking metal ring pattern that creates a flexible, textured, and shiny surface unlike other fabrics or armors.", + "Chain mail is a flexible metal armor made of interlocking small rings forming a mesh-like protective garment.", + "Chain mail consists of interlinked metal rings forming a flexible mesh, unlike solid armor or fabric which are smooth or woven.", + "Chain mail appears as a flexible metal mesh made of interlinked small rings forming a shiny, textured, and often silver or gray surface." + ], + "chainsaw": [ + "A chainsaw has a long body with a toothed blade, a handle, and often an engine or motor at one end.", + "A chainsaw has a long body with a toothed blade and a handle, unlike most tools which are simpler and lack moving parts.", + "A chainsaw has a long toothed blade, a motor or engine, and a handle, often seen cutting wood with visible teeth and exhaust.", + "A chainsaw is a handheld power tool with a toothed rotating blade used for cutting wood, featuring a long body and a motor." + ], + "storage chest": [ + "A storage chest is a large rectangular box with a hinged or removable lid often made of wood or metal.", + "A storage chest typically has a large hinged lid and sturdy construction for holding items inside securely.", + "Storage chests are recognized by their large rectangular shape, hinged lid, sturdy handles, and often wooden or metal construction.", + "Storage chests are typically larger, boxier, and have lids for opening, unlike shelves or cabinets which have doors or open compartments." + ], + "chiffonier": [ + "A chiffonier is a tall narrow chest of drawers often with a mirror and ornate details typically used for storing clothes.", + "A chiffonier is a tall narrow chest of drawers often with a mirror and decorative details typically used in bedrooms.", + "A chiffonier is a tall narrow chest of drawers, often with a mirror, while similar items like dressers are wider and lower.", + "A chiffonier is recognized by its tall narrow design with multiple drawers and often a mirror, resembling a stylish bedroom or dining room cabinet." + ], + "bell or wind chime": [ + "Bells and wind chimes are hanging metal or wooden objects that produce sound when moved by wind or touch.", + "Bell or wind chime features include hanging hollow tubes or bells that produce sound when moved by wind or touch.", + "Look for hanging hollow tubes or objects that sway and make sound when moved by wind or touch.", + "Bells and wind chimes are hollow with hanging parts that produce sound when struck or moved unlike solid static objects." + ], + "china cabinet": [ + "A china cabinet is a tall wooden furniture piece with glass doors and shelves for displaying dishes and decorative items.", + "A china cabinet is a tall wooden furniture piece with glass doors and shelves displaying dishes and decorative items.", + "A china cabinet has glass doors, shelves for displaying dishes, and often ornate woodwork or carvings.", + "A china cabinet has glass doors and shelves to display dishes, unlike other cabinets which are usually solid and used for storage." + ], + "Christmas stocking": [ + "A Christmas stocking is a long, sock-shaped fabric pouch often decorated with festive patterns like snowflakes or Santa.", + "A Christmas stocking is a long decorative sock often with festive patterns, filled with gifts and hung by a fireplace.", + "A Christmas stocking is a festive fabric sock often red and white decorated with holiday patterns and filled with small gifts.", + "A Christmas stocking is uniquely shaped like a long sock often decorated with festive patterns and hung for holiday gifts." + ], + "church": [ + "Churches are large buildings with steeples, stained glass windows, and often a cross, unlike smaller or simpler structures.", + "Churches typically have tall steeples, arched windows, large wooden doors, and cross symbols on their rooftops or facades.", + "Churches often have tall steeples, arched windows, and large wooden doors with religious symbols or crosses on the building.", + "A church is a tall building with a pointed roof, often featuring a cross, stained glass windows, and a large entrance door." + ], + "movie theater": [ + "A movie theater is a large building with a marquee, ticket booth, rows of seats, and a big screen for showing films.", + "A movie theater has a large entrance with marquee lights, posters, ticket counters, and rows of seats facing a big screen.", + "A movie theater is recognized by rows of seats, a large screen, dim lighting, and often a projector booth at the back.", + "A movie theater typically has a large facade with marquee signs and posters while other objects vary widely in shape and design." + ], + "cleaver": [ + "A cleaver is a large rectangular knife with a thick heavy blade used for chopping meat and bones.", + "A cleaver is a large rectangular knife with a thick heavy blade and a broad handle for chopping tough materials.", + "A cleaver has a large rectangular blade with a thick spine designed for heavy chopping tasks.", + "A cleaver has a large rectangular blade, thick spine, and heavy weight for chopping through meat and bones." + ], + "cliff dwelling": [ + "Cliff dwellings are built into rock faces with visible stone walls and openings, unlike freestanding structures or natural rock formations.", + "Cliff dwellings are uniquely built into or on the sides of steep rock faces or cliffs.", + "Cliff dwellings are ancient homes built into rock faces often appearing as small rectangular structures with natural stone walls.", + "Cliff dwellings are stone structures built into rock faces with visible rooms and walls blending into the natural cliff." + ], + "cloak": [ + "A cloak is a long loose outer garment without sleeves that drapes over the body unlike coats or jackets which are more fitted.", + "A cloak is a long loose outer garment without sleeves that drapes over the shoulders and hangs down the body.", + "A cloak is a long loose outer garment that drapes over the shoulders and hangs down to cover the body.", + "A cloak is a long loose outer garment often with a hood draping over the body and flowing when in motion." + ], + "clogs": [ + "Clogs have a distinctive wooden sole with an open back and often a closed toe.", + "Clogs are wooden shoes with a thick sole and open back, unlike other shoes which are usually fully enclosed and made of softer materials.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors." + ], + "cocktail shaker": [ + "A cocktail shaker is a metal container with a tapered top, a strainer lid, and often a cap or smaller mixing cup.", + "A cocktail shaker is a metal container with a tight lid and strainer, often cylindrical or conical, unlike other kitchen tools.", + "A cocktail shaker is a sleek metal container with a tapered top, strainer lid, and often a cap for mixing drinks.", + "A cocktail shaker uniquely has a tightly sealed metal container with a built-in strainer and often a cap for mixing drinks." + ], + "coffee mug": [ + "A coffee mug is typically a cylindrical cup with a handle often made of ceramic or porcelain and holds hot beverages.", + "A coffee mug typically has a cylindrical shape with a handle and is smaller than a cup designed for other beverages.", + "Coffee mugs typically have a handle and cylindrical shape designed for holding hot beverages unlike bowls or cups which may lack handles.", + "A coffee mug is a cylindrical cup with a handle, typically made of ceramic or porcelain, often featuring simple designs or logos." + ], + "coffeemaker": [ + "A coffeemaker is a small appliance with a water reservoir, filter basket, and carafe, often rectangular with buttons or a dial.", + "Coffeemakers typically have a water reservoir, brewing basket, and carafe, unlike other appliances which lack these specific components.", + "A coffeemaker typically has a water reservoir, a filter basket, a carafe, and buttons or dials for brewing control.", + "A coffeemaker typically has a water reservoir, filter basket, carafe, and heating element with buttons or dials for operation." + ], + "spiral or coil": [ + "Spiral or coil shapes have continuous curved lines that loop around a central point distinguishing them from straight or angular forms.", + "Spirals and coils have continuous curved or circular shapes that wind inward or outward unlike straight or angular objects.", + "A spiral or coil has a continuous curved line that winds around a central point while gradually moving outward or inward.", + "Look for curved shapes that wind around a central point or axis in a continuous looping pattern." + ], + "combination lock": [ + "A combination lock is a small metal or plastic device with a numbered dial that opens when turned to the correct sequence.", + "A combination lock has a numbered dial or rotating wheels and a shackle, unlike most objects which lack these mechanical features.", + "A combination lock has a small rotating dial with numbers and a metal shackle for securing items.", + "A combination lock has a rotating dial with numbered markings used to set a specific sequence for opening." + ], + "computer keyboard": [ + "A computer keyboard is a rectangular device with rows of small square or rectangular keys labeled with letters, numbers, and symbols.", + "Computer keyboards have a flat rectangular shape with many small square or rectangular keys arranged in orderly rows.", + "A computer keyboard is flat with many rectangular keys arranged in rows and often has letters numbers and symbols on the keys.", + "A computer keyboard has a grid of rectangular keys with letters, numbers, and symbols arranged in a specific layout." + ], + "candy store": [ + "Candy stores are recognized by colorful displays of sweets, glass jars, shelves packed with treats, and often a counter for serving.", + "A candy store has colorful displays of various sweets in jars or bins unlike other shops with uniform or non-edible items.", + "Candy stores are colorful with bright displays of sweets, glass jars, shelves full of candy, and often a counter for service.", + "A candy store is colorful with shelves full of sweets like jars of candies lollipops and chocolates in bright displays." + ], + "container ship": [ + "Container ships are long rectangular vessels with stacked cargo containers, unlike other ships which have varied shapes and no container stacks.", + "Container ships are long rectangular vessels with stacked colorful metal containers and a flat deck for easy loading and unloading.", + "A container ship is a massive elongated vessel with stacked rectangular containers, often colorful, floating on water with a prominent bow and stern.", + "Container ships are uniquely identified by their massive rectangular hulls stacked with uniformly colored shipping containers in rows." + ], + "convertible": [ + "A convertible has a retractable roof, open-top design, and often a sleek, sporty body with two doors and low seating.", + "A convertible is a car with a retractable roof, often sleek and sporty, resembling other vehicles but with an open-top design.", + "Convertibles have a retractable roof and open-top design unlike regular cars which have fixed roofs and enclosed cabins.", + "A convertible has a retractable roof that can be folded down to open the car to the outdoors." + ], + "corkscrew": [ + "A corkscrew has a distinctive spiral metal rod designed to twist into cork for removal.", + "A corkscrew is a small metal tool with a spiral tip and handle, used for pulling corks from bottles.", + "A corkscrew has a spiral metal rod with a handle, often T-shaped, used to pull corks from bottles.", + "A corkscrew has a spiral metal helix and handle, unlike other objects which lack this twisting design for opening bottles." + ], + "cornet": [ + "A cornet is a brass instrument resembling a small trumpet with a conical bore and compact shape.", + "A cornet looks like a small brass trumpet with a conical bore, compact shape, and a mellow tone.", + "A cornet looks like a small brass trumpet with a compact shape and a conical bore.", + "The cornet has a distinctive conical metal tube shape with valves and a flared bell, resembling a small trumpet." + ], + "cowboy boot": [ + "Cowboy boots have a tall shaft pointed toe high heel and often decorative stitching or patterns on the leather.", + "Cowboy boots have tall shafts, angled heels, pointed toes, and decorative stitching or patterns on the leather.", + "Cowboy boots are tall leather boots with pointed toes high heels and decorative stitching often with a slanted shaft.", + "Cowboy boots have a tall shaft with distinctive decorative stitching and a slanted heel not found on other footwear." + ], + "cowboy hat": [ + "A cowboy hat has a wide brim and tall crown, unlike other hats which are often smaller or differently shaped.", + "A cowboy hat is a wide-brimmed high-crowned hat typically made of felt or leather with a distinctive curved shape.", + "A cowboy hat has a wide brim curved up at the sides and a tall rounded or pinched crown.", + "The wide brim and high crown shape are unique to cowboy hats among all objects." + ], + "cradle": [ + "A cradle is a small bed with high sides that rocks, unlike regular beds or furniture which are larger and stationary.", + "A cradle is a small bed with high curved sides and often rocking legs for holding and soothing a baby.", + "A cradle is a small bed with high sides that rocks gently to soothe a baby, often made of wood or wicker.", + "A cradle has a curved base and sides designed to rock, typically holding a baby, with a distinct elongated oval shape." + ], + "construction crane": [ + "A construction crane is a tall metal structure with a long horizontal arm and cables, used for lifting heavy materials at building sites.", + "A construction crane has a tall vertical tower with a horizontal jib that can rotate and lift heavy loads.", + "Construction cranes are recognized by their tall steel lattice towers, long horizontal jibs, and cables used for lifting heavy materials.", + "Construction cranes have tall vertical towers with long horizontal booms and cables, unlike most objects which are smaller and lack such structures." + ], + "crash helmet": [ + "A crash helmet is a hard rounded protective headgear often with a visor and straps, usually made of tough plastic or composite materials.", + "A crash helmet is a hard, rounded headgear with a smooth outer shell, often featuring a visor and straps for secure fastening.", + "A crash helmet has a hard outer shell, padding inside, a chin strap, and often a visor, unlike hats or caps.", + "A crash helmet has a hard outer shell, smooth rounded shape, chin strap, and often bright colors or reflective surfaces for visibility." + ], + "crate": [ + "Crates are typically wooden or plastic boxes with slatted sides, unlike solid containers or bags, making them look open and structured.", + "A crate is a sturdy wooden or plastic box with slatted sides used for storage or shipping various items.", + "A crate is a sturdy rectangular box typically made of wood or plastic with slatted sides for ventilation and easy handling.", + "Crates are recognized by their rectangular wooden slats, open structure, and sturdy construction for holding items." + ], + "infant bed": [ + "An infant bed is smaller with high protective sides and often has soft padding unlike regular beds or cribs.", + "An infant bed is a small rectangular crib with raised sides and often has soft padding or bars for safety.", + "An infant bed has high protective sides to prevent babies from falling out.", + "An infant bed is small with high side rails often made of wood or plastic and has a soft mattress inside." + ], + "Crock Pot": [ + "A Crock Pot is a slow cooker with a round or oval ceramic pot inside a metal casing and a lid.", + "A crock pot has a round or oval shape with a removable lid and handles, often made of ceramic or metal.", + "A Crock Pot is a round or oval electric slow cooker with a removable stoneware pot and a lid, often with a handle.", + "A Crock Pot is a large electric pot with a removable stoneware insert and a lid, unlike most pots which are metal and stovetop." + ], + "croquet ball": [ + "A croquet ball is smooth, uniformly colored, and slightly smaller than a bowling ball but larger and less fuzzy than a tennis ball.", + "A croquet ball is a smooth, hard sphere, typically brightly colored with stripes or patterns, similar to a bocce ball but smaller.", + "Croquet balls are smooth hard spheres with bright solid colors and no seams or markings.", + "Croquet balls are smooth hard spheres with bright solid colors often featuring stripes or patterns for easy identification." + ], + "crutch": [ + "A crutch is a long stick with a padded top and often a crossbar to support underarm weight for walking assistance.", + "Crutches have long vertical shafts with horizontal hand grips and arm supports, often with rubber tips at the bottom.", + "Crutches are long narrow objects with padded tops and rubber tips often seen under arms for support.", + "Crutches have long straight shafts with handles and arm supports, unlike canes or walkers which are shorter or lack arm supports." + ], + "cuirass": [ + "A cuirass is a form-fitting metal chest plate with smooth surfaces and defined edges unlike fabric or flexible armor pieces.", + "A cuirass is a piece of armor that covers the torso, typically made of metal and shaped to fit the chest and back.", + "A cuirass is a form-fitting metal chest armor with smooth surfaces, often shiny, and sometimes decorated with ridges or engravings.", + "A cuirass is recognized by its smooth, curved metal chest plate covering the torso, often with shoulder straps and decorative engravings." + ], + "dam": [ + "Dams are large concrete or earthen barriers built across rivers to hold back water and create reservoirs.", + "Dams are large solid barriers made of concrete or earth that block water flow unlike natural formations or smaller man-made structures.", + "A dam is a large concrete or earthen wall built across a river to hold back water and create a reservoir.", + "Dams are large solid barriers built across rivers with straight edges and massive concrete or earthen walls holding back water." + ], + "desk": [ + "Desks are flat surfaces with legs often used for work or study typically found in offices or homes.", + "A desk is a flat rectangular surface with legs often made of wood or metal used for working or studying.", + "A desk is a flat-surfaced furniture piece with legs, often made of wood or metal, used for working or studying.", + "Desks are flat surfaces with legs for working while similar objects like tables or benches may lack storage or have different heights." + ], + "desktop computer": [ + "Desktop computers are rectangular with screens and keyboards, unlike most objects which lack these electronic components and flat surfaces.", + "A desktop computer is a boxy device with a monitor, keyboard, and often a mouse on a flat surface like a desk.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact base with visible ports and cables.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact case with visible ports and cables." + ], + "rotary dial telephone": [ + "A rotary dial telephone has a circular dial with numbered holes and a finger stop, unlike push-button phones or cordless models.", + "A rotary dial telephone has a circular dial with finger holes numbers around it and a handset on a cord.", + "A rotary dial telephone has a circular dial with finger holes numbered around it and a handset on a curved base.", + "A rotary dial telephone has a circular dial with numbered holes and a handset resting on a boxy base with a cord." + ], + "diaper": [ + "Diapers are soft, rectangular, and often white with elastic edges, unlike most objects which are rigid or differently shaped.", + "A diaper is typically a soft, rectangular, white or pastel-colored pad with elastic edges and adhesive tabs for fastening.", + "A diaper is a soft folded rectangular pad with fasteners made of absorbent material often white or pastel colored.", + "Diapers are rectangular with a soft, padded texture and often have fastening tabs or elastic edges for a snug fit." + ], + "digital clock": [ + "A digital clock is a small rectangular device with a screen displaying bright numbers showing the current time.", + "Digital clocks display numeric time digitally on a screen while other objects vary in shape color and function without showing time.", + "A digital clock has a flat rectangular screen displaying numeric digits in a segmented or pixelated format often with a dark background.", + "Digital clocks display numeric digits on a screen with clear segments or pixels showing time in a digital format." + ], + "digital watch": [ + "A digital watch has a small screen displaying numbers and buttons, unlike analog watches with hands or clocks with larger faces.", + "A digital watch is a small rectangular device with a screen displaying numbers for time, often with buttons on the sides.", + "A digital watch has a screen displaying numbers for time often with buttons and a rectangular or square shape.", + "Digital watches have a small rectangular screen displaying numbers or time with buttons or a touch interface on a wristband." + ], + "dining table": [ + "Dining tables are typically large flat surfaces with legs designed to seat multiple people unlike smaller or single-purpose furniture items.", + "Dining tables are large flat surfaces supported by legs often surrounded by chairs and used for meals or gatherings.", + "A dining table is a large flat surface with legs, often made of wood or glass, designed for meals and gatherings.", + "A dining table typically has a flat rectangular or oval surface surrounded by chairs for seating during meals." + ], + "dishcloth": [ + "A dishcloth is a small, flat, rectangular piece of fabric or textured material, often with a slightly rough surface for cleaning.", + "Dishcloths have a distinctive loose, woven texture designed for scrubbing and absorbing liquids.", + "A dishcloth is typically a small, flat, rectangular piece of fabric, often textured or slightly rough, unlike larger or rigid cleaning tools.", + "A dishcloth is typically a small, rectangular, soft, and often textured fabric piece, usually in plain colors or simple patterns." + ], + "dishwasher": [ + "Dishwashers are rectangular kitchen appliances with control panels, racks inside, and a front door, unlike smaller or differently shaped kitchen tools.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish in kitchens.", + "A dishwasher is a rectangular kitchen appliance with a front-loading door, control panel, and racks inside for holding dishes.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish or racks inside." + ], + "disc brake": [ + "A disc brake is a round metal rotor with a caliper that clamps onto it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers gripping it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers and pads visible often seen on vehicles and bikes for slowing motion.", + "Disc brakes have a round metal rotor and caliper while other objects lack this distinct flat circular shape and mechanical housing." + ], + "dock": [ + "Docks are long flat structures extending into water made of wood or metal for boats to moor or load.", + "A dock is a flat wooden or metal structure extending over water for boats to moor or people to walk on.", + "Docks are long flat structures extending over water made of wood or metal unlike boats or piers which are shorter or floating.", + "Docks are uniquely characterized by their long wooden or concrete platforms extending over water for boats to moor." + ], + "dog sled": [ + "A dog sled is a long narrow vehicle with runners, pulled by dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by harnessed dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by dogs, unlike other objects which lack this specific shape and function.", + "A dog sled has long narrow runners with a platform pulled by harnessed dogs in snow or icy terrain." + ], + "dome": [ + "A dome is a rounded vault forming the roof of a building or structure, often hemispherical in shape.", + "Domes are rounded, curved structures with a hemispherical shape, unlike flat or angular objects.", + "A dome is recognized by its rounded, hemispherical shape that curves uniformly upward from a circular base.", + "A dome is a rounded, curved, and often symmetrical structure that bulges outward like a half-sphere on top of buildings or objects." + ], + "doormat": [ + "A doormat is a flat rectangular or oval textile with coarse fibers often placed at entrances for wiping shoes.", + "Doormats are flat rectangular often textured or bristled surfaces designed for wiping shoes unlike other mats which may be softer or decorative.", + "A doormat is typically flat rectangular textured and often has welcome messages or rough surfaces for cleaning shoes.", + "Doormats are flat rectangular textiles with coarse textures often placed at entrances featuring welcome messages or geometric patterns." + ], + "drilling rig": [ + "A drilling rig is a tall, large structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "Drilling rigs are tall with large, complex structures and heavy machinery, unlike simpler or smaller objects like trucks or cranes.", + "A drilling rig is a large, towering structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "A drilling rig has a tall derrick, rotating drill pipe, and large platform with heavy machinery for extracting underground resources." + ], + "drum": [ + "Drums are recognized by their cylindrical shape, stretched membrane top, and often have a round base or stand.", + "A drum is a cylindrical musical instrument with a hollow body and stretched membranes on one or both ends.", + "Drums are typically cylindrical with a flat top and bottom, often covered by stretched material and may have metal rims.", + "Drums are cylindrical with a stretched membrane on top while similar objects lack this distinct shape and drumhead feature." + ], + "drumstick": [ + "A drumstick is a long thin wooden stick with a rounded tip used for hitting drums distinguishing it from other objects.", + "Drumsticks are long slender sticks with tapered ends used to strike drums often made of wood or metal.", + "Drumsticks are long thin wooden sticks with tapered ends used for drumming unlike other objects which vary in shape and material.", + "A drumstick is a long thin piece of meat from a chicken leg with a rounded end and a narrow bone inside." + ], + "dumbbell": [ + "A dumbbell is identified by a short bar with symmetrical weighted ends often made of metal or rubber.", + "Dumbbells are recognized by their short bar with symmetrical weighted ends often textured for grip and made of metal or rubber.", + "A dumbbell is a short metal bar with heavy round weights on each end used for exercise and strength training.", + "Dumbbells have a short bar with weights on both ends, unlike similar objects which may lack symmetry or have different shapes." + ], + "Dutch oven": [ + "A Dutch oven is a heavy pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls and a tight-fitting lid often made of cast iron or ceramic.", + "A Dutch oven is a heavy pot with thick walls and a tight-fitting lid, often made of cast iron or ceramic." + ], + "electric fan": [ + "Electric fans have rotating blades mounted on a base or stand, often with protective grilles, unlike most household objects which lack moving parts.", + "An electric fan typically has rotating blades mounted on a base or stand often with a protective grille and a motor.", + "Electric fans have rotating blades enclosed in a protective grill mounted on a stand or base for airflow.", + "An electric fan has rotating blades enclosed in a protective grill mounted on a base or stand for airflow." + ], + "electric guitar": [ + "Electric guitars have a long narrow body with strings, pickups, and a headstock with tuning pegs distinguishing them from other objects.", + "An electric guitar has a long neck with frets, a solid body, and pickups, unlike most objects which lack these musical instrument features.", + "An electric guitar has a long thin neck, solid body, six strings, pickups, and control knobs distinguishing it from other objects.", + "An electric guitar has a long wooden body with six strings, pickups, and metal knobs, often with a sleek and angular design." + ], + "electric locomotive": [ + "Electric locomotives are long, boxy vehicles with pantographs on top and no wheels visible, unlike cars or buses.", + "An electric locomotive is a large rectangular train engine with a smooth streamlined body and pantographs on top for power lines.", + "Electric locomotives have a pantograph on top that collects power from overhead wires.", + "Electric locomotives have a long rectangular body with a pantograph on top and often multiple windows along the front and sides." + ], + "entertainment center": [ + "An entertainment center is a large cabinet or stand holding a TV and other media devices like speakers and gaming consoles.", + "Entertainment centers are large furniture units with shelves, compartments, and space for TVs and electronic devices.", + "An entertainment center is a large cabinet with shelves or compartments for electronics like TVs and speakers, often made of wood or metal.", + "An entertainment center is a large cabinet with shelves and compartments designed to hold TVs and media equipment, unlike simpler furniture." + ], + "envelope": [ + "An envelope is a flat rectangular paper container with a sealed flap, often with printed addresses and stamps.", + "An envelope has a rectangular paper flap that folds over to seal the contents inside.", + "An envelope is a flat rectangular paper container with a sealable flap, unlike books or boxes which are thicker and rigid.", + "An envelope is a flat rectangular paper container with a sealable flap, typically used for holding letters or documents." + ], + "espresso machine": [ + "Espresso machines have a distinctive portafilter, steam wand, and water tank making them easily recognizable among kitchen appliances.", + "Espresso machines are shiny metal appliances with a portafilter, steam wand, and buttons or dials on a compact rectangular body.", + "An espresso machine is a sleek metal appliance with buttons, a portafilter, and steam wand for making coffee.", + "Espresso machines are compact with a portafilter steam wand and control panel unlike coffee makers which are simpler and lack these features." + ], + "face powder": [ + "Face powder is a fine, loose or pressed powder with a matte or shimmery texture, unlike solid or liquid cosmetics.", + "Face powder has a fine, powdery texture that appears as a soft, matte layer on skin, unlike other objects.", + "Face powder appears as a fine, light-colored powder often in small containers or compacts with a soft, smooth texture.", + "Face powder appears as a small compact or loose container filled with fine, pale, powdery substance often with a soft puff applicator." + ], + "feather boa": [ + "A feather boa is a fluffy, long, and soft accessory made of many colorful or monochrome feathers strung together.", + "Feather boas are long fluffy accessories made of soft feathers, unlike other objects which are usually solid or less textured.", + "Feather boas are recognized by their long fluffy strands made of soft feathers often in bright colors and wrapped loosely.", + "A feather boa is a fluffy, colorful, and often long scarf-like accessory made from soft feathers, usually worn around the neck." + ], + "filing cabinet": [ + "A filing cabinet is a tall rectangular metal or wooden box with drawers for storing documents and folders.", + "Filing cabinets are rectangular metal or wooden boxes with multiple horizontal drawers and often a lock or handle on each drawer.", + "Filing cabinets are tall rectangular metal or wooden boxes with multiple horizontal drawers and often a lockable top drawer.", + "Filing cabinets are recognized by their rectangular shape, multiple stacked drawers, and metallic or wooden texture with horizontal handles." + ], + "fireboat": [ + "Fireboats are recognized by their water cannons bright colors and large size designed for spraying water to fight fires on ships or docks.", + "A fireboat is a large watercraft with powerful water cannons and bright red coloring designed for fighting fires on ships and docks.", + "A fireboat is a large watercraft with multiple water cannons and bright red coloring for firefighting on water.", + "A fireboat has water cannons, a large hull, and bright red or yellow colors unlike regular boats or ships." + ], + "fire truck": [ + "Fire trucks are large red vehicles with ladders, flashing lights, and emergency markings like \"FIRE\" or \"RESCUE\" on them.", + "Fire trucks are large red vehicles with ladders, flashing lights, sirens, and bold white lettering for emergency identification.", + "Fire trucks are large red vehicles with ladders, hoses, flashing lights, and emergency markings unlike regular cars or trucks.", + "A fire truck is a large red vehicle with ladders, hoses, flashing lights, and often bold lettering for emergency visibility." + ], + "fire screen": [ + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh barrier placed in front of a fireplace to block sparks and embers.", + "A fire screen is a mesh or glass barrier with a decorative frame, unlike other objects which lack these protective and ornamental features." + ], + "flagpole": [ + "A flagpole is a tall slender vertical pole often topped with a finial and designed to hold a flag unlike other objects.", + "A flagpole is a tall slender vertical pole often made of metal or wood with a flag attached at the top.", + "A flagpole is a tall slender vertical pole often topped with a decorative finial and used to display flags.", + "A flagpole is a tall slender vertical structure with a flag attached, often standing alone or atop buildings." + ], + "flute": [ + "A flute is recognized by its long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a slender, shiny, metal or wooden tube with holes and keys, often held sideways when played.", + "The flute has a long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a long thin tube with holes while similar objects like recorders have mouthpieces and clarinets have reeds." + ], + "folding chair": [ + "A folding chair is a lightweight portable seat with a collapsible frame and often a fabric or plastic seat and backrest.", + "Folding chairs have collapsible frames and often a fabric or plastic seat, unlike rigid chairs or stools with fixed structures.", + "Folding chairs have a collapsible frame with a seat and backrest that fold flat for easy storage and portability.", + "Folding chairs are lightweight with a collapsible frame, often having a fabric or plastic seat and metal legs that fold flat." + ], + "football helmet": [ + "A football helmet is a hard, rounded protective gear with a facemask and team colors or logos on its smooth outer shell.", + "A football helmet has a hard outer shell with a face mask and padding, unlike most objects which lack these protective features.", + "A football helmet has a hard shell with a facemask, ear holes, and team logos or colors for player identification and protection.", + "Football helmets have a hard outer shell with a face mask and chin strap designed for player protection during the game." + ], + "forklift": [ + "A forklift is a small industrial vehicle with a forked platform used to lift and move heavy loads.", + "A forklift has two parallel horizontal forks at the front used for lifting and moving heavy loads.", + "Forklifts have a distinct upright mast with forks and a small cab, unlike most vehicles which lack lifting mechanisms.", + "A forklift has a tall vertical mast with forks at the front and a small cab for the operator." + ], + "fountain": [ + "Fountains are water structures with sprays or streams, unlike solid objects like statues or buildings which lack flowing water features.", + "A fountain is identified by water spraying or flowing from a decorative structure often with a basin or pool below.", + "Fountains are recognized by their water jets or sprays often in decorative structures with basins or pools.", + "A fountain is a decorative structure that sprays water into the air, often found in parks or plazas with sculpted designs." + ], + "fountain pen": [ + "Fountain pens have a slender body with a pointed nib and often an ink-filled barrel distinguishing them from bulkier writing tools.", + "A fountain pen is a slender writing tool with a pointed nib, ink reservoir, and often a decorative cap.", + "A fountain pen has a long slender body with a pointed nib and often a cap or clip for carrying.", + "A fountain pen has a slender cylindrical body with a pointed nib and often an ink reservoir or cap." + ], + "four-poster bed": [ + "A four-poster bed has tall vertical posts at each corner often with curtains or a canopy framing the bed.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains at the top.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains unlike other beds or furniture.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains for a distinctive enclosed look." + ], + "freight car": [ + "A freight car is a large rectangular box on wheels used to transport goods by rail, typically made of metal.", + "Freight cars are long rectangular containers on wheels often seen on trains used for transporting goods in bulk.", + "Freight cars are long rectangular metal containers on wheels used for transporting goods by rail unlike other vehicles or objects.", + "Freight cars are long rectangular metal containers on wheels often seen in trains used for transporting goods." + ], + "French horn": [ + "The French horn is a large brass instrument with a coiled tube, wide bell, and valves, often gold or silver in color.", + "The French horn has a large coiled brass tube with a flared bell and is played by inserting a hand into the bell.", + "The French horn has a distinctive large coiled brass tube with a flared bell and funnel-shaped mouthpiece.", + "The French horn has a large coiled brass body with a wide flared bell and three rotary valves." + ], + "frying pan": [ + "A frying pan has a flat round surface with a long handle, unlike pots or skillets which may be deeper or have different shapes.", + "A frying pan is a round flat metal cooking tool with a long handle and shallow sides for frying food.", + "A frying pan has a flat circular bottom with a shallow depth and a long handle extending from one side.", + "A frying pan has a flat circular cooking surface with a long handle and shallow curved sides for easy flipping and stirring." + ], + "fur coat": [ + "Fur coats are long thick hairy garments while other objects vary in shape texture and material like smooth plastic or hard metal.", + "A fur coat is identified by its thick soft hairy texture and animal skin appearance often with long shaggy or smooth fur.", + "A fur coat is a thick, soft garment made from animal pelts, often fluffy and luxurious in appearance.", + "Fur coats have long dense hair covering the entire outer surface unlike most other garments or objects." + ], + "garbage truck": [ + "A garbage truck is a large vehicle with a compacting mechanism and often has a distinctive shape and bright colors.", + "Garbage trucks are large boxy vehicles with mechanical arms or compactors, distinct from regular trucks due to their waste collection features.", + "A garbage truck is large, boxy, often green or white, with a mechanical arm or rear compactor and labeled for waste collection.", + "A garbage truck has a large hydraulic lifting mechanism on the back for emptying trash bins." + ], + "gas mask or respirator": [ + "A gas mask or respirator has a face-covering mask with filters or tubes and often a clear eye window.", + "A gas mask or respirator is a face-covering device with filters and straps designed to protect against harmful air.", + "A gas mask or respirator has a large round facepiece with filters on the sides and straps for securing it tightly.", + "Gas masks and respirators cover the mouth and nose with filters and straps unlike most objects which lack protective face features." + ], + "gas pump": [ + "A gas pump is typically a tall metal machine with a hose nozzle and digital display for fueling vehicles at stations.", + "A gas pump is a tall metal device with a hose and nozzle for dispensing fuel, often seen at service stations.", + "Gas pumps have a distinct nozzle, hose, and digital display panel unlike most objects which lack these specific fueling components.", + "Gas pumps have a tall vertical body with a hose, nozzle, and digital display for fuel selection and payment." + ], + "goblet": [ + "A goblet is a stemmed drinking cup with a wide bowl, distinguishing it from other cups or vessels without stems or with different shapes.", + "A goblet is recognized by its stemmed cup shape with a wide bowl narrow base and often decorative details.", + "A goblet is a stemmed drinking cup with a wide bowl, often made of glass or metal, and usually taller than it is wide.", + "A goblet is a decorative drinking cup with a stem and base, often made of glass or metal, resembling a fancy wine glass." + ], + "go-kart": [ + "A go-kart is a small open-wheel racing car with a low frame, no roof, and a simple design for speed and agility.", + "A go-kart has a small open-wheel frame with no suspension and a low seat close to the ground.", + "A go-kart is a small open-wheel vehicle with a low frame, no suspension, and a single seat, often brightly colored.", + "Go-karts are small open-wheel vehicles with low frames no doors roll cages and often bright colors used for racing." + ], + "golf ball": [ + "A golf ball is small, white, dimpled, and round, often seen on grassy fields or near golf clubs.", + "A golf ball is small, white, dimpled, and spherical, often found on grassy courses or near clubs and tees.", + "Golf balls have a distinctive dimpled surface pattern that no other object has for aerodynamics and distance control.", + "Golf balls are small, white, dimpled spheres, unlike most objects which vary in color, texture, and shape." + ], + "golf cart": [ + "A golf cart has a small open vehicle design with seats and a bag holder for golf clubs.", + "A golf cart is a small open vehicle with seats and a roof designed for carrying golfers and their equipment around a course.", + "Golf carts are small open vehicles with seats and a roof, unlike cars or trucks, designed for short distances on golf courses.", + "Golf carts are small vehicles with open sides, a roof, and a simple rectangular shape, often seen on golf courses." + ], + "gondola": [ + "A gondola is a long narrow boat with a flat bottom and high curved ends, unlike other boats which are wider or differently shaped.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and curved ends used in Venice canals." + ], + "gong": [ + "A gong is a large, flat, circular metal disc that produces a resonant sound when struck with a mallet.", + "A gong is a large flat metal disc with a raised center and often ornate designs, unlike smaller or differently shaped percussion instruments.", + "A gong is a large flat metal disc with a raised center and often has ornate designs or engravings on its surface.", + "A gong is recognized by its large flat circular metal disc often with a raised center and struck with a mallet." + ], + "gown": [ + "A gown is a long flowing formal dress often worn for special occasions like weddings or ceremonies.", + "A gown is a long flowing dress often worn for formal events with elegant fabrics and intricate designs.", + "A gown is a long flowing dress typically worn for formal occasions unlike shorter casual dresses or other clothing items.", + "Gowns are long flowing garments with loose draping fabric often featuring elegant designs and formal embellishments." + ], + "grand piano": [ + "The grand piano has a distinctive large curved body with a horizontal lid that opens upwards.", + "A grand piano has a large curved body with a lid and strings inside, unlike upright pianos which are tall and straight.", + "A grand piano is a large musical instrument with a curved wooden body, open lid, and black and white keys.", + "A grand piano has a large curved body with a lid that opens upwards and a row of black and white keys." + ], + "greenhouse": [ + "Greenhouses are recognized by their transparent glass or plastic walls and roofs designed to let sunlight in for growing plants.", + "Greenhouses are typically made of transparent glass or plastic walls and roofs to let sunlight in, unlike most solid-walled structures.", + "A greenhouse is a glass or transparent structure for growing plants, often rectangular with a peaked or curved roof.", + "Greenhouses are typically transparent or glass structures with metal or plastic frames, often containing visible plants inside." + ], + "radiator grille": [ + "A radiator grille is a metal or plastic grid on a vehicle's front that allows airflow while protecting the radiator.", + "A radiator grille is a grid-like front panel on vehicles with horizontal or vertical slats for airflow and cooling the engine.", + "A radiator grille has evenly spaced vertical or horizontal slats designed for airflow, unlike solid or differently patterned surfaces on other objects.", + "A radiator grille has a repeating grid or mesh pattern often with horizontal or vertical bars for airflow and vehicle branding." + ], + "grocery store": [ + "Grocery stores are recognized by shelves stocked with packaged goods, shopping carts, checkout counters, and aisles with food products.", + "Grocery stores have shelves stocked with various packaged goods and fresh produce unlike single-item objects or uniform environments.", + "A grocery store is a large organized space with shelves stocked full of packaged foods fresh produce and household items.", + "Grocery stores have aisles filled with shelves stocked with various packaged foods and household products." + ], + "guillotine": [ + "A guillotine has a tall upright frame with a sharp angled blade that slides down to cut, distinct for its execution purpose.", + "A guillotine has a tall wooden frame with a diagonal blade, unlike most objects which lack such a distinct sharp cutting mechanism.", + "A guillotine is a tall wooden frame with a sharp angled blade used for executions by beheading.", + "A guillotine has a tall wooden frame with a diagonal blade at the top and a base to hold the victim." + ], + "hair clip": [ + "Hair clips are small, often curved or decorative, and designed to hold hair in place with a clasp or spring mechanism.", + "A hair clip is small, often curved or hinged, and designed to hold hair in place unlike larger or rigid objects.", + "A hair clip is a small, often decorative clasp with hinged or sliding parts designed to hold hair in place.", + "A hair clip is small, often curved or straight, with a clasp or decorative top, used to hold hair in place." + ], + "hair spray": [ + "Hair spray is a small aerosol can with a nozzle, often shiny and labeled, used to style hair.", + "Hair spray is a small aerosol can with a nozzle while similar items like perfumes or deodorants often have different shapes or spray mechanisms.", + "Hair spray is recognized by its aerosol can shape, nozzle, and often colorful or metallic packaging with hair-related branding.", + "Hair spray appears as a small aerosol can with a nozzle and often has colorful labels or branding." + ], + "half-track": [ + "A half-track has both front wheels and rear tank-like tracks, unlike vehicles with only wheels or full tracks.", + "A half-track has a truck-like front with tank-like rear tracks instead of wheels for off-road mobility.", + "A half-track is a rugged military vehicle with front wheels and rear tank-like tracks for off-road mobility.", + "A half-track has a front truck-like section and rear tank-like tracks, combining wheels and continuous tracks for mobility." + ], + "hammer": [ + "A hammer has a long handle with a heavy metal head at one end for striking nails.", + "A hammer has a long handle with a heavy metal head, one flat side for striking and often a claw for pulling nails.", + "A hammer has a long handle with a heavy metal head at one end used for hitting nails or breaking things.", + "Hammers have a long handle and a heavy metal head, unlike most tools which are smaller or have different shapes." + ], + "hamper": [ + "A hamper is typically a large woven or fabric container with handles, often used for holding laundry or clothes.", + "A hamper is typically a large woven or fabric container with a lid, often used for storing laundry.", + "A hamper is recognized by its open-top woven or fabric container shape often used for holding laundry or storage.", + "A hamper is a large woven or fabric basket used for holding laundry or clothes, often with a lid and handles." + ], + "hair dryer": [ + "A hair dryer is a handheld device with a long nozzle, a handle, and vents, often with buttons or switches for controls.", + "A hair dryer is a handheld electric device with a nozzle and buttons, often shaped like a gun or tube for blowing hot air.", + "A hair dryer has a handle, a long nozzle, and a vented body with a cord for electrical power.", + "A hair dryer has a long nozzle and handle with buttons, unlike similar objects like drills or microphones which lack these features." + ], + "hand-held computer": [ + "Hand-held computers are flat rectangular devices with screens and buttons unlike bulkier or irregularly shaped everyday objects.", + "Hand-held computers are small rectangular devices with screens, buttons or touchscreens, and often have visible brand logos or ports.", + "Hand-held computers are small flat rectangular devices with screens, buttons or touchpads, and often a compact keyboard or stylus.", + "A hand-held computer typically has a touchscreen and physical buttons combined in a compact rectangular shape." + ], + "handkerchief": [ + "Handkerchiefs are small square cloths, often plain or patterned, while similar items like napkins or scarves vary in size, material, and use.", + "A handkerchief is a small square or rectangular piece of soft fabric often folded or carried in pockets for personal use.", + "Handkerchiefs are small square cloths often with decorative patterns or monograms used for personal hygiene or fashion accessories.", + "A handkerchief is a small square piece of cloth, often white or patterned, used for personal hygiene or as a fashion accessory." + ], + "hard disk drive": [ + "Hard disk drives are flat rectangular metal boxes with circuit boards and connectors unlike most objects which vary in shape and material.", + "A hard disk drive is a rectangular metal box with circuit boards on one side and smooth surfaces on the others.", + "Hard disk drives are flat rectangular metal boxes with circuit boards on one side and labeled stickers on top.", + "A hard disk drive is a rectangular metal box with circuit boards and connectors, often shiny and flat with labeled stickers." + ], + "harmonica": [ + "A harmonica is a small rectangular wind instrument with metal reeds and air holes in a row.", + "A harmonica is a small rectangular wind instrument with metal reeds and air holes, unlike most objects which lack these features.", + "A harmonica is a small rectangular instrument with metal reeds visible through air holes in a metal or plastic comb.", + "The harmonica has a distinctive row of small rectangular holes for airflow and sound production." + ], + "harp": [ + "A harp has tall vertical strings and a curved neck, unlike most instruments which are smaller and lack such prominent strings.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings stretched from top to bottom.", + "The harp's distinct features are its tall frame, multiple parallel strings, and curved neck, making it easily recognizable among instruments.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings played by plucking with fingers." + ], + "combine harvester": [ + "A combine harvester is a large farm machine with a wide cutting header grain tank and tracks or wheels for harvesting crops efficiently.", + "A combine harvester is a large farm machine with a cutting header, rotating reel, and grain tank for harvesting crops efficiently.", + "A combine harvester is large with a complex structure including a cutting header, threshing drum, and grain tank, unlike simpler farm vehicles.", + "A combine harvester uniquely has a large rotating header at the front that cuts and gathers crops in one pass." + ], + "hatchet": [ + "A hatchet has a short handle with a sharp metal blade on one end for chopping or cutting.", + "A hatchet is a small axe with a short handle and a sharp blade used for chopping wood or other tasks.", + "A hatchet has a sharp blade on one side and a hammerhead on the opposite side of a short handle.", + "A hatchet has a short handle and a sharp metal blade, unlike similar tools which may be longer or have different head shapes." + ], + "holster": [ + "A holster is a pouch or holder typically made of leather or fabric designed to securely carry a gun or tool.", + "A holster is typically a leather or fabric pouch with straps or clips designed to securely hold a gun or tool.", + "A holster is a leather or fabric pouch designed to hold a gun or tool securely on a belt or strap.", + "A holster is recognized by its pouch-like shape designed to snugly hold a firearm, often with a belt clip or strap." + ], + "home theater": [ + "Home theaters are recognized by large screens, multiple speakers, dark surroundings, and comfortable seating arranged for optimal viewing and sound.", + "Home theaters typically include multiple speakers a large screen and media components arranged for immersive viewing unlike simpler single-purpose devices.", + "A home theater resembles a setup with a large screen speakers and seating designed for a cinematic experience in a home.", + "Home theaters typically feature large screens, multiple speakers, and sleek media consoles often arranged in a dedicated room setup." + ], + "honeycomb": [ + "Honeycomb has a distinctive hexagonal pattern made of tightly packed wax cells created by bees.", + "Honeycomb has a distinctive hexagonal pattern with waxy, golden cells often clustered together in a flat or slightly curved structure.", + "Honeycomb has a distinctive hexagonal pattern with small, tightly packed cells, often golden or light brown, resembling a natural geometric grid.", + "Honeycomb has a unique hexagonal pattern of small uniform cells often in a golden or waxy color." + ], + "hook": [ + "A hook has a curved or bent end designed to catch, hold, or pull objects.", + "A hook is a curved or bent tool typically made of metal used for grabbing holding or hanging objects.", + "A hook is recognized by its curved or bent shape designed to catch, hold, or pull objects.", + "A hook has a curved or bent shape that tapers to a point, often with a smooth or sharp end for catching or holding." + ], + "hoop skirt": [ + "A hoop skirt has a rigid, circular frame that creates a wide, bell-shaped silhouette unlike other skirts or garments.", + "A hoop skirt is recognized by its wide, rigid, circular frame that creates a bell-shaped silhouette under fabric.", + "A hoop skirt is a wide, structured skirt with horizontal rings that holds its shape outward from the waist.", + "A hoop skirt has a rigid, bell-shaped frame that visibly extends the fabric outward in a wide circular form." + ], + "gymnastic horizontal bar": [ + "A gymnastic horizontal bar is a long thin metal bar mounted horizontally between two sturdy vertical supports.", + "The gymnastic horizontal bar is a long, thin, metal bar mounted horizontally on upright supports for athletic exercises.", + "The gymnastic horizontal bar is a long thin metal bar mounted horizontally between two upright supports unlike other objects.", + "A long thin horizontal metal bar elevated on upright supports used for gymnastic routines like swings and flips." + ], + "horse-drawn vehicle": [ + "A horse-drawn vehicle is a carriage or cart pulled by horses, typically with wooden wheels and a bench or enclosed seating area.", + "Horse-drawn vehicles have large wheels, a carriage body, and are pulled by horses unlike motorized vehicles or animal riders.", + "Horse-drawn vehicles have wooden wheels, a carriage body, and are pulled by horses, distinguishing them from motorized vehicles and animals alone.", + "Look for a carriage or wagon pulled by horses with large wheels and a driver's seat." + ], + "hourglass": [ + "An hourglass has two glass bulbs connected by a narrow neck with sand flowing between them unlike most objects.", + "An hourglass is a glass device with two bulbous chambers connected by a narrow waist holding sand that flows between them.", + "An hourglass is recognized by its symmetrical glass bulbs connected by a narrow waist with sand flowing between them.", + "An hourglass has two rounded glass bulbs connected by a narrow middle with sand flowing from the top to the bottom." + ], + "iPod": [ + "An iPod is a small rectangular device with a click wheel or touchscreen and a sleek metal or plastic body.", + "iPods are small sleek rectangular devices with a click wheel or touchscreen unlike most objects which vary widely in shape and function.", + "An iPod is a small rectangular device with a smooth surface, a click wheel or touchscreen, and often a white or metallic finish.", + "An iPod is recognized by its small rectangular shape, click wheel, and sleek design with a screen and minimal buttons." + ], + "clothes iron": [ + "A clothes iron is a smooth flat metal base with a handle and a pointed tip used for pressing wrinkles out of fabric.", + "A clothes iron has a flat smooth metal base a handle on top and a tapered pointed front for pressing fabric.", + "A clothes iron has a flat smooth metal plate with a handle and often a pointed tip for pressing wrinkles out of fabric.", + "A clothes iron has a flat heated metal plate with a handle, unlike most objects which lack this smooth surface and grip design." + ], + "carved pumpkin": [ + "Carved pumpkins have hollow interiors with cut-out faces or designs, while other objects are solid or have different surface textures.", + "A carved pumpkin is an orange hollowed-out gourd with a face or design cut into its surface often lit from inside.", + "Carved pumpkins have distinct jagged cut-out facial features and hollow interiors with glowing candlelight visible through the openings.", + "A carved pumpkin has a hollowed-out orange shell with cut-out facial features like eyes and a mouth often lit from inside." + ], + "jeans": [ + "Jeans are recognized by their sturdy blue denim fabric, stitching patterns, and characteristic pockets and metal rivets.", + "Jeans have distinctive parallel stitched seams on the front pockets and along the outer leg edges.", + "Jeans are blue denim pants with stitching details, pockets, and a zipper or button fly.", + "Jeans are sturdy blue denim pants with visible stitching and metal rivets unlike most other clothing or objects." + ], + "jeep": [ + "Jeeps are recognized by their boxy shape, rugged tires, open top or removable roof, and distinctive front grille with round headlights.", + "Jeeps have a boxy shape, rugged tires, open top or removable roof, and a distinctive front grille with round headlights.", + "Jeeps are rugged vehicles with boxy shapes, large tires, open tops or removable doors, and a distinctive front grille.", + "A jeep is a rugged, boxy vehicle with large tires, open top or removable roof, and a distinctive grille." + ], + "T-shirt": [ + "A T-shirt has a short-sleeved or sleeveless design with a round neckline and no buttons or collar.", + "A T-shirt is a soft, short-sleeved, collarless garment made of stretchy fabric, unlike structured or rigid items like jackets or sweaters.", + "A T-shirt is a lightweight, short-sleeved, collarless garment with a round neckline, typically made of soft, stretchy fabric.", + "A T-shirt is recognized by its short sleeves, round neckline, and casual fabric, typically worn as everyday clothing." + ], + "jigsaw puzzle": [ + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns unlike most solid uniform objects.", + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns forming a complete image when assembled correctly.", + "A jigsaw puzzle is a flat, interlocking cardboard piece with colorful, irregular edges forming a complete picture when assembled.", + "Jigsaw puzzles have interlocking pieces with unique irregular edges and colorful fragmented images when incomplete." + ], + "rickshaw": [ + "A rickshaw is a small two or three-wheeled passenger cart pulled by a person or bicycle, unlike motorized vehicles or animal-drawn carriages.", + "A rickshaw is a small three-wheeled passenger vehicle often pulled by a person or powered by a motor with a covered seating area.", + "A rickshaw is a small two or three-wheeled passenger cart often pulled by a person or bicycle with a canopy and seating area.", + "A rickshaw is a small two-wheeled passenger cart pulled by a person or bicycle, often with a canopy for shade." + ], + "joystick": [ + "A joystick is a handheld control device with a stick that pivots on a base and often has buttons.", + "A joystick has a stick-like handle on a base with buttons or triggers for controlling games or machinery.", + "A joystick has a stick-like handle on a base with buttons often used for controlling games or machinery.", + "A joystick has a stick-like handle and buttons, unlike similar objects which may lack the stick or have different control layouts." + ], + "kimono": [ + "Kimonos are recognized by their long flowing sleeves, wide sash belt, and intricate traditional patterns on silk fabric.", + "A kimono is a long, flowing Japanese robe with wide sleeves, often made of silk and featuring intricate patterns.", + "A kimono is a long robe with wide sleeves and a sash belt often featuring intricate patterns and vibrant colors.", + "Kimonos are long flowing robes with wide sleeves and intricate patterns, unlike shorter or simpler garments like shirts or dresses." + ], + "knee pad": [ + "Knee pads are curved padded protectors that strap around the knee, unlike flat or rigid objects like plates or boards.", + "A knee pad is a cushioned protective gear worn around the knee, often made of foam or plastic with straps for securing.", + "Knee pads are typically curved padded gear strapped around knees often seen in sports or construction with protective hard shells or soft cushioning.", + "Knee pads have a curved rigid shell with soft padding designed to fit snugly around the knee joint." + ], + "knot": [ + "A knot appears as a tightly looped and twisted section of rope or string often forming a secure or decorative fastening.", + "Knots are identified by their twisted or looped rope or string shapes often forming tight, irregular bundles or interwoven patterns.", + "Knots are twisted or tied sections of rope or string, unlike straight or loose strands, forming loops or tight bundles.", + "Knots have intertwined loops with visible overlaps and tight bends distinguishing them from straight or loosely tangled objects." + ], + "lab coat": [ + "A lab coat is a long white coat with buttons down the front, typically worn by scientists or medical professionals.", + "A lab coat is a long white coat with buttons, pockets, and a notched collar, typically worn by scientists or doctors.", + "A lab coat is a long white coat with buttons, typically worn by professionals, unlike other jackets or coats in style and purpose.", + "A lab coat is a long white coat with buttons, pockets, and a collar, typically worn by scientists or medical professionals." + ], + "ladle": [ + "A ladle is a large deep spoon with a long handle used for serving soups or stews.", + "A ladle has a long handle and deep round bowl for scooping liquids unlike spoons or cups which are smaller or differently shaped.", + "A ladle has a deep round bowl and a long handle designed for scooping and serving liquids.", + "A ladle has a deep round bowl with a long handle used for scooping and serving liquids like soup or sauce." + ], + "lampshade": [ + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is a conical or cylindrical cover that diffuses light from a bulb, often made of fabric, paper, or glass.", + "Lampshades are typically conical or cylindrical fabric covers that diffuse light, unlike solid objects like vases or bowls." + ], + "laptop computer": [ + "A laptop computer is a flat rectangular device with a screen and keyboard, often thin and portable, sometimes with a hinged lid.", + "A laptop computer is a flat rectangular device with a screen on one side and a keyboard on the other.", + "Laptop computers are flat, rectangular devices with a hinged screen and keyboard, distinguishing them from bulkier or differently shaped electronics.", + "A laptop computer has a hinged screen attached to a keyboard in a single portable flat device." + ], + "lawn mower": [ + "A lawn mower typically has a metal body with rotating blades underneath and wheels for pushing or riding across grass.", + "A lawn mower has a distinct rotating blade, wheels, and a handle, often with a large engine or motor on a rectangular base.", + "A lawn mower typically has a metal or plastic body with rotating blades underneath and often has wheels or handles for pushing.", + "Lawn mowers typically have a distinct cutting deck, wheels, and a handle, unlike similar objects which may lack these features." + ], + "lens cap": [ + "A lens cap is a small flat circular or rectangular cover specifically designed to fit snugly over camera lenses.", + "A lens cap is a small circular or rectangular cover that protects camera lenses from dust and scratches.", + "A lens cap is a small circular or rectangular cover that protects camera lenses by fitting snugly over them.", + "A lens cap is a small round or square flat cover typically black with a clip or groove to attach to cameras." + ], + "letter opener": [ + "A letter opener is a slender flat tool with a pointed or rounded blade often resembling a small knife or decorative paper knife.", + "A letter opener is a slim flat tool with a pointed or blunt end often resembling a small knife or decorative blade.", + "A letter opener is a slim flat blade with a pointed or rounded tip often resembling a small knife or decorative paper knife.", + "A letter opener is typically long thin and flat with a sharp edge unlike bulkier or rounded objects like knives or scissors." + ], + "library": [ + "Libraries are recognized by rows of bookshelves filled with books, study tables, reading lamps, and often a quiet, organized atmosphere.", + "A library typically features shelves filled with books, reading tables, and a quiet, organized space with people studying or browsing.", + "A library can be identified by rows of bookshelves filled with books, often with reading tables and a quiet study atmosphere.", + "Libraries are large buildings with many windows and often columns, while other objects vary widely in size shape and design." + ], + "lifeboat": [ + "Lifeboats are typically bright orange or red, have a rigid or inflatable design, and often include safety rails or oars.", + "Lifeboats are bright orange or red, have a pointed bow, and often display bold letters or numbers for high visibility.", + "A lifeboat is an orange or white floating vessel with a pointed bow, often inflatable or rigid, used for emergency rescues at sea.", + "Lifeboats are typically bright orange or red, boat-shaped, often with a canopy, and marked with rescue labels or numbers." + ], + "lighter": [ + "A lighter is a small handheld device with a metal body and a trigger that produces a flame for lighting fires.", + "A lighter has a small elongated body with a trigger mechanism and a flame outlet for ignition.", + "Look for small handheld objects with metallic bodies and a spark wheel or button on top.", + "Lighters are small handheld devices with a trigger or wheel that produce a flame and often have a metallic or plastic body." + ], + "limousine": [ + "A limousine is a long, sleek, luxury car with a stretched body, often black, shiny, and with tinted windows.", + "A limousine is a long, sleek, luxury car with stretched body, tinted windows, and often a chauffeur-driven black or white design.", + "A limousine is recognized by its elongated body, luxury styling, dark tinted windows, and often a chauffeur-driven appearance.", + "Limousines are longer and more stretched than regular cars with a sleek elegant design and often have a chauffeur partition." + ], + "ocean liner": [ + "Ocean liners are large elongated ships with multiple decks designed for long-distance passenger travel across open seas.", + "An ocean liner is a massive passenger ship with a long sleek hull multiple decks and large smokestacks for long sea voyages.", + "Ocean liners are large elongated ships with multiple decks tall smokestacks and often have a sleek streamlined design for long voyages.", + "Ocean liners are uniquely identified by their massive elongated hulls with multiple passenger decks and prominent smokestacks." + ], + "lipstick": [ + "Lipstick is a small cylindrical cosmetic item with a pointed tip, often in vibrant colors and shiny or matte finishes.", + "Lipstick is a small cylindrical object with a smooth shiny surface and a pointed or rounded tip in vibrant colors.", + "Lipstick has a small cylindrical shape with a smooth shiny surface and often comes in vibrant solid colors.", + "Lipstick is a small cylindrical cosmetic item with a smooth shiny surface and vibrant colors unlike most everyday objects." + ], + "slip-on shoe": [ + "Slip-on shoes are flat, collarless footwear with elastic sides or a loose fit, lacking laces or buckles for easy wearing.", + "A slip-on shoe is a casual footwear without laces, often with elastic sides and a low profile for easy wearing.", + "Slip-on shoes lack laces or fasteners and have an open top for easy sliding of the foot.", + "Slip-on shoes lack laces and have elastic or stretchy openings for easy wearing without fasteners." + ], + "lotion": [ + "Lotion usually comes in bottles or tubes with smooth textures and often has a creamy or slightly translucent appearance.", + "Lotion typically appears as a creamy or liquid substance in a bottle or pump container with a smooth glossy texture.", + "Lotion typically comes in bottles or tubes with smooth creamy textures unlike solid or powdery items like soap or makeup.", + "Lotion typically appears as a small bottle or tube with a smooth texture and often has a creamy or liquid consistency." + ], + "music speaker": [ + "Music speakers are typically box-shaped with grilles or mesh fronts and often have buttons or dials for volume control.", + "Music speakers are typically boxy with grilles or cones, often black or metallic, and may have buttons or lights on the front.", + "Music speakers are recognized by their grille covers, control buttons, and often a cylindrical or rectangular shape with visible drivers inside.", + "Music speakers typically have a boxy shape with grilles or mesh fronts and visible drivers unlike most other objects." + ], + "loupe magnifying glass": [ + "A loupe magnifying glass is a small handheld device with a lens for close-up viewing of fine details.", + "A loupe magnifying glass has a single lens with a handle designed for close-up viewing of small objects.", + "A loupe magnifying glass is smaller, handheld, and often has a single lens, while others are larger or have handles or stands.", + "A loupe magnifying glass is small, handheld, with a single lens for close-up viewing, often used by jewelers or watchmakers." + ], + "sawmill": [ + "A sawmill is a large industrial facility with log piles, conveyor belts, and cutting machinery, unlike smaller tools or natural wood objects.", + "A sawmill is a large industrial facility with logs, saws, conveyor belts, and stacks of lumber, often in a forested area.", + "A sawmill is a large industrial building with logs, sawdust piles, cutting equipment, and stacks of lumber outside.", + "A sawmill has large log piles, cutting machinery, conveyor belts, and stacks of processed lumber in an industrial outdoor setting." + ], + "magnetic compass": [ + "A magnetic compass is a small round device with a needle that points north, often inside a flat case with marked directions.", + "A magnetic compass has a freely rotating needle that always points to the Earth's magnetic north.", + "A magnetic compass has a flat circular dial with a needle that points north, unlike most objects which lack directional indicators.", + "A magnetic compass has a circular dial with a rotating needle that always points north, set in a flat, often handheld case." + ], + "messenger bag": [ + "Messenger bags have a single long strap and a flat rectangular shape designed to hang diagonally across the body.", + "Messenger bags have a single shoulder strap and a flat rectangular shape unlike backpacks or briefcases which have two straps or rigid structures.", + "A messenger bag is a rectangular or trapezoidal bag with a long strap worn diagonally across the body.", + "A messenger bag is a rectangular or trapezoidal shoulder bag with a flap closure and a long strap worn across the body." + ], + "mailbox": [ + "A mailbox is typically a rectangular metal or plastic box with a hinged door or slot for mail, often mounted on a post.", + "A mailbox has a distinctive slot or door for inserting mail, often mounted on a post or attached to a building.", + "A mailbox is a rectangular or cylindrical container with a slot for mail, often mounted on a post near a house.", + "A mailbox typically has a rectangular or cylindrical shape with a slot for letters and often a flag or door for access." + ], + "tights": [ + "Tights are sheer stretchy leg coverings unlike pants or socks which are thicker shorter or less form fitting.", + "Tights are stretchy leg coverings with a smooth texture and tight fit often worn under skirts or as athletic wear.", + "Tights are stretchy leg coverings that are thin, skin-tight, and often sheer, resembling stockings but without feet.", + "Tights are thin stretchy leg coverings that resemble sheer pants often in skin tones or colors reaching from waist to toes." + ], + "one-piece bathing suit": [ + "One-piece bathing suits are tight-fitting, cover the torso, and often have simple designs compared to looser, more varied clothing or objects.", + "A one-piece bathing suit is a tight-fitting garment covering the torso and legs designed for swimming or sunbathing.", + "A one-piece bathing suit is a single tight-fitting garment covering the torso designed for swimming or sunbathing.", + "One-piece bathing suits are form-fitting, cover the torso, and often have unique patterns or solid colors for swimwear." + ], + "manhole cover": [ + "A manhole cover is typically a round, flat, metal disc with a textured or patterned surface, often found on streets or sidewalks.", + "A manhole cover is a heavy round metal lid with patterns or holes, flush with the ground, often found on streets.", + "Manhole covers are typically round metal discs with textured patterns, while similar objects vary in shape material and surface design.", + "Manhole covers are round metal discs with textured patterns and often have city names or logos embossed on them." + ], + "maraca": [ + "Maracas are handheld musical instruments with a round hollow body filled with beads or seeds and a long handle for shaking.", + "A maraca is a handheld musical instrument with a round hollow body filled with beads or seeds that rattle when shaken.", + "Maracas are recognized by their oval hollow bodies with handles and loose beads inside that create sound when shaken.", + "Maracas are handheld shakers with round hollow bodies filled with beads, unlike solid or differently shaped percussion instruments." + ], + "marimba": [ + "A marimba is a large wooden percussion instrument with tuned bars and resonators, resembling a xylophone but deeper in tone.", + "The marimba has wooden bars arranged like a keyboard with resonators underneath, unlike drums or xylophones which lack such tubes.", + "A marimba has long wooden bars arranged like a keyboard with resonators underneath, played with mallets, distinguishing it from other instruments.", + "The marimba has wooden bars arranged in a keyboard layout with resonators underneath each bar." + ], + "mask": [ + "A mask covers the face partially or fully hiding facial features while allowing visibility of the eyes or mouth.", + "Masks cover the face partially or fully while other objects do not typically obscure facial features in the same way.", + "Masks are typically face-sized coverings with straps or loops often showing eye holes and a textured or colored surface.", + "A mask is a facial covering typically made of fabric or plastic, often with straps to secure it over the nose and mouth." + ], + "matchstick": [ + "A matchstick is a small thin wooden or cardboard stick with a coated tip for striking to create fire.", + "A matchstick is a thin wooden stick with a colored tip and often a slightly rough or textured surface.", + "A matchstick has a small wooden stick with a colored tip coated in flammable material for striking.", + "Matchsticks are thin wooden sticks with a colored tip and uniform length, often bundled together in a small box." + ], + "maypole": [ + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with ribbons and flowers, unlike other poles which are usually plain or functional.", + "A maypole is recognized by its tall wooden pole decorated with colorful ribbons, flowers, and often topped with a festive crown." + ], + "maze": [ + "A maze is a complex network of paths or walls designed to confuse and challenge navigation through its intricate patterns.", + "Mazes are recognized by their intricate, interconnected pathways forming complex patterns with no clear straight lines or simple shapes.", + "Mazes are flat complex patterns with interconnected paths while other objects have varied three-dimensional shapes and textures.", + "Mazes are intricate networks of winding paths or walls often forming symmetrical or geometric patterns with clear entry and exit points." + ], + "measuring cup": [ + "A measuring cup typically has a handle, spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup is a kitchen tool with a handle, spout, and marked lines to indicate volume for liquids or dry ingredients.", + "Measuring cups have a handle, pour spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup has clear markings for measurements and a spout, unlike regular cups which are plain and lack these features." + ], + "medicine cabinet": [ + "A medicine cabinet is typically a small mirrored wall-mounted box with a door often found in bathrooms for storing medical items.", + "A medicine cabinet is a small mirrored storage box typically mounted on a wall in bathrooms for holding medicines and toiletries.", + "A medicine cabinet is a small wall-mounted storage unit with a mirrored door and shelves for holding medical supplies and toiletries.", + "A medicine cabinet typically has a mirrored door and shelves designed to store small medical or personal care items." + ], + "megalith": [ + "A megalith is a large ancient stone structure often standing upright or arranged in circles like Stonehenge.", + "Megaliths are large ancient stone structures, often standing upright or stacked, unlike smaller or naturally formed rocks and modern constructions.", + "Megaliths are large ancient stone structures often arranged in patterns or standing alone with rough weathered surfaces and massive scale.", + "Megaliths are large ancient stone structures often standing upright or arranged in circles with rough uneven surfaces and simple shapes." + ], + "microphone": [ + "A microphone is typically a slender device with a round or oval head on a stand or handheld body.", + "Microphones are typically slender with a grille or mesh head and often have a stand or cord unlike most other objects.", + "A microphone has a round mesh grille covering its top end to capture sound waves distinctly.", + "A microphone typically has a slender body with a rounded or mesh-covered top for sound capture and often a stand or base." + ], + "microwave oven": [ + "A microwave oven is a boxy appliance with a glass door, control panel, and often a turntable inside for even heating.", + "A microwave oven is a boxy kitchen appliance with a glass door, control panel, and often a turntable inside for heating food.", + "Microwave ovens have a square door with a window and control panel, unlike other kitchen appliances which vary in shape and features.", + "A microwave oven has a square door with a window, control panel, and handle, often mounted in a kitchen cabinet or countertop." + ], + "military uniform": [ + "Military uniforms have structured designs with badges and camouflage patterns distinguishing them from casual or formal civilian clothing.", + "Military uniforms are structured garments with distinct colors, insignia, and designs, often featuring camouflage, badges, and tailored fits for soldiers.", + "Military uniforms can be identified by their structured design, camouflage patterns, badges, and often include matching pants and jackets.", + "Military uniforms have distinct camouflage patterns, structured designs, badges, and often include headgear like berets or caps for easy recognition." + ], + "milk can": [ + "Milk cans are typically cylindrical with a handle, metallic finish, and a spout or lid for pouring or sealing.", + "A milk can typically has a cylindrical metal body with a handle and tight lid, unlike other containers which may vary in shape and material.", + "A milk can is a cylindrical metal container with a handle and a lid, often painted white or silver.", + "A milk can typically has a distinctive rounded body with a narrow neck and a hinged lid for pouring." + ], + "minibus": [ + "A minibus is a small boxy vehicle with multiple windows, seating rows, and sliding or hinged doors for passenger transport.", + "A minibus has a long rectangular body with multiple side windows for passenger seating and is smaller than a full-size bus.", + "A minibus is recognized by its elongated body, multiple side windows, and passenger seating capacity larger than a car but smaller than a full bus.", + "A minibus is a small passenger vehicle with a boxy shape, multiple windows, and seating for around ten to twenty people." + ], + "miniskirt": [ + "A miniskirt is a very short skirt ending well above the knees often made of lightweight fabric with a flared or straight cut.", + "A miniskirt is a short skirt ending well above the knees unlike longer skirts or dresses which extend below the knees.", + "A miniskirt is a short skirt typically ending well above the knees, often made of fabric and worn as fashionable clothing.", + "A miniskirt is recognized by its short length above the knees tight fit and often flared or pleated design on female clothing." + ], + "minivan": [ + "Minivans are boxy vehicles with sliding rear doors, large windows, and a tall roof for extra passenger and cargo space.", + "A minivan has a tall boxy shape with sliding rear doors and a spacious interior for passengers.", + "Minivans are boxy vehicles with sliding rear doors, high roofs, and spacious interiors designed for family transportation.", + "A minivan is a boxy vehicle with sliding doors, large windows, and a spacious interior designed for families." + ], + "missile": [ + "A missile is a long slender cylindrical object with fins and a pointed nose often seen flying or launching vertically.", + "Missiles are long, cylindrical, and often have fins or wings, unlike most objects which are more varied in shape and size.", + "A missile has a pointed nose cone and fins at the rear for aerodynamic stability.", + "Missiles are long slender tubes with fins or wings and pointed tips often seen flying or launching with a fiery exhaust trail." + ], + "mitten": [ + "Mittens are hand coverings with a single compartment for fingers and a separate one for the thumb, often made of thick warm material.", + "Mittens are small hand coverings with a single space for fingers, often made of wool or fabric, resembling thick stubby gloves.", + "Mittens have a single compartment for all fingers while gloves have individual slots for each finger.", + "Mittens are hand coverings with a single space for fingers and a separate thumb section, usually soft and often knitted or padded." + ], + "mixing bowl": [ + "A mixing bowl is typically round deep and wide with a smooth interior and often has a slight rim or pouring spout.", + "A mixing bowl has a wide shallow shape with a rounded bottom and high sides for easy stirring and mixing.", + "Mixing bowls are wide deep round containers with high curved sides and often a flat bottom for blending ingredients.", + "A mixing bowl is a deep round dish with a wide opening and often has a flat bottom for stability during food preparation." + ], + "mobile home": [ + "A mobile home is a rectangular, trailer-like structure with windows, a door, and often a small porch or steps.", + "A mobile home is a rectangular, elongated structure with windows, a door, and often a pitched roof, typically on wheels or a foundation.", + "Mobile homes are long rectangular structures with wheels, metal siding, and often have a trailer hitch at the front.", + "Mobile homes are long rectangular structures with wheels and a trailer hitch, resembling a small house on a chassis." + ], + "ford model t": [ + "The Ford Model T has a distinct boxy black body with large wheels and an open-top or enclosed cabin unlike most vehicles.", + "The Ford Model T is a classic black car with a boxy shape, large wheels, and a tall upright windshield.", + "The Ford Model T has a distinctive high square black body with large spoked wheels and a curved front hood.", + "The Ford Model T has a distinct boxy black body, large round headlights, and a tall narrow radiator grille." + ], + "modem": [ + "A modem is a small rectangular box with lights on the front and ports on the back for cables.", + "A modem is a small rectangular box with indicator lights and ports, unlike most household objects which lack these technical features.", + "A modem typically has multiple indicator lights and ports for cables on a small rectangular box.", + "A modem typically has a rectangular box shape with multiple ports, indicator lights, and antennas for wireless connectivity." + ], + "monastery": [ + "Monasteries are recognized by their large religious architecture with arched windows tall spires and often secluded peaceful surroundings.", + "A monastery is uniquely identified by its combination of religious architecture, secluded setting, and often a central courtyard or cloister.", + "Monasteries are large religious buildings with distinctive architectural features like domes, spires, and courtyards, unlike smaller or secular structures.", + "A monastery typically appears as a large stone or brick building with arches, towers, and religious symbols surrounded by peaceful gardens." + ], + "monitor": [ + "A monitor has a flat rectangular screen displaying images or text, distinguishing it from other objects.", + "A monitor has a flat rectangular screen with a bezel, often displaying images or text, and is typically placed on a desk or mounted.", + "Monitors are flat rectangular screens with thin bezels while other objects vary widely in shape size and material.", + "Monitors are flat rectangular screens with thin bezels often mounted on stands or attached to walls displaying images or videos." + ], + "moped": [ + "Mopeds have a small motorcycle-like frame with step-through design, small wheels, and often a visible engine or motor.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a compact engine between the wheels.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a small engine often under the seat.", + "Mopeds are small motorized bikes with step-through frames, small wheels, and often have a compact engine and minimal bodywork." + ], + "mortar and pestle": [ + "A mortar is a bowl and a pestle is a heavy club-shaped tool used together for grinding or crushing substances.", + "A mortar is a bowl and a pestle is a club-shaped tool used together for grinding or crushing substances.", + "A mortar is a sturdy bowl and a pestle is a heavy club-shaped tool used together to grind or crush substances.", + "A mortar and pestle is a bowl with a heavy club-like tool, unlike other kitchen items which are usually flat or have handles." + ], + "graduation cap": [ + "A graduation cap has a flat square top with a tassel hanging from the center and is typically worn with a gown.", + "A graduation cap has a flat square top and a tassel, unlike most hats which are rounded or lack a tassel.", + "A graduation cap is a flat square board with a tassel on top, usually black and worn on the head.", + "A graduation cap is a flat square board with a tassel attached to a center button on a skullcap." + ], + "mosque": [ + "Mosques can be identified by their domes minarets and large prayer halls often with intricate designs and arched entrances.", + "A mosque typically has domes minarets and large open prayer halls unlike other buildings which lack these distinct Islamic architectural features.", + "Mosques are recognized by their domes minarets and large prayer halls often with intricate geometric patterns and arched doorways.", + "A mosque typically has domes minarets and large open prayer halls often decorated with intricate geometric patterns and calligraphy." + ], + "mosquito net": [ + "A mosquito net is a fine, lightweight, often white or translucent mesh fabric hung loosely around beds or windows to block insects.", + "Mosquito nets are lightweight, finely woven, and often white or translucent, designed to drape over beds or windows for insect protection.", + "Mosquito nets are lightweight finely woven mesh fabrics typically hung above beds to protect against insects with a delicate see-through texture.", + "A mosquito net is a fine mesh fabric draped over beds or windows to keep insects out while allowing air flow." + ], + "vespa": [ + "Vespas have a distinctive sleek curved body, small wheels, and a prominent front shield with a single headlight.", + "A vespa is a small sleek motor scooter with a rounded body step through frame and often bright colors.", + "Vespas are small scooters with a sleek curved body, rounded front shield, and often bright colors or chrome details.", + "The unique visual cue of a vespa is its distinctive curved body shape with a narrow waist and bold striped coloration." + ], + "mountain bike": [ + "Mountain bikes have wide knobby tires a sturdy frame flat handlebars and a suspension system for rough terrain.", + "Mountain bikes have a sturdy frame, wide knobby tires, and suspension systems for rough terrain unlike smoother road bikes or motorcycles.", + "Mountain bikes have rugged frames, wide knobby tires, flat handlebars, and suspension systems for off-road terrain.", + "Mountain bikes have wide knobby tires and a sturdy frame designed for rough off-road terrain." + ], + "tent": [ + "A tent is a portable shelter made of fabric or similar material stretched over a frame, often used for camping outdoors.", + "A tent is a portable shelter made of fabric or similar material stretched over poles and secured to the ground with ropes.", + "Tents are typically made of fabric with poles and have a distinctive triangular or dome shape for shelter outdoors.", + "Tents have a triangular or dome shape with fabric stretched over a frame and often have zippered openings for entry." + ], + "computer mouse": [ + "A computer mouse is a small handheld device with buttons and a scroll wheel, often shaped like an oval with a cord or wireless.", + "A computer mouse has a distinctive elongated body with a scroll wheel between two buttons and a cord or wireless sensor underneath.", + "A computer mouse is small, handheld, typically has buttons and a scroll wheel, and connects via wire or wireless dongle.", + "A computer mouse has a small oblong shape with buttons, a scroll wheel, and a cord or wireless receiver for easy identification." + ], + "mousetrap": [ + "A mousetrap is a small wooden or plastic device with a spring-loaded bar designed to catch and kill mice.", + "A mousetrap is a small rectangular device with a spring-loaded metal bar and a bait holder, often made of wood or plastic.", + "A mousetrap typically has a spring-loaded metal bar and a small wooden or plastic base, unlike most household objects.", + "A mousetrap typically has a spring-loaded metal bar, a bait trigger, and a wooden or plastic base to catch mice." + ], + "moving van": [ + "A moving van is a large rectangular truck with a boxy shape, often white or plain-colored, used for transporting furniture and household goods.", + "A moving van typically has large bold lettering and branding on its sides for identification and advertising purposes.", + "Moving vans are large boxy vehicles with plain colors and often have company logos or advertisements on their sides.", + "A moving van is a large rectangular truck often painted white or with company logos and has a tall enclosed cargo area." + ], + "muzzle": [ + "A muzzle is a strap or cage covering an animal's snout while similar objects like masks or guards serve different purposes or cover other areas.", + "A muzzle is a protruding mouth and nose area of an animal, often covered in fur or leather, with visible nostrils and straps.", + "A muzzle is a protruding part of an animal's face covering the mouth and nose often made of leather or metal straps.", + "A muzzle is a strap or cage fitted over an animal's snout to prevent biting or eating, resembling a snug mesh or leather cover." + ], + "metal nail": [ + "A metal nail is a slender, straight, pointed object with a smooth or ridged shaft and a flat or rounded head.", + "A metal nail is a small slender shiny object with a smooth cylindrical shaft and a flat or slightly rounded head.", + "A metal nail has a slender pointed tip and a smooth cylindrical shaft with a flat head.", + "Metal nails are slender, straight, and shiny with a pointed tip and smooth or ridged surface, unlike bulkier or irregularly shaped objects." + ], + "neck brace": [ + "A neck brace is a rigid medical collar that supports the head and limits neck movement for injury recovery or spinal stability.", + "A neck brace is a rigid or padded support device worn around the neck to immobilize and protect it from movement.", + "A neck brace is a rigid or padded support worn around the neck, unlike other objects which are not designed for neck support.", + "A rigid orthopedic device worn around the neck to support and immobilize the head and spine." + ], + "necklace": [ + "A necklace is a slender decorative chain or string of beads, gems, or pearls worn around the neck.", + "A necklace is a decorative chain or string of beads gems or metal worn around the neck often shiny and delicate.", + "A necklace is a decorative chain or string of beads, gems, or metal worn around the neck for adornment.", + "A necklace is a flexible decorative chain worn around the neck, unlike rigid or non-wearable items like pendants or collars." + ], + "baby pacifier": [ + "A baby pacifier is a small nipple-shaped object with a shield and handle, usually made of soft silicone or rubber.", + "A baby pacifier is a small nipple-shaped object with a shield and handle, often made of soft silicone or rubber.", + "A baby pacifier has a nipple-shaped teat, a shield to prevent swallowing, and often a ring or handle for easy gripping.", + "A baby pacifier has a small nipple-shaped mouthpiece attached to a flat shield often with a handle or ring." + ], + "notebook computer": [ + "A notebook computer is a thin flat rectangular device with a screen and keyboard, unlike bulkier or differently shaped electronics and objects.", + "A notebook computer is a thin, flat, rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is a thin rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is recognized by its thin rectangular shape, hinged screen, keyboard, and compact portable design." + ], + "obelisk": [ + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like point at the top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, often standing alone or as a monument.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, unlike most other objects." + ], + "oboe": [ + "The oboe is a slender wooden wind instrument with metal keys, distinguished by its conical bore and double reed mouthpiece.", + "An oboe is a slender wooden wind instrument with a conical bore, metal keys, and a flared bell at the bottom.", + "An oboe is a slender wooden wind instrument with a long black body, silver keys, and a double reed at the top.", + "The oboe has a long black wooden body with silver keys and a distinct double reed at the top." + ], + "ocarina": [ + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often shaped like an egg or sweet potato.", + "An ocarina is a small handheld wind instrument with an oval or round body and finger holes unlike larger or differently shaped instruments.", + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often made of clay or ceramic.", + "The ocarina is recognized by its small egg-shaped body with finger holes and a mouthpiece for blowing." + ], + "odometer": [ + "An odometer is a small rectangular device with a digital or mechanical display showing mileage numbers inside a vehicle dashboard.", + "An odometer is a small digital or mechanical display in a vehicle dashboard showing mileage unlike larger or non-numeric objects.", + "An odometer has a numeric display showing mileage, often with rotating digits or a digital screen, set within a vehicle dashboard.", + "Odometers are small rectangular displays with numbers showing mileage often found on a vehicle's dashboard near the steering wheel." + ], + "oil filter": [ + "An oil filter is a cylindrical metal can with a ridged surface and a threaded hole on one end.", + "An oil filter is typically a cylindrical metal can with a textured surface and a threaded hole on one end.", + "Oil filters are cylindrical with threaded ends, often metal, and have a ridged or textured surface for grip and a central hole.", + "An oil filter is typically cylindrical, metal, and smaller than most car parts, with a ridged or smooth surface and threaded ends." + ], + "pipe organ": [ + "A pipe organ has tall vertical pipes arranged in rows, unlike most objects which are compact or irregularly shaped.", + "A pipe organ is a large musical instrument with rows of vertical pipes, often found in churches and concert halls.", + "A pipe organ is identified by its large size, multiple vertical pipes of varying heights, and a keyboard console at the base.", + "A pipe organ has tall vertical pipes arranged in rows, often with intricate designs and a large keyboard console at the base." + ], + "oscilloscope": [ + "An oscilloscope is a rectangular electronic device with a screen, knobs, and buttons, resembling a small boxy monitor with control panels.", + "An oscilloscope has a rectangular screen with grid lines, control knobs, and input ports on a flat or slightly angled panel.", + "Oscilloscopes have a rectangular screen with grid lines displaying waveform graphs and multiple knobs or buttons for control settings.", + "An oscilloscope has a rectangular screen with grid lines and multiple knobs and buttons for controlling electronic signal displays." + ], + "overskirt": [ + "An overskirt is a decorative outer skirt worn over another skirt, often layered and flowing for added volume or style.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or sheer, extending slightly shorter or longer than the underlayer.", + "An overskirt is a decorative outer skirt layered over another skirt, often shorter and more ornate than regular skirts.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or flared, adding volume and contrasting fabric." + ], + "bullock cart": [ + "A bullock cart is a wooden cart with two large wheels pulled by oxen, typically used for transporting goods or people.", + "A bullock cart has a wooden or metal frame with two large wheels pulled by oxen, often carrying loads or people.", + "A bullock cart is a wooden cart with two large wheels pulled by oxen, often with a flat or curved platform for carrying loads.", + "A bullock cart has a wooden frame with large wheels pulled by oxen, unlike vehicles with engines or smaller animal-drawn carts." + ], + "oxygen mask": [ + "An oxygen mask is a clear or translucent plastic cup covering the nose and mouth with elastic straps around the head.", + "An oxygen mask is a clear plastic cup covering the nose and mouth with elastic straps to secure it around the head.", + "Oxygen masks have a clear plastic cup shape with elastic straps unlike most objects which lack these specific features.", + "An oxygen mask has a clear plastic cup shape with elastic straps and a tube for delivering oxygen to the face." + ], + "product packet / packaging": [ + "Product packaging typically has uniform shapes, logos, labels, and bright colors designed to attract attention and protect contents.", + "Product packaging typically appears as boxes, bags, or containers with labels, logos, and designs to hold and protect items for sale.", + "Look for rectangular shapes with labels logos or barcodes often made of cardboard plastic or shiny materials.", + "Product packaging stands out with logos barcodes brand names colorful designs and uniform shapes for easy identification on shelves." + ], + "paddle": [ + "A paddle is a long flat tool with a handle used for rowing or stirring, typically narrow and often made of wood or plastic.", + "A paddle is a long flat tool with a broad end, often tapered, used for stirring or moving through water.", + "Paddles are long, flat, and often have a handle at one end, unlike other objects which vary more in shape and size.", + "A paddle is long flat and often tapered with a handle used for propelling or steering boats through water." + ], + "paddle wheel": [ + "A paddle wheel has large flat blades arranged evenly around a central hub, often seen on boats or in water.", + "The paddle wheel has large flat blades arranged radially around a central hub for pushing water.", + "A paddle wheel is a large circular frame with flat blades around its rim used to propel boats through water.", + "A paddle wheel has large flat blades arranged radially around a central hub, often seen on boats or watercraft for propulsion." + ], + "padlock": [ + "A padlock is a small metal device with a U-shaped bar that snaps into a solid body to secure things.", + "Padlocks are small metal devices with a U-shaped bar that swings open when unlocked and snaps shut when locked.", + "Padlocks are small metal devices with a shackle that opens with a key or combination unlike most objects which lack these features.", + "A padlock has a small metal body with a U-shaped shackle that opens when unlocked and secures when closed." + ], + "paintbrush": [ + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end often appearing stiff or slightly fanned out.", + "A paintbrush has bristles on one end and a long handle, unlike most objects which lack bristles and vary in shape." + ], + "pajamas": [ + "Pajamas are loose, soft clothing typically with long sleeves and pants, often in simple patterns or solid colors.", + "Pajamas are loose, comfortable clothing typically made of soft fabric, often featuring pants and a matching top, designed for sleeping.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns or stripes, typically worn for sleep or lounging.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns like stripes or prints, typically worn for sleep." + ], + "palace": [ + "Palaces are large grand buildings with ornate designs, while other objects vary widely in size shape and simplicity.", + "Palaces are recognized by grand architectural designs, large ornate facades, towering domes, intricate details, and expansive surrounding gardens or courtyards.", + "Palaces are large, grand buildings with ornate designs, tall columns, domes, and expansive facades often surrounded by gardens or walls.", + "Palaces are uniquely distinguished by their grand architectural designs featuring ornate details and expansive structures often surrounded by landscaped gardens." + ], + "pan flute": [ + "The pan flute has multiple vertical tubes of varying lengths bound together unlike most instruments which are solid or have strings.", + "A pan flute is a set of vertical tubes of varying lengths bound together side by side often made from bamboo or wood.", + "The pan flute has multiple vertical pipes of varying lengths bound together in a curved or straight row producing distinct sound.", + "The pan flute is a row of hollow tubes of varying lengths bound together horizontally, resembling a set of vertical pipes." + ], + "paper towel": [ + "A paper towel is a thin, rectangular sheet of absorbent paper, often white or patterned, usually found in rolls or folded stacks.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface designed for absorbing liquids.", + "Paper towels are thin, rectangular, and often perforated with a soft, slightly textured surface, usually white or patterned.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface for absorbing liquids." + ], + "parachute": [ + "A parachute is a large, lightweight canopy with strings, used to slow descent, typically made of fabric and shaped like an umbrella.", + "A parachute is a large, lightweight canopy with strings, often brightly colored, used to slow descent through the air.", + "A parachute is a large, lightweight fabric canopy with strings, used for slowing descent, unlike compact or rigid objects.", + "Parachutes have a large, round canopy with suspension lines and a harness, often seen open in midair during descent." + ], + "parallel bars": [ + "Parallel bars are long horizontal metal bars mounted on vertical supports, distinct from single bars or gym equipment like rings or beams.", + "Parallel bars are two horizontal rails of equal length spaced apart, typically used in gymnastics for exercises and routines.", + "Parallel bars have two long horizontal bars of equal length positioned parallel to each other at a fixed distance apart.", + "Parallel bars are long horizontal metal rails supported by vertical stands, used in gymnastics for exercises and routines." + ], + "park bench": [ + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces for resting.", + "A park bench is a long wooden or metal seat with a backrest, often found outdoors in public spaces.", + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces.", + "A park bench is a long outdoor seat with a backrest and armrests, typically made of wood or metal, placed in public spaces." + ], + "parking meter": [ + "Parking meters have a tall narrow body with a coin slot, display screen, and often a metal pole or post for mounting.", + "Parking meters are small metal boxes with a coin slot, display screen, and often a pole or post for mounting.", + "A parking meter is a small upright metal box with a coin slot, display screen, and timer, often mounted on a pole.", + "Parking meters are small metal boxes with a coin slot and display screen mounted on poles near streets for parking payment." + ], + "railroad car": [ + "A railroad car is a long rectangular vehicle with wheels designed to run on tracks typically used for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels designed to run on tracks often connected in a series for transporting goods or passengers.", + "Railroad cars have long rectangular bodies with multiple wheels aligned in pairs on tracks for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels, often connected in series, used for transporting goods or passengers on tracks." + ], + "patio": [ + "A patio is an outdoor paved area with furniture or plants often adjacent to a house and designed for relaxation or dining.", + "A patio is an outdoor space with paved flooring, often featuring furniture and surrounded by gardens or walls.", + "Patios are flat outdoor spaces with furniture or plants, often made of stone or wood, connected to a house or building.", + "Patios are flat outdoor surfaces made of stone or concrete, often with furniture, unlike grassy lawns or enclosed indoor spaces." + ], + "payphone": [ + "A payphone is a standalone booth or wall-mounted unit with a keypad, handset, and coin slot, unlike mobile phones or other communication devices.", + "A payphone is a tall metal box with a coin slot, keypad, and a handset attached by a coiled cord.", + "A payphone has a coin slot, handset on a cord, keypad, and is mounted on a stand or wall in public spaces.", + "A payphone has a distinctive handset attached to a metal box with a keypad and coin slot." + ], + "pedestal": [ + "A pedestal is a flat-topped stand or base that supports other objects, often decorative and taller than typical stands.", + "A pedestal is a raised base supporting an object, often decorative, with a simple sturdy shape contrasting the item it holds.", + "A pedestal is a sturdy base with a flat top, often plain or slightly decorated, supporting statues or other displayed objects.", + "A pedestal is a sturdy base or support that elevates and displays objects like statues vases or trophies often decorative and simple." + ], + "pencil case": [ + "A pencil case is a small rectangular pouch often made of fabric or plastic with a zipper to hold writing tools.", + "A pencil case is a small container usually rectangular or cylindrical with a zipper or snap closure to hold writing tools.", + "A pencil case is a small rectangular pouch with a zipper or snap closure designed to hold pens pencils and other stationery items.", + "A pencil case is typically a small rectangular pouch with a zipper or snap closure often made of fabric plastic or leather." + ], + "pencil sharpener": [ + "A pencil sharpener is a small handheld or mounted device with a blade or mechanism to sharpen pencils to a fine point.", + "A pencil sharpener is typically small with a blade hole for pencils and a container for shavings often made of metal or plastic.", + "A pencil sharpener has a small blade inside a cylindrical or rectangular body with a hole to insert and rotate the pencil.", + "A pencil sharpener has a small, cylindrical hole designed specifically to hold and sharpen pencil tips." + ], + "perfume": [ + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside, unlike most everyday objects.", + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside showing through clear glass.", + "Perfume typically appears as small elegant glass bottles with decorative caps and often a spray nozzle.", + "Perfume bottles are small often decorative glass containers with spray nozzles or stoppers and colorful liquid inside." + ], + "Petri dish": [ + "A Petri dish is a shallow, clear, round glass or plastic dish with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic container with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic dish with a lid, unlike most objects which are solid and opaque.", + "A Petri dish is a shallow transparent cylindrical lidded container used for culturing cells or bacteria in labs." + ], + "photocopier": [ + "Photocopiers are rectangular machines with a flat glass surface, paper trays, and control panels often found in offices.", + "A photocopier is a large rectangular machine with a flat glass top for scanning and paper trays on the side.", + "A photocopier is a large boxy machine with a flat glass surface for scanning and paper trays, unlike smaller simpler office devices.", + "A photocopier is a large boxy machine with a flat glass top for scanning and paper trays on the side." + ], + "plectrum": [ + "A plectrum is a small flat tool, usually triangular, made of plastic or metal, used to pluck or strum stringed instruments.", + "A plectrum is small flat and triangular with a pointed tip used to pluck strings on musical instruments like guitars.", + "A plectrum is a small flat tool with a pointed tip, unlike similar objects which may be larger or differently shaped.", + "A plectrum is small flat and often triangular with smooth edges made of plastic metal or other materials for picking strings." + ], + "Pickelhaube": [ + "The Pickelhaube has a distinctive pointed metal spike on top, unlike other helmets which are smooth or rounded.", + "The Pickelhaube has a distinctive pointed metal spike on top of its helmet.", + "A Pickelhaube is a spiked helmet with a rounded metal top and a prominent front spike, typically made of leather or metal.", + "A Pickelhaube is a spiked helmet with a round metal base, a tall front spike, and often has a chin strap and decorative elements." + ], + "picket fence": [ + "A picket fence is a white wooden fence with evenly spaced vertical slats and a horizontal top and bottom rail.", + "A picket fence is a short wooden fence with evenly spaced vertical boards and a horizontal rail, often painted white.", + "A picket fence has evenly spaced vertical wooden slats with pointed tops attached to horizontal rails.", + "A picket fence has evenly spaced vertical wooden slats attached to horizontal rails, unlike solid walls or chain-link fences." + ], + "pickup truck": [ + "Pickup trucks have a cab with seats and an open cargo bed at the back for hauling items.", + "A pickup truck is a rugged vehicle with an open cargo bed, four wheels, and a cab for passengers.", + "Pickup trucks have a cab and an open cargo bed, unlike cars or SUVs which are fully enclosed or vans which have a boxy shape.", + "Pickup trucks have a cab with seats and an open flatbed at the back for hauling items." + ], + "pier": [ + "A pier is a long wooden or concrete structure extending over water, supported by pillars, used for walking, docking boats, or fishing.", + "A pier is a long wooden or metal structure extending into water supported by pillars with boats or people nearby.", + "A pier is a long narrow structure extending into water supported by pillars unlike docks or wharves which are usually solid and shore-connected.", + "Piers are long structures extending over water supported by pillars often with railings and used for docking boats or walking." + ], + "piggy bank": [ + "Piggy banks are typically shaped like pigs with a coin slot, while other objects vary widely in form and function.", + "Piggy banks are typically small, shaped like pigs with a coin slot on top, often made of ceramic or plastic.", + "A piggy bank is a small, often round container shaped like a pig with a slot for saving coins.", + "A piggy bank is typically a small hollow pig-shaped container with a slot on top for inserting coins." + ], + "pill bottle": [ + "Pill bottles are small cylindrical containers with labels and child-resistant caps often in white or orange plastic.", + "Pill bottles are small cylindrical containers with labels and childproof caps unlike similar objects which vary in shape size and lid type.", + "A pill bottle is a small cylindrical container with a child-resistant cap, often made of translucent plastic and labeled with medication information.", + "Pill bottles are typically small cylindrical containers with childproof caps and often have white labels and orange translucent plastic." + ], + "pillow": [ + "Pillows are soft rectangular objects with fabric covers often found on beds or couches for comfort and support.", + "Pillows are soft rectangular cushions often with fabric covers while other objects vary in shape texture and material like hard or angular surfaces.", + "A pillow is a soft rectangular cushion often with fabric covering used for head or body support during rest or sleep.", + "A pillow is a soft rectangular or square object with a smooth fabric cover often slightly puffed and used for head support." + ], + "ping-pong ball": [ + "Ping-pong balls are small, white, lightweight, and perfectly round with a smooth matte surface unlike most other balls.", + "A ping-pong ball is small, white or orange, smooth, lightweight, and perfectly round with a matte finish.", + "A ping-pong ball is small, lightweight, white or orange, smooth, matte, and spherical with a distinctive hollow sound when bounced.", + "A ping-pong ball is small, white or orange, lightweight, spherical, and has a smooth, matte surface with a slightly shiny finish." + ], + "pinwheel": [ + "Pinwheels are colorful spinning toys with radiating blades or petals attached to a central stick or rod.", + "A pinwheel is a colorful toy with spinning blades attached to a stick that twirls in the wind.", + "Pinwheels are recognized by their colorful spinning blades attached to a central axis on a stick, often with a wind-catching design.", + "Pinwheels have colorful spinning blades attached to a stick while similar objects lack these moving parts or bright designs." + ], + "pirate ship": [ + "Pirate ships have tall masts, sails, wooden hulls, and often feature flags or cannons unlike modern boats or other vessels.", + "A pirate ship is a large wooden sailing vessel with tall masts, sails, and often features a Jolly Roger flag.", + "Pirate ships have tall masts with multiple sails, wooden hulls, Jolly Roger flags, and often cannons visible on the sides.", + "A pirate ship is uniquely identified by its black flag with a white skull and crossbones." + ], + "drink pitcher": [ + "A drink pitcher typically has a handle, a spout, and a tall narrow body designed for pouring liquids easily.", + "A drink pitcher is a tall container with a handle and spout, usually made of glass or plastic for pouring liquids.", + "A drink pitcher typically has a handle, a spout, and a tall cylindrical shape for pouring liquids easily.", + "A drink pitcher typically has a prominent spout for pouring liquids and a handle for easy gripping." + ], + "block plane": [ + "A block plane is a small hand tool with a low-angle blade for smoothing wood, distinguished by its compact size and flat sole.", + "A block plane is smaller with a low-angle blade and simple design compared to larger more complex woodworking planes.", + "A block plane is a small hand tool with a flat metal body and a sharp blade for smoothing wood surfaces.", + "A block plane has a compact metal body with a low-angle blade set close to the front edge." + ], + "planetarium": [ + "A planetarium is a dome-shaped building or room with a projector displaying stars and celestial objects on the ceiling.", + "A planetarium is a domed building or room with a projector displaying stars and planets unlike regular buildings or natural objects.", + "A planetarium typically appears as a large dome-shaped building with a round or hemispherical roof and often has a futuristic or scientific design.", + "A planetarium is recognized by its domed ceiling displaying projected stars and celestial scenes in a dark, theater-like setting." + ], + "plastic bag": [ + "A plastic bag is a thin, lightweight, often crinkly and translucent or colored container made of flexible plastic material.", + "Plastic bags are thin, crinkly, often transparent or brightly colored, and have handles or folds for carrying items.", + "Plastic bags are thin, crinkly, and often transparent or semi-transparent, unlike most objects which are solid and rigid.", + "A plastic bag is thin, crinkly, often transparent or colored, and has a smooth, shiny surface with folds or wrinkles." + ], + "plate rack": [ + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright and separate unlike most other storage objects.", + "A plate rack is a shelf or stand with slots or hooks designed to hold plates upright for drying or storage.", + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright for drying or storage.", + "A plate rack is a flat open shelf or stand with slots or pegs to hold plates vertically for drying or storage." + ], + "farm plow": [ + "A farm plow is a large metal blade with handles or wheels used to turn over soil in fields for planting crops.", + "A farm plow has a large curved metal blade and handles, distinct from smaller or differently shaped farming tools and equipment.", + "A farm plow has a large curved metal blade designed to turn over soil for planting crops.", + "A farm plow has a large curved metal blade attached to a frame, often pulled by animals or tractors, used for tilling soil." + ], + "plunger": [ + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger typically has a rubber suction cup on a straight wooden or plastic handle used for clearing clogged drains.", + "A plunger has a rubber suction cup on a straight handle, unlike most tools which have varied shapes and materials." + ], + "Polaroid camera": [ + "A Polaroid camera is a rectangular instant film device with a lens viewfinder and a slot for ejecting printed photos.", + "A Polaroid camera is a rectangular box with a lens, viewfinder, and a slot for instant photos to eject from.", + "Polaroid cameras are square-shaped with a lens on top and a slot for instant photos, unlike most cameras or everyday objects.", + "Polaroid cameras have a square body with a lens on one side and a slot for instant photos to eject on the other." + ], + "pole": [ + "A pole is a long, slender, vertical or horizontal object with a uniform shape and minimal width compared to its length.", + "A pole is a long, slender, vertical or horizontal rod, often made of wood or metal, used for support or structure.", + "A pole is a long, slender, vertical structure often made of wood or metal, used for support or marking boundaries.", + "Poles are long, thin, and straight, often vertical, while other objects vary more in shape, size, and orientation." + ], + "police van": [ + "Police vans are large boxy vehicles with emergency lights, sirens, and often marked with police logos or colors.", + "Police vans are boxy with barred windows and often have official markings or lights distinguishing them from regular vehicles.", + "A police van is a large, boxy vehicle with emergency lights, often painted in bold colors like white or black with police markings.", + "Police vans are typically boxy with emergency lights, bold lettering, and a sturdy design often in black, white, or blue colors." + ], + "poncho": [ + "A poncho is a sleeveless garment with an opening for the head, made from a single piece of fabric or waterproof material.", + "A poncho is a loose outer garment with a simple opening for the head and no sleeves, often made from wool or waterproof fabric.", + "A poncho is a large, flat piece of fabric with a head hole, while similar items like cloaks or capes often have sleeves or fasteners.", + "A poncho is uniquely identified by its large flat fabric with a central head opening and no sleeves." + ], + "pool table": [ + "A pool table has a flat rectangular surface with pockets and felt covering, distinct from most furniture or sports equipment.", + "A pool table is a large rectangular surface covered with green felt and surrounded by cushioned edges with pockets in the corners.", + "A pool table is a large rectangular surface with a green felt covering, six pockets, and wooden or metal rails around the edges.", + "A pool table has a distinctive green felt surface with six pockets and marked rails for playing billiards." + ], + "soda bottle": [ + "Soda bottles are typically tall cylindrical containers with narrow necks and labels, often made of clear or colored plastic.", + "A soda bottle is a tall cylindrical container with a narrow neck, often made of plastic or glass, and usually has a label.", + "Soda bottles are typically tall cylindrical containers with colorful labels and a narrow neck often capped with a twist-off or pop-top lid.", + "Soda bottles are typically tall cylindrical containers with narrow necks often labeled with colorful branding and sometimes have ridges or curves." + ], + "plant pot": [ + "Plant pots are typically round or square containers with open tops, made of clay or plastic, often holding soil and plants.", + "A plant pot is typically a small container with an open top, often made of clay or plastic, holding soil and plants.", + "Plant pots are typically round or square containers with open tops and drainage holes, often made of clay or plastic.", + "A plant pot is a small container, usually round or square, made of clay, plastic, or ceramic, designed to hold plants." + ], + "potter's wheel": [ + "A potter's wheel is a flat spinning disk on a stand with a foot pedal or motor for shaping clay.", + "A potter's wheel is a flat spinning disk on a stand, unlike stationary tools or decorative items that don't rotate.", + "A potter's wheel is a flat rotating disk on a stand used for shaping clay with hands or tools.", + "A potter's wheel has a spinning flat disk where clay is shaped by hand while rotating." + ], + "power drill": [ + "A power drill has a rotating chuck at the front that holds interchangeable bits for drilling or driving screws.", + "A power drill has a cylindrical body, trigger handle, rotating chuck, and often a cord or battery pack for operation.", + "A power drill is a handheld tool with a trigger grip, cylindrical body, and rotating bit for drilling holes or driving screws.", + "Power drills have a distinct pistol grip with a rotating chuck and trigger, unlike other tools which lack these combined features." + ], + "prayer rug": [ + "Prayer rugs have intricate patterns, a central arch or niche design, and are often rectangular with rich colors and detailed borders.", + "A prayer rug is a small rectangular fabric with intricate designs often featuring geometric patterns or mosque motifs.", + "Prayer rugs are rectangular with intricate patterns often featuring a niche design pointing towards the direction of prayer.", + "A prayer rug has a distinct arched or mihrab design pointing towards Mecca for proper orientation during prayer." + ], + "printer": [ + "Printers are typically boxy with flat surfaces, buttons, and paper trays, unlike other objects which vary more in shape and function.", + "A printer is a rectangular box with buttons, a paper tray, and often a display screen for printing documents and images.", + "Printers are boxy with flat tops, often have paper trays, display panels, and multiple buttons or slots for paper and ink.", + "Printers are typically rectangular with a flat top, control panel, paper tray, and often have a sleek design with brand logos." + ], + "prison": [ + "Prisons are large secure buildings with fences and barred windows unlike ordinary structures which are open and less fortified.", + "Prisons have high walls with barbed wire, guard towers, barred windows, and uniform rows of cell blocks inside secure perimeters.", + "Prisons are identified by high walls with barbed wire, guard towers, barred windows, and large secure gates.", + "Prisons typically resemble large fortified buildings with high walls, barred windows, and heavy gates surrounded by fences or barbed wire." + ], + "projector": [ + "A projector is recognized by its lens light source and rectangular shape used to display images or videos on surfaces.", + "A projector is typically a rectangular box with a lens on one side and vents for cooling on the sides or back.", + "A projector is a rectangular device with a lens on one side and often has vents and input ports on the back.", + "Projectors are rectangular with a lens at the front while similar objects like TVs or monitors lack lenses and are often flatter." + ], + "hockey puck": [ + "A hockey puck is a flat, hard, black rubber disc, much smaller and simpler than most other sports equipment or round objects.", + "A hockey puck is a small, flat, hard black disc with smooth edges and uniform thickness used in ice hockey games.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a slightly raised rim.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a uniform circular shape." + ], + "punching bag": [ + "A punching bag is a cylindrical or teardrop-shaped object typically made of leather or vinyl, hanging from a chain or rope.", + "A punching bag is a tall cylindrical or teardrop-shaped object usually made of leather or vinyl hanging from a chain or rope.", + "A punching bag is typically cylindrical, hangs from a chain or rope, and is made of leather or synthetic material.", + "A punching bag is a cylindrical or teardrop-shaped object hung vertically, often made of leather or vinyl, used for striking in training." + ], + "purse": [ + "A purse is a small bag with a handle or strap used to carry personal items like money and makeup.", + "Purses are small handheld bags with straps or handles used to carry personal items like money and makeup.", + "A purse is typically a small soft bag with a handle or strap, often made of leather or fabric, designed to hold personal items.", + "A purse is a small stylish bag with straps, often made of leather or fabric, used to carry personal items like money and makeup." + ], + "quill": [ + "A quill is a long feather with a sharpened tip, unlike pens or pencils which are solid and lack natural feathery textures.", + "A quill has a long feather with a sharpened tip used for writing, distinct from other objects.", + "A quill is a long feather with a sharp pointed tip and hollow shaft, often used for writing with ink.", + "A quill is a slender writing tool with a pointed feather at one end and an ink-dipped tip at the other." + ], + "quilt": [ + "Quilts are thick fabric layers stitched in decorative patterns unlike flat sheets or plain blankets.", + "A quilt is a thick, soft bed cover made of stitched fabric layers, often with colorful patterns or patchwork designs.", + "A quilt is a layered textile with stitching patterns often featuring colorful fabric squares or rectangles sewn together.", + "Quilts have distinct patchwork patterns, stitching lines, and layered fabric textures that set them apart from other textiles and household items." + ], + "race car": [ + "Race cars are sleek low vehicles with bold colors sponsor logos large rear wings and aerodynamic shapes for speed.", + "Race cars are sleek, low-profile vehicles with bold colors and sponsor logos, designed for speed and aerodynamics unlike everyday cars.", + "Race cars have sleek aerodynamic designs vibrant colors sponsor logos and large rear wings for high speed performance.", + "Race cars have sleek aerodynamic bodies with large spoilers and bold racing decals for high-speed performance and branding." + ], + "racket": [ + "A racket has a long handle with a flat oval or round head strung with a tight mesh or netting.", + "Rackets have a long handle and a flat oval or round frame with strings or mesh stretched across it.", + "A racket typically has a long handle and an oval frame with a tightly strung netting for hitting balls in sports.", + "Rackets have a long handle with a circular or oval frame strung with a tight mesh netting for hitting balls." + ], + "radiator": [ + "A radiator is typically a flat metal panel with vertical or horizontal fins used for heating and often mounted on walls.", + "A radiator is a metal device with fins or coils, often wall-mounted, used for heating rooms by circulating hot water or steam.", + "Radiators have a series of evenly spaced metal fins or tubes designed for heat dissipation.", + "A radiator is a metal panel with fins or pipes, often wall-mounted, while similar objects lack these distinct heat-dissipating features." + ], + "radio": [ + "Radios have dials, buttons, speakers, and often a rectangular shape with a display screen or frequency tuner.", + "Radios typically have dials, buttons, and speakers, while other objects vary widely in shape, size, and functional features.", + "A radio typically has a rectangular body with buttons dials and an antenna often displaying a speaker grille or digital screen.", + "Radios typically have dials, buttons, speakers, and an antenna, often housed in a rectangular or boxy shape with a display screen." + ], + "radio telescope": [ + "A radio telescope is a large dish or array of dishes often mounted on a movable structure for capturing radio waves from space.", + "Radio telescopes have large dish-shaped reflectors and support structures, unlike smaller or differently shaped objects like satellites or antennas.", + "A radio telescope has a large parabolic dish for capturing radio waves from space.", + "A radio telescope is a large dish-shaped structure with a central receiver used to detect radio waves from space." + ], + "rain barrel": [ + "A rain barrel is a cylindrical container with a spout or hose attachment, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a cylindrical container with a spigot, often made of plastic or wood, designed to collect and store rainwater.", + "A rain barrel is typically a cylindrical container with a spout, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a large cylindrical container, often made of plastic or wood, used to collect and store rainwater." + ], + "recreational vehicle": [ + "Recreational vehicles are large, boxy, mobile homes with wheels, often featuring windows, a door, and sometimes an awning or external storage.", + "Recreational vehicles are large, boxy, and often have windows, awnings, and external features like ladders or storage compartments.", + "Recreational vehicles are large boxy vehicles with living spaces, often featuring windows, a door, and sometimes an awning or external storage.", + "A recreational vehicle is a large motorhome or camper van designed for travel and living, resembling a bus or truck." + ], + "fishing casting reel": [ + "A fishing casting reel is a cylindrical device with a handle, spool, and metal frame, often mounted on a fishing rod.", + "A fishing casting reel has a spool release button and a handle on the same side for controlled line casting.", + "A fishing casting reel has a cylindrical body with a handle, spool, and line guide, often made of metal and plastic.", + "A fishing casting reel has a cylindrical spool with a handle and line guide, unlike similar objects which lack these specific fishing features." + ], + "reflex camera": [ + "Reflex cameras have a distinctive bulky body with a lens protruding from the front and a viewfinder on top.", + "A reflex camera has a large lens, a viewfinder hump on top, and a rectangular body with buttons and dials.", + "Reflex cameras have a distinctive large lens, viewfinder hump, and body shape with buttons and dials for manual controls.", + "A reflex camera has a rectangular body with a lens in front, a viewfinder on top, and buttons on the back and sides." + ], + "refrigerator": [ + "A refrigerator is a large rectangular appliance with a door, handles, and often a freezer compartment, usually white or stainless steel.", + "A refrigerator is a large rectangular appliance with a door handle and often has a freezer compartment at the top or bottom.", + "A refrigerator is a large rectangular appliance with a door handle and often a shiny metallic or white surface.", + "Refrigerators are large boxy appliances with doors and handles, often white or metallic, while other objects vary in shape and function." + ], + "remote control": [ + "A remote control is a small rectangular device with buttons used to operate electronic gadgets from a distance.", + "Remote controls are small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Look for small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Remote controls are small rectangular devices with buttons, often featuring a smooth surface and sometimes an infrared sensor at the top." + ], + "restaurant": [ + "Restaurants are recognized by dining tables chairs menus food items and often a counter or open kitchen area.", + "A restaurant typically has tables, chairs, menus, food, and decor in a welcoming space for dining and socializing.", + "Restaurants can be identified by their signs, seating areas, menus, tables, counters, and often large windows or open entrances.", + "Restaurants are buildings with signs tables chairs and often large windows unlike smaller objects like furniture or utensils." + ], + "revolver": [ + "A revolver is a handgun with a rotating cylinder that holds bullets, featuring a short barrel and a distinctive trigger and grip.", + "A revolver has a rotating cylinder holding bullets and a short barrel, unlike most guns which have a straight magazine.", + "A revolver has a rotating cylinder, short barrel, and a handgun shape with a trigger and grip.", + "A revolver has a rotating cylinder with multiple chambers that hold bullets visible from the side." + ], + "rifle": [ + "A rifle is a long narrow firearm with a barrel stock and trigger designed for precision shooting and hunting.", + "Rifles are long slender guns with a barrel stock and trigger distinct from shorter handguns or non firearm objects.", + "A rifle has a long narrow barrel with a trigger and stock designed for precise aiming and firing bullets.", + "Rifles have a long narrow barrel with a trigger grip and often a stock for shoulder support distinguishing them from other objects." + ], + "rocking chair": [ + "A rocking chair has a curved base that allows it to rock back and forth, typically with armrests and a high back.", + "A rocking chair has curved legs that allow it to rock back and forth and often has a high back and armrests.", + "Rocking chairs have curved legs that allow them to rock back and forth unlike regular chairs with straight legs.", + "Rocking chairs have curved legs that allow back-and-forth movement and often have armrests and a high backrest for comfort." + ], + "rotisserie": [ + "A rotisserie is a cooking device with a rotating spit for evenly roasting meat over a heat source.", + "Rotisserie is identified by a rotating spit with skewered meat cooking evenly over a heat source often seen in delis or kitchens.", + "Rotisseries are recognized by their rotating skewer, evenly cooked meat, heat source below, and often a vertical or horizontal metal frame.", + "Rotisserie has rotating skewers with evenly spaced food items while other objects lack this specific rotating and spaced arrangement." + ], + "eraser": [ + "An eraser is typically a small rectangular or cylindrical rubber object used to remove pencil marks by rubbing.", + "An eraser is typically small rectangular or cylindrical with a smooth or slightly rough surface often in light colors like white or pink.", + "Erasers are typically small, rectangular, and made of soft rubber or foam, unlike hard or rigid objects like stones or metal tools.", + "Erasers are small, rectangular or oval, often white or pink, with a smooth or slightly rough texture and sometimes angled edges." + ], + "rugby ball": [ + "A rugby ball is oval with pointed ends while most other balls are round or spherical in shape.", + "A rugby ball is an elongated oval shape with pointed ends and a textured surface for better grip.", + "A rugby ball has a distinctive elongated oval shape with pointed ends unlike any other spherical or round sports ball.", + "A rugby ball is oval-shaped with pointed ends and typically has a textured surface with white stitching and a distinctive pattern." + ], + "ruler measuring stick": [ + "A ruler measuring stick is a long thin flat tool with marked lines for measurement unlike bulkier or unmarked objects.", + "A ruler measuring stick is a long thin flat object with marked lines and numbers for measuring length.", + "A ruler measuring stick has evenly spaced markings and a straight, flat shape for precise length measurement.", + "A ruler measuring stick is long, thin, flat, and has evenly spaced markings or numbers along its length for measuring." + ], + "sneaker": [ + "Sneakers have laces, rubber soles, and a fabric or leather upper with a distinctive sporty or casual design.", + "A sneaker is a lightweight shoe with a flexible rubber sole and soft fabric or leather upper, often used for sports or casual wear.", + "Sneakers are soft, flexible footwear with rubber soles and fabric or leather uppers, unlike hard-soled shoes or non-footwear items.", + "Sneakers are identified by their rubber soles, laces, and soft fabric or leather uppers designed for comfort and athletic use." + ], + "safe": [ + "A safe typically has a sturdy metal box shape with a thick door and a visible locking mechanism or keypad.", + "Safes are typically boxy with metal surfaces and keypads or dials unlike most objects which vary widely in shape and material.", + "A safe typically has a thick metal door with a prominent locking mechanism and handle.", + "A safe is a sturdy metal box with a thick door and a lock to securely store valuables and important items." + ], + "safety pin": [ + "A safety pin has a coiled spring, sharp point, and clasp to secure the pointed end, making it easily recognizable.", + "A safety pin is a small metal pin with a clasp that bends back to cover the sharp point and secure items.", + "A safety pin has a simple metal loop with a clasp to secure the pointed end unlike other pins or fasteners.", + "A safety pin is a small metal pin with a clasp that bends back to cover the point and secure it closed." + ], + "salt shaker": [ + "A salt shaker is a small container with a perforated top designed to sprinkle salt usually made of glass or plastic.", + "A salt shaker is small with a perforated top for sprinkling salt and often has a cylindrical or rounded shape.", + "A salt shaker typically has a few small holes on top for sprinkling salt evenly.", + "A salt shaker typically has small holes for sprinkling salt and is often smaller than similar containers like pepper shakers or sugar bowls." + ], + "sandal": [ + "Sandals have open designs with straps and lack full coverage compared to shoes or boots which enclose the foot more completely.", + "Shoes with open toes and straps or a flat sole, often lightweight and worn in warm weather.", + "A sandal is an open-toed footwear with straps or a sole held to the foot by thin bands or a simple design.", + "Sandal features include open toe straps a flat sole and often a Y-shaped design between the toes for secure foot placement." + ], + "sarong": [ + "A sarong is a long, wrapped cloth skirt, while similar items like skirts or kilts are typically pre-stitched and structured.", + "A sarong is a long colorful fabric wrapped around the waist, resembling a skirt or loose dress, often with vibrant patterns.", + "A sarong is a long, wrapped skirt or cloth with vibrant patterns, often worn around the waist and flowing loosely to the ankles.", + "A sarong is recognized by its long rectangular fabric often wrapped around the waist with vibrant patterns and flowing drapes." + ], + "saxophone": [ + "A saxophone is a shiny brass wind instrument with a curved body, keys, and a flared bell.", + "A saxophone has a curved metallic body with keys and a flared bell, unlike most instruments which are straight or differently shaped.", + "A saxophone is a shiny curved metal instrument with a flared bell and many buttons along its long tube.", + "The saxophone has a distinctive curved neck with a flared bell and multiple keys along its conical brass body." + ], + "scabbard": [ + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade.", + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade securely.", + "A scabbard is a long narrow sheath typically made of leather or metal used to hold and protect a sword or knife.", + "A scabbard is a long narrow sheath for a blade, often leather or metal, while similar objects may lack the shape or material specifics." + ], + "weighing scale": [ + "Weighing scales have a flat platform, display screen, and often numerical indicators for measuring weight clearly.", + "Weighing scales have flat platforms or trays with displays showing weight unlike other objects which vary in shape and function.", + "A weighing scale typically has a flat platform or tray and a display screen showing numbers for weight measurement.", + "A weighing scale is a flat platform or dish with a display showing weight often found in kitchens or bathrooms." + ], + "school bus": [ + "A school bus is a large yellow vehicle with windows, black trim, and a long rectangular shape for transporting children.", + "A school bus is recognized by its long yellow body black stripes large windows and stop sign arm for student transportation.", + "A school bus is a large yellow vehicle with black stripes, multiple windows, and often has stop signs and flashing lights.", + "A school bus is bright yellow with black stripes and large windows, while other vehicles vary in color and design." + ], + "schooner": [ + "A schooner is a sailing ship with two or more masts, typically with fore-and-aft sails and a sleek, elongated hull.", + "A schooner is a sailing ship with two or more masts and fore-and-aft sails, distinct from other boats by its tall sleek design.", + "A schooner is a sleek sailing ship with two or more masts and tall sails, often seen gliding on water.", + "A schooner has two or more tall masts with fore-and-aft sails and a sleek elongated hull designed for sailing." + ], + "scoreboard": [ + "Scoreboards display numbers or text on a flat panel often with bright colors and large fonts unlike most objects which are three-dimensional.", + "Scoreboards have large bold numbers bright colors and clear segmented displays for easy visibility and quick recognition from a distance.", + "Scoreboards are large flat panels with grids of numbers or letters often brightly lit and mounted high in stadiums or arenas.", + "Scoreboards uniquely display changing numbers or letters to show live game scores or information in a large visible format." + ], + "CRT monitor": [ + "A CRT monitor is a bulky boxy screen with a curved glass front and deep back, often black or beige.", + "CRT monitors are bulky with a large curved glass screen and thick backs unlike slim flat modern screens or other household objects.", + "CRT monitors have a bulky, boxy shape with a curved glass screen and a thick back containing the cathode ray tube.", + "A CRT monitor has a large, boxy shape with a curved or flat glass screen and a thick backside containing the cathode ray tube." + ], + "screw": [ + "Screws have a threaded cylindrical metal body with a slotted or shaped head for turning with a tool.", + "A screw is a small metal rod with a helical thread and a slotted or recessed head for turning with a tool.", + "Screws have a threaded cylindrical shaft and a slotted or shaped head, unlike nails which are smooth and bolts which have nuts.", + "Screws can be identified by their threaded cylindrical shaft and slotted or Phillips head for turning with a tool." + ], + "screwdriver": [ + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle often made of plastic or rubber.", + "A screwdriver has a long narrow metal shaft and a handle often with a distinct shape for gripping and turning screws.", + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle, unlike most tools or objects.", + "A screwdriver has a long narrow metal shaft ending in a flat or cross-shaped tip for turning screws." + ], + "seat belt": [ + "Seat belts are long flat straps with buckles while other objects vary widely in shape texture and function.", + "Seat belts are long flat straps with a buckle, usually made of fabric or metal, found in vehicles across seats.", + "A seat belt is a long narrow strap with a buckle designed to secure passengers in vehicles for safety.", + "Seat belts are long flat straps with buckles typically seen across car seats securing passengers with distinctive metal clasps." + ], + "sewing machine": [ + "A sewing machine is a compact device with a needle, thread spool, and foot pedal, often housed in a metal or plastic frame.", + "A sewing machine has a flat base, a raised arm with a needle, thread spool, and often a foot pedal or electric controls.", + "A sewing machine has a needle, thread spool, and foot pedal, while other objects lack these specific parts for stitching fabric.", + "A sewing machine has a needle, thread spool, foot pedal, and flat base with a distinctive mechanical arm for stitching fabric." + ], + "shield": [ + "A shield is typically a flat, broad piece of armor held for protection, often round or rectangular with a handle.", + "A shield is typically flat, broad, and often round or rectangular with a handle or straps on the back.", + "Shields are flat, often round or rectangular, with handles on the back and sometimes decorative patterns or emblems on the front.", + "Shields are typically flat, round or rectangular, with handles and often feature bold patterns or emblems for easy identification." + ], + "shoe store": [ + "A shoe store displays multiple shoes neatly arranged on shelves or racks unlike single shoes or other unrelated items.", + "A shoe store is a retail space filled with shelves and displays of various footwear styles arranged neatly for customers to browse.", + "A shoe store typically has rows of shelves displaying various shoes and often a seating area for trying them on.", + "Rows of shoes displayed on shelves or racks for customers to browse and try on." + ], + "shoji screen / room divider": [ + "Shoji screens and room dividers are typically lightweight, translucent, and framed with thin wooden grids, unlike solid or opaque furniture pieces.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, often rectangular and divided into grid-like sections.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, used as a room divider or sliding door.", + "Shoji screens are lightweight sliding panels with wooden frames and translucent paper panels arranged in a grid pattern." + ], + "shopping basket": [ + "A shopping basket is a handheld container with an open top and handle, typically made of woven materials or plastic.", + "Shopping baskets are typically open, lightweight containers with handles, made of wire or plastic, designed for carrying items while shopping.", + "A shopping basket is typically a lightweight, open container with handles, often made of wire or plastic, used for carrying items while shopping.", + "A shopping basket has an open-top woven or plastic structure designed for carrying items while shopping." + ], + "shopping cart": [ + "A shopping cart is a metal or plastic basket on wheels with a handle for holding items while shopping in stores.", + "Shopping carts have a large wire basket on wheels with a handlebar for pushing, unlike most objects which are solid and stationary.", + "Shopping carts have a metal wire frame with a large basket, four wheels, and a handlebar for pushing.", + "A shopping cart has a metal wire frame, four wheels, a large basket, and a handlebar for pushing." + ], + "shovel": [ + "A shovel has a long handle and a flat, broad blade used for digging or moving loose materials like dirt or snow.", + "A shovel has a long handle and a flat wide blade often curved or pointed for digging or lifting materials.", + "A shovel has a long handle and a flat or curved metal blade used for digging or moving loose materials.", + "A shovel has a long handle with a wide flat metal blade at the end for digging or lifting materials." + ], + "shower cap": [ + "A shower cap is a flexible, waterproof head covering with an elastic edge, unlike hats or scarves which are not waterproof or elastic.", + "A shower cap is a flexible waterproof dome that fits snugly over the head with elastic edges to keep hair dry.", + "A shower cap is a flexible waterproof hat that covers the hair, often made of plastic or elastic material, typically round and smooth.", + "A shower cap has a stretchable elastic rim designed to tightly cover hair and keep it dry during showers." + ], + "shower curtain": [ + "A shower curtain is a waterproof fabric or plastic sheet hanging from a rod to enclose a bathtub or shower area.", + "Shower curtains are typically made of waterproof fabric or plastic and hang from a rod to enclose a bathtub or shower area.", + "A shower curtain is a large rectangular fabric or plastic sheet hanging from a rod, often with colorful patterns or waterproof material.", + "Shower curtains are typically rectangular, made of waterproof fabric or plastic, often have patterns or prints, and hang from rings on a rod." + ], + "ski": [ + "Skis are long, narrow, flat, and often have curved tips and bindings, unlike most objects which are shorter or differently shaped.", + "Skis are long narrow flat boards with upturned tips, typically paired and used for gliding over snow.", + "Skis are long narrow flat boards with pointed tips and bindings, usually seen in snowy environments or with winter sports gear.", + "Skis are long narrow flat boards with upturned tips, often seen with bindings and used on snow for gliding." + ], + "balaclava ski mask": [ + "A balaclava ski mask is a tight-fitting cloth covering the head, neck, and often the face, leaving only the eyes or eyes and mouth exposed.", + "A balaclava ski mask fully covers the head and neck with openings for eyes and mouth, unlike hats or scarves.", + "A balaclava ski mask is a tight-fitting cloth headgear covering the head and face with openings for eyes and mouth.", + "A balaclava ski mask covers the entire head except for the eyes and sometimes the mouth, distinguishing it from other headwear." + ], + "sleeping bag": [ + "Sleeping bags are long padded fabric tubes with zippers designed to fully enclose a person lying down for warmth and comfort.", + "Sleeping bags are long padded fabric tubes with zippers and hoods designed for sleeping often in bright colors or patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper designed for sleeping outdoors often in bright colors or camouflage patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper often in bright colors and designed for one person to sleep inside." + ], + "slide rule": [ + "A slide rule is a long narrow ruler with sliding middle part marked with logarithmic scales for calculations.", + "A slide rule is a long narrow ruler with sliding middle parts marked with logarithmic scales for calculations.", + "A slide rule has numbered logarithmic scales on sliding parts while similar objects lack these precise measurement markings.", + "A slide rule has multiple parallel logarithmic scales that slide against each other for calculations." + ], + "sliding door": [ + "Sliding doors have a long horizontal panel that moves along a track without swinging open like traditional doors.", + "Sliding doors have long flat panels that move horizontally on tracks unlike hinged doors which swing open vertically.", + "Sliding doors are flat rectangular panels with handles that slide horizontally along a track embedded in the wall or frame.", + "A sliding door is a large rectangular panel that moves horizontally on a track to open and close an entrance." + ], + "slot machine": [ + "Slot machines have flashy lights, reels, and buttons, unlike most objects which lack these gaming-specific features.", + "A slot machine is a colorful upright device with reels, buttons, and a lever, often found in casinos.", + "Slot machines have colorful reels with symbols, a lever or button panel, and a payout tray at the bottom.", + "A slot machine has a colorful cabinet with reels, buttons, a lever, and often flashing lights and a coin slot." + ], + "snorkel": [ + "A snorkel is a curved tube with a mouthpiece used for breathing while swimming face down in water.", + "A snorkel is recognized by its curved tube with a mouthpiece for breathing underwater while keeping the face submerged.", + "A snorkel is a curved tube with a mouthpiece for breathing while swimming unlike other objects which lack this specific design.", + "A snorkel is a curved tube with a mouthpiece, often bright colored, used for breathing underwater while keeping the face submerged." + ], + "snowmobile": [ + "A snowmobile is a motorized vehicle with skis at the front and a continuous track at the back for traveling over snow.", + "A snowmobile has a long tracked rear tread and front skis for moving over snow.", + "Snowmobiles have a long narrow body with skis at the front and a continuous track at the back for snow travel.", + "Snowmobiles have a long seat, handlebars, skis at the front, and a track at the back for moving over snow." + ], + "snowplow": [ + "A snowplow has a large metal blade in front and is typically mounted on a truck or tractor for clearing snow.", + "A snowplow is a large vehicle with a wide metal blade in front used to clear snow from roads and pathways.", + "A snowplow has a large angled blade in front and often a cab with bright lights for clearing snow from roads.", + "A large angled blade at the front for pushing snow is unique to a snowplow." + ], + "soap dispenser": [ + "A soap dispenser is typically a plastic or glass bottle with a pump or lever to release liquid soap.", + "A soap dispenser is typically a bottle with a pump or push top often labeled and placed near sinks.", + "A soap dispenser has a pump or push mechanism on top of a bottle often labeled and designed for liquid soap.", + "Soap dispensers typically have a pump or nozzle for dispensing liquid and a container often shaped like a bottle or cylinder." + ], + "soccer ball": [ + "Soccer balls have distinctive black and white pentagon patterns while other balls are usually solid or have different designs.", + "A soccer ball is typically round with black and white pentagon or hexagon patches arranged in a distinctive pattern.", + "A soccer ball has a distinctive pattern of black and white pentagons and hexagons arranged in a spherical shape.", + "A soccer ball has a distinctive black and white hexagonal pattern with a spherical shape and uniform size." + ], + "sock": [ + "A sock is a soft, stretchy tube-shaped fabric item worn on feet, often colorful or patterned, and smaller than pants or shirts.", + "Socks are typically soft, stretchy, tubular, and often have patterns or colors, unlike rigid or solid-shaped objects.", + "Socks are soft, stretchy, tubular fabric items typically worn on feet, often with colorful patterns or plain designs.", + "Socks are typically soft, stretchy, tubular fabrics worn on feet, often with patterns, ribbing, or heel and toe shaping." + ], + "solar thermal collector": [ + "Solar thermal collectors are flat or curved panels with dark surfaces, often glass-covered, and connected to pipes for fluid circulation.", + "Solar thermal collectors are flat or tubular panels with reflective surfaces and pipes, unlike typical roofs or boxes which lack these features.", + "Solar thermal collectors have flat or curved reflective panels with tubes or channels designed to absorb and transfer heat from sunlight.", + "A solar thermal collector typically appears as a flat rectangular panel or curved tube array often mounted on rooftops or open ground." + ], + "sombrero": [ + "A sombrero has a wide brim and high pointed crown, unlike hats with smaller brims or flat tops.", + "A sombrero is a wide-brimmed, high-crowned hat often colorful and decorated commonly associated with Mexican culture.", + "A sombrero is recognized by its wide brim high pointed crown and often colorful decorative patterns.", + "A sombrero has an exceptionally wide brim that is much larger than typical hats." + ], + "soup bowl": [ + "Soup bowls are typically round deep dishes with high sides designed to hold liquid meals unlike plates or shallow bowls.", + "A soup bowl is typically round, deep, and has a wide opening with a flat base, often made of ceramic or porcelain.", + "A soup bowl is typically round deep and wide with a rim often made of ceramic or porcelain and holds liquid food.", + "A soup bowl is a deep round dish with a wide opening and often has handles or a rim for holding hot liquids." + ], + "keyboard space bar": [ + "The keyboard space bar is a long narrow rectangular key typically wider than other keys on a keyboard.", + "The keyboard space bar is a long flat rectangular key while other objects vary widely in shape size and texture.", + "The keyboard space bar is a long rectangular key typically wider than other keys and often blank or labeled with space.", + "The keyboard space bar is a long rectangular key often centered at the bottom with a smooth flat surface." + ], + "space heater": [ + "A space heater is a small, boxy or cylindrical device with vents or coils, often on wheels or with a handle.", + "Space heaters are compact, often boxy or cylindrical, with visible heating elements or grilles and sometimes a fan for air circulation.", + "Space heaters are typically compact, boxy, or cylindrical with visible heating elements or grilles, unlike most household objects.", + "Space heaters are typically small boxy or cylindrical devices with grilles or vents and often have visible heating elements or coils inside." + ], + "space shuttle": [ + "A space shuttle is a large winged spacecraft with a cylindrical body, rocket boosters, and external fuel tanks.", + "A space shuttle has wings and a large cylindrical fuel tank unlike rockets which are long and thin without wings.", + "A space shuttle has a white body with black wing edges and a large external fuel tank with two solid rocket boosters.", + "The space shuttle has a distinct winged shape with attached external fuel tanks and solid rocket boosters during launch." + ], + "spatula": [ + "A spatula is a flat thin utensil with a broad blade and a handle used for lifting or flipping food.", + "A spatula has a flat wide blade and a long handle unlike spoons or knives which are curved or sharp.", + "A spatula has a flat wide blade with a long handle used for lifting or flipping food making it easily recognizable.", + "A spatula has a flat wide blade with a thin edge for lifting or flipping food." + ], + "motorboat": [ + "A motorboat is a sleek, streamlined watercraft with an engine, propeller, and often a pointed bow for cutting through waves.", + "Motorboats have a streamlined hull, an outboard or inboard motor, and often a windshield or seating area on a small watercraft.", + "Motorboats are long with a pointed front, an open or enclosed cabin, and an outboard motor at the rear.", + "Motorboats are sleek, elongated watercraft with an engine at the rear, often featuring a pointed bow and seating area." + ], + "spider web": [ + "A spider web is a delicate, intricate network of thin, silky threads woven in circular or irregular patterns to catch prey.", + "Spider webs are thin silky threads forming delicate tangled or symmetrical patterns often found in corners or between objects.", + "Spider webs have delicate, intricate, silky threads forming patterns, unlike solid or dense objects like leaves or rocks.", + "Spider webs have delicate, symmetrical, silky threads forming intricate radial or spiral patterns often seen between surfaces like trees or corners." + ], + "spindle": [ + "A spindle is a slender, rod-shaped tool typically tapered at both ends, unlike broader or irregularly shaped objects.", + "A spindle is a slender rod or pin that tapers at both ends, often used for spinning or holding materials.", + "A spindle is a slender rod with tapered ends used for spinning or holding materials like thread or yarn.", + "A spindle is a slender rod with tapered ends often used for spinning or holding thread or yarn." + ], + "sports car": [ + "Sports cars are recognized by their low sleek body aggressive styling two doors and powerful engine appearance.", + "Sports cars are low sleek fast vehicles with two doors and a sporty design unlike larger or boxier everyday cars.", + "Sports cars are low sleek fast vehicles with two doors aggressive styling and often bright colors or shiny paint.", + "A sports car is a sleek low fast two-door vehicle with a powerful engine and aerodynamic design often brightly colored." + ], + "spotlight": [ + "A spotlight is a bright focused light beam while other objects are solid and reflect or emit light differently.", + "A spotlight is recognized by its intense focused beam of light often used to highlight or illuminate specific areas or objects.", + "A spotlight is a bright focused beam of light often seen in theaters or events highlighting specific areas or objects.", + "A spotlight is a bright, focused light with a distinct beam often mounted on a stand or attached to ceilings." + ], + "stage": [ + "A stage is typically flat, elevated, and open with clear boundaries designed for visibility and performance from all angles.", + "A stage is a raised platform used for performances, often with curtains, lights, and open space for actors or presenters.", + "A stage is uniquely defined by its elevated flat platform designed for performances and presentations.", + "Look for raised platforms with curtains, lights, and seating arranged to face the performance area." + ], + "steam locomotive": [ + "A steam locomotive is a large, heavy metal train with a smokestack, wheels, and a boiler, often black and emitting steam.", + "Steam locomotives have a large smokestack, cylindrical boiler, wheels with connecting rods, and often a tender car carrying coal or water.", + "Steam locomotives have a large boiler, smokestack, and wheels connected by rods, unlike most vehicles or machinery.", + "A steam locomotive has a large cylindrical boiler, smokestack, wheels with connecting rods, and often a tender car carrying coal or water." + ], + "through arch bridge": [ + "A through arch bridge has a distinctive arch above the deck that supports the structure while allowing clearance underneath.", + "An through arch bridge has a distinctive arch above the deck with supports connecting it to the roadway below.", + "A through arch bridge has a distinctive design where the deck passes between two large arch supports rising above it.", + "A through arch bridge has a distinctive design with the arch above the deck and supporting cables or beams visible below it." + ], + "steel drum": [ + "Steel drums have a shiny cylindrical metal body with a concave top and distinct ridges for tuning.", + "A steel drum is a shiny cylindrical metal container with a flat top and bottom, often ribbed or grooved for strength.", + "A steel drum has a shiny metallic cylindrical shape with concave surfaces, unlike most objects which are flat or irregularly shaped.", + "A steel drum is a large cylindrical metal container with a flat top and bottom, often used for storing liquids or goods." + ], + "stethoscope": [ + "A stethoscope has a long flexible tube with a chest piece and earpieces unlike most medical tools which are rigid or handheld.", + "A stethoscope is a long flexible tube with earpieces and a small round chest piece used for listening to body sounds.", + "A stethoscope has a distinctive Y-shaped tube with dual earpieces and a chest piece for listening to body sounds.", + "A stethoscope has a Y-shaped tube with earpieces and a round chest piece often made of metal and rubber." + ], + "scarf": [ + "Scarves are long and flexible fabric pieces worn around the neck unlike other clothing items which are rigid or shaped differently.", + "A scarf is a long flexible fabric piece often wrapped around the neck with patterns or fringes for warmth or style.", + "A scarf is a long, narrow piece of fabric worn around the neck for warmth or style, often colorful or patterned.", + "Scarves are long, thin, flexible fabrics often wrapped around the neck or head with varied patterns and textures." + ], + "stone wall": [ + "A stone wall is identified by its rough, uneven surface made of stacked or fitted natural stones, often gray or brown.", + "Stone walls are rough, uneven, and made of stacked or cemented rocks unlike smoother, uniform materials like wood or brick walls.", + "A stone wall is a sturdy, rough-textured barrier made of stacked or mortared rocks, often gray or brown, commonly found in rural or historic settings.", + "Stone walls are recognized by their rough uneven texture stacked rock layers and natural earthy colors." + ], + "stopwatch": [ + "A stopwatch is a small handheld device with a digital or analog display, buttons, and a strap for timing events precisely.", + "A stopwatch has a round face with buttons on top and a digital or analog display for timing unlike clocks or phones.", + "A stopwatch has a round face with numbered dials, buttons for timing functions, and often a wrist strap or stand.", + "A stopwatch has a round face with numbers, buttons on top, and a strap or stand for holding or propping it up." + ], + "stove": [ + "A stove has a flat cooking surface with burners or heating elements and control knobs or buttons for temperature adjustment.", + "A stove is a kitchen appliance with a flat cooking surface and burners or heating elements, often made of metal and glass.", + "A stove typically has a flat cooking surface with burners or heating elements and control knobs on the front or top.", + "A stove has burners or heating elements on a flat surface specifically designed for cooking food." + ], + "strainer": [ + "A strainer has a mesh or perforated surface with small holes for filtering liquids while keeping solids inside.", + "A strainer has a mesh or perforated surface to filter liquids, unlike solid bowls or spoons that lack holes.", + "A strainer has a mesh or perforated surface allowing liquids to pass while retaining solids inside.", + "A strainer has a mesh or perforated surface with holes to filter liquids while keeping solids inside, often with a handle." + ], + "tram": [ + "Trams are long rail vehicles with multiple connected carriages running on fixed tracks in urban areas.", + "Trams are long boxy vehicles with multiple windows running on fixed rails often seen in urban streets.", + "A tram is a rail vehicle that runs on city streets, resembling a bus but longer and connected to overhead electric wires.", + "Trams are long narrow vehicles with multiple connected sections running on fixed tracks unlike buses or cars." + ], + "stretcher": [ + "A stretcher has a long flat frame with handles and often fabric or straps for carrying injured or immobile people.", + "A stretcher is a long flat frame with handles used for carrying injured or sick people, resembling a portable bed.", + "A stretcher is a long flat frame with handles used for carrying people, unlike similar objects which are usually rigid or lack handles.", + "A stretcher is a long flat frame with handles used for carrying the sick or injured, typically made of canvas and metal poles." + ], + "couch": [ + "Couches are long padded seats with a backrest and often armrests designed for multiple people to sit on comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit on comfortably.", + "A couch is a long padded seat for multiple people with a backrest, unlike chairs or stools which are smaller and often lack padding." + ], + "stupa": [ + "A stupa is a dome-shaped Buddhist shrine with a spire, distinct from other objects by its religious and architectural design.", + "A stupa is a dome-shaped Buddhist shrine with a pointed top, often decorated and surrounded by intricate carvings or gates.", + "A stupa is a dome-shaped Buddhist shrine with a pointed spire often decorated with intricate carvings and surrounded by a fence.", + "A stupa is recognized by its dome-shaped structure often topped with a spire and surrounded by decorative gates or railings." + ], + "submarine": [ + "A submarine is long and tubular with a pointed front, smooth hull, and often has a conning tower or periscope on top.", + "Submarines are long cylindrical vessels with a conning tower and propellers, unlike most objects which have varied irregular shapes.", + "A submarine has a distinctive elongated cylindrical hull with a conning tower and often visible propellers or fins.", + "Submarines are long cylindrical vessels with a conning tower, smooth hull, and often visible propellers or fins underwater." + ], + "suit": [ + "A suit is a formal garment with a jacket and matching trousers or skirt, typically made of smooth, tailored fabric in solid colors.", + "A suit is a formal set of matching jacket and trousers or skirt made from fine fabric, often worn for professional or elegant occasions.", + "A suit is a formal outfit with matching jacket and trousers, often in dark colors, unlike casual or sporty clothing.", + "A suit is uniquely identified by its tailored jacket and matching trousers or skirt in formal fabric." + ], + "sundial": [ + "A sundial is a flat or curved surface with marked lines and a raised pointer that casts shadows to show time.", + "A sundial has a flat or curved surface with marked hours and a gnomon that casts a shadow to tell time.", + "A sundial has a flat dial with marked hours and a raised gnomon that casts a shadow to indicate time.", + "A sundial has a flat surface with marked hours and a raised gnomon that casts a shadow to show time." + ], + "sunglasses": [ + "Sunglasses are recognized by their dark tinted lenses and frames that cover the eyes and often the sides of the face.", + "Sunglasses are identified by their dark lenses, thin frames, and symmetrical shape often worn over the eyes.", + "Sunglasses are dark or tinted eyewear with two lenses and frames designed to protect eyes from sunlight.", + "Sunglasses have dark tinted lenses and frames designed to cover eyes while other objects lack these specific eye-covering features." + ], + "sunscreen": [ + "Sunscreen typically appears as a small tube or bottle with bright colors and labels mentioning SPF or sun protection.", + "Sunscreen often has a distinctive bright white or colored thick creamy texture in a tube or bottle with sun protection labels.", + "Sunscreen typically appears as small bottles or tubes with bright labels often found near beach or skincare products.", + "Sunscreen is recognized by its tube or bottle shape, bright colors, and labels with sun or SPF symbols." + ], + "suspension bridge": [ + "Suspension bridges have long spans with tall towers and cables hanging in curves supporting the roadway below.", + "Suspension bridges have long spans with tall towers and cables supporting the roadway below.", + "Suspension bridges have tall towers, long main cables, and a hanging deck, unlike other bridges or objects which lack these features.", + "Suspension bridges have long main spans hanging from vertical cables anchored to massive towers and supported by thick main cables." + ], + "mop": [ + "A mop has a long handle with absorbent strands or a sponge at the bottom unlike brooms or brushes which have stiff bristles.", + "A mop has a long handle with a bundle of absorbent strands or a sponge at the bottom for cleaning floors.", + "A mop has long strands or fibers attached to a handle designed for soaking up and wiping liquids.", + "A mop typically has a long handle with a bundle of absorbent strings or sponge at the bottom for cleaning floors." + ], + "sweatshirt": [ + "Sweatshirts are recognized by their soft fabric, long sleeves, ribbed cuffs, and often a hood or front pocket.", + "A sweatshirt is a soft, loose, long-sleeved pullover typically made of thick cotton fabric, often with a hood and ribbed cuffs.", + "Sweatshirts are typically soft, thick, and have a loose fit with long sleeves, often featuring a hood or a crewneck design.", + "A sweatshirt is a soft, thick, collarless pullover with long sleeves, often made of cotton and sometimes featuring a hood or front pocket." + ], + "swim trunks / shorts": [ + "Swim trunks are short quick-drying fabric garments with elastic waistbands often featuring bright colors or patterns.", + "Swim trunks are short loose-fitting quick-drying pants designed for swimming often in bright colors or patterns with elastic waistbands.", + "Swim trunks are lightweight quick-drying shorts with bright colors patterns elastic waistbands and often a mesh lining for swimming.", + "Swim trunks are lightweight quick-drying shorts with vibrant patterns and mesh linings designed for water activities unlike regular shorts." + ], + "swing": [ + "Look for a hanging or suspended part that moves freely back and forth or side to side when pushed or pulled.", + "A swing has a seat suspended by ropes or chains from a frame allowing back and forth motion.", + "A swing typically has a seat suspended by ropes or chains from a frame, allowing it to move back and forth freely.", + "A swing has a hanging seat suspended by ropes or chains that moves back and forth when pushed." + ], + "electrical switch": [ + "An electrical switch is a small rectangular device with a toggle or button, often mounted on walls to control power.", + "Electrical switches are small rectangular or square devices with buttons or toggles, often mounted on walls with visible screws.", + "Electrical switches are small rectangular devices with a toggle or button, often mounted on walls, featuring visible on-off markings or positions.", + "The unique visual cue for an electrical switch is a small rectangular plate with a toggle or rocker mechanism." + ], + "syringe": [ + "A syringe has a narrow tube with a plunger and needle, unlike most objects which are bulkier and lack these precise medical features.", + "A syringe is a slender tube with a plunger and a needle tip used for injecting or withdrawing fluids.", + "A syringe is a slender tube with a plunger and needle used for injecting or withdrawing fluids from the body.", + "A syringe has a hollow needle attached to a cylindrical tube with a plunger for injecting or withdrawing fluids." + ], + "table lamp": [ + "A table lamp is a small lighting fixture with a base, stem, and shade designed to sit on tables or desks.", + "A table lamp is a small light fixture with a base, stem, and shade, often placed on desks or bedside tables.", + "A table lamp has a base, a stem, and a shade designed to direct light upward or downward from a flat surface.", + "Table lamps have a base, a stem, and a shade, often with a bulb inside, making them distinct from other household objects." + ], + "tank": [ + "Tanks have long barrels, heavy armor, and treads unlike trucks or cars which have wheels and lighter frames.", + "A tank is a large armored military vehicle with tracks, a long gun barrel, and a heavy, boxy metal body.", + "A tank has a long gun barrel, armored tracks, a large rectangular body, and often a turret on top.", + "A tank is a large armored military vehicle with tracks, a rotating turret, and a long gun barrel for firing shells." + ], + "tape player": [ + "A tape player is a rectangular device with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player typically has a rectangular shape with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player has a rectangular shape with buttons, a cassette slot, and often a handle or speakers for easy recognition.", + "A tape player has a rectangular slot for inserting cassette tapes with visible reels inside." + ], + "teapot": [ + "A teapot is a small pot with a handle, spout, and lid, typically made of ceramic or metal, used for brewing tea.", + "A teapot has a rounded body, a spout, a handle, and a lid, distinguishing it from other containers like cups or pitchers.", + "A teapot has a rounded body, a spout for pouring, a handle for holding, and a lid on top.", + "Teapots typically have a spout handle and lid while similar objects like kettles or pitchers may lack one or more of these features." + ], + "teddy bear": [ + "A teddy bear is a soft, plush toy with a round body, small limbs, and a friendly face, often brown or pastel-colored.", + "Teddy bears have soft fuzzy fabric, round ears, stubby limbs, a plump body, and a friendly face with small eyes and nose.", + "Teddy bears are soft plush toys with round shapes, small ears, button eyes, and a friendly face resembling a bear.", + "Teddy bears are soft plush toys with round shapes and friendly faces, unlike hard or angular objects like furniture or tools." + ], + "television": [ + "A television is a rectangular screen with a thin frame, often mounted on a stand or wall, displaying moving images and sound.", + "A television is a flat rectangular screen with a thin frame often mounted on a stand or hung on a wall.", + "Televisions have flat rectangular screens with thin bezels and often a stand or wall mount unlike most other objects.", + "Televisions have a large rectangular screen with a thin frame often mounted on a stand or hung on a wall." + ], + "tennis ball": [ + "A tennis ball is bright yellow-green, fuzzy, and uniformly round with a visible seam, unlike most other balls.", + "A tennis ball has a bright yellow-green color with a fuzzy texture and distinctive white curved lines.", + "A tennis ball is bright yellow-green with a fuzzy texture and distinctive white curved lines forming a seam.", + "A tennis ball is bright yellow-green, fuzzy, small, round, and has a distinct white curved line seam." + ], + "thatched roof": [ + "A thatched roof has a rough, textured surface made of dried straw or reeds, unlike smoother or solid materials like tiles or metal.", + "Thatched roofs have a thick, rough texture with uneven, overlapping straw or reeds creating a distinctive natural and rustic appearance.", + "A thatched roof is a rustic, textured roof made of dried straw or reeds, often appearing golden and uneven compared to smoother modern roofs.", + "A thatched roof has a distinctive thick layered texture made of dry vegetation like straw or reeds tightly bundled together." + ], + "front curtain": [ + "Front curtains are typically made of fabric, hang vertically, and often cover windows or doorways unlike other objects which vary widely in material and purpose.", + "A front curtain is a fabric panel that hangs at the window's top edge, often decorative and used for privacy or light control.", + "Front curtains are long fabric panels that hang vertically often with pleats and are typically found framing windows or stages.", + "Look for a decorative fabric panel hanging at the top of a window often with folds and a gathered or pleated design." + ], + "thimble": [ + "A thimble is a small metal or plastic cap worn on the finger, unlike most objects which are larger and not finger-sized.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble has a small, deep cup shape with dimpled texture specifically designed to fit on a fingertip for sewing." + ], + "threshing machine": [ + "A threshing machine has rotating drums or beaters that separate grain from stalks, a feature distinct to agricultural processing equipment.", + "A threshing machine has a large, boxy frame with rotating drums or beaters to separate grain from stalks and often has a funnel-shaped intake.", + "A threshing machine is larger, has a complex mechanical structure with belts and gears, and often includes a conveyor or hopper.", + "A threshing machine is a large farm device with belts, wheels, and a hopper for separating grain from stalks." + ], + "throne": [ + "A throne is a large ornate chair often elevated with intricate designs symbolizing power and authority for royalty or leaders.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority or royalty.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority unlike simpler regular chairs.", + "A throne is recognized by its ornate high back, armrests, elevated seat, and regal decorations symbolizing authority and power." + ], + "tile roof": [ + "A tile roof is a sloped roof covered with overlapping curved or flat tiles, typically made of clay or concrete.", + "Tile roofs have overlapping rows of flat or curved clay or concrete pieces arranged in a distinctive repeating pattern.", + "Tile roofs have overlapping rows of flat rectangular tiles with visible edges and a slightly wavy or uniform pattern.", + "Tile roofs have overlapping curved or flat rectangular tiles arranged in rows creating a distinctive textured and layered surface pattern." + ], + "toaster": [ + "A toaster is a small rectangular kitchen appliance with slots on top to insert bread and a lever to lower it.", + "A toaster is a small boxy appliance with slots on top for bread and a lever to lower and raise the slices.", + "A toaster has a rectangular metal body with slots for bread and a lever to lower and raise slices for toasting.", + "A toaster is a small box with slots for bread and a lever, unlike other kitchen appliances which have different shapes and functions." + ], + "tobacco shop": [ + "Tobacco shops often display cigars, pipes, cigarette packs, and signage with tobacco brands in their windows or on shelves.", + "Tobacco shops are recognized by shelves of cigarette packs, cigars, rolling papers, and often a counter with a cash register.", + "Tobacco shops typically display cigarettes, cigars, and pipes in glass cases with branded logos and colorful packaging unlike other stores.", + "A tobacco shop typically features shelves of cigarettes, cigars, pipes, lighters, and often a counter with a cash register." + ], + "toilet seat": [ + "A toilet seat is an oval or round openable lid with a smooth surface and a hinge, typically found above a toilet bowl.", + "A toilet seat is typically oval or round, smooth, white or light-colored, and attached to a toilet bowl.", + "A toilet seat is a curved oval or round shape with a hinge, typically white or light-colored, designed to fit over a toilet bowl.", + "A toilet seat is a curved, often white or beige, oval or round ring attached to a toilet bowl for sitting." + ], + "torch": [ + "A torch is a handheld light source with a long narrow body and a bright flame or bulb at one end.", + "A torch is recognized by its elongated shape, flame or light source at one end, and often a handle or grip.", + "A torch is a handheld light source with a flame or bulb, while other objects vary widely in shape, function, and lack a light-emitting feature.", + "A torch is a handheld light source with a flame or bright bulb, often cylindrical and distinct among objects for its glowing tip." + ], + "totem pole": [ + "Totem poles are tall wooden carvings with stacked faces or figures, unlike shorter plain poles or single sculptures.", + "Totem poles are tall wooden carvings with stacked faces or figures, often brightly painted and featuring symbolic animal or human designs.", + "Totem poles are tall wooden carvings with stacked symbolic figures and faces often painted in bold colors.", + "A totem pole is a tall wooden carving with stacked animal and human figures, often painted in bright colors." + ], + "tow truck": [ + "Tow trucks have a large hook or winch on the back and often a sloped bed for lifting vehicles.", + "A tow truck is a large vehicle with a boom or flatbed used to lift and transport disabled or illegally parked cars.", + "A tow truck has a large metal boom or flatbed for lifting vehicles, unlike regular trucks which lack these towing features.", + "A tow truck has a large extended metal boom with a hook or winch at the end for lifting vehicles." + ], + "toy store": [ + "Toy stores are recognized by shelves filled with colorful toys, playful displays, and often a mix of stuffed animals and action figures.", + "Toy stores are filled with colorful shelves displaying various small playful items like dolls, games, and toys in a bright inviting setup.", + "A toy store is filled with colorful shelves displaying various toys like dolls, action figures, board games, and stuffed animals.", + "A toy store is colorful with shelves full of small bright toys like dolls cars and stuffed animals arranged neatly." + ], + "tractor": [ + "Tractors have large wheels, a heavy metal frame, and often a front loader or plow unlike most vehicles or machinery.", + "A tractor is a large, heavy vehicle with big rear wheels, a small front cabin, and often a hitch or plow attachment.", + "Tractors have large rugged wheels a distinct cab and often a front loader or rear hitch for heavy-duty farming tasks.", + "Tractors have large rear wheels, a small front cabin, and often a hitch or attachment at the back for farming equipment." + ], + "semi-trailer truck": [ + "A semi-trailer truck is a large vehicle with a tractor unit pulling a long detachable trailer for hauling freight.", + "A semi-trailer truck has a large boxy trailer attached to a powerful cab with multiple axles and no rear doors.", + "A semi-trailer truck has a large rectangular trailer attached to a cab, unlike smaller vehicles or single-unit trucks.", + "Semi-trailer trucks are recognized by their long rectangular trailers attached to a powerful cab with multiple axles and large wheels." + ], + "tray": [ + "A tray is a flat shallow container with raised edges used for carrying or holding items.", + "A tray is a flat shallow container with raised edges often rectangular or round used for carrying items.", + "A tray is a flat, shallow container with raised edges used to hold or carry items like food, dishes, or small objects.", + "A tray is typically flat with raised edges to hold items unlike plates or bowls which are deeper and cups which have handles." + ], + "trench coat": [ + "A trench coat is a long waterproof coat with a belt and deep pockets typically made from heavy fabric.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has shoulder straps and deep pockets.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has deep pockets and shoulder straps.", + "A trench coat is a long waterproof coat with a belt and deep pockets, unlike shorter or non-waterproof jackets and coats." + ], + "tricycle": [ + "A tricycle is a three-wheeled vehicle with a seat, handlebars, and pedals, typically smaller and simpler than a bicycle.", + "Tricycles have three wheels, a seat, and handlebars, distinguishing them from bicycles with two wheels or wagons without handlebars.", + "A tricycle has three wheels arranged in a stable triangular configuration unlike bicycles or other wheeled vehicles.", + "A tricycle has three wheels, a seat, handlebars, and pedals, often with a small frame and is larger than a toy but smaller than a car." + ], + "trimaran": [ + "A trimaran has three parallel hulls, unlike most boats which have one or two, making it wider and more stable in water.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls for stability and speed.", + "A trimaran has three distinct parallel hulls with a main central hull and two smaller outrigger hulls.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls on each side." + ], + "tripod": [ + "A tripod is a three-legged stand with a central mount, often used to support cameras or other equipment.", + "A tripod has three long legs extending from a central point, often with adjustable height and a mounting platform for cameras or equipment.", + "A tripod has three evenly spaced legs extending from a central point to provide stable support.", + "A tripod has three long legs and a central mount, unlike most objects which are solid or have different shapes and supports." + ], + "triumphal arch": [ + "A triumphal arch is a large freestanding stone monument with a curved or flat top, unlike buildings or bridges.", + "A triumphal arch is a large monumental structure with a curved or square top, often decorated with sculptures and inscriptions.", + "A triumphal arch is a large monumental structure with a curved or square top and often features intricate carvings and inscriptions.", + "A triumphal arch is recognized by its large arched structure, often decorated with columns and sculptures, standing as a monumental gateway." + ], + "trolleybus": [ + "Trolleybuses have dual overhead poles connecting to power lines unlike other vehicles.", + "A trolleybus looks like a bus but has two overhead poles connecting to electric wires for power unlike regular buses or trams.", + "A trolleybus looks like a large bus with overhead poles connecting to power lines for electricity.", + "A trolleybus looks like a large electric bus with overhead poles connecting to power lines for energy." + ], + "trombone": [ + "A trombone is a long brass instrument with a sliding tube and flared bell, distinct among objects for its shiny curved shape.", + "A trombone has a long slide and a flared bell, unlike most brass instruments which use valves and have fixed tubing lengths.", + "A trombone has a long sliding tube and a flared bell making it distinct from other brass instruments.", + "The trombone has a long sliding U-shaped tube that adjusts pitch by moving in and out." + ], + "hot tub": [ + "A hot tub is a large round or square water-filled tub with seats and jets often made of wood or acrylic.", + "A hot tub is a large, round or oval water-filled tub with seating, jets, and often a cover, unlike smaller or non-water containers.", + "A hot tub is recognized by its large, round or oval water-filled basin with jets, often surrounded by seating and a rim.", + "A hot tub resembles a large round or square basin filled with water, often with seats and jets, typically made of acrylic or wood." + ], + "turnstile": [ + "A turnstile is a rotating gate with horizontal arms that allows one person to pass at a time.", + "A turnstile is a rotating barrier with horizontal arms that lets people pass one at a time unlike doors or gates.", + "A turnstile is a rotating gate with horizontal bars that allows one person to pass at a time when pushed.", + "Turnstiles have rotating horizontal bars or arms that allow one person to pass at a time, often seen in entryways or transit areas." + ], + "typewriter keyboard": [ + "A typewriter keyboard is a rectangular array of raised black and white keys with letters and symbols.", + "A typewriter keyboard has rows of raised round keys with letters and symbols arranged in a rectangular metal or plastic frame.", + "A typewriter keyboard has raised rectangular keys with letters arranged in rows and a metal frame often with visible mechanical parts.", + "A typewriter keyboard has rows of raised, round keys with letters and symbols, often metallic, while other objects vary in shape and texture." + ], + "umbrella": [ + "An umbrella has a curved handle with a central pole supporting a canopy of fabric or material that opens for rain protection.", + "An umbrella is a handheld canopy with a central rod and fabric stretched over ribs to shield from rain or sun.", + "An umbrella has a curved canopy with ribs and a central pole, often with a handle, designed to shield from rain or sun.", + "A canopy of fabric or material stretched over a folding frame supported by a central pole." + ], + "unicycle": [ + "A unicycle has a single wheel with no handlebars or additional wheels unlike bicycles or other wheeled objects.", + "A unicycle is a single-wheeled vehicle with a seat and pedals, resembling a bicycle but with only one wheel.", + "A unicycle has a single wheel with a seat and pedals, lacking handlebars or extra wheels like bicycles.", + "A unicycle has a single wheel with a seat and pedals, unlike bicycles with two wheels or scooters with handlebars and a platform." + ], + "upright piano": [ + "An upright piano is a tall rectangular musical instrument with black or white keys and a vertical wooden frame.", + "An upright piano is tall and rectangular with a vertical front panel and keys, unlike shorter or differently shaped furniture and instruments.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top." + ], + "vacuum cleaner": [ + "Vacuum cleaners typically have a long hose or tube, a dust collection bag or canister, and wheels for mobility unlike most other objects.", + "Vacuum cleaners typically have a long hose, a dust collection bag or canister, wheels, and a handle for pushing or pulling.", + "A vacuum cleaner typically has a long handle, a body with a motor, and a nozzle or brush for sucking up dirt.", + "A vacuum cleaner typically has a long hose, a dust collection bag or canister, and wheels for moving around on floors." + ], + "vase": [ + "A vase is typically a tall hollow container with a narrow neck and open top often decorated and made of glass or ceramic.", + "A vase is a tall hollow container with a base and often a narrow neck used to hold flowers or as decoration.", + "A vase is typically tall with a narrow neck and open top designed to hold flowers distinguishing it from similar containers.", + "Vases are typically tall hollow containers with an open top designed to hold flowers unlike bowls or jars which are shorter and wider." + ], + "vaulted or arched ceiling": [ + "Vaulted or arched ceilings have a curved upward shape creating an open spacious interior with visible structural ribs or smooth continuous curves.", + "A vaulted or arched ceiling is a curved or domed roof structure that rises upward creating an open and spacious interior feel.", + "Look for a curved or dome-shaped top on ceilings that rise upward in a smooth arch rather than being flat.", + "Vaulted ceilings have curved upward shapes forming arches while other objects typically have flat or straight surfaces." + ], + "velvet fabric": [ + "Velvet fabric has a soft, smooth texture with a distinctive sheen that changes when brushed in different directions.", + "Velvet fabric has a soft, smooth texture with a distinctive sheen that reflects light differently than most other fabrics.", + "Velvet fabric is a soft, smooth textile with a dense, even pile that gives it a luxurious, slightly shiny appearance.", + "Velvet fabric has a soft, dense pile with a smooth, shiny surface that reflects light differently from other fabrics." + ], + "vending machine": [ + "A vending machine is a tall rectangular box with buttons, a display, and a slot to dispense items like snacks or drinks.", + "Vending machines are typically rectangular with a glass front displaying items and buttons or a keypad for selection.", + "A vending machine is a tall rectangular box with a glass front displaying items and buttons or a touchscreen for selection.", + "Vending machines are boxy with a front panel displaying products, buttons, a coin slot, and a dispensing tray at the bottom." + ], + "vestment": [ + "Vestments are distinguished by their flowing fabric, ornate designs, and ceremonial appearance often associated with religious or formal rituals.", + "Vestments are ceremonial robes or garments, often ornate and flowing, typically worn by clergy during religious services or rituals.", + "Vestments are long flowing robes with intricate designs, often in religious contexts, unlike everyday clothing or plain garments.", + "Vestments are long flowing garments often with intricate designs and rich fabrics worn by clergy during religious ceremonies." + ], + "viaduct": [ + "A viaduct is a long elevated bridge with multiple arches or spans, unlike shorter or simpler bridges or non-elevated structures.", + "A viaduct is a long elevated bridge with multiple arches or spans, typically carrying roads or railways over valleys or other obstacles.", + "A viaduct is a long elevated bridge with multiple arches or spans, often carrying roads or railways over valleys or other obstacles.", + "A viaduct is recognized by its long elevated structure with multiple arches or spans carrying roads or railways over valleys or obstacles." + ], + "violin": [ + "A violin is a wooden string instrument with an hourglass shape, a long neck, and four strings played with a bow.", + "A violin has a slender wooden body with curved sides, strings, and a neck, unlike bulkier or differently shaped objects.", + "The violin has a distinctive hourglass shape with a narrow waist and curved sides unlike most other objects.", + "A violin has a hollow wooden body with an hourglass shape, four strings, a long neck, and is played with a bow." + ], + "volleyball": [ + "A volleyball is a round white ball with black or colored panels and stitching, slightly larger than a basketball.", + "A volleyball is a spherical ball with white, hexagonal and pentagonal panels often seen in mid-air during a game.", + "Volleyballs are round with a smooth or pebbled surface and often have colorful panels or stripes unlike other sports balls.", + "A volleyball is a round white ball with black or colored panels arranged in a symmetrical pattern." + ], + "waffle iron": [ + "A waffle iron is a metal kitchen appliance with two hinged plates that create a grid pattern on cooked waffles.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create textured waffles when heated.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create waffles unlike flat pans or smooth appliances.", + "A waffle iron has a hinged metal griddle with deep square or honeycomb patterns to create the distinct waffle shape." + ], + "wall clock": [ + "A wall clock is round or square with numbers or marks and hands or a digital display on a flat surface.", + "Wall clocks are flat round or square objects with numbers and hands mounted on walls unlike other clocks or decorative items.", + "A wall clock is a round or square object with numbers and hands, hanging on a wall to show time.", + "A wall clock has a circular face with numbers or marks and moving hands to indicate time mounted on a wall." + ], + "wallet": [ + "Wallets are small flat pouches typically made of leather or fabric designed to hold money and cards unlike bulkier bags or containers.", + "A wallet is a small flat case typically made of leather or fabric used to hold money cards and personal items.", + "A wallet is a small flat rectangular pouch often made of leather or fabric with slots for cards and cash.", + "Wallets are small flat rectangular objects often made of leather or fabric with slots for cards and a foldable design." + ], + "wardrobe": [ + "A wardrobe is a tall rectangular furniture piece with doors, often wooden, used for storing clothes and other items.", + "A wardrobe is a tall wooden cabinet with doors and shelves used for storing clothes and other personal items.", + "A wardrobe is a tall freestanding closet with doors and shelves for storing clothes unlike smaller or open storage furniture.", + "A wardrobe is a tall rectangular furniture piece with doors, shelves, and often mirrors, used for storing clothes and other items." + ], + "military aircraft": [ + "Military aircraft have sleek streamlined bodies wings mounted low or high and often display camouflage or military markings like stars or roundels.", + "Military aircraft typically have sleek streamlined bodies wings and tails with camouflage or gray coloring and visible weapon mounts or insignia.", + "Military aircraft are large winged vehicles with sleek designs often featuring camouflage colors and visible weaponry or insignia.", + "Military aircraft have sleek angular designs, camouflage colors, visible weaponry, and distinct insignias for quick identification in combat scenarios." + ], + "sink": [ + "A sink is typically a basin with faucets and drains often made of porcelain metal or ceramic found in kitchens or bathrooms.", + "A sink is a basin with faucets for washing, typically made of porcelain or stainless steel, often found in kitchens or bathrooms.", + "Sinks typically have a basin and faucet, unlike other objects which lack water fixtures and drainage features.", + "A sink has a basin with a faucet and drain, often set in a countertop or wall, used for washing hands or dishes." + ], + "washing machine": [ + "Washing machines are large rectangular appliances with round doors and control panels often found in laundry rooms or kitchens.", + "Washing machines are typically large rectangular appliances with round doors and control panels unlike most other household objects.", + "A washing machine is a large rectangular appliance with a round door on the front and control buttons or dials on top.", + "A washing machine has a large round door on its front for loading clothes unlike other appliances." + ], + "water bottle": [ + "Water bottles are typically cylindrical with a cap, often transparent or colored, and have a narrow neck for drinking.", + "A water bottle is typically a tall cylindrical container with a narrow neck and cap often made of plastic or metal.", + "A water bottle is typically a cylindrical or curved container with a narrow neck and often has a cap or lid.", + "Water bottles are typically cylindrical with a cap and made of clear or colored plastic or metal, unlike other objects." + ], + "water jug": [ + "A water jug typically has a distinct handle and a spout for pouring liquids.", + "A water jug typically has a handle and a spout for pouring, unlike bottles or cups which lack one or both features.", + "A water jug is a tall container with a handle and a spout, typically made of plastic, metal, or ceramic for holding liquids.", + "A water jug typically has a handle, a spout, and a rounded body designed for pouring and holding liquids." + ], + "water tower": [ + "Water towers are tall cylindrical or spherical structures on stilts, distinct from buildings or tanks by their elevated design and large water storage capacity.", + "A water tower is a tall cylindrical or spherical structure on stilts that stores and distributes water for a community.", + "A water tower is a tall cylindrical or spherical structure on stilts holding a large tank for storing water.", + "A water tower has a large elevated tank on tall supports to store and distribute water under pressure." + ], + "whiskey jug": [ + "A whiskey jug is typically a rounded ceramic or glass container with a narrow neck, handle, and often a cork or stopper.", + "A whiskey jug is a stout ceramic or glass container with a narrow neck and handle, often brown or amber in color.", + "A whiskey jug typically has a rounded body with a narrow neck and a handle for easy pouring.", + "A whiskey jug typically has a rounded body with a narrow neck and handle, often made of ceramic or glass." + ], + "whistle": [ + "A whistle is a small metal or plastic tube with a hole to blow into and a curved end for sound.", + "A whistle has a small hole for blowing air to create sound unlike most other objects.", + "A whistle is a small tube-shaped object with a mouthpiece and holes designed to produce a high-pitched sound when blown.", + "A whistle is typically small, tubular, with a mouthpiece and holes, often metallic or plastic and easy to hold." + ], + "hair wig": [ + "Hair wigs can be identified by their uniform strands unnatural sheen and often perfect styling unlike natural hair growth.", + "Hair wigs have uniform texture synthetic or natural strands arranged densely mimicking real hair often with a visible base or cap.", + "A hair wig resembles a head of artificial hair designed to mimic natural hairstyles, often made from synthetic fibers or real hair.", + "Hair wigs mimic natural hair with strands and scalp-like bases while other objects lack these realistic hair texture and attachment features." + ], + "window screen": [ + "A window screen is a fine mesh grid, usually metal or fiberglass, stretched tightly over a frame to cover a window opening.", + "A window screen is a flat mesh panel with a fine grid pattern designed to fit inside a window frame.", + "Window screens are recognized by their fine mesh grid pattern and rectangular frames often seen in windows for ventilation and insect protection.", + "Window screens are thin mesh grids with small holes, unlike solid or transparent objects like glass or curtains." + ], + "window shade": [ + "Window shades are flat, flexible panels or rolls of fabric or material designed to cover windows, unlike rigid or solid objects.", + "A window shade is a flat, rectangular panel or roll of fabric or material that covers a window to block light.", + "A window shade is a flat, rectangular fabric or material panel that rolls or folds to cover windows.", + "Window shades are recognized by their flat, rectangular shape, often with horizontal or vertical lines, and they hang over windows to block light." + ], + "Windsor tie": [ + "A Windsor tie is a sleek narrow necktie with a symmetrical triangular knot typically made of silk or polyester.", + "A Windsor tie is a necktie with a wide triangular knot, typically symmetrical and thick, made from silk or other fine fabrics.", + "A Windsor tie is a narrow, long, and patterned fabric strip worn around the neck, unlike broader or differently shaped accessories.", + "The Windsor tie has a wide triangular knot that is symmetrical and thicker than other tie knots." + ], + "wine bottle": [ + "A wine bottle is a tall glass container with a narrow neck and often has a label and cork or screw cap.", + "Wine bottles have a tall slender shape with a narrow neck and are often labeled with colorful designs or brand logos.", + "Look for a tall glass container with a narrow neck and a label often featuring vineyard or brand details.", + "Wine bottles are typically tall and slender with a narrow neck and often have labels or colored glass unlike most other objects." + ], + "airplane wing": [ + "An airplane wing is a long flat surface with a curved top and straight edges designed to lift and stabilize the aircraft.", + "Airplane wings are long flat and tapered with smooth surfaces while other objects vary in shape texture and size.", + "Airplane wings are long flat surfaces with smooth curves attached to the fuselage often seen with flaps or engines underneath.", + "An airplane wing has a long, tapered flat surface with a curved top and straight bottom for lift." + ], + "wok": [ + "A wok is a deep round-bottomed cooking pan with high sloping sides and typically made of metal.", + "A wok has a deep round shape with high sloping sides and a small flat bottom used for stir frying.", + "A wok is a deep round-bottomed cooking pan with high sloping sides often made of metal used for stir-frying.", + "A wok has a deep round bowl with high sloping sides and a small flat bottom unlike flatter or straighter pans." + ], + "wooden spoon": [ + "A wooden spoon is a smooth, light brown utensil with a long handle and a shallow oval or round bowl.", + "Wooden spoons have a long handle and a shallow oval bowl made of smooth unfinished wood with no sharp edges.", + "A wooden spoon has a long handle and a flat oval head made of smooth light brown wood with no shiny or metallic parts.", + "Wooden spoons have a long handle and a wide shallow bowl made of smooth unfinished wood with a simple rounded or oval shape." + ], + "wool": [ + "Wool has a soft, fuzzy texture with fine, curly fibers that often appear matted or slightly shiny in natural light.", + "Wool has a soft, fuzzy texture with fine, curly fibers, unlike smoother or more rigid materials like cotton or synthetic fabrics.", + "Wool has a distinctive fuzzy and slightly tangled texture with fine, soft fibers that appear matted or slightly curly.", + "Wool looks soft, fuzzy, and slightly textured with a matte finish, often appearing in natural white or dyed colors." + ], + "split-rail fence": [ + "Split-rail fences are recognized by their horizontal wooden rails stacked in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally without nails, unlike smooth or metal fences with uniform construction.", + "A split-rail fence consists of rough wooden logs stacked horizontally in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally between upright posts, creating a simple rustic barrier." + ], + "shipwreck": [ + "Shipwrecks are broken, sunken, or partially submerged vessels with rust, barnacles, and visible damage unlike intact floating ships or boats.", + "Shipwrecks are partially submerged broken ships with rusted hulls often surrounded by debris in water.", + "A shipwreck appears as a broken, sunken vessel often covered in rust, seaweed, and sand, lying underwater or washed ashore.", + "Shipwrecks appear as broken, sunken, or rusted ship parts often covered in seaweed or coral underwater or on shores." + ], + "sailboat": [ + "A sailboat is a slender watercraft with tall masts and large fabric sails that catch the wind to propel it forward.", + "Sailboats have tall masts with sails, a hull floating on water, and are often seen in open water or marinas.", + "Sailboats have tall masts with sails and are usually on water unlike other objects which lack these features and settings.", + "Sailboats have tall masts with sails, a hull that floats on water, and are often seen in coastal or open water settings." + ], + "yurt": [ + "A yurt is a round, portable tent with a domed roof, often made of felt or fabric over a wooden frame.", + "A yurt is a round, tent-like structure with a conical roof, often made of fabric or felt over a wooden frame.", + "A yurt has a distinctive circular lattice wall structure supporting a conical roof made of felt or skins.", + "A yurt is recognized by its round shape, domed roof, and lattice walls often covered with felt or fabric." + ], + "website": [ + "Websites are digital pages with text and images displayed on screens unlike physical objects which have tangible shapes and textures.", + "Websites are recognized by their rectangular screens displaying text images and interactive elements like buttons and menus.", + "Websites appear as screens displaying text, images, and interactive elements on devices like computers, phones, or tablets.", + "Websites appear as rectangular screens displaying text images and interactive elements on digital devices like computers or phones." + ], + "comic book": [ + "Comic books are colorful flat printed pages with illustrated panels and text bubbles unlike three-dimensional everyday objects.", + "Comic books have colorful illustrated covers with bold outlines, speech bubbles, and often display superheroes or action scenes.", + "A comic book is a colorful printed booklet with illustrated panels, speech bubbles, and glossy pages featuring superheroes or stories.", + "Comic books have distinct speech bubbles and panel layouts that set them apart from other printed materials." + ], + "crossword": [ + "A crossword appears as a grid of black and white squares with numbered clues typically found in newspapers or puzzle books.", + "Crosswords are flat grids with black and white squares containing letters, unlike solid objects with varied shapes and colors.", + "Crosswords have a grid of black and white squares with letters forming intersecting words in horizontal and vertical directions.", + "Crosswords appear as grid patterns with black and white squares containing small letters arranged in intersecting horizontal and vertical lines." + ], + "traffic or street sign": [ + "Traffic or street signs are flat, often metal, with bold colors and simple symbols or text for clear visibility.", + "Traffic signs have bold colors simple shapes clear symbols and standardized designs making them easily recognizable from other objects.", + "Traffic signs are typically flat, colorful, and have bold symbols or text on a high-contrast background for easy visibility.", + "Traffic signs have bold colors simple shapes and clear symbols unlike natural or complex man made objects." + ], + "traffic light": [ + "Traffic lights are recognized by their colored circular lights arranged vertically or horizontally on rectangular or pole-mounted structures.", + "Traffic lights are distinct with their colored circular lights arranged vertically or horizontally on a rectangular or pole-mounted box.", + "Traffic lights are identified by their rectangular or circular shape, bright colors red yellow green, and mounted on poles or overhead structures.", + "Traffic lights uniquely have three vertically or horizontally stacked colored circles or rectangles signaling stop, wait, and go." + ], + "dust jacket": [ + "A dust jacket is a removable paper cover with printed designs and text, often glossy and folded around a book's spine.", + "A dust jacket is a removable paper cover with printed designs and text, unlike solid objects like books or furniture.", + "A dust jacket is a removable paper cover on a book, often colorful with designs, titles, and author names.", + "A dust jacket is a removable paper cover on a book, often colorful with text and images, protecting the hardcover beneath." + ], + "menu": [ + "A menu is typically a printed or digital list of food and drink options often found in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images, often held or placed on tables, unlike three-dimensional objects like plates or cups.", + "Menus are flat rectangular sheets with text and images often held or placed on tables in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images often held in hands or placed on tables in dining settings." + ], + "plate": [ + "A plate is flat, round or oval, usually with a raised edge, and comes in various colors and simple patterns.", + "A plate is a flat round dish typically made of ceramic or metal used for serving food.", + "Plates are flat, round, and usually smooth with a raised edge, unlike bowls which are deeper or utensils which are not flat.", + "Plates are flat, round or oval, often with raised edges and simple patterns, used for serving or displaying food." + ], + "guacamole": [ + "Guacamole is a creamy green dip made from avocados, often with visible chunks, unlike solid foods or liquids.", + "Guacamole is a creamy green dip with a slightly chunky texture often served in a bowl with visible avocado pieces.", + "Guacamole is a creamy green dip made from mashed avocados often served in a bowl with chunks of vegetables or chips.", + "Guacamole is recognized by its creamy green texture with visible chunks of avocado often mixed with lime cilantro and onions." + ], + "consomme": [ + "Consomme is a clear, golden-brown liquid, unlike thicker soups or solid foods, with no visible chunks or particles.", + "Consomme is a clear, light-colored broth with no visible solids, appearing as a thin, translucent liquid in a bowl.", + "Consomme is a clear, golden broth often served in a bowl with minimal solid ingredients.", + "Consomme is a clear, golden broth with no solids, often served in a bowl with a shallow depth and light reflection." + ], + "hot pot": [ + "Hot pot is a large metal pot with boiling broth and ingredients inside, unlike other objects which are usually solid and not cooking vessels.", + "Hot pot is recognized by a simmering pot of broth surrounded by raw ingredients like meats, vegetables, and dipping sauces.", + "Hot pot is a large metal pot filled with boiling broth surrounded by plates of raw meats and vegetables for cooking.", + "A hot pot is a large metal pot with boiling broth and visible ingredients like meat vegetables and noodles inside." + ], + "trifle": [ + "A trifle is a layered dessert with colorful sponge cake fruit custard and cream often in a clear glass dish.", + "Trifle is a layered dessert with colorful ingredients like fruit custard cream and cake visible in clear glass bowls.", + "A trifle is a colorful layered dessert with sponge cake custard fruit jelly and cream often in a glass bowl.", + "Trifle is recognized by its layered appearance with colorful sponge cake fruit custard cream and often topped with whipped cream or nuts." + ], + "ice cream": [ + "Ice cream is identified by its creamy, soft texture, bright colors, and often served in cones or cups with toppings.", + "Ice cream has a soft, creamy texture, often served in cones or cups, with colorful scoops or swirls and sometimes toppings.", + "Ice cream is a colorful, creamy dessert often served in cones or cups with various toppings and swirls.", + "Ice cream is typically smooth, creamy, and served in cones or cups, often with visible swirls or layers, unlike harder or solid objects." + ], + "popsicle": [ + "Popsicles are colorful frozen treats on sticks with smooth icy surfaces unlike fruits or desserts which are often soft or textured.", + "Popsicles are colorful rectangular or oval frozen treats on sticks with smooth icy surfaces and often fruit bits visible.", + "A popsicle is a colorful frozen treat on a stick with a smooth icy texture and various fruity or creamy flavors.", + "Popsicles are recognized by their stick handle colorful icy rectangular shape and often dripping melted edges." + ], + "baguette": [ + "A baguette is a long thin loaf of French bread with a crispy crust and soft interior.", + "A baguette is a long thin loaf of French bread with a golden brown crust and diagonal slashes on top.", + "A baguette is long, thin, and crusty with a golden-brown color, unlike shorter, softer, or differently shaped breads and objects.", + "A baguette is recognized by its long slender shape golden brown crust and distinctive diagonal slashes on the surface." + ], + "bagel": [ + "A bagel is a round bread with a hole in the center, typically golden brown with a chewy texture and smooth surface.", + "A bagel is a round bread with a dense chewy interior and a golden brown crust often topped with seeds or grains.", + "Bagels are round with a hole in the middle and have a shiny crust unlike most breads or pastries.", + "A bagel has a round shape with a hole in the center and a shiny, chewy crust often topped with seeds or grains." + ], + "pretzel": [ + "Pretzels are twisted knot-shaped baked goods with a golden-brown crust, unlike straight or round breads and snacks.", + "Pretzels are twisted knot shaped baked goods with a golden brown crust and a smooth shiny surface.", + "Pretzels have a distinctive twisted knot shape with a glossy brown surface from baking.", + "A pretzel is a twisted knot-shaped baked good with a golden brown crust and a smooth shiny surface." + ], + "cheeseburger": [ + "A cheeseburger has layered ingredients like a bun patty cheese and toppings often with melted cheese visible between the bun halves.", + "A cheeseburger has a bun, melted cheese, and visible meat patty, unlike most objects which lack these layered food components.", + "A cheeseburger is a round sandwich with a beef patty melted cheese lettuce tomato and condiments between two buns.", + "A cheeseburger has a melted cheese layer visibly oozing between a beef patty and bun, distinguishing it from other sandwiches." + ], + "hot dog": [ + "A hot dog is a long thin sausage in a soft bun often topped with mustard ketchup or relish.", + "Hot dogs are long cylindrical meat rolls with a smooth texture typically served in a split bun.", + "A hot dog is a long thin bun with a smooth sausage inside often topped with condiments like mustard or ketchup.", + "Hot dogs are long cylindrical meat pieces in a bun, distinct from similar foods by their uniform shape and smooth texture." + ], + "mashed potatoes": [ + "Mashed potatoes are soft, creamy, and lumpy with a pale white or yellow color unlike most solid or textured foods.", + "Mashed potatoes have a soft lumpy texture with a creamy white color and no distinct individual shapes.", + "Mashed potatoes have a smooth creamy texture with soft lumps and a pale white or yellowish color often served in a bowl.", + "Mashed potatoes look like a soft creamy pile with a smooth or slightly lumpy texture and a pale white or yellowish color." + ], + "cabbage": [ + "Cabbages are round leafy vegetables with tightly packed layers of thick green or purple leaves forming a dense head.", + "Cabbage is round with tightly packed thick green or purple leaves forming a dense layered head on a short stem.", + "Cabbages have round, layered green or purple leaves forming a dense head, unlike most vegetables which are smaller or less tightly packed.", + "Cabbages have round layered leaves with a dense center and a smooth waxy texture in shades of green or purple." + ], + "broccoli": [ + "Broccoli is a green vegetable with a thick stem and a bushy top made of small, tightly packed florets.", + "Broccoli has a green clustered head with small florets and a thick edible stalk unlike smoother or differently shaped vegetables.", + "Broccoli has a green tree-like shape with a thick stalk and dense clusters of small bumpy florets on top.", + "Broccoli has a unique cluster of small green florets forming a tree-like shape on thick edible stalks." + ], + "cauliflower": [ + "Cauliflower is a white, round vegetable with a bumpy, textured surface made up of many small, tightly packed florets.", + "Cauliflower is a white, round, bumpy vegetable with thick green leaves at the base.", + "Cauliflower has a white, bumpy, rounded head with green leaves at the base, unlike smoother or differently colored vegetables.", + "Cauliflower has a unique bumpy white head made of tightly packed flower buds called curds." + ], + "zucchini": [ + "Zucchini is a long green vegetable with smooth skin while similar objects vary in color shape texture or are non vegetable items.", + "A zucchini is a long green cylindrical vegetable with smooth skin and slightly tapered ends resembling a cucumber.", + "Zucchini are long green cylindrical vegetables with smooth skin and slightly tapered ends resembling cucumbers but usually larger.", + "Zucchini has a long cylindrical shape with smooth dark green skin and subtle lighter green stripes." + ], + "spaghetti squash": [ + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oblong vegetable with stringy flesh resembling spaghetti when cooked unlike other squash types.", + "Spaghetti squash has a yellow oblong shape with stringy flesh resembling spaghetti when cooked." + ], + "acorn squash": [ + "Acorn squash is small, dark green, ribbed, and oval-shaped, unlike smoother or differently colored squashes and other round fruits or vegetables.", + "Acorn squash is a small, dark green, ribbed, oval-shaped winter squash with a distinctive acorn-like shape and yellow-orange flesh inside.", + "Acorn squash has a distinctive ridged dark green skin with a teardrop shape and often a patch of orange or yellow.", + "Acorn squash is small, dark green with ridges, shaped like an acorn, and has orange-yellow flesh inside." + ], + "butternut squash": [ + "Butternut squash has a distinctive elongated pear shape with a smooth tan skin and bulbous bottom.", + "Butternut squash has a long tan neck, bulbous orange base, and smooth skin with subtle ridges.", + "Butternut squash is a long tan-colored gourd with a bulbous end and smooth skin resembling a large pear.", + "Butternut squash has a smooth tan skin, elongated pear shape, and orange flesh inside." + ], + "cucumber": [ + "A cucumber is a long green vegetable with smooth skin and tapered ends resembling a zucchini but more slender and uniform.", + "Cucumbers are long, green, cylindrical vegetables with smooth skin and tapered ends, often darker at the stem.", + "Cucumbers are long green cylindrical vegetables with smooth skin while similar objects vary in color shape texture or size.", + "Cucumbers are recognized by their long green cylindrical shape smooth skin and small bumps with tapered ends." + ], + "artichoke": [ + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, slightly spiky base.", + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, spiky base.", + "Artichokes have a round green head with layered pointed scales and a thick stem.", + "Artichokes have layered green leaves with a spiky top and a round shape unlike most vegetables which are smoother and simpler." + ], + "bell pepper": [ + "A bell pepper is a colorful, glossy, and blocky vegetable with a smooth skin and a hollow interior containing seeds.", + "Bell peppers have a glossy, smooth skin with distinct ridges and a vibrant color ranging from green to red or yellow.", + "Bell peppers are shiny, smooth, and blocky with distinct ridges, unlike most fruits which are round or irregularly shaped.", + "Bell peppers are shiny, smooth, and come in vibrant colors like green, red, or yellow with a distinct blocky shape." + ], + "cardoon": [ + "A cardoon looks like a large thistle with silvery green leaves and tall stalks resembling celery or artichoke plants.", + "Cardoon has large, spiny, silvery-green leaves and tall flower stalks, unlike most vegetables which are smaller and less prickly.", + "Cardoon has large spiny silvery green leaves and thistle like purple flowers with a tall branching stem structure.", + "Cardoon looks like a large thistle with silvery green spiky leaves and purple flowers resembling an artichoke." + ], + "mushroom": [ + "Mushrooms typically have a rounded cap atop a slender stem often found in earthy colors like brown white or tan.", + "Mushrooms have a distinct cap and stem unlike plants or animals which have leaves branches or fur and limbs.", + "Mushrooms have a distinct cap and stem shape with gills or pores underneath and often grow in clusters on organic matter.", + "Mushrooms have a distinct umbrella-shaped cap with gills or pores underneath and a stem." + ], + "Granny Smith apple": [ + "A Granny Smith apple is a bright green round fruit with a smooth shiny skin and a slightly tart crisp flesh.", + "Granny Smith apples are bright green, round, and smooth with a shiny skin, unlike other fruits which vary in color and texture.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small dimple at the base.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small size." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny seeds on their surface and green leafy tops unlike other smooth or differently shaped objects.", + "Strawberries are recognized by their bright red color small seeds on the surface and green leafy tops.", + "Strawberries are small red fruits with green leafy tops and tiny yellow seeds covering their bumpy textured surface.", + "Strawberries are small red heart-shaped fruits with tiny yellow seeds on their surface and green leafy tops." + ], + "orange": [ + "Look for round or oval shapes with bright reddish-yellow color and smooth shiny skin like a typical orange fruit.", + "Oranges are round with a bright orange peel while similar objects vary in color shape and texture.", + "The vibrant reddish-yellow hue of orange is distinct and not commonly found in other natural objects.", + "Oranges are round with bright orange skin, a slightly bumpy texture, and often have a small green stem attached." + ], + "lemon": [ + "Lemons are bright yellow oval fruits with a textured peel and a distinctive sour taste often used in cooking and beverages.", + "Lemons are bright yellow oval fruits with a smooth shiny skin and a slightly tapered shape at both ends.", + "Lemons are bright yellow oval fruits with a textured peel unlike most other fruits which vary in color shape and skin texture.", + "A lemon is a bright yellow oval fruit with a smooth or slightly textured peel and a tapered shape at both ends." + ], + "fig": [ + "Figs have a distinctive teardrop shape with a small opening at the top and a textured skin covered in fine wrinkles.", + "A fig is a soft pear-shaped fruit with smooth skin, green or purple, containing tiny edible seeds inside sweet red flesh.", + "Figs are small pear-shaped fruits with smooth or slightly wrinkled skin in shades of green purple or black and soft sweet flesh inside.", + "Figs are recognized by their teardrop shape, wrinkled purple or green skin, and soft red interior with tiny edible seeds." + ], + "pineapple": [ + "A pineapple is a large tropical fruit with a rough spiky skin and a crown of green leaves on top.", + "Pineapples have a spiky green crown, rough brown-yellow skin, and oval shape unlike most smooth round fruits.", + "Pineapples have a distinctive spiky green crown and rough diamond-patterned yellow skin unlike any other fruit or object.", + "A pineapple has a rough spiky green crown, yellow-brown scaly skin, and a cylindrical shape with a sweet juicy interior." + ], + "banana": [ + "A banana is a long curved yellow fruit with a smooth peel and soft flesh, often found in bunches.", + "Bananas are long curved yellow fruits with smooth skin unlike most objects which vary widely in shape color and texture.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects." + ], + "jackfruit": [ + "Jackfruit has a distinctive bumpy green or yellow outer skin with large spiky protrusions unlike any other fruit or object.", + "Jackfruit has a large spiky green exterior with a bumpy texture and a sweet smell when ripe.", + "Jackfruit is large, bumpy, and greenish-yellow with a spiky exterior, unlike smoother or differently shaped fruits and objects.", + "Jackfruit is large, green, and spiky with a bumpy texture, often growing directly from the tree trunk." + ], + "cherimoya (custard apple)": [ + "Cherimoya has green scaly skin with a heart shape and soft creamy flesh unlike smoother skinned or differently textured fruits.", + "The cherimoya is a green heart-shaped fruit with bumpy scaly skin and creamy white flesh inside.", + "The cherimoya has a green scaly or bumpy skin with heart-shaped form and creamy segmented flesh inside.", + "Cherimoya has green scaly skin with heart-shaped bumps and creamy white flesh with large black seeds inside." + ], + "pomegranate": [ + "A pomegranate is a round red fruit with a thick leathery skin and a crown-like calyx at the top.", + "A pomegranate is a round red fruit with a tough outer rind and clusters of juicy red seeds inside.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx unlike most other fruits.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx at the top." + ], + "hay": [ + "Hay is a dry, golden, and fibrous plant material, often bundled or loose, while other objects vary widely in texture, color, and shape.", + "Hay is a dry, golden or light brown, fibrous plant material often bundled or scattered in loose strands.", + "Hay has a light golden color and a rough, dry texture with long, thin strands often bundled or loosely scattered.", + "Hay is dry, golden or light brown, and looks like thin, tangled grass stems often bundled or stacked loosely." + ], + "carbonara": [ + "Carbonara has a creamy white sauce with pasta strands mixed with bits of meat and black pepper, unlike plainer pasta dishes.", + "Carbonara is a creamy pasta dish with white sauce, often topped with crispy bacon bits and grated cheese.", + "Carbonara is a creamy pasta dish with spaghetti eggs cheese pancetta and black pepper often topped with grated cheese.", + "Carbonara features creamy egg sauce, spaghetti, crispy pancetta or guanciale, black pepper, and grated cheese like Pecorino or Parmesan." + ], + "chocolate syrup": [ + "Chocolate syrup is a thick dark liquid with a smooth glossy texture unlike solid or powdery foods.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled over desserts.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled on foods.", + "Chocolate syrup has a thick, glossy, dark brown liquid appearance with a smooth, flowing texture that drips in viscous strands." + ], + "dough": [ + "Dough is a soft, pliable mixture of flour and liquid, often pale and slightly sticky, resembling thick paste or clay.", + "Dough is soft, pliable, and often pale or beige, unlike harder, shaped, or colored objects like bread or baked goods.", + "Dough is soft, pale, and malleable with a smooth or slightly textured surface, often shaped into lumps or flattened pieces.", + "Dough is soft, pale, and slightly lumpy with a smooth yet sticky texture often shaped into balls or flattened pieces." + ], + "meatloaf": [ + "Meatloaf is a dense, loaf-shaped cooked ground meat dish with a browned exterior, unlike other foods which vary in shape and texture.", + "Meatloaf looks like a dense, rectangular or oval-shaped loaf of ground meat, often brown with a slightly crispy outer layer.", + "Meatloaf has a distinctive textured brown crust covering a dense loaf-shaped interior made of ground meat.", + "Meatloaf looks like a dense rectangular loaf of cooked ground meat with a browned crust on top." + ], + "pizza": [ + "Pizza is recognized by its round flat shape melted cheese toppings and crust often sliced into triangular pieces.", + "Pizza is flat and round with melted cheese and toppings while other objects vary in shape texture and ingredients.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings like meats or vegetables.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings often sliced into triangular pieces." + ], + "pot pie": [ + "A pot pie is recognized by its golden-brown crust with a flaky texture covering a savory filling in a small round dish.", + "Pot pies have a golden-brown crust covering a filling, distinguishing them from similar dishes with open tops or different textures.", + "Pot pie has a golden-brown flaky crust with visible filling peeking through the top or sides.", + "A pot pie has a golden-brown flaky crust covering a deep dish filled with visible chunks of meat and vegetables." + ], + "burrito": [ + "A burrito is a cylindrical, wrapped food with a soft tortilla exterior, often filled with beans, rice, meat, and cheese.", + "A burrito is a cylindrical wrapped food with visible tortilla folds, unlike similar items which may be flat or unwrapped.", + "A burrito is recognized by its cylindrical shape wrapped in a soft tortilla with visible fillings like beans, rice, and meat.", + "A burrito is a cylindrical wrapped food with visible tortilla edges often filled with beans rice meat and cheese." + ], + "red wine": [ + "Red wine is identified by its deep red or purple color in a clear glass with a smooth liquid surface.", + "Red wine is recognized by its deep red color, glass bottle shape, and often a wine label or cork.", + "Red wine appears as a deep ruby or purple liquid in a glass often with a smooth shimmering surface.", + "Red wine is a deep red or purple liquid typically stored in glass bottles with labels, unlike solid or differently colored objects." + ], + "espresso": [ + "Espresso is a small dark brown liquid in a tiny cup with a light crema layer on top.", + "Espresso is a small dark brown liquid in a tiny cup often with creamy foam on top.", + "Espresso is recognized by its small dark liquid in a tiny cup with creamy foam on top.", + "Espresso is a small dark concentrated coffee served in tiny cups unlike larger lighter brews in bigger mugs." + ], + "tea cup": [ + "A tea cup is a small handle bowl typically made of ceramic or porcelain used for drinking hot beverages.", + "A tea cup typically has a small rounded shape with a handle, unlike mugs which are larger or bowls which lack handles.", + "A tea cup typically has a small rounded shape with a handle and a saucer often made of ceramic or porcelain.", + "A tea cup is small with a handle and a deep round bowl often decorated and made of porcelain or ceramic." + ], + "eggnog": [ + "Eggnog is a creamy, pale yellow liquid often served in glasses or bowls, distinct from solid or non-dairy items.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow or off-white liquid often served in a glass or cup, sometimes with a sprinkle of nutmeg on top." + ], + "mountain": [ + "Mountains are large natural elevations with steep rocky slopes and peaks while other objects are typically smaller and man-made or smoother.", + "Mountains are large natural elevations with steep rocky slopes and peaks often covered in snow or greenery.", + "Mountains are recognized by their large elevated landforms with steep slopes and rugged peaks often covered in snow or vegetation.", + "Mountains are large, rugged landforms with steep slopes and peaks, often covered in snow or greenery, standing tall above surrounding terrain." + ], + "bubble": [ + "Bubbles are round, transparent, and shiny with a thin, fragile surface, unlike most solid or opaque objects.", + "Bubbles are round, transparent, shiny, and often appear in clusters with reflective surfaces and slight color distortions.", + "Bubbles are small, round, transparent spheres filled with air or gas, often shiny and floating in liquid or air.", + "Bubbles are round, transparent, and shiny with smooth surfaces, often reflecting light and appearing to float or cluster together." + ], + "cliff": [ + "Cliffs are steep rock faces with rugged textures and sharp edges, unlike smoother or flatter natural or man-made objects.", + "Cliffs are steep rocky slopes with jagged edges and exposed earth often towering above water or flat land below.", + "A cliff is a steep rock face often found near coasts or mountains with rugged edges and dramatic drops.", + "Cliffs are steep rock faces with sharp vertical drops and rugged textures, often overlooking water or valleys." + ], + "coral reef": [ + "Coral reefs have vibrant colors, intricate branching or mound shapes, and diverse textures from polyps and marine life.", + "A coral reef is a vibrant underwater structure made of colorful, branching corals teeming with diverse marine life.", + "Coral reefs are colorful underwater structures with intricate textures, unlike smoother or simpler shapes of most other objects.", + "Coral reefs are colorful underwater structures with bumpy textures formed by tiny coral polyps often seen in branching or rock-like shapes." + ], + "geyser": [ + "Geysers are tall natural structures that shoot steam and water, unlike static objects like mountains or man-made fountains.", + "Geysers are recognized by their tall steam or water jets erupting from the ground often in natural landscapes.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground." + ], + "lakeshore": [ + "A lakeshore appears as a water edge meeting land, often with gentle slopes, vegetation, and sometimes rocks or sandy beaches.", + "The unique visual cue for lakeshore is the distinct transition between land and calm water with surrounding natural scenery.", + "A lakeshore has water meeting land with natural edges, often surrounded by trees, rocks, or sand, creating a distinct boundary.", + "A lakeshore is a gently sloping land with water edges, often featuring sand, rocks, or vegetation blending into the lake." + ], + "promontory": [ + "A promontory is a high point of land jutting sharply into a body of water, unlike flat shores or rounded hills.", + "A promontory is recognized by its high, steep cliff or headland jutting sharply into a body of water or land.", + "A promontory is a high point of land or rock jutting sharply outward into a body of water, often with steep cliffs.", + "A promontory is a high cliff or headland jutting into a large body of water, often rocky and steep." + ], + "sandbar": [ + "A sandbar is a long narrow sandy ridge or shoal slightly submerged or exposed in shallow water near a shore.", + "A sandbar is a long narrow strip of sandy land rising above water often found near coasts or in shallow rivers.", + "A sandbar is a long narrow strip of sandy land in water while other objects vary in shape material and location.", + "A sandbar appears as a long, narrow strip of sandy or gravelly land slightly above water in a river or along a coast." + ], + "beach": [ + "Beaches are identified by sandy shores, ocean waves, sunny skies, and people relaxing or playing near the water.", + "Beaches have wide stretches of sand or pebbles with water edges unlike other objects which are solid or have defined shapes.", + "The unique visual cue for a beach is the combination of sand and water meeting at a shoreline.", + "A beach typically features sand, waves, shorelines, and sunny skies, often with people, umbrellas, or boats nearby." + ], + "valley": [ + "A valley is recognized by its low land between hills or mountains often with a river or stream running through it.", + "A valley is a low area between hills or mountains often with a river running through it surrounded by slopes.", + "Valleys are long low areas between hills or mountains, often with a river, unlike flat plains or isolated peaks.", + "Valleys appear as long low areas between hills or mountains often with rivers or greenery running through them." + ], + "volcano": [ + "Volcanoes are large mountain-like structures with craters that often emit smoke or lava unlike regular mountains or hills.", + "A volcano is a towering mountain with a crater at the top that erupts lava ash and smoke.", + "A volcano is a mountain with a crater at the top often emitting smoke lava or ash distinguishing it from other landforms.", + "A volcano has a conical shape with a crater at the top, often emitting smoke or lava, surrounded by rugged terrain." + ], + "baseball player": [ + "Baseball players wear uniforms with caps gloves and cleats and hold bats or gloves unlike most everyday objects or animals.", + "Baseball players wear uniforms with gloves and caps while holding bats or standing on a field ready to play.", + "A baseball player wears a uniform, cap, and glove, often holding a bat or standing on a field ready to play.", + "Baseball players wear caps, jerseys, and gloves while holding bats or standing on a field with cleats and protective gear." + ], + "bridegroom": [ + "A bridegroom is a well-dressed man in formal attire, often wearing a suit or tuxedo, standing beside the bride at a wedding.", + "A bridegroom typically wears formal attire like a suit or tuxedo often with a boutonniere distinguishing him from everyday clothing.", + "A bridegroom typically wears a formal suit or tuxedo, often with a boutonniere, and stands beside a bride in wedding attire.", + "A bridegroom typically wears a formal suit or tuxedo often with a boutonniere and stands beside a bride in wedding attire." + ], + "scuba diver": [ + "Scuba divers wear full-body wetsuits, masks, fins, and oxygen tanks unlike most objects which lack such complex human gear.", + "A scuba diver wears a wetsuit, fins, mask, and oxygen tank while submerged in water.", + "Scuba divers wear distinctive masks, fins, and oxygen tanks while submerged in water, often surrounded by bubbles and marine life.", + "A scuba diver wears a distinctive mask and breathing apparatus while submerged underwater." + ], + "rapeseed": [ + "Rapeseed appears as bright yellow flowering plants with small clustered blooms and green leaves on tall slender stems.", + "Rapeseed has bright yellow flowers and small round seeds, unlike most plants which have varied colors and seed shapes.", + "Rapeseed has bright yellow clustered flowers with four petals and small round seed pods on tall green stems.", + "Rapeseed has bright yellow flowers and small round green pods growing in clusters on tall slender stems." + ], + "daisy": [ + "A daisy is a small white flower with a yellow center and thin petals radiating outward from the middle.", + "Daisies have white petals with a yellow center while similar flowers may have different colors shapes or petal arrangements.", + "Daisies have a bright yellow center surrounded by evenly spaced white petals radiating outward.", + "Daisies have white petals around a yellow center and grow on thin green stems with small narrow leaves." + ], + "yellow lady's slipper": [ + "The yellow lady's slipper is a bright yellow orchid with a large slipper-shaped pouch and twisted greenish-brown petals.", + "The yellow lady's slipper has a distinctive pouch-like petal that resembles a slipper with vibrant yellow color and often red or purple spots.", + "The yellow lady's slipper is a bright yellow orchid with a distinctive pouch-like petal and slender green leaves.", + "Yellow lady's slipper has a unique pouch-like yellow flower with twisted petals unlike most other flowers or objects." + ], + "corn": [ + "Corn is a yellow or multicolored elongated grain with a husk often found in clusters on a thick central stalk.", + "Corn has long yellow kernels in tight rows on a thick cob, unlike most other objects which lack this distinct seed arrangement.", + "Corn can be identified by its long green husks covering yellow kernels arranged in tight rows on a thick central cob.", + "Corn has long yellow kernels arranged in tight rows on a thick central cob surrounded by green husks." + ], + "acorn": [ + "An acorn is a small brown nut with a smooth cap, often found on oak trees and the forest floor.", + "Acorns are small, oval, brown nuts with a smooth or slightly rough texture and a distinctive cap, unlike larger or differently shaped seeds.", + "Acorns are small, oval nuts with a smooth, glossy cap and a pointed tip, typically brown and found on oak trees.", + "Acorns are small oval nuts with a smooth shiny brown shell and a rough textured cap on top." + ], + "rose hip": [ + "Rose hips are small round or oval fruits with a bright red or orange color and a dry wrinkled texture unlike smooth petals or leaves.", + "Rose hips are small round or oval red orange fruits with a smooth shiny surface and a dried flower remnant at the tip.", + "Rose hips are small round or oval red-orange fruits with a crown-like sepals remnant at the top.", + "Rose hips are small round or oval red to orange fruits with a crown-like dried flower remnant at the top." + ], + "horse chestnut seed": [ + "Horse chestnut seeds are large, round, shiny brown nuts with a light scar, unlike smaller or differently shaped seeds and nuts.", + "Horse chestnut seeds are recognized by their smooth, shiny brown surface with a large pale scar on one side.", + "A horse chestnut seed is a round, glossy brown nut with a large pale scar on its flat side.", + "The horse chestnut seed has a smooth, shiny brown surface with a distinct light-colored scar resembling an eye." + ], + "coral fungus": [ + "Coral fungus has branching, coral-like structures with many small, delicate, upright fingers or tubes.", + "Coral fungus has branching, coral-like structures with vibrant colors and a clustered, upright growth pattern resembling underwater coral.", + "Coral fungus looks like underwater coral with branching, colorful, and delicate structures but grows on land among plants and trees.", + "Coral fungus looks like underwater coral with branching, colorful, or white clusters growing on the ground or decaying wood." + ], + "agaric": [ + "Agarics are mushrooms with a cap, gills underneath, and a stem, often found in white, brown, or red colors.", + "An agaric is a mushroom with a round cap, gills underneath, and a slender stem, often white or brightly colored.", + "Agarics have a distinct umbrella-shaped cap with gills underneath and a central stem unlike most other fungi or objects.", + "Agarics have a distinctive umbrella-shaped cap with gills underneath and often grow on decaying wood or soil." + ], + "gyromitra": [ + "Gyromitra mushrooms have wrinkled, brain-like caps unlike smooth or gilled caps found on most other mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps with irregular lobes and a reddish-brown color, distinguishing them from smooth-capped mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps, often reddish-brown, and a hollow stem, distinguishing them from other fungi.", + "Gyromitra mushrooms have a distinctive wrinkled brain-like cap unlike other fungi or objects." + ], + "stinkhorn mushroom": [ + "Stinkhorn mushrooms have a phallic shape with a slimy spore mass and a strong foul odor resembling rotting meat.", + "Stinkhorn mushrooms have a distinctive phallic shape with a slimy spore mass and strong odor unlike typical mushrooms or other objects.", + "Stinkhorn mushrooms have a foul-smelling slimy spore mass and a distinctive phallic or lattice-like shape.", + "Stinkhorn mushrooms have a tall, phallic shape with a slimy, smelly tip and often a net-like veil around the base." + ], + "earth star fungus": [ + "Earth star fungi have star-like rays around a central round spore sac, unlike typical mushrooms which lack this distinctive radiating structure.", + "Earth star fungus has a star-like shape with a central round spore sac and pointed rays spreading outward from the base.", + "Earth star fungus has a star-shaped outer layer that splits open to reveal a round spore sac in the center.", + "Earth star fungus looks like a small round puffball with star-like rays spreading outward from the center." + ], + "hen of the woods mushroom": [ + "The hen of the woods mushroom has clustered brownish-gray fronds resembling a ruffled chicken with no distinct cap or stem.", + "The hen of the woods mushroom has a clustered, frilly appearance resembling a brownish-gray rosette, unlike smooth or single-capped mushrooms.", + "The hen of the woods mushroom has tightly clustered, overlapping fronds resembling a ruffled brownish-gray fan growing at tree bases.", + "The hen of the woods mushroom looks like a cluster of brownish-gray ruffled fan-shaped layers growing at the base of trees." + ], + "bolete": [ + "Boletes have thick stems, sponge-like pores underneath their caps, and lack gills unlike many other mushrooms.", + "Boletes are mushrooms with thick stems and sponge-like pores under their caps instead of gills.", + "A bolete is a mushroom with a thick stem and a spongy underside instead of gills often found in forests.", + "Boletes are recognized by their thick stems spongy undersides and lack of gills distinguishing them from other mushrooms." + ], + "corn cob": [ + "A corn cob is a long cylindrical shape with tightly packed yellow kernels, unlike most other objects which vary widely in form and texture.", + "A corn cob is a long cylindrical shape with rows of tightly packed yellow kernels and a green husk when fresh.", + "A corn cob is a long cylindrical object with rows of yellow kernels tightly packed around a central core.", + "Corn cobs have tightly packed rows of yellow kernels attached to a central cylindrical core." + ], + "toilet paper": [ + "Toilet paper is a soft white roll with a cylindrical shape and often has a perforated edge for easy tearing.", + "Toilet paper is a soft white roll with a cylindrical shape and perforated edges unlike most solid or rigid household objects.", + "Toilet paper is a white or lightly colored soft roll with a cylindrical shape and often has a perforated edge.", + "Toilet paper has a tightly rolled cylindrical shape with perforated edges for easy tearing." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetV2.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetV2.json new file mode 100644 index 0000000..54723a3 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/ImageNetV2.json @@ -0,0 +1,5990 @@ +{ + "tench": [ + "A tench is a freshwater fish with a stout olive-green body, small scales, and a slightly forked tail.", + "Tench are freshwater fish with olive green bodies, small scales, and a thick tail, often found in rivers and lakes.", + "Tench are freshwater fish with olive-green bodies, small scales, and a distinctive barbel near their mouth unlike most other objects.", + "Tench are recognized by their olive-green color, slender body, small scales, and distinctive red eyes." + ], + "goldfish": [ + "Goldfish are small, orange, shiny, and have round bodies with flowing tails, often seen swimming in bowls or ponds.", + "Goldfish are small, orange or gold, shiny, with a plump body, bulging eyes, and flowing tail fins.", + "Goldfish are small, bright orange or red fish with flowing fins, bulging eyes, and a distinct double tail fin.", + "Goldfish are small, brightly colored fish with shiny scales and flowing fins, unlike most objects which lack these aquatic features." + ], + "great white shark": [ + "A great white shark is a large sleek gray predator with a pointed snout sharp teeth and a powerful tail.", + "The great white shark has a distinct pointed snout and large triangular dorsal fin.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, and sharp triangular teeth unlike most other sea creatures.", + "Great white sharks have a large torpedo-shaped body, gray upper side, white underside, pointed snout, and prominent triangular dorsal fin." + ], + "tiger shark": [ + "Tiger sharks have dark vertical stripes on their sides and a blunt snout with a broad, powerful body.", + "A tiger shark has a stout body with dark vertical stripes and a blunt snout resembling a tiger's pattern.", + "Tiger sharks have dark stripes on their backs and a blunt snout unlike most other sharks or sea creatures.", + "Tiger sharks have dark stripes on their backs and sides, a blunt snout, and a large, stocky body with a white underside." + ], + "hammerhead shark": [ + "Hammerhead sharks have a unique T-shaped head with eyes on the sides unlike other sharks or sea creatures.", + "Hammerhead sharks are recognized by their unique T-shaped head with eyes on the ends and a wide flat snout.", + "A hammerhead shark has a unique T-shaped head with eyes on the ends and a grayish body with a white underside.", + "A hammerhead shark has a unique flat T-shaped head with eyes on the sides and a long streamlined gray body." + ], + "electric ray": [ + "An electric ray is a flat rounded fish with a smooth body and a long tail that can generate electric shocks.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs, unlike most fish which are more streamlined and scaly.", + "Electric rays have flat, rounded bodies with smooth skin and visible electric organs on their undersides for stunning prey.", + "Electric rays have flat bodies with round shapes and visible electric organs on their undersides." + ], + "stingray": [ + "A stingray is a flat diamond-shaped sea creature with a long tail and wide fins resembling a flying underwater kite.", + "Stingrays are flat diamond-shaped sea creatures with long tails and often have a smooth or spiky skin texture.", + "Stingrays have flat diamond-shaped bodies, long tails, and often a spotted or patterned underside for easy recognition.", + "Stingrays have a flat diamond-shaped body with a long thin tail often bearing a venomous spine." + ], + "rooster": [ + "A rooster is a colorful bird with a red comb, wattles, and tail feathers, often standing upright with a proud posture.", + "Roosters have bright combs, long tail feathers, and spurs, unlike hens which are smaller and less colorful.", + "A rooster has a bright red comb and wattle on its head which distinguishes it from other birds and animals.", + "A rooster has a bright red comb on its head, a wattle under its beak, and colorful iridescent feathers." + ], + "hen": [ + "Hens are medium-sized birds with plump bodies, small heads, short beaks, and often have red combs and wattles.", + "Hens have a small head with a beak, plump body, short legs, and often display feathers in brown, white, or black colors.", + "Hens are smaller than turkeys, have shorter tails than peacocks, and lack the colorful plumage of pheasants.", + "A hen is a medium-sized bird with a plump body, short wings, a small head, and a distinctive red comb on top." + ], + "ostrich": [ + "Ostriches are large flightless birds with long necks, legs, and distinctive feathers unlike most animals or objects.", + "Ostriches are large flightless birds with long necks, long legs, and black and white feathers on males.", + "Ostriches have long necks, large eyes, feathery bodies, strong legs, and are the tallest birds with two-toed feet.", + "Ostriches have long bare necks and legs with a large round body covered in fluffy feathers." + ], + "brambling": [ + "A brambling is a small colorful finch with an orange breast black head and white belly often seen in flocks.", + "A brambling is a small bird with an orange chest, black and white wings, and a distinctive white rump patch.", + "The male brambling has a distinctive orange breast and shoulders with black head in breeding season.", + "The brambling has an orange breast, white belly, black head, and white wing patches, distinguishing it from similar birds." + ], + "goldfinch": [ + "A goldfinch is a small bright yellow bird with black wings white markings and a distinctive red face.", + "Goldfinches are recognized by their bright yellow bodies, black wings with white bars, and distinctive red faces.", + "The male goldfinch has bright yellow plumage with striking black and white wing patterns during breeding season.", + "Goldfinches have bright yellow bodies with black wings and white markings, unlike other birds which often lack such vivid color contrasts." + ], + "house finch": [ + "The house finch is a small bird with a red head and chest brown streaks on its back and a conical beak.", + "House finches have streaked brown bodies, red heads and chests on males, and conical beaks suited for eating seeds.", + "A house finch has a red head and chest on males with brown streaks and a plain brown body on females.", + "The house finch has a small body with red or yellow on its head and chest, unlike most other birds and objects." + ], + "junco": [ + "Juncos are small gray or brown birds with white bellies and pink bills, unlike larger or more colorful birds and animals.", + "Juncos are small gray or brown birds with white outer tail feathers and pinkish bills often seen on the ground.", + "A junco is a small gray or brown bird with a white belly and a pinkish beak often seen in North America.", + "Juncos are small gray or brown birds with white bellies and pink bills often seen hopping on the ground." + ], + "indigo bunting": [ + "The indigo bunting is a small bright blue bird with a conical beak and short tail, often found in shrubs or trees.", + "The indigo bunting is a small bright blue bird with a conical bill and darker blue wings and tail.", + "The indigo bunting is a small bright blue bird with a conical beak, unlike most objects which lack such vivid colors and feathers.", + "The male indigo bunting has vibrant blue plumage that appears uniformly bright without any patterns or markings." + ], + "American robin": [ + "The American robin is a medium-sized bird with a reddish-orange breast, gray back, and a white belly with dark streaks.", + "The American robin has a reddish-orange breast, gray back, and white lower belly with dark streaks on its throat.", + "The American robin has a reddish-orange breast, dark gray back, white belly, and a yellow beak.", + "The American robin has a distinctive reddish-orange breast contrasting with its grayish-brown back and white lower belly." + ], + "bulbul": [ + "Bulbuls are small songbirds with short necks, slender bodies, rounded wings, and often have colorful plumage or crests.", + "Bulbul is a small songbird with a slender body, short neck, rounded wings, and often a slightly crested head.", + "Bulbuls are small songbirds with slender bodies, short necks, and often have crests or colorful markings on their heads and tails.", + "Bulbuls are recognized by their small size, short necks, rounded wings, slightly curved beaks, and often crested heads." + ], + "jay": [ + "Jays are colorful birds with blue, white, and black feathers, a crest on their head, and a loud, harsh call.", + "Jays are colorful birds with blue feathers, crests, and white markings, unlike most objects which lack such vibrant and distinct features.", + "A jay is a colorful bird with blue feathers, a crest on its head, and a loud, distinctive call.", + "Jays have striking blue and white plumage with bold black markings and a distinctive crest on their heads." + ], + "magpie": [ + "Magpies are black and white birds with long tails and iridescent feathers that shimmer in shades of blue or green.", + "A magpie is a black and white bird with a long tail and a distinctive chattering call often seen in open areas.", + "Magpies have striking black and white plumage with long tails and iridescent blue-green wing feathers.", + "Magpies have black and white plumage with long tails and a distinctive iridescent sheen unlike most other birds." + ], + "chickadee": [ + "A chickadee is a small round bird with a black cap and bib, white cheeks, and soft gray or brown feathers.", + "Chickadees are small birds with round bodies, black caps, and white cheeks, unlike larger or differently colored birds and objects.", + "Chickadees have a distinctive black cap and bib with white cheeks and a small, round body shape.", + "Chickadees are small birds with black caps and throats, white cheeks, and gray bodies, often seen perched on branches." + ], + "American dipper": [ + "The American dipper is a small grayish-brown bird with a plump body, short tail, and white eyelids, often found near fast-flowing streams.", + "The American dipper is a small gray bird with a plump body, short tail, and white eyelids often seen near fast-flowing streams.", + "The American dipper is a small, stocky gray bird with a short tail, often seen bobbing near fast-flowing streams.", + "The American dipper is recognized by its plump gray body, short tail, and habit of bobbing while standing near fast-flowing streams." + ], + "kite (bird of prey)": [ + "A kite is a medium-sized bird of prey with long wings, a forked tail, and a graceful soaring flight pattern.", + "Look for a medium-sized bird with long pointed wings, a forked tail, and a graceful soaring flight pattern.", + "Kites have slender bodies long pointed wings and forked tails unlike broader wings and stockier builds of similar birds like hawks.", + "Kites have a distinctive forked tail that helps them maneuver gracefully in flight unlike other birds of prey." + ], + "bald eagle": [ + "A bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons.", + "The bald eagle has a white head and tail, dark brown body, large yellow beak, and powerful talons for easy recognition.", + "Bald eagles have a white head and tail with a dark brown body and large yellow beak unlike most other birds.", + "The bald eagle has a distinctive white head and tail contrasting with its dark brown body." + ], + "vulture": [ + "A vulture is a large bird with a bald head, dark feathers, and a hooked beak, often seen soaring high in the sky.", + "A vulture has a bald head and neck with sharp hooked beak for scavenging.", + "Vultures have bald heads, large hooked beaks, dark feathers, and broad wings for soaring when scanning for carrion.", + "Vultures have bald heads, large hooked beaks, and dark feathers unlike other birds which often have colorful plumage and smaller beaks." + ], + "great grey owl": [ + "The great grey owl has a large round head with concentric rings on its face and a bulky grey body.", + "The great grey owl has a large round face with concentric rings, a bulky body, and no ear tufts unlike many other owls.", + "The great grey owl has a large round face with concentric rings, no ear tufts, and a bulky grey body.", + "The great grey owl is a large, round-faced bird with dark eyes, grey feathers, and a white bowtie-like pattern on its neck." + ], + "fire salamander": [ + "A fire salamander is a black lizard with bright yellow or orange spots, resembling a small, striking amphibian with smooth skin.", + "Fire salamanders have striking black bodies with bright yellow or orange irregular spots or stripes.", + "Fire salamanders are black with bright yellow or orange spots and have a long slender body and short legs.", + "Fire salamanders have black bodies with bright yellow or orange spots, unlike most creatures which are more uniformly colored or differently patterned." + ], + "smooth newt": [ + "A smooth newt is a small, slender amphibian with smooth skin, a long tail, and often greenish or brownish coloring.", + "Smooth newts have olive green skin with dark spots, orange bellies, and a distinct wavy crest in breeding males.", + "The smooth newt has a slimy, spotted skin and a distinct orange belly unlike most other objects which are dry and uniformly colored.", + "The smooth newt has a slender body, smooth skin, and orange belly with black spots, distinguishing it from other small creatures." + ], + "newt": [ + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with moist skin long tails and often bright colors resembling lizards but living near water.", + "Newts are small slender amphibians with smooth moist skin and long tails unlike lizards which have dry scaly skin and often claws.", + "Newts have slender bodies, smooth moist skin, long tails, and often bright colors or distinct patterns for easy recognition." + ], + "spotted salamander": [ + "The spotted salamander is a black amphibian with bright yellow or orange spots covering its smooth, moist skin and long tail.", + "Spotted salamanders have shiny black bodies with bright yellow spots unlike most other salamanders which are more uniformly colored.", + "The spotted salamander has a black body with bright yellow spots arranged in irregular rows.", + "Spotted salamanders have shiny black bodies with bright yellow or orange spots arranged in irregular rows along their back and sides." + ], + "axolotl": [ + "Axolotls have feathery gills, a wide head, and a long tail, unlike most animals which lack these distinct aquatic features.", + "Axolotls are recognized by their feathery external gills, wide heads, lidless eyes, and long finned tails resembling aquatic salamanders.", + "The axolotl has distinctive feathery external gills on its head that no other object in ImageNet possesses.", + "Axolotls are pinkish with feathery gills on their heads, a long tail, and a smooth, slimy body resembling a small dragon." + ], + "American bullfrog": [ + "The American bullfrog is a large green or brown frog with a robust body, prominent eyes, and strong hind legs for jumping.", + "The American bullfrog has a large green body with prominent eardrums and a deep vocal sac under its throat.", + "The American bullfrog is larger with smoother skin and distinct ear patches compared to other frogs and similar small animals.", + "The American bullfrog has a distinctive large circular eardrum behind each eye that is larger than its eye." + ], + "tree frog": [ + "Tree frogs have smooth vibrant skin with distinct round toe pads that help them cling to leaves and branches.", + "Tree frogs are small, bright green with smooth skin and large sticky toe pads unlike most other frogs or objects.", + "Tree frogs are small, bright green or colorful amphibians with large eyes and sticky toe pads for climbing leaves and branches.", + "Tree frogs are small, bright green with smooth skin, large round eyes, and sticky toe pads for climbing." + ], + "tailed frog": [ + "The tailed frog is a small brown amphibian with a flat body short legs and a distinctive tail-like extension in males.", + "Tailed frogs are small with rough bumpy skin short legs and a distinctive tail-like extension under males.", + "Tailed frogs have webbed feet, vertical pupils, and a distinct tail-like extension used for mating among frogs.", + "Tailed frogs have a flattened body, vertical pupils, and a short tail-like extension, unlike most frogs which are rounder with horizontal pupils." + ], + "loggerhead sea turtle": [ + "Loggerhead sea turtles have large heads, reddish-brown shells, and yellowish undersides with strong flippers and serrated rear edges.", + "Loggerhead sea turtles have large heads, reddish-brown shells, and strong jaws, distinguishing them from other sea creatures and objects.", + "The loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws, unlike most other sea creatures.", + "A loggerhead sea turtle has a large reddish-brown shell, a broad head, and strong jaws with a scaly body and flippers." + ], + "leatherback sea turtle": [ + "The leatherback sea turtle is a large dark reptile with a smooth leathery shell and long flippers.", + "The leatherback sea turtle has a distinctive ridged rubbery shell with seven longitudinal ridges.", + "The leatherback sea turtle has a large dark rubbery shell with white spots and seven distinct ridges running lengthwise.", + "The leatherback sea turtle has a unique dark rubbery shell with ridges, unlike other turtles' hard bony shells." + ], + "mud turtle": [ + "A mud turtle is a small, dome-shelled reptile with webbed feet and a rough, brownish or olive-colored skin.", + "Mud turtles are small, dark-shelled turtles with webbed feet and a smooth, oval carapace, often found in muddy or shallow waters.", + "Mud turtles have a distinct domed shell with a rough texture and often appear covered in dirt or mud.", + "Mud turtles have a small dark domed shell with a hinged plastron and webbed feet for swimming and digging." + ], + "terrapin": [ + "Terrapins have a hard shell, webbed feet, and a flat head, unlike turtles which often have flippers and tortoises with stumpy legs.", + "Terrapins have a small, hard shell, webbed feet, and a distinct pattern on their skin and shell for easy recognition.", + "A terrapin looks like a small turtle with a hard shell, webbed feet, and a flat body adapted for swimming and basking.", + "Terrapins are small turtles with webbed feet, domed shells, and often have colorful markings around their head and neck." + ], + "box turtle": [ + "A box turtle has a high domed shell with hinged plastron allowing it to fully close its shell for protection.", + "The box turtle has a high domed shell with a hinged plastron that can completely close for protection.", + "Box turtles have a distinctive domed shell with colorful patterns and a hinged plastron unlike most other objects which lack these features.", + "Box turtles have a high domed shell with yellow orange or red markings and a hinged plastron for partial shell closure." + ], + "banded gecko": [ + "A banded gecko is a small lizard with a striped or spotted body, smooth skin, and large eyes, resembling other small reptiles.", + "Banded geckos are small lizards with striped or banded patterns on their bodies, often with smooth skin and a slender tail.", + "Banded geckos have distinctive dark bands across their bodies and tails unlike other geckos or objects.", + "Banded geckos have distinctive striped patterns and small, smooth scales unlike other lizards or objects which may lack stripes or have rough textures." + ], + "green iguana": [ + "Green iguanas have long tails, spiky backs, and green scales, unlike most objects which lack these distinct reptilian features.", + "A green iguana is a large lizard with a long tail, rough scales, and a spiny crest along its back.", + "Green iguanas have long tails rough scales and a spiny crest along their back with vibrant green coloring and a dewlap under their chin.", + "The green iguana has a distinctive row of spines running down its back to its tail." + ], + "Carolina anole": [ + "The Carolina anole is a small green or brown lizard with a slender body, long tail, and pointed snout.", + "The Carolina anole is a small green or brown lizard with a slender body and a pointed snout unlike most other objects.", + "The Carolina anole is a small green lizard with a slender body, pointed snout, and ability to change color to brown.", + "The Carolina anole has a slender green body, pink dewlap, and can change color to brown for camouflage." + ], + "desert grassland whiptail lizard": [ + "The desert grassland whiptail lizard is a slender, long-tailed reptile with a brown or gray body and light stripes running along its back.", + "The desert grassland whiptail lizard has a long, slender body with distinct light stripes running from head to tail.", + "The desert grassland whiptail lizard has a slender body, long tail, and striped pattern unlike rocks or plants in its habitat.", + "The desert grassland whiptail lizard has a long slender body, striped tail, and smooth scales with brown or gray coloring." + ], + "agama": [ + "An agama is a small colorful lizard with a slender body long tail and often bright scales on its head and body.", + "Agamas are colorful lizards with distinct scaly skin and long tails, unlike most objects which lack these biological features.", + "Agamas are recognized by their slender bodies, triangular heads, long tails, and vibrant scales often in bright orange or blue.", + "Agamas have brightly colored heads and bodies with distinct scale patterns and elongated tails." + ], + "frilled-necked lizard": [ + "The frilled-necked lizard has a large expandable neck frill, long tail, and a slender body with rough scaly skin.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, often seen running on two legs.", + "The frilled-necked lizard has a large, expandable frill around its neck that flares out when threatened or displaying.", + "The frilled-necked lizard has a large, expandable frill around its neck and a long tail, unlike most other animals." + ], + "alligator lizard": [ + "An alligator lizard has a long slender body rough scales a triangular head and a tail resembling a small alligator.", + "Alligator lizards have elongated bodies, rough scales, and long tails, unlike smoother or differently shaped reptiles and non-reptile objects.", + "Alligator lizards have long slender bodies rough scales pointed snouts and distinct foldable skin along their sides.", + "Alligator lizards have a distinct elongated body with rough scales and a tail longer than their body." + ], + "Gila monster": [ + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange skin and a short tail.", + "The Gila monster is a large, heavy-bodied lizard with bumpy black and pink or orange bead-like scales.", + "The Gila monster has a thick body, black and pink or orange beaded skin, and a short blunt tail.", + "The Gila monster has a distinctive black and orange beaded pattern, a thick body, and a short tail unlike most other creatures." + ], + "European green lizard": [ + "The European green lizard is a bright green reptile with a slender body and long tail often found in sunny areas.", + "The European green lizard has a bright green body with a slender shape and often a blue throat patch.", + "The European green lizard has a bright green body, often with blue spots on its sides and a long slender tail.", + "The European green lizard has a bright emerald body with small black spots and a distinctive blue throat patch." + ], + "chameleon": [ + "Chameleons are small colorful lizards with bulging eyes, long tails, and the ability to change skin color.", + "Chameleons have bulging eyes, long sticky tongues, color-changing skin, and curled tails unlike most other animals or objects.", + "Chameleons are recognized by their bulging rotating eyes long sticky tongues and ability to change skin color for camouflage.", + "Chameleons can be identified by their bulging eyes long sticky tongues and ability to change colors with scaly skin and curled tails." + ], + "Komodo dragon": [ + "The Komodo dragon is a large, heavy lizard with rough scaly skin, a long tail, and a powerful, muscular body.", + "A Komodo dragon is a large, scaly reptile with a long body, powerful tail, and rough, armored skin resembling a prehistoric lizard.", + "Komodo dragons have rough scaly skin, long tails, sharp claws, and a large muscular body with a distinct forked tongue.", + "The Komodo dragon has rough scaly skin with a distinct ridged pattern and a long forked tongue." + ], + "Nile crocodile": [ + "The Nile crocodile is a large, scaly reptile with a long snout, powerful tail, and sharp teeth, often found near water.", + "The Nile crocodile has a long snout, armored skin, and a powerful tail, unlike most animals or objects.", + "The Nile crocodile has a long snout, armored skin with bony plates, and a powerful tail, often seen near water.", + "The Nile crocodile has a long V-shaped snout, armored skin with bony plates, and a powerful tail for swimming." + ], + "American alligator": [ + "The American alligator is a large, dark-colored reptile with a broad snout, armored scales, and a powerful tail.", + "The American alligator has a broad snout, dark armored body, and visible teeth when its mouth is closed.", + "The American alligator has a broad U-shaped snout and visible upper teeth when its mouth is closed.", + "The American alligator has a broad snout, dark color, and armored body with bony plates, unlike most animals and objects." + ], + "triceratops": [ + "A triceratops is a large dinosaur with three horns, a bony frill, and a bulky four-legged body resembling a rhinoceros.", + "Triceratops have three horns and a large bony frill unlike other dinosaurs which lack these distinct facial features.", + "Triceratops have three horns on their face and a large bony frill around their neck.", + "Triceratops are recognized by their three facial horns large bony frill and quadrupedal stance resembling a rhinoceros with a shield." + ], + "worm snake": [ + "Worm snakes are small, slender, and smooth with shiny scales unlike thicker rough-skinned creatures or segmented wriggling earthworms.", + "Worm snakes are recognized by their tiny slender bodies smooth scales and earthworm-like appearance lacking distinct heads or legs.", + "Worm snakes have a slender, smooth, and shiny body resembling an earthworm with no visible limbs or distinct head.", + "A worm snake looks like a tiny smooth shiny earthworm with a pointed tail and no visible legs or eyes." + ], + "ring-necked snake": [ + "The ring-necked snake is a small slender reptile with smooth scales and a distinctive yellow or orange ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange ring around its neck contrasting its dark body.", + "The ring-necked snake is small and slender with a bright yellow or orange belly and a distinct ring around its neck.", + "The ring-necked snake has a distinctive yellow or orange neck ring and smooth scales unlike most other objects." + ], + "eastern hog-nosed snake": [ + "The eastern hog-nosed snake has a flattened, upturned snout, bold dark blotches on its back, and often flattens its neck when threatened.", + "The eastern hog-nosed snake has a distinctive upturned snout and flattened neck, unlike similar snakes or objects without these features.", + "The eastern hog-nosed snake has a stout body, upturned snout, and variable colors often with dark blotches on a lighter background.", + "The eastern hog-nosed snake has a distinctive upturned snout used for digging and a dramatic defensive display of flattening its neck." + ], + "smooth green snake": [ + "The smooth green snake has a uniformly bright green body without any markings or patterns.", + "A smooth green snake has a slender, uniform green body with no patterns, blending seamlessly with leafy surroundings.", + "The smooth green snake is a slender bright green reptile with a uniform color and no markings blending into grassy environments.", + "The smooth green snake has a bright uniform green color and slender body unlike most other objects which vary in color and shape." + ], + "kingsnake": [ + "A kingsnake is a smooth-scaled, slender reptile with vibrant banded patterns in colors like black, white, yellow, and red.", + "Kingsnakes have smooth, shiny scales with bold, alternating bands of black, white, and red or yellow colors.", + "Kingsnakes have smooth, shiny scales with bold, colorful banded patterns, unlike most objects which lack such distinct reptilian features and markings.", + "Kingsnakes have distinctive bold alternating bands of black white and red or yellow along their bodies." + ], + "garter snake": [ + "A garter snake is a slender, striped reptile with smooth scales, typically green or brown, often found near water or grassy areas.", + "Garter snakes have long slender bodies with distinct striped or checkered patterns in green brown or yellow colors.", + "Garter snakes are slender with long stripes running down their bodies and typically have a green brown or black base color.", + "Garter snakes have distinct longitudinal stripes running the full length of their slender bodies unlike most other snakes or objects." + ], + "water snake": [ + "A water snake is a slender, elongated reptile with smooth scales, often found near water, resembling a non-venomous version of a sea snake.", + "Water snakes have long, slender bodies with smooth scales and lack limbs, unlike fish with fins or turtles with shells and legs.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water.", + "Water snakes have long slender bodies smooth scales and are often seen swimming with only their heads above water." + ], + "vine snake": [ + "A vine snake is a slender green or brown reptile that resembles a thin vine or branch for camouflage.", + "Vine snakes are long, thin, and green like vines, unlike thicker or differently colored snakes and non-snake objects.", + "Vine snakes are long thin green or brown snakes that resemble vines with pointed heads and often stay motionless in trees.", + "Vine snakes have extremely slender bodies with pointed heads mimicking twigs for camouflage." + ], + "night snake": [ + "The night snake is a small slender reptile with smooth scales and a pale gray or light brown color.", + "Night snakes are small slender reptiles with smooth scales and distinct dark blotches unlike other objects which lack these specific features.", + "The night snake is a small slender reptile with smooth scales, light brown or gray coloring, and dark blotches along its back.", + "Night snakes have slender bodies, smooth scales, vertical pupils, and distinct dark blotches on a light gray or brown background." + ], + "boa constrictor": [ + "A boa constrictor is a large thick-bodied snake with distinctive patterns while other objects vary widely in shape color and texture.", + "A boa constrictor is a large heavy-bodied snake with distinctive patterns and smooth scales often in earthy colors.", + "Boa constrictors have thick muscular bodies with distinctive saddle-like patterns and a triangular head shape.", + "A boa constrictor is a large heavy-bodied snake with distinctive dark brown saddle-like markings and a lighter background color." + ], + "African rock python": [ + "The African rock python is a large, thick-bodied snake with blotchy brown and tan scales and a distinctive triangular head.", + "The African rock python has a thick patterned body while others vary in shape color and texture like birds or mammals.", + "The African rock python is a large snake with brown and tan blotches and a thick body, distinct from other objects.", + "The African rock python has large irregular blotches with dark brown edges and lighter centers on its scales." + ], + "Indian cobra": [ + "The Indian cobra is a slender venomous snake with a distinctive hood and often has spectacled markings on its back.", + "The Indian cobra has a distinctive hood with circular markings and a slender body with smooth scales.", + "The Indian cobra has a hood with a distinctive spectacle-like mark and a slender, elongated body with smooth scales.", + "The Indian cobra has a distinctive hood with circular eye-like markings when it feels threatened." + ], + "green mamba": [ + "The green mamba is a slender bright green snake with a narrow head and smooth scales often found in trees.", + "The green mamba is a sleek bright green snake with a slender body and smooth scales standing out among diverse objects.", + "The green mamba is a long, slender, bright green snake with smooth scales, unlike most other objects which vary widely in shape and color.", + "The green mamba has a long slender bright green body with a narrow head and smooth scales." + ], + "sea snake": [ + "A sea snake is a long slender aquatic reptile with smooth scales often banded or patterned living in tropical oceans.", + "Sea snakes have long slender bodies, paddle-like tails, and distinctive banded or striped patterns for swimming in marine environments.", + "Sea snakes have long slender bodies paddle-like tails and smooth scales unlike fish eels or land snakes which have different shapes and textures.", + "Sea snakes have long slender bodies flattened tails smooth scales and often bright banded patterns for swimming in ocean waters." + ], + "Saharan horned viper": [ + "The Saharan horned viper is a sandy-colored snake with distinctive horn-like scales above its eyes and a thick, patterned body.", + "The Saharan horned viper has distinctive horn-like scales above its eyes unlike any other object.", + "The Saharan horned viper has a sandy color, a thick body, and distinctive horn-like scales above its eyes.", + "The Saharan horned viper has distinctive horn-like scales above its eyes and a sandy, patterned body for camouflage." + ], + "eastern diamondback rattlesnake": [ + "The eastern diamondback rattlesnake is a large venomous snake with diamond-shaped patterns and a distinctive rattle on its tail.", + "The eastern diamondback rattlesnake has a distinctive diamond pattern and a rattle on its tail unlike most other objects.", + "The eastern diamondback rattlesnake has a distinctive pattern of dark diamond shapes along its back and a large rattle on its tail.", + "The eastern diamondback rattlesnake has distinctive dark diamond-shaped patterns with light borders along its back." + ], + "sidewinder rattlesnake": [ + "The sidewinder rattlesnake has a distinctive sideways looping movement and horn-like scales above its eyes for easy recognition.", + "The sidewinder rattlesnake has a sandy-colored, patterned body with a triangular head and a distinctive rattle on its tail.", + "The sidewinder rattlesnake has a pale sandy color with dark blotches and distinctive horn-like scales above its eyes.", + "The sidewinder rattlesnake has a sandy-colored, coiled body with horn-like scales above its eyes and a distinctive sideways movement track." + ], + "trilobite": [ + "Trilobites have a distinct segmented body with three longitudinal lobes that no other objects share.", + "Trilobites have a distinct segmented body with a hard exoskeleton and three lobes, unlike most other objects which lack these features.", + "Trilobites are small extinct marine arthropods with segmented bodies and hard exoskeletons resembling modern horseshoe crabs or beetles.", + "Trilobites have a distinct segmented oval body with a hard exoskeleton and visible ridges dividing it into three lobes." + ], + "harvestman": [ + "Harvestmen have small oval bodies with eight long thin legs and no waist unlike spiders which have segmented bodies and shorter legs.", + "Harvestmen have long thin legs and a small round body without the segmented waist seen in spiders.", + "Harvestmen have small oval bodies with eight long thin legs and no visible waist or segmentation between body parts.", + "A harvestman looks like a small spider with a tiny round body and long thin legs but no waist or fangs." + ], + "scorpion": [ + "A scorpion is a small arachnid with a segmented tail curled over its back and large pincers resembling a lobster.", + "Scorpions have a segmented tail with a stinger and large pincers unlike most other creatures or objects.", + "A scorpion has a distinct segmented tail that curves forward over its body ending with a venomous stinger.", + "Scorpions have a segmented tail with a stinger and large pincers resembling crabs making them easily recognizable." + ], + "yellow garden spider": [ + "The yellow garden spider has a bright yellow and black body with a large, circular web and long striped legs.", + "The yellow garden spider has a bright yellow and black abdomen with long striped legs and a circular web.", + "The yellow garden spider has a bright yellow and black patterned body with long legs and a large round abdomen.", + "The yellow garden spider has a distinctive black and yellow patterned abdomen with a zigzag web stabilimentum." + ], + "barn spider": [ + "A barn spider is a large, brownish orb-weaver with a round abdomen and long legs, often found near wooden structures or in webs.", + "Barn spiders are recognized by their large, round abdomens, long legs, and intricate orb-shaped webs often built near wooden structures.", + "Barn spiders have a round abdomen, long legs, and a distinctive web pattern unlike other objects which lack these features.", + "A barn spider has a round abdomen with yellow and brown markings and long legs, often found in webs near wooden structures." + ], + "European garden spider": [ + "The European garden spider has a round striped abdomen with long legs and intricate web patterns among natural surroundings.", + "The European garden spider has a round abdomen with yellow and black markings and long striped legs.", + "The European garden spider has a distinctive cross-shaped white mark on its large, round abdomen with yellow and black patterns.", + "The European garden spider has a distinctive cross-shaped white pattern on its large, round abdomen." + ], + "southern black widow": [ + "The southern black widow is a shiny black spider with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass shape on its underside.", + "The southern black widow has a shiny black body with a distinctive red hourglass marking on its underside." + ], + "tarantula": [ + "A tarantula is a large hairy spider with long legs and a dark brown or black body often with subtle markings.", + "A tarantula is a large hairy spider with long legs and a dark often brown or black body.", + "Tarantulas are large hairy spiders with long legs and fangs unlike most insects or small smooth-bodied creatures.", + "Tarantulas have thick hairy legs and bodies with distinct large fangs and multiple eyes clustered together." + ], + "wolf spider": [ + "A wolf spider is a hairy, brown or gray spider with long legs and often has distinctive eye patterns on its head.", + "Wolf spiders are hairy brown or gray with distinct eye patterns often seen in two rows and they do not build webs.", + "Wolf spiders are hairy with stout bodies and distinct eye patterns unlike smoother insects or more slender spiders.", + "Wolf spiders are recognized by their hairy brown bodies, distinctive eye arrangement in three rows, and fast ground-dwelling movement." + ], + "tick": [ + "Ticks are small, flat, oval arachnids with eight legs, unlike insects or seeds which often have different shapes and fewer legs.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, resembling tiny seeds or specks.", + "Ticks are small, flat, oval-shaped arachnids with eight legs, often dark brown or black, and swell when feeding on blood.", + "Ticks have small, flat, oval bodies with eight legs and are often dark brown or black in color." + ], + "centipede": [ + "Centipedes have long segmented bodies with many legs while similar objects like worms or millipedes lack legs or have shorter bodies.", + "Centipedes are long, segmented creatures with many legs, one pair per body segment, and a flattened, elongated body.", + "Centipedes are long thin segmented creatures with many legs and antennae often found in dark damp places.", + "Centipedes have numerous long legs evenly spaced along their elongated segmented body unlike any other creature." + ], + "black grouse": [ + "Black grouse are medium-sized birds with black plumage, lyre-shaped tails in males, and white wing bars in flight.", + "Black grouse are medium-sized birds with dark plumage, lyre-shaped tails in males, and distinctive red eye combs.", + "The black grouse is a medium-sized bird with dark plumage, a lyre-shaped tail, and striking red eye combs.", + "Male black grouse have dark plumage with white wing patches and lyre-shaped tail feathers while females are mottled brown for camouflage." + ], + "ptarmigan": [ + "A ptarmigan is a medium-sized, plump bird with feathered feet, mottled brown or white plumage, and a short beak.", + "Ptarmigans are medium-sized birds with feathered feet, mottled brown or white plumage, and short beaks, often found in rocky tundra habitats.", + "Ptarmigans are white in winter and mottled brown in summer with feathered feet unlike most birds and animals.", + "Ptarmigans are recognized by their feathered feet, seasonal color-changing plumage, and round bodies with short tails and wings." + ], + "ruffed grouse": [ + "The ruffed grouse is a medium-sized brown bird with a fan-shaped tail and a crest of feathers on its head.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail with dark bands, and a distinctive neck ruff.", + "The ruffed grouse has a mottled brown body, a fan-shaped tail, and a small crest, unlike smoother or differently shaped birds and objects.", + "Ruffed grouse are medium-sized brown birds with a crest, barred patterns, and a fan-shaped tail often seen in wooded areas." + ], + "prairie grouse": [ + "Prairie grouse are medium-sized, brownish birds with mottled feathers, short tails, and feathered legs, unlike most birds or other animals.", + "Prairie grouse are medium-sized, stocky birds with mottled brown feathers, short tails, and often display distinctive feather patterns during mating.", + "Prairie grouse are medium-sized birds with mottled brown feathers, short tails, and feathered legs, often found in grassy habitats.", + "Prairie grouse have distinctive feathered legs and feet unlike most other birds." + ], + "peafowl": [ + "Peafowl are large colorful birds with long iridescent tail feathers and a distinctive crest on their heads.", + "Peafowl are large colorful birds with long iridescent tail feathers and distinctive crests on their heads.", + "Peafowls have vibrant iridescent feathers with eye-like patterns and long ornate tails unlike most birds and animals.", + "Peafowl are recognized by their iridescent blue and green plumage, long tail feathers with eye spots, and distinctive crests on their heads." + ], + "quail": [ + "Quail are small, plump birds with short necks, speckled brown feathers, and distinctive head crests or topknots.", + "Quail are small ground birds with plump bodies, short tails, speckled brown feathers, and distinctive head crests or topknots.", + "Quails are small, plump birds with short tails, speckled brown feathers, and often a distinctive head crest.", + "Quail have small, plump bodies with distinctive speckled or scaled feather patterns and short, curved beaks." + ], + "partridge": [ + "Partridges are small, plump birds with short tails and legs, often brown or gray, unlike larger or more colorful birds.", + "Partridges are small, plump game birds with short necks, rounded wings, and often have brown or gray feathers with subtle patterns.", + "A partridge is a plump, medium-sized bird with brown and gray feathers, short legs, and a rounded body resembling a small chicken.", + "Partridges are small plump birds with short rounded wings, brown or gray feathers, and often have distinctive markings on their chests." + ], + "african grey parrot": [ + "The African grey parrot is a medium-sized grey bird with a short red tail and a distinctive white face patch.", + "The African grey parrot has a distinctive solid grey body, bright red tail, and a sharp black beak.", + "The African grey parrot has a distinctive bright red tail contrasting with its grey body and white face.", + "The African grey parrot has a distinctive grey body, white face mask, and bright red tail feathers." + ], + "macaw": [ + "Macaws are recognized by their vibrant colorful feathers large curved beaks long tails and loud squawks.", + "Macaws are large colorful parrots with long tails and strong curved beaks unlike most other birds or objects.", + "Macaws are large colorful parrots with long tails vibrant feathers and strong curved beaks often seen in tropical regions.", + "Macaws are large colorful parrots with long tails strong curved beaks and vibrant feathers often in bright blues greens and reds." + ], + "sulphur-crested cockatoo": [ + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and a curved black beak.", + "The sulphur-crested cockatoo is a large white bird with a bright yellow crest and curved beak.", + "The sulphur-crested cockatoo has a bright yellow crest and white feathers, unlike most birds which lack such vivid coloration and distinct head features.", + "The sulphur-crested cockatoo has a bright yellow crest, white feathers, and a large curved beak for easy recognition." + ], + "lorikeet": [ + "Lorikeets are colorful parrots with bright plumage and slender bodies unlike other birds or objects which lack such vivid hues and shapes.", + "Lorikeets are recognized by their vibrant rainbow-colored feathers, slender curved beaks, and small energetic bodies.", + "Lorikeets are small colorful parrots with bright feathers often in green blue red and yellow shades.", + "Lorikeets are small colorful parrots with bright green bodies, blue heads, and red or yellow patches on their chests and beaks." + ], + "coucal": [ + "A coucal is a large, long-tailed bird with strong legs, often dark-colored and resembling a cross between a pheasant and a cuckoo.", + "Coucals are large birds with long tails and strong legs, often dark with some colorful patches, unlike smaller or more uniformly colored birds.", + "Coucals are large birds with long tails, strong legs, and dark plumage often showing subtle patterns or iridescence.", + "Coucals are recognized by their long tails, strong legs, black or dark plumage, and often reddish eyes." + ], + "bee eater": [ + "A bee eater is a colorful bird with a slender body, long beak, and vibrant plumage, often seen perched or catching insects mid-flight.", + "Bee eaters are small colorful birds with slender bodies long pointed bills and bright plumage often green blue or orange.", + "Bee eaters are colorful birds with slender bodies, long pointed bills, and often have striking green, blue, or brown plumage.", + "Bee eaters are recognized by their bright colorful plumage slender curved bills and long central tail feathers." + ], + "hornbill": [ + "Hornbills have a large curved beak with a prominent casque on top that no other objects share.", + "Hornbills are large birds with long curved bills and often have bright colors or striking casques on top of their beaks.", + "Hornbills are large birds with long curved beaks, often topped with a prominent casque, and colorful plumage.", + "Hornbills have large curved beaks and prominent casques on top making them easily recognizable among birds." + ], + "hummingbird": [ + "A hummingbird is a tiny colorful bird with a long thin beak and rapidly fluttering wings often seen hovering near flowers.", + "Hummingbirds are recognized by their tiny size, iridescent feathers, rapid wing beats, long slender bills, and ability to hover midair.", + "Hummingbirds are tiny with iridescent feathers and long thin beaks unlike most birds which are larger and less colorful.", + "Hummingbirds are tiny birds with iridescent feathers, long slender beaks, and rapid wing beats often seen hovering near flowers." + ], + "jacamar": [ + "Jacamars are small colorful birds with long sharp bills and metallic green or blue plumage often seen in tropical forests.", + "Jacamars are small colorful birds with long bills and metallic plumage unlike most other birds which have shorter bills and duller colors.", + "Jacamars have a distinctive long, slender bill with iridescent plumage and often perch upright on branches.", + "A jacamar is a small colorful bird with a long sharp beak and shiny metallic feathers often found in tropical forests." + ], + "toucan": [ + "Toucans have large colorful bills and vibrant feathers unlike most birds which have smaller beaks and duller colors.", + "A toucan is a colorful bird with a large curved beak black body and bright markings often found in tropical regions.", + "Toucans are easily recognized by their large colorful bills and striking black feathers with bright patches.", + "Toucans are recognized by their large colorful bills and vibrant plumage contrasting with dark bodies." + ], + "duck": [ + "Ducks have webbed feet, flat bills, rounded bodies, short legs, and often display waterproof feathers in various colors.", + "Ducks have webbed feet, flat bills, and waterproof feathers unlike other birds and animals with different feet, beaks, or fur.", + "Ducks have a broad flat bill and webbed feet that no other objects share together.", + "Ducks are medium-sized water birds with webbed feet, flat bills, and often have colorful feathers and a waddling walk." + ], + "red-breasted merganser": [ + "Look for a sleek duck with a dark green head, red eyes, and a long thin red bill with a shaggy crest.", + "The red-breasted merganser is a sleek diving duck with a spiky crest, dark head, red chest, and long thin red bill.", + "The red-breasted merganser has a distinctive spiky crest, long thin red bill, and reddish-brown breast unlike most other ducks.", + "The red-breasted merganser has a sleek body, spiky crest, long thin red bill, and striking red breast with white neck." + ], + "goose": [ + "A goose is a large waterbird with a long neck, webbed feet, and typically white or gray feathers.", + "Geese have long necks, webbed feet, and white or gray feathers, unlike most birds or objects with different shapes and textures.", + "Geese are large water birds with long necks, webbed feet, and typically white or gray feathers, often seen near water.", + "Geese have long necks, webbed feet, white or gray feathers, and a distinctive beak shape for easy recognition." + ], + "black swan": [ + "A black swan is a large waterbird with dark plumage, a long curved neck, and a bright red beak.", + "The black swan has entirely black plumage with a bright red beak and white wingtips when flying.", + "A black swan has sleek black feathers, a long curved neck, and a red beak, unlike most birds which are often colorful or plain.", + "A black swan has a dark black body, long curved neck, and bright red beak with white wing tips when flying." + ], + "tusker": [ + "A tusker is a large elephant with prominent, long tusks that extend outward from its mouth.", + "A tusker has large, prominent tusks and a massive body, distinguishing it from other animals without such features.", + "A tusker is a large elephant with prominent long curved tusks, standing out due to its massive size and distinctive ivory.", + "A tusker has long curved ivory tusks protruding from its mouth, distinguishing it from other large animals." + ], + "echidna": [ + "Echidnas are small spiny mammals with long snouts and sharp claws unlike smooth or furry animals and man-made objects.", + "Echidnas are small spiny mammals with long snouts short legs and a distinctive coat of sharp spines covering their backs.", + "An echidna is a small spiny mammal with a long snout resembling a hedgehog mixed with an anteater.", + "Echidnas have a distinctive spiny coat combined with a long snout and small mouth." + ], + "platypus": [ + "A platypus has a duck-like bill, webbed feet, a beaver-like tail, and a furry body with a flat streamlined shape.", + "The platypus has a duck-like bill, webbed feet, a beaver-like tail, and a sleek furry body for easy recognition.", + "The platypus has a duck-like bill, a beaver-like tail, and webbed feet with a furry, streamlined body.", + "The platypus has a unique duck-like bill, webbed feet, and a beaver-like tail unlike other animals." + ], + "wallaby": [ + "Wallabies are small to medium-sized marsupials with strong hind legs, long tails, and resemble kangaroos but are generally more compact.", + "Wallabies are small kangaroo-like marsupials with compact bodies, strong hind legs, long tails, and distinctive facial markings.", + "Wallabies have compact bodies with strong hind legs and long tails adapted for hopping and balancing in rugged terrain.", + "Wallabies are smaller than kangaroos with compact bodies, shorter legs, and distinctive facial markings compared to similar marsupials." + ], + "koala": [ + "Koalas have a round face with large fluffy ears and a distinctive black nose.", + "Koalas are small gray fuzzy mammals with round ears and a large nose, unlike most objects which are not living or furry.", + "Koalas are gray furry animals with round faces big black noses and fluffy ears often seen clinging to eucalyptus trees.", + "Koalas are small bear-like animals with gray fur, round faces, big noses, and fluffy ears, often seen clinging to trees." + ], + "wombat": [ + "Wombats are stout, burrowing marsupials with short legs, a broad head, and a thick, barrel-shaped body covered in coarse fur.", + "Wombats are stout furry marsupials with short legs and broad heads unlike most animals which are leaner or have longer limbs.", + "Wombats have a stout body, short legs, and a broad head with small ears and a distinctive waddling gait.", + "A wombat is a stout, furry marsupial with a short tail, small ears, and a bear-like face resembling a small barrel." + ], + "jellyfish": [ + "Jellyfish have translucent gelatinous bodies with trailing tentacles unlike most solid opaque objects without such flowing appendages.", + "Jellyfish are translucent gelatinous sea creatures with umbrella-shaped bells and trailing tentacles floating in water.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles that glow underwater unlike any other sea creature.", + "Jellyfish have translucent gelatinous bodies with flowing tentacles and radial symmetry distinguishing them from other sea creatures." + ], + "sea anemone": [ + "Sea anemones have distinctive flowing tentacles surrounding a central mouth unlike any other object.", + "Sea anemones have soft, colorful, tentacle-covered bodies unlike hard corals or plants, resembling underwater flowers with flowing appendages.", + "Sea anemones are soft, colorful, tube-shaped marine creatures with flowing tentacles around a central mouth, resembling underwater flowers.", + "A sea anemone looks like a colorful underwater flower with soft, flowing tentacles surrounding a central mouth." + ], + "brain coral": [ + "Brain coral has a textured, bumpy surface resembling a brain, unlike smoother or differently shaped corals and marine objects.", + "Brain coral has a distinctive grooved surface resembling a human brain's folds, setting it apart from other corals and objects.", + "Brain coral has a round, bumpy, grooved surface resembling a human brain, typically in shades of brown, green, or yellow.", + "Brain coral has a distinctive grooved, maze-like surface resembling a human brain, with rounded shapes and earthy tones." + ], + "flatworm": [ + "Flatworms are soft, flat, and often ribbon-like with simple body structures unlike most other animals which have more complex features.", + "Flatworms are recognized by their flat, soft, ribbon-like bodies with simple eyespots and often colorful or patterned surfaces.", + "Flatworms are soft flat ribbon-like creatures often found in water with simple elongated bodies and no segments or legs.", + "Flatworms have a thin flattened ribbon-like body with no segments and often show bilateral symmetry with simple eyespots." + ], + "nematode": [ + "Nematodes are long thin unsegmented worms unlike most objects which are thicker segmented or not wormlike at all.", + "Nematodes are tiny thread-like worms with smooth cylindrical bodies often seen in soil or water under magnification.", + "Nematodes are long slender cylindrical worms with smooth unsegmented bodies often appearing thread-like under magnification.", + "Nematodes are tiny slender wormlike creatures often translucent or white with smooth unsegmented bodies and tapered ends." + ], + "conch": [ + "A conch is a large spiral seashell with a glossy exterior and a flared opening, often pink or orange inside.", + "A conch is a large spiral seashell with a pointed tip and a wide flared opening often in pink or orange hues.", + "Conchs have spiral shells with a flared lip and often show vibrant colors or patterns unlike other sea creatures or objects.", + "The conch has a distinctive spiral shell with a flared lip and pointed tip." + ], + "snail": [ + "A snail is a small soft-bodied creature with a spiral shell and two tentacles on its head.", + "Snails have a coiled shell on their back and a soft slimy body unlike most other objects which are hard or lack shells.", + "Snails have a coiled spiral shell on their back and a soft slimy body with tentacles on their head.", + "Snails have a coiled spiral shell and a soft slimy body with tentacles on their head for eyes and sensing." + ], + "slug": [ + "Slugs are soft slimy legless creatures with no shell long bodies and tentacles on their heads.", + "A slug is a slimy, soft-bodied, legless creature resembling a snail without a shell, typically brown or gray and elongated.", + "Slugs are soft slimy legless creatures without shells unlike snails which have hard spiral shells on their backs.", + "Slugs are soft slimy elongated bodies without shells leaving shiny trails often found in moist environments." + ], + "sea slug": [ + "Sea slugs are soft, colorful, and often have frilly or wavy appendages unlike most rigid or plain sea creatures.", + "Sea slugs are soft colorful marine creatures with elongated bodies tentacles and often intricate patterns or bright hues.", + "Sea slugs have vibrant colorful patterns and elongated soft bodies with distinct frilly or feathery external gills.", + "Sea slugs are recognized by their soft elongated bodies bright colors and intricate patterns often with frilly appendages." + ], + "chiton": [ + "Chitons are oval marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are oval-shaped marine mollusks with eight overlapping shell plates and a leathery girdle around their edges.", + "Chitons are recognized by their oval segmented shells with eight overlapping plates and a leathery outer girdle.", + "A chiton is a small oval marine mollusk with a shell made of overlapping plates and a soft muscular foot underneath." + ], + "chambered nautilus": [ + "The chambered nautilus has a spiral shell with striped patterns and tentacles, unlike most objects which lack such distinct organic features.", + "The chambered nautilus has a spiral shell with striped patterns and many small chambers inside its coiled structure.", + "The chambered nautilus has a spiral shell with internal chambers divided by walls called septa.", + "The chambered nautilus has a spiral shell with striped patterns and multiple internal chambers visible in cross-section." + ], + "Dungeness crab": [ + "Dungeness crabs have a wide reddish-brown shell, ten legs with white tips, and large claws with black edges.", + "Dungeness crabs have a wide reddish-brown shell with white-tipped claws and ten legs including two large pincers.", + "Dungeness crabs have a wide oval body with purple-tinged edges and ten legs including large pincers unlike most other sea creatures.", + "The Dungeness crab has a wide oval-shaped shell with distinct white-tipped claws and a reddish-brown to purple hue." + ], + "rock crab": [ + "Rock crabs have a hard rounded shell, ten legs, and large claws, unlike smoother or differently shaped sea creatures and objects.", + "Rock crabs have a broad oval shell with sharp spines and large claws, usually reddish brown or yellowish in color.", + "Rock crabs have a rounded, bumpy shell with thick legs and large claws, often reddish-brown or dark orange in color.", + "A rock crab has a rounded, hard shell, thick legs with claws, and often appears in shades of brown, red, or orange." + ], + "fiddler crab": [ + "A fiddler crab is a small crustacean with one large claw and a round body, often found in sandy or muddy shores.", + "Fiddler crabs have one large claw and one small claw with a sideways walking motion and round flat body.", + "Fiddler crabs have one large claw and one small claw, unlike most crabs which have two equal-sized claws.", + "Fiddler crabs are small with one large claw on males and a rounded body often in muddy or sandy colors." + ], + "red king crab": [ + "The red king crab has a large spiky reddish shell, long legs with sharp tips, and prominent claws with black edges.", + "The red king crab is a large crustacean with a spiky red shell, long legs, and prominent claws.", + "The red king crab has a large spiky shell, long legs, and distinctive red-orange coloring unlike smoother or differently shaped objects.", + "The red king crab has large spiky legs with bright red-orange coloring and a distinctive triangular body shape." + ], + "American lobster": [ + "American lobsters have large claws, a hard dark shell, and long antennae, unlike most other sea creatures or objects.", + "The American lobster has large claws with one being noticeably heavier and thicker than the other.", + "American lobsters have large dark blue-green to black claws, a long segmented tail, and a hard shell with spines.", + "American lobsters have large claws, a dark blue-green shell, and a segmented body with a long tail and spiny legs." + ], + "spiny lobster": [ + "Spiny lobsters have long antennae, a hard segmented body, and lack large claws, with spines covering their shell.", + "Spiny lobsters have long thick antennae without claws and a hard segmented body covered in sharp spines.", + "Spiny lobsters have long antennae and lack claws, unlike true lobsters which have large front claws and shorter antennae.", + "Spiny lobsters have long thick antennae no claws and a hard segmented body covered in sharp spines for protection." + ], + "crayfish": [ + "Crayfish have elongated bodies with claws and segmented tails unlike most other aquatic creatures or objects.", + "Crayfish have a small lobster-like body with large front claws and a segmented tail often found in freshwater habitats.", + "Crayfish have elongated bodies, jointed limbs, large claws, segmented tails, and often a reddish or brownish hard exoskeleton.", + "Crayfish are small freshwater crustaceans with a hard exoskeleton, two large claws, a segmented tail, and long antennae resembling tiny lobsters." + ], + "hermit crab": [ + "Hermit crabs have a soft coiled abdomen inside a borrowed shell unlike true crabs which have hard full shells and exposed abdomens.", + "Hermit crabs have soft curled abdomens inside spiral shells with claws and legs sticking out often found near beaches.", + "A hermit crab is a small crustacean with a soft curled abdomen often hidden inside a borrowed spiral seashell for protection.", + "Hermit crabs have a soft coiled abdomen inside a borrowed spiral shell with visible legs and claws sticking out." + ], + "isopod": [ + "Isopods have a segmented, flattened body with multiple legs, unlike most objects which are smoother and lack such distinct segments.", + "Isopods are small, flat, segmented crustaceans with seven pairs of legs and a hard exoskeleton, often resembling tiny armored bugs.", + "An isopod is a small, segmented crustacean with a flattened body, multiple legs, and a hard exoskeleton resembling a pill bug or woodlouse.", + "Isopods are recognized by their segmented flat bodies, multiple legs, and armored exoskeletons resembling small aquatic or terrestrial pill-shaped creatures." + ], + "white stork": [ + "The white stork has a long red beak, black wing edges, and a mostly white body with long legs.", + "The white stork is a tall, slender bird with long legs, a long neck, and mostly white feathers with black wingtips.", + "The white stork has a distinctive long red bill and legs contrasting with its pure white plumage.", + "The white stork has long red legs, a white body with black wing edges, and a long pointed red beak." + ], + "black stork": [ + "The black stork has glossy black plumage, a long red beak, and white underparts with red legs and a slender neck.", + "The black stork is a large, dark bird with long red legs, a pointed red beak, and white underparts.", + "The black stork has glossy black feathers with a white belly and a striking red beak and legs.", + "The black stork has long red legs, a black body, and a white belly, unlike similar birds with different colors or shorter legs." + ], + "spoonbill": [ + "Spoonbills have long flat bills shaped like spoons and often display bright pink or white plumage with long legs.", + "Spoonbills are large wading birds with long legs, distinctive spoon-shaped bills, and often pink or white plumage.", + "Spoonbills are tall wading birds with long legs, distinctive flat spoon-shaped bills, and often pink or white plumage.", + "Spoonbills have long flat bills shaped like spoons, unlike other birds with pointed or curved beaks and different body shapes." + ], + "flamingo": [ + "Flamingos are tall pink birds with long legs and curved beaks unlike most other birds or objects.", + "Flamingos are recognized by their long legs, curved necks, pink feathers, and standing on one leg in water.", + "Flamingos are tall pink birds with long thin legs curved beaks and often stand on one leg in water.", + "A flamingo is a tall pink bird with long legs, a curved neck, and a slender beak standing in shallow water." + ], + "little blue heron": [ + "The little blue heron is a small blue-gray wading bird with a slender body long legs and a pointed bill.", + "The little blue heron has a uniformly dark blue body with a slender two-toned bill and greenish legs.", + "The little blue heron is a slender wading bird with a blue-gray body, a long neck, and a pointed dark bill.", + "The little blue heron has a slender blue-gray body, long legs, and a pointed bill, unlike bulkier birds or non-avian objects." + ], + "great egret": [ + "The great egret is a tall white bird with a long yellow beak and black legs, often seen near water.", + "A great egret is a tall white bird with a long neck, slender black legs, and a sharp yellow beak.", + "The great egret is a tall white bird with a long yellow beak and black legs, unlike smaller or differently colored birds.", + "The great egret has a bright white body with a long yellow beak and black legs." + ], + "bittern bird": [ + "The bittern is a medium-sized brown heron with streaked plumage that blends into reeds, a long neck, and a sharp beak.", + "Bitterns are medium-sized brown herons with streaked plumage, a long neck, and a dagger-like bill, often hiding in reeds.", + "Bitterns have streaked brown plumage, a long neck, and a secretive stance in reeds with a distinctive booming call.", + "Bitterns are brownish, streaked herons with a stocky body, short legs, and a long pointed bill, often camouflaged in reeds." + ], + "crane bird": [ + "A crane bird is a tall slender wading bird with long legs neck and beak often seen near water.", + "Crane birds are tall with long legs and necks, often gray or white, and have a slender pointed beak.", + "Crane birds have long legs, necks, and beaks, unlike other birds or objects which lack these tall slender features.", + "The crane bird has long legs and a slender neck with a graceful upright posture unlike most other birds." + ], + "limpkin": [ + "The limpkin is a brown wading bird with long legs and a slightly curved beak, often seen near water.", + "The limpkin is a long-legged wading bird with brown feathers, a slightly curved beak, and white speckles on its neck and back.", + "The limpkin is a brown wading bird with white speckles, a long curved bill, and a distinctive loud wailing call.", + "The limpkin has a long curved bill, brown spotted body, and loud wailing call, often found near water in wetlands." + ], + "common gallinule": [ + "The common gallinule is a dark waterbird with a red beak, white stripe on its side, and long yellow legs.", + "Look for a dark bird with a red beak, white stripe on its side, and long yellow legs in marshy areas.", + "The common gallinule has a dark body, red frontal shield, yellow-tipped red bill, and white streaks along its flanks.", + "The common gallinule has a dark body with a red frontal shield and yellow-tipped bill, unlike similar birds with plain colors." + ], + "American coot": [ + "The American coot is a dark bird with a white beak, black body, and distinctive lobed toes for swimming.", + "The American coot is a dark, duck-like bird with a white beak, black body, and distinctive lobed toes.", + "The American coot has a black body, white beak, and lobed feet unlike ducks which have webbed feet and varied colors.", + "The American coot has a black body, white beak, and distinctive lobed toes, often seen swimming or walking near water." + ], + "bustard": [ + "Bustards are large, heavy-bodied birds with long legs, necks, and brownish plumage, unlike smaller or more colorful birds.", + "Bustards are large, heavy-bodied birds with long legs, necks, and brown or gray plumage, often seen in open grasslands or savannas.", + "A bustard is a large, heavy-bodied bird with long legs, a long neck, and mottled brown or gray plumage.", + "Bustards are recognized by their large size, long legs, stout bodies, and distinctive plumage patterns often with brown and white markings." + ], + "ruddy turnstone": [ + "The ruddy turnstone is a small shorebird with orange-brown legs, a black and white patterned back, and a white belly.", + "The ruddy turnstone has a striking orange-brown back, black chest markings, and short orange legs for easy identification.", + "The ruddy turnstone is a small shorebird with orange legs, a black and white patterned head, and reddish-brown patches on its back.", + "The ruddy turnstone has a distinctive reddish-brown back, black chest markings, and orange legs unlike most other shorebirds." + ], + "dunlin": [ + "Dunlins are small wading birds with brownish upperparts, white underparts, and slightly curved black bills, often seen in flocks near shorelines.", + "Dunlins are small sandpipers with slightly curved bills and distinctive black belly patches during breeding season.", + "The dunlin is a small brown and white shorebird with a slightly curved black bill and distinctive black belly patch in breeding season.", + "Dunlins are small shorebirds with slightly curved bills, black legs, and mottled brown plumage, often seen in flocks along coastlines." + ], + "common redshank": [ + "The common redshank is a medium-sized wading bird with long orange-red legs, a straight bill, and brownish plumage with white underparts.", + "The common redshank is a slender wading bird with long orange-red legs, a brownish body, and a straight black-tipped red beak.", + "The common redshank has long orange-red legs, a medium-length straight bill, and brownish plumage with white underparts and dark streaks.", + "The common redshank has long bright orange-red legs, a medium-length straight bill, and brownish plumage with white underparts." + ], + "dowitcher": [ + "A dowitcher is a medium-sized, long-billed shorebird with a streaked brown back and a slightly upturned beak.", + "Dowitchers are medium-sized shorebirds with long straight bills and streaked brown plumage unlike ducks or gulls.", + "Dowitchers have long straight bills and mottled brown plumage with a distinctive chunky body and short legs for wading.", + "Dowitchers have a distinctive long straight bill with a slight downward curve at the tip." + ], + "oystercatcher": [ + "Oystercatchers have long bright orange or red beaks and black or dark brown plumage with white underparts.", + "Oystercatchers have long bright orange-red bills, black or dark brown plumage, pink legs, and loud piping calls near shorelines.", + "Oystercatchers are medium-sized shorebirds with long orange bills, black or dark brown plumage, and pink legs.", + "Oystercatchers are black or dark brown birds with long bright orange-red beaks, pink legs, and striking yellow eyes." + ], + "pelican": [ + "A pelican is a large water bird with a long beak and a distinctive throat pouch used for catching fish.", + "Pelicans are large water birds with long bills and a distinctive throat pouch used for catching fish.", + "Pelicans have large bills with a stretchy pouch and are much bigger than most birds with long necks and webbed feet.", + "Pelicans have large bills with a stretchy pouch, long wings, and webbed feet, making them stand out among birds." + ], + "king penguin": [ + "A king penguin is a large black and white bird with bright orange patches on its neck and a long slender beak.", + "King penguins have bright orange patches on their necks and black and white bodies with a sleek upright posture.", + "King penguins have bright orange patches on their necks and heads contrasting with black and white bodies.", + "King penguins have bright orange patches on their necks and heads that stand out against their black and white bodies." + ], + "albatross": [ + "An albatross is a large seabird with long narrow wings a hooked bill and webbed feet often seen gliding over oceans.", + "Albatrosses are large seabirds with long narrow wings and hooked beaks unlike most birds which have shorter wings and varied beak shapes.", + "Albatrosses are large seabirds with long narrow wings hooked bills and webbed feet often seen gliding over oceans.", + "Albatrosses are recognized by their large wingspan, long narrow wings, hooked bills, and webbed feet adapted for ocean life." + ], + "grey whale": [ + "Grey whales are large with mottled grey skin, a streamlined body, and lack a dorsal fin unlike most other whales.", + "A grey whale is a large mottled gray marine mammal with a robust body and no dorsal fin.", + "Grey whales are large with mottled grey skin, a narrow head, and no dorsal fin but small humps along their back.", + "Grey whales have distinctive mottled grey skin with white patches and barnacles scattered across their bodies." + ], + "killer whale": [ + "Killer whales are large black and white marine mammals with a tall dorsal fin and distinctive white eye patches.", + "Killer whales are recognized by their black and white coloring, tall dorsal fins, and sleek, powerful bodies.", + "A killer whale is a large black-and-white marine mammal with a sleek body, prominent dorsal fin, and distinctive white eye patches.", + "Killer whales have distinctive black and white coloring with a tall dorsal fin unlike most other sea creatures or objects." + ], + "dugong": [ + "Dugongs are large, gray, round-bodied marine mammals with paddle-like flippers and a flat, wide, whiskered snout.", + "A dugong looks like a large, gray, round-bodied marine mammal with a flat snout and paddle-like flippers.", + "Dugongs are large, gray, aquatic mammals with paddle-like flippers and a unique snout resembling a dolphin's but downturned.", + "Dugongs have a stout body, paddle-like flippers, and a unique tail fluke with a straight edge and concave trailing margins." + ], + "sea lion": [ + "Sea lions have streamlined bodies, visible ear flaps, and long front flippers unlike most other animals or objects.", + "Sea lions are large marine mammals with streamlined bodies, visible ear flaps, long front flippers, and a dog-like face.", + "Sea lions have external ear flaps and large flippers that distinguish them from other marine animals.", + "Sea lions have streamlined bodies, visible ear flaps, long front flippers, and can rotate their hind flippers forward for walking." + ], + "Chihuahua": [ + "Chihuahuas are tiny dogs with large round eyes pointed ears and a compact body often weighing under six pounds.", + "A Chihuahua is a tiny dog with large round eyes, pointy ears, and a compact body often weighing under six pounds.", + "Chihuahuas are tiny dogs with large ears and round eyes, much smaller and more delicate than most other dog breeds.", + "Chihuahuas have a tiny body with large round eyes and prominent ears that stand upright." + ], + "Japanese Chin": [ + "The Japanese Chin is a small dog with a flat face, large eyes, and long silky fur unlike most other objects.", + "The Japanese Chin is a small dog with a flat face, large round eyes, and long silky fur often in black and white.", + "The Japanese Chin has a small size, flat face, large wide-set eyes, long silky coat, and a plumed tail.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail curled over its back." + ], + "Maltese": [ + "Maltese dogs are small with long white silky hair while other objects vary widely in size color and texture.", + "Maltese dogs are small with long white silky hair dark eyes and a black nose often seen in a well groomed fluffy appearance.", + "A Maltese is a small white dog with long silky hair and a friendly expressive face.", + "Maltese dogs have long white silky hair small size black eyes and nose and a gentle expressive face." + ], + "Pekingese": [ + "Pekingese have a flat wrinkled face, long flowing coat, short bowed legs, and a lion-like mane around their neck.", + "A Pekingese is a small, fluffy dog with a flat face, long coat, and a lion-like mane around its neck.", + "Pekingese are small dogs with a flat face long fur and a lion like mane often in gold black or white colors.", + "Pekingese are small, fluffy dogs with flat faces, long coats, and a lion-like mane, unlike most objects which are not living animals." + ], + "Shih Tzu": [ + "A Shih Tzu is a small fluffy dog with long silky hair a flat face and large round dark eyes.", + "The Shih Tzu has a distinctive long, flowing coat with a flat face and large, round, dark eyes.", + "A Shih Tzu has a small sturdy body long flowing hair a flat face and large dark eyes with a friendly expression.", + "Shih Tzus are small long-haired dogs with flat faces and large round eyes unlike most other objects." + ], + "King Charles Spaniel": [ + "A King Charles Spaniel is a small dog with a round face, long ears, and a silky coat in various colors.", + "The King Charles Spaniel has a distinctive domed head with large round dark eyes and a short upturned nose.", + "A King Charles Spaniel has a small round head large dark eyes a short muzzle and long silky ears with a compact body.", + "A King Charles Spaniel has a small size, floppy ears, a domed head, and a silky coat with distinctive facial markings." + ], + "Papillon": [ + "A Papillon is a small elegant dog with large butterfly-like ears and a long silky coat often white with patches.", + "Papillons have distinctive butterfly-like ears, a small size, and long silky fur, unlike other dogs or objects.", + "Papillons are small dogs with long silky hair, large fringed ears, and a plumed tail, resembling a butterfly with their distinctive ear shape.", + "Papillons are recognized by their large butterfly-like ears small size long silky coat and elegant dainty appearance." + ], + "toy terrier": [ + "Toy terriers are small, fluffy dogs with pointed ears and short legs, unlike larger or smoother-coated breeds and non-dog objects.", + "A toy terrier is a small dog with a compact body, pointed ears, a short coat, and an alert, lively expression.", + "The toy terrier has a small size with long silky hair and a distinctive rounded head shape.", + "Toy terriers are small with erect ears, a compact body, and a short smooth coat often in black and tan colors." + ], + "Rhodesian Ridgeback": [ + "The Rhodesian Ridgeback is a muscular dog with a short tan coat and a distinctive ridge of hair along its back.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat.", + "The Rhodesian Ridgeback has a distinctive ridge of hair along its back that grows in the opposite direction of the rest of its coat." + ], + "Afghan Hound": [ + "The Afghan Hound has long silky hair a narrow face and a tall slender body with a distinctive curled tail.", + "The Afghan Hound has long silky hair a slender body and a distinctive narrow face with a topknot.", + "The Afghan Hound is a tall elegant dog with long silky hair a narrow face and a curled tail.", + "The Afghan Hound has long silky hair a slender build and a distinctive curved tail unlike most other dog breeds." + ], + "Basset Hound": [ + "A Basset Hound is a short-legged dog with long droopy ears, wrinkled skin, and a sad-looking face.", + "Basset Hounds have long droopy ears and wrinkled skin with short legs and a heavy bone structure.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body with loose skin and a sad expression.", + "Basset Hounds have long droopy ears, wrinkled faces, short legs, and a heavy body compared to other dog breeds and objects." + ], + "Beagle": [ + "A Beagle is a small to medium-sized dog with short legs, long ears, a white-tipped tail, and a tri-color coat.", + "A Beagle is a small to medium-sized hound with short legs floppy ears and a smooth coat often tricolor or lemon and white.", + "Beagles have short legs floppy ears a white black and brown coat and a medium size with a friendly expressive face.", + "Beagles are small to medium-sized dogs with short coats, long ears, and white brown and black markings." + ], + "Bloodhound": [ + "Bloodhounds have long droopy ears and wrinkled skin that sag prominently around their face and neck.", + "Bloodhounds have long droopy ears, deep wrinkles on the face, and a large nose with a keen sense of smell.", + "Bloodhounds have long droopy ears, wrinkled skin, and a large nose, unlike most other objects which are smoother and less floppy.", + "A bloodhound has droopy ears, loose wrinkled skin, a large nose, and a short black or tan coat." + ], + "Bluetick Coonhound": [ + "The Bluetick Coonhound is a medium to large dog with a sleek blue-ticked coat, long ears, and a muscular build.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, droopy ears, and a muscular build, unlike smoother or differently patterned animals.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a deep chest and strong legs.", + "The Bluetick Coonhound has a distinctive blue-ticked coat, long droopy ears, and a muscular build with a black and white mottled pattern." + ], + "Black and Tan Coonhound": [ + "The Black and Tan Coonhound has distinctive black and tan markings with a sleek coat and long drooping ears.", + "The Black and Tan Coonhound is a large dog with a black coat, tan markings, long ears, and a muscular build.", + "The Black and Tan Coonhound has a sleek black coat with tan markings, long droopy ears, and a muscular build distinct from other breeds.", + "The Black and Tan Coonhound has a sleek black coat with tan markings on its face, chest, and legs, and long droopy ears." + ], + "Treeing Walker Coonhound": [ + "The Treeing Walker Coonhound is a sleek medium-sized dog with long legs, short coat, and distinctive black white and tan markings.", + "The Treeing Walker Coonhound has a sleek short coat with white black and tan markings and long floppy ears unlike most objects.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long ears, and a lean muscular build.", + "The Treeing Walker Coonhound has a sleek white coat with black and tan markings, long legs, and floppy ears." + ], + "English foxhound": [ + "The English foxhound is a medium to large dog with a muscular build short coat and long floppy ears often seen in hunting packs.", + "The English foxhound is a large athletic dog with a short dense coat long legs and a deep chest often seen in packs.", + "The English foxhound is a medium to large dog with a muscular build short coat and long ears distinct from other animals.", + "The English foxhound has a sleek muscular body with a distinctive white base coat and black or tan markings." + ], + "Redbone Coonhound": [ + "Look for a sleek red coat, long droopy ears, and a muscular build with a deep chest and expressive eyes.", + "Redbone Coonhounds have a sleek solid red coat long ears and a muscular build with a deep chest and expressive eyes.", + "The Redbone Coonhound is a sleek red-coated dog with long ears, a muscular build, and a friendly expressive face.", + "The Redbone Coonhound has a sleek red coat, long ears, and a muscular build, unlike most objects which lack organic features." + ], + "borzoi": [ + "A borzoi is a tall slender dog with a long narrow head silky coat and graceful appearance resembling a refined greyhound.", + "Borzoi are recognized by their long narrow heads slender bodies and silky coats with distinctive flowing fur.", + "Borzoi are tall slender dogs with long narrow heads silky coats and often white with patches of other colors.", + "Borzoi are tall slender dogs with long narrow heads silky coats and distinctive curved tails unlike most other breeds." + ], + "Irish Wolfhound": [ + "The Irish Wolfhound is a giant dog with a rough coat long legs a narrow body and a slightly curved tail.", + "The Irish Wolfhound has an extremely tall and slender build with a rough coat and long, narrow head.", + "The Irish Wolfhound is a very large and tall dog with a rough coat long legs and a narrow head.", + "The Irish Wolfhound is recognized by its massive size, long legs, wiry coat, and narrow head with a gentle expression." + ], + "Italian Greyhound": [ + "An Italian Greyhound is a slender, small dog with long legs, a narrow body, and a short, smooth coat.", + "Italian Greyhounds are slender small dogs with long legs a narrow head and a sleek short coat often seen in elegant poses.", + "Italian Greyhounds are slim small dogs with long legs a narrow head and a short smooth coat often seen in elegant poses.", + "Italian Greyhounds have an extremely slender and delicate build with long thin legs and a tiny waist unlike other dogs." + ], + "Whippet": [ + "A Whippet is a slim, medium-sized dog with a short coat, long legs, and a deep chest resembling a small Greyhound.", + "A Whippet is a slender, medium-sized dog with a sleek coat, long legs, and a graceful, athletic build resembling a smaller greyhound.", + "Whippets are slender, short-haired dogs with long legs and a deep chest, distinguishing them from bulkier or fluffier breeds.", + "Whippets are slim medium-sized dogs with long legs deep chests and short smooth coats often seen in graceful athletic poses." + ], + "Ibizan Hound": [ + "The Ibizan Hound is a tall slender dog with large upright ears a long narrow head and a sleek coat often white or red.", + "The Ibizan Hound is a slender, tall dog with large upright ears, a long narrow head, and a smooth or wire coat.", + "The Ibizan Hound has large upright ears a slender body and a long narrow head with a distinctive reddish or white coat.", + "The Ibizan Hound has a slender tall body large upright ears and a long narrow head distinguishing it from other breeds." + ], + "Norwegian Elkhound": [ + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail, unlike most objects.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat pointed ears and a curled tail.", + "The Norwegian Elkhound is a medium-sized dog with a thick gray coat, pointed ears, and a curled tail over its back.", + "The Norwegian Elkhound has a distinctive thick silver-gray coat with black tips and a tightly curled tail." + ], + "Otterhound": [ + "The Otterhound is a large, shaggy dog with a rough double coat, webbed feet, and a distinctive beard and mustache.", + "The Otterhound is a large, shaggy dog with a rough coat and webbed feet, unlike smoother or smaller animals.", + "The Otterhound is a large, rough-coated dog with a shaggy appearance, long ears, and a strong, athletic build.", + "The Otterhound has a distinctive shaggy, rough double coat with webbed feet and a large, strong body built for swimming." + ], + "Saluki": [ + "The Saluki has a sleek, slender body with long legs and a distinctive narrow, elongated head.", + "Salukis are slender, long-legged dogs with smooth coats, deep chests, and long tails, unlike bulkier or shorter-legged breeds.", + "The Saluki is a slender, elegant dog with long legs, a smooth coat, and a narrow, graceful face resembling a greyhound.", + "Salukis are recognized by their slim elegant build long legs narrow head and silky coat often with feathered ears and tail." + ], + "Scottish Deerhound": [ + "The Scottish Deerhound is a large, slender, rough-coated greyhound-like dog with long legs and a gentle, dignified expression.", + "A Scottish Deerhound is a large greyhound-like dog with a wiry coat long legs and a narrow head often seen in grey or brindle colors.", + "The Scottish Deerhound has a tall slender build with a rough coat long legs and a narrow head resembling a larger greyhound.", + "Scottish Deerhounds are tall slender dogs with rough coats long tails and folded ears unlike most other animals or objects." + ], + "Weimaraner": [ + "A Weimaraner is a sleek gray dog with a muscular build, short coat, and distinctive amber or blue-gray eyes.", + "The Weimaraner is recognized by its sleek silver-gray coat, amber or blue-gray eyes, and athletic muscular build.", + "Weimaraners are sleek gray dogs with short coats long legs and distinctive amber or blue gray eyes.", + "The Weimaraner has a distinctive sleek silver-gray coat and amber or blue-gray eyes." + ], + "Staffordshire Bull Terrier": [ + "A Staffordshire Bull Terrier is a muscular, medium-sized dog with a short coat, broad head, and strong jaw, often appearing stocky and confident.", + "Staffordshire Bull Terriers are muscular with a broad head and short coat, unlike most objects which lack these distinct animal features.", + "Staffordshire Bull Terriers have a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short muzzle, and distinctive rose or half-pricked ears." + ], + "American Staffordshire Terrier": [ + "The American Staffordshire Terrier has a muscular build, broad head, short coat, and ears that are either cropped or naturally rose or half-pricked.", + "The American Staffordshire Terrier is a muscular medium-sized dog with a broad head, short coat, and strong, stocky build.", + "The American Staffordshire Terrier has a broad muscular head with pronounced cheek muscles and a short glossy coat.", + "The American Staffordshire Terrier has a muscular build, broad head, and short coat, unlike most objects which lack these animal features." + ], + "Bedlington Terrier": [ + "The Bedlington Terrier is a small dog with a pear-shaped head, curly coat, and a lamb-like appearance among all objects.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a pear-shaped head and curly, woolly coat.", + "The Bedlington Terrier has a distinctive lamb-like appearance with a curly coat and arched back unlike most other dog breeds.", + "The Bedlington Terrier has a pear-shaped head, curly coat, arched back, and a lamb-like appearance with a distinctive topknot." + ], + "Border Terrier": [ + "A Border Terrier is a small, wiry-coated dog with a distinctive otter-shaped head and a lively, friendly expression.", + "The Border Terrier has a distinctive otter-shaped head with a short, strong muzzle and a wiry, dense coat.", + "Border Terriers have a wiry coat, otter-shaped head, small V-shaped ears, and a short tail with a distinctive grizzled color pattern.", + "A Border Terrier has a wiry coat, otter-like head, small v-shaped ears, and a short tail, typically in tan, grizzle, or blue colors." + ], + "Kerry Blue Terrier": [ + "The Kerry Blue Terrier is a medium-sized dog with a curly blue-gray coat and a distinctive beard and mustache.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head, and a beard that sets it apart.", + "A Kerry Blue Terrier has a distinctive wavy blue-gray coat, a long head with a beard, and a muscular medium-sized build.", + "The Kerry Blue Terrier has a distinctive wavy blue-gray coat and a bearded face unlike most other dog breeds or objects." + ], + "Irish Terrier": [ + "The Irish Terrier has a wiry red coat and a distinctive beard, unlike other objects which lack fur and facial hair.", + "The Irish Terrier has a wiry red coat, a long rectangular head, and a sturdy compact body with a distinctive beard.", + "The Irish Terrier has a distinctive wiry red coat and a long, narrow head with a beard and mustache.", + "An Irish Terrier has a wiry red coat a long head and a sturdy build with a beard and mustache." + ], + "Norfolk Terrier": [ + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact, energetic appearance.", + "A Norfolk Terrier is a small, sturdy dog with a wiry coat, folded ears, and a compact body, often in shades of red or black.", + "The Norfolk Terrier has a wiry, scruffy coat with folded ears and a compact, sturdy body distinct from other breeds.", + "The Norfolk Terrier has a wiry coat, small erect ears, a compact body, and a short tail with a friendly expressive face." + ], + "Norwich Terrier": [ + "A Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a fox-like expression.", + "The Norwich Terrier is a small, compact dog with prick ears, a wiry coat, and a fox-like face, distinguishing it from other objects.", + "The Norwich Terrier is a small, sturdy dog with a wiry coat, prick ears, and a friendly, alert expression.", + "Norwich Terriers are small with wiry coats prick ears and a fox-like expression distinguishing them from other breeds." + ], + "Yorkshire Terrier": [ + "A Yorkshire Terrier is a small dog with long silky blue and tan hair, a compact body, and a perky topknot.", + "Yorkshire Terriers are small long-haired dogs with silky tan and dark fur unlike larger or short-haired breeds and non-dog objects.", + "A Yorkshire Terrier is a small, long-haired dog with a silky blue and tan coat, perky ears, and a compact, elegant appearance.", + "Yorkshire Terriers are small with long silky blue and tan hair, a compact body, and a confident upright posture." + ], + "Wire Fox Terrier": [ + "A Wire Fox Terrier has a wiry white coat with black or tan markings, a narrow face, and a small sturdy body.", + "A Wire Fox Terrier has a wiry white coat with patches of black or tan, a narrow face, and a distinctive beard and eyebrows.", + "The Wire Fox Terrier is a small energetic dog with a wiry coat, pointy ears, and a distinctive white and tan or black pattern.", + "The Wire Fox Terrier has a distinctive wiry coat with dense, curly fur and a prominent beard and eyebrows." + ], + "Lakeland Terrier": [ + "The Lakeland Terrier is a small, wiry-coated dog with a distinctive beard and eyebrows, unlike smoother or larger animals.", + "A Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a distinctive beard and eyebrows.", + "The Lakeland Terrier has a wiry coat, small pointed ears, a rectangular body, and a distinctive beard and eyebrows.", + "The Lakeland Terrier is a small, wiry-coated dog with a rectangular body, folded ears, and a confident, alert expression." + ], + "Sealyham Terrier": [ + "The Sealyham Terrier is a small white dog with a long body short legs and a wiry coat unlike most other objects.", + "The Sealyham Terrier is a small sturdy dog with a long white coat folded ears and a rectangular head.", + "The Sealyham Terrier is a small white dog with a long head, folded ears, and a wiry coat.", + "The Sealyham Terrier has a long white coat, short legs, a broad head, and distinctive drop ears with a sturdy, compact body." + ], + "Airedale Terrier": [ + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a bearded face.", + "The Airedale Terrier is a medium-sized dog with a wiry tan and black coat, long legs, and a distinctive beard and mustache.", + "The Airedale Terrier has a wiry tan and black coat with a long muzzle and a distinctive beard and mustache.", + "The Airedale Terrier has a distinctive wiry coat with a black saddle and tan markings on its head and legs." + ], + "Cairn Terrier": [ + "A Cairn Terrier is a small, wiry-coated dog with a fox-like face, pointed ears, and a sturdy, compact body.", + "Cairn Terriers are small rough-coated dogs with pointed ears and short legs unlike smoother or larger breeds.", + "A Cairn Terrier is a small rough-coated dog with a fox-like face pointed ears and a shaggy brow.", + "A Cairn Terrier has a shaggy wiry coat, small pointed ears, a short broad head, and a compact sturdy body with a bushy tail." + ], + "Australian Terrier": [ + "The Australian Terrier is a small, rough-coated dog with pointed ears and a sturdy build, unlike smoother or larger animals.", + "The Australian Terrier is a small, sturdy dog with a rough coat, erect ears, and a long head, often in blue and tan colors.", + "The Australian Terrier is a small, sturdy dog with a rough coat, pointed ears, and a confident, alert expression.", + "The Australian Terrier has a small wiry coat, pointed ears, a long muzzle, and a distinctive topknot of softer fur." + ], + "Dandie Dinmont Terrier": [ + "The Dandie Dinmont Terrier is a small long-bodied dog with short legs a large domed head and a distinctive fluffy topknot.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a fluffy topknot unlike most other dog breeds.", + "The Dandie Dinmont Terrier has a distinctive long body short legs and a topknot of hair on its head.", + "The Dandie Dinmont Terrier has a distinctive topknot of hair, long body, short legs, and large expressive eyes." + ], + "Boston Terrier": [ + "A Boston Terrier is a small, muscular dog with a smooth coat, large round eyes, and distinctive tuxedo-like black and white markings.", + "Boston Terriers have a compact muscular body large round eyes short muzzle and distinctive tuxedo-like black and white coat markings.", + "Boston Terriers are small muscular dogs with a short coat, flat face, and large round eyes, distinct from other breeds.", + "A Boston Terrier has a compact muscular body, large round eyes, short muzzle, and distinct tuxedo-like black and white markings." + ], + "Miniature Schnauzer": [ + "Miniature Schnauzers are small dogs with wiry coats, bushy eyebrows, and beards, unlike smooth-coated or larger dog breeds and non-dog objects.", + "Miniature Schnauzers are recognized by their small size square build bushy eyebrows beard and wiry coat in salt pepper or black colors.", + "A Miniature Schnauzer has a square-shaped body, bushy eyebrows, a beard, and a wiry coat, usually in salt-and-pepper, black, or black-and-silver colors.", + "A Miniature Schnauzer is a small dog with a square build, bushy eyebrows, a beard, and a wiry coat in salt-and-pepper or solid colors." + ], + "Giant Schnauzer": [ + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Giant Schnauzer is a large, sturdy dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "Giant Schnauzers have a large square build, wiry double coat, bushy eyebrows, and a distinctive beard and mustache.", + "The Giant Schnauzer is a large, robust dog with a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or smaller breeds." + ], + "Standard Schnauzer": [ + "A Standard Schnauzer has a wiry coat, bushy eyebrows, and a distinctive beard, unlike smoother or less facial-haired animals.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, and a distinctive beard and mustache.", + "A Standard Schnauzer is a medium-sized dog with a wiry coat, bushy eyebrows, beard, and a square-shaped body with a docked tail.", + "A Standard Schnauzer has a square-shaped body, wiry coat, bushy eyebrows, and a distinctive beard and mustache." + ], + "Scottish Terrier": [ + "The Scottish Terrier has a distinctive long beard and eyebrows with a compact body and short legs.", + "A Scottish Terrier is a small, sturdy dog with short legs, a wiry coat, pointed ears, and a distinctive beard and eyebrows.", + "A Scottish Terrier has a compact body, short legs, a wiry coat, pointed ears, and a long head with a distinctive beard.", + "Scottish Terriers have a distinctive wiry coat, short legs, pointed ears, and a long head with a beard and eyebrows." + ], + "Tibetan Terrier": [ + "The Tibetan Terrier is a medium-sized dog with a shaggy double coat, round eyes, and a friendly expressive face.", + "The Tibetan Terrier has a shaggy double coat, a square-shaped body, and long hair covering its eyes and face.", + "The Tibetan Terrier has a long, shaggy coat, a square-shaped body, and a distinctive beard, unlike smoother or shorter-haired breeds.", + "The Tibetan Terrier has a medium-sized, square-shaped body with long, shaggy hair covering its eyes and a curled tail." + ], + "Australian Silky Terrier": [ + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat and a perky alert expression.", + "The Australian Silky Terrier is a small dog with a long silky blue and tan coat straight hair and perky ears.", + "The Australian Silky Terrier is a small long-haired dog with a silky blue and tan coat, distinct from other objects.", + "The Australian Silky Terrier has a distinctive long, silky, straight coat that parts down the middle of its back." + ], + "Soft-coated Wheaten Terrier": [ + "The Soft-coated Wheaten Terrier is a medium-sized dog with a silky, wavy coat that ranges from pale beige to golden wheat color.", + "The Soft-coated Wheaten Terrier has a silky, wavy coat and a rectangular-shaped head, unlike smoother or shorter-haired breeds.", + "The Soft-coated Wheaten Terrier has a distinctive silky, wavy, wheat-colored coat that sets it apart from other dog breeds.", + "A Soft-coated Wheaten Terrier has a silky, wavy, wheat-colored coat, a square body, and a friendly, expressive face with beard-like fur." + ], + "West Highland White Terrier": [ + "A West Highland White Terrier is a small fluffy white dog with pointy ears and a bright alert expression.", + "The West Highland White Terrier is a small white dog with a fluffy coat and pointed ears, unlike larger or differently colored animals.", + "A West Highland White Terrier is a small white dog with a fluffy coat pointy ears and a black nose.", + "The West Highland White Terrier has a distinctive pure white coat with a compact body and pointed ears." + ], + "Lhasa Apso": [ + "The Lhasa Apso is a small long-haired dog with a dense coat often covering its eyes and a sturdy compact body.", + "A Lhasa Apso is a small long-haired dog with a dense coat covering its eyes and a tail curled over its back.", + "The Lhasa Apso has a long, flowing coat that often covers its eyes and reaches the ground.", + "The Lhasa Apso has a long, flowing coat, distinctive facial hair, and a compact, sturdy body with a slightly arched back." + ], + "Flat-Coated Retriever": [ + "Flat-Coated Retrievers have sleek black or liver coats, long feathered tails, and friendly expressions, unlike most non-dog objects.", + "A Flat-Coated Retriever is a medium to large black or liver-colored dog with a sleek coat and friendly expressive face.", + "A Flat-Coated Retriever has a sleek black or liver coat, a long head, and a wagging tail with a friendly, energetic expression.", + "The Flat-Coated Retriever has a sleek, all-black or all-liver coat with a distinctive long, feathered tail and a wedge-shaped head." + ], + "Curly-coated Retriever": [ + "A Curly-coated Retriever is a medium to large dog with a distinctive tight, curly black or liver-colored coat and a sleek athletic build.", + "The Curly-coated Retriever has a tight, curly coat unlike most retrievers which have smooth or wavy fur.", + "A Curly-coated Retriever has a distinctive tight, crisp coat of small curls covering its entire body except the face and legs.", + "The Curly-coated Retriever has a dense, tight coat of small curls covering its entire body, distinguishing it from other retrievers." + ], + "Golden Retriever": [ + "A Golden Retriever is a medium to large dog with a golden coat, floppy ears, and a friendly, expressive face.", + "Golden Retrievers are medium to large dogs with long golden coats floppy ears and friendly expressive faces.", + "Golden Retrievers have a medium to large size, long golden coat, friendly face, floppy ears, and a feathery tail.", + "Golden Retrievers have a distinct dense, water-repellent golden coat with feathering on the legs, chest, and tail." + ], + "Labrador Retriever": [ + "A Labrador Retriever is a medium to large dog with a short dense coat broad head and otter like tail often in black yellow or chocolate.", + "A Labrador Retriever is a medium to large dog with a sturdy build, short dense coat, and a friendly expressive face.", + "Labrador Retrievers have a sturdy build, short dense coat, otter-like tail, and friendly expression with expressive eyes and floppy ears.", + "Labrador Retrievers have a muscular build short dense coat and otter like tail unlike most other objects which lack these animal features." + ], + "Chesapeake Bay Retriever": [ + "A Chesapeake Bay Retriever is a medium-sized dog with a wavy brown coat, muscular build, and a broad head with amber eyes.", + "The Chesapeake Bay Retriever has a distinctive dense, oily, wavy coat that repels water and provides insulation in cold conditions.", + "The Chesapeake Bay Retriever has a wavy waterproof coat and amber eyes, distinguishing it from other retrievers with smoother fur and darker eyes.", + "The Chesapeake Bay Retriever has a wavy waterproof coat, amber eyes, and a muscular build with a broad skull." + ], + "German Shorthaired Pointer": [ + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white coat and a muscular athletic build.", + "German Shorthaired Pointers have a sleek coat with liver or liver-and-white patches, long floppy ears, and a muscular athletic build.", + "The German Shorthaired Pointer has a sleek short coat, webbed feet, and a distinctive brown and white spotted or solid pattern.", + "The German Shorthaired Pointer has a distinctive liver and white speckled coat with a solid liver-colored head." + ], + "Vizsla": [ + "A Vizsla is a sleek medium-sized dog with short golden rust coat long ears and a slender muscular build.", + "A Vizsla is a sleek golden-brown dog with a short coat long ears and a slender athletic build.", + "The Vizsla has a sleek golden-rust coat and distinctive short smooth fur that sets it apart from other breeds.", + "A Vizsla is recognized by its sleek golden rust coat slender muscular build and gentle expressive face with floppy ears." + ], + "English Setter": [ + "The English Setter is a medium-sized dog with a speckled coat long ears and a feathered tail.", + "English Setters have long feathered coats with distinctive speckled patterns and elegant, athletic builds.", + "The English Setter has a white coat with flecked or speckled patches of color long feathered ears and a graceful athletic build.", + "English Setters have a distinctive speckled coat, long feathered ears, and a lean athletic build unlike most other objects." + ], + "Irish Setter": [ + "An Irish Setter is a medium to large dog with a sleek red coat long ears and a graceful athletic build.", + "An Irish Setter is a medium to large dog with a sleek, mahogany or chestnut red coat, long feathery ears, and a slender build.", + "The Irish Setter has a distinctive long, silky, mahogany-red coat that sets it apart from all other objects.", + "The Irish Setter has a sleek mahogany or chestnut coat, long feathered ears, and a slender, athletic build with a graceful stance." + ], + "Gordon Setter": [ + "A Gordon Setter is a large black and tan dog with long feathered fur and distinctive markings above the eyes.", + "The Gordon Setter is a black and tan dog with long, silky fur, feathered legs, and a distinctive feathered tail.", + "The Gordon Setter is recognized by its black and tan coat, feathered legs, long ears, and sturdy muscular build.", + "The Gordon Setter is a large black and tan dog with a feathered coat long ears and a noble expressive face." + ], + "Brittany dog": [ + "Brittany dogs have a medium-sized athletic build with wavy or flat coats, typically white with orange or liver markings.", + "The Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat and floppy ears.", + "A Brittany dog is a medium-sized sporting breed with a white and orange or liver-colored coat, floppy ears, and a feathered tail.", + "The Brittany dog has a distinctive white and orange or liver-colored coat with feathering on the legs and ears." + ], + "Clumber Spaniel": [ + "A Clumber Spaniel is a large, heavy-boned dog with a white coat, lemon or orange markings, a broad head, and droopy eyes.", + "The Clumber Spaniel has a distinctive heavy brow and deep chest with a low-slung, muscular body and dense white coat.", + "The Clumber Spaniel is a sturdy, low-slung dog with a dense white coat, lemon or orange markings, and a gentle, expressive face.", + "The Clumber Spaniel has a heavy brow, deep chest, short legs, and a dense white coat with lemon or orange markings." + ], + "English Springer Spaniel": [ + "The English Springer Spaniel is a medium-sized dog with long floppy ears a wavy coat and expressive eyes often white with brown or black markings.", + "The English Springer Spaniel has a medium-sized body with long floppy ears a wavy coat and expressive eyes often in white with brown or black patches.", + "English Springer Spaniels have long floppy ears wavy fur and a medium build with expressive eyes often white with brown or black patches.", + "The English Springer Spaniel has long floppy ears a medium build and a wavy coat often with white and brown or black markings." + ], + "Welsh Springer Spaniel": [ + "The Welsh Springer Spaniel has a rich red and white coat with distinctively feathered ears and legs.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium-sized athletic build.", + "The Welsh Springer Spaniel is a medium-sized dog with a rich red and white coat, long ears, and a friendly expressive face.", + "The Welsh Springer Spaniel has a rich red and white coat with long ears and a medium build unlike most other objects." + ], + "Cocker Spaniel": [ + "A Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive round eyes often in various colors.", + "Cocker Spaniels have long floppy ears a silky coat expressive eyes and a compact body with a wagging tail.", + "Cocker Spaniels have long floppy ears a silky coat and a rounded head with expressive dark eyes.", + "Cocker Spaniels have long floppy ears, a rounded head, and a silky coat, unlike most objects which lack these distinct dog features." + ], + "Sussex Spaniel": [ + "The Sussex Spaniel is a low, long, golden liver-colored dog with a heavy body, droopy ears, and a gentle expression.", + "The Sussex Spaniel has a distinctive low long body with rich golden liver-colored fur and heavy brows.", + "The Sussex Spaniel has a long low body, golden liver coat, and heavy brows, unlike most dogs or objects.", + "The Sussex Spaniel has a long low body golden liver coat droopy ears and a solemn expression with a distinctive waddling gait." + ], + "Irish Water Spaniel": [ + "The Irish Water Spaniel is a medium-sized curly-coated dog with a distinctive rat-like tail and a liver-colored waterproof coat.", + "The Irish Water Spaniel has a distinctive dense curly liver-colored coat and a smooth rat-like tail.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a long topknot on its head.", + "The Irish Water Spaniel has a curly liver-colored coat, a distinctive rat-like tail, and a topknot of long curls on its head." + ], + "Kuvasz": [ + "The Kuvasz is a large white dog with a muscular build, thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a dignified, alert expression.", + "The Kuvasz is a large white dog with a thick double coat and muscular build, distinct from smaller or differently colored breeds.", + "The Kuvasz is a large white dog with a sturdy build, a thick double coat, and a noble, alert expression." + ], + "Schipperke": [ + "A Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive fluffy coat around the neck.", + "The Schipperke is a small black dog with a fox-like face, pointed ears, and a distinctive tailless or short-tailed rear.", + "A Schipperke is a small black dog with a fox-like face pointed ears and a fluffy tail often docked short.", + "The Schipperke has a small black fox-like face, pointed ears, a tailless or short-tailed rear, and a thick double coat." + ], + "Groenendael dog": [ + "The Groenendael dog is a black long-haired Belgian Shepherd with a sleek coat and elegant posture.", + "The Groenendael dog has a solid long black coat with no markings and a distinctive elegant slender build.", + "The Groenendael is a long-haired black Belgian sheepdog with a sleek uniform coat unlike other dogs or objects.", + "The Groenendael dog is a sleek black Belgian Shepherd with a long coat pointed ears and an alert elegant stance." + ], + "Malinois": [ + "A Malinois is a sleek medium-sized dog with a short tan coat black mask and pointed ears resembling a German Shepherd.", + "Malinois are medium-sized dogs with short fawn coats, black masks, and erect triangular ears resembling German Shepherds but leaner.", + "The Malinois is a sleek tan dog with a black mask and short coat, distinct from other breeds and objects.", + "The Malinois has a sleek fawn coat with a distinctive black mask and ears." + ], + "Briard": [ + "A Briard is a large, long-haired dog with a shaggy coat, often black or fawn, and a distinctive beard and eyebrows.", + "A Briard is a large, long-haired herding dog with a shaggy coat, often in shades of black, gray, or tawny.", + "A Briard is a large, long-haired dog with a shaggy coat and beard, distinct from other breeds by its size and fur texture.", + "The Briard has a distinctive long shaggy coat with a slight wave and beard-like facial hair." + ], + "Australian Kelpie": [ + "The Australian Kelpie is a medium-sized, athletic dog with a short double coat, pricked ears, and a keen, intelligent expression.", + "The Australian Kelpie is a medium-sized, athletic dog with a short coat, pointed ears, and a lean, agile build.", + "The Australian Kelpie is a medium-sized dog with a muscular build, pointed ears, and a short coat, unlike other objects.", + "The Australian Kelpie has distinctive pricked ears and an alert expression with a sleek, athletic body built for herding." + ], + "Komondor": [ + "The Komondor has long white cords of hair resembling dreadlocks covering its entire body.", + "The Komondor is easily recognized by its long, corded white coat resembling thick dreadlocks covering its entire body.", + "The Komondor is a large white dog with a unique long corded coat resembling thick dreadlocks or mop strings.", + "The Komondor is easily recognized by its unique long, corded white coat resembling mop strings covering its entire body." + ], + "Old English Sheepdog": [ + "The Old English Sheepdog is a large fluffy dog with a shaggy gray and white coat and a distinctive bear-like gait.", + "The Old English Sheepdog has a shaggy gray and white coat, a bear-like gait, and often has its eyes hidden by fur.", + "The Old English Sheepdog has a shaggy double coat, a bear-like gait, and no tail, unlike most other dog breeds or objects.", + "The Old English Sheepdog has a distinctive shaggy coat covering its eyes and face completely." + ], + "Shetland Sheepdog": [ + "Shetland Sheepdogs have a long fluffy coat pointed ears and a fox-like face unlike most objects which are simpler and less furry.", + "The Shetland Sheepdog is a small, long-haired dog with a pointed muzzle, erect ears, and a fluffy coat often in sable or tricolor.", + "A Shetland Sheepdog has a long coat, pointed muzzle, erect ears, and a fluffy tail, resembling a small rough collie.", + "The Shetland Sheepdog has a distinctive long, flowing double coat with a mane-like ruff around its neck." + ], + "collie": [ + "A collie is a medium to large dog with a long narrow snout pointed ears and a thick furry coat often in sable or tricolor.", + "A collie has a long narrow snout, pointed ears, and a fluffy coat often with a white chest and sable or tricolor fur.", + "The collie's long narrow snout and distinctive fluffy mane around the neck set it apart from other objects.", + "Collies have a long narrow snout, pointed ears, and a fluffy coat with distinctive markings around the face and neck." + ], + "Border Collie": [ + "A Border Collie is a medium-sized dog with a sleek coat, often black and white, and a keen, intelligent expression.", + "Border Collies have a medium-sized athletic build with a thick double coat, often black and white, and expressive almond-shaped eyes.", + "Border Collies have a medium-sized athletic build with a thick double coat often black and white and intense alert eyes.", + "Border Collies have a distinctive white blaze on their face combined with a black and white coat pattern." + ], + "Bouvier des Flandres dog": [ + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a beard, resembling a sturdy farm dog.", + "The Bouvier des Flandres is a large, rugged dog with a shaggy coat, bushy eyebrows, and a distinctive beard.", + "The Bouvier des Flandres is a large, rough-coated dog with a shaggy beard and eyebrows, unlike smoother or smaller animals.", + "The Bouvier des Flandres has a large, rugged body with a thick, shaggy coat and a distinctive beard and eyebrows." + ], + "Rottweiler": [ + "Rottweilers are large black dogs with tan markings on their face, chest, and legs, and a muscular, powerful build.", + "A Rottweiler is a large, muscular black and tan dog with a broad head, strong jaws, and a confident, powerful stance.", + "Rottweilers are large black and tan dogs with muscular builds and short coats, distinct from other breeds and objects.", + "Rottweilers have a muscular black body with distinct tan markings on the face, chest, and legs." + ], + "German Shepherd Dog": [ + "German Shepherds have a pointed muzzle erect ears and a black saddle marking on their tan or black coat.", + "A German Shepherd Dog is a large strong agile dog with a pointed muzzle erect ears and a black and tan coat.", + "German Shepherd Dogs have a wolf-like face, pointed ears, and a tan-and-black or all-black coat with a bushy tail.", + "A German Shepherd Dog has a tan and black coat pointed ears a long muzzle and a strong muscular build." + ], + "Dobermann": [ + "A Dobermann is a sleek muscular dog with a short coat long legs and a pointed muzzle often black or brown with tan markings.", + "Dobermanns have a sleek muscular body pointed ears long tail and a short black or brown coat with tan markings.", + "Dobermanns are sleek muscular dogs with short coats long legs and a distinctive wedge-shaped head unlike most other objects.", + "A Dobermann is a sleek muscular dog with a short black or brown coat long legs and a pointed muzzle often with cropped ears." + ], + "Miniature Pinscher": [ + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular body often in black tan or chocolate colors.", + "A Miniature Pinscher is a small sleek dog with short coat erect ears and a compact muscular build resembling a tiny Doberman.", + "The Miniature Pinscher is a small sleek dog with short fur erect ears and a compact muscular build unlike larger or fluffier breeds.", + "The Miniature Pinscher has a sleek short coat, compact muscular body, erect ears, and a confident high-stepping gait." + ], + "Greater Swiss Mountain Dog": [ + "Look for a large sturdy dog with a black white and rust coat a broad head and a thick muscular build.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat distinct from smaller or differently colored animals.", + "The Greater Swiss Mountain Dog has a large sturdy body with a short tricolor coat and distinctive white chest markings.", + "The Greater Swiss Mountain Dog is a large sturdy breed with a short tricolor coat of black white and rust markings." + ], + "Bernese Mountain Dog": [ + "A Bernese Mountain Dog is a large sturdy tri colored dog with a black coat white chest and rust markings.", + "The Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and legs.", + "A Bernese Mountain Dog has a large black body with white chest and rust markings above the eyes and on the legs.", + "Bernese Mountain Dogs have a large tri-colored coat with black white and rust markings and a sturdy muscular build." + ], + "Appenzeller Sennenhund": [ + "The Appenzeller Sennenhund is a medium-sized tri-color dog with a muscular build, short coat, and distinctive facial markings.", + "The Appenzeller Sennenhund is a medium-sized tricolor dog with a muscular build, short coat, and distinctive white markings on its face and chest.", + "The Appenzeller Sennenhund has a distinctive tricolor coat with a muscular build and a curled tail unlike most other objects.", + "The Appenzeller Sennenhund has a tricolor coat, muscular build, and a curled tail, distinguishing it from other breeds and objects." + ], + "Entlebucher Sennenhund": [ + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build, short coat, and distinctive white markings on face and chest.", + "The Entlebucher Sennenhund is a medium-sized tri-color dog with a muscular build and a short dense coat, distinct from other objects.", + "The Entlebucher Sennenhund is a medium-sized tri-colored dog with a muscular build short coat and expressive brown eyes.", + "The Entlebucher Sennenhund has a short tricolor coat with distinct black tan and white markings and a muscular compact build." + ], + "Boxer": [ + "A Boxer is a medium-sized, muscular dog with a short coat, square muzzle, and distinctive wrinkled forehead.", + "A Boxer has a muscular build, short coat, square jaw, and a distinctive pushed-in nose with a wrinkled forehead.", + "Boxers are muscular dogs with short coats, square heads, and strong jaws, unlike other objects which lack these animal features.", + "Boxers have a muscular build, short coat, square muzzle, and distinctive underbite with a strong, broad head and wrinkled forehead." + ], + "Bullmastiff": [ + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask on a fawn or brindle body.", + "A Bullmastiff is a large muscular dog with a short coat broad head and dark mask unlike smaller or less bulky animals.", + "A Bullmastiff is a large muscular dog with a short coat, broad wrinkled face, and a dark mask around its eyes.", + "Bullmastiffs are large muscular dogs with a short coat broad wrinkled face and a black mask around their eyes." + ], + "Tibetan Mastiff": [ + "A Tibetan Mastiff is a large, powerful dog with a thick mane-like coat, broad head, and deep-set eyes, often black or golden in color.", + "The Tibetan Mastiff is a large, powerful dog with a thick coat, heavy mane, and a strong, imposing presence.", + "The Tibetan Mastiff has a thick double coat with a distinctive lion-like mane around its neck and shoulders.", + "The Tibetan Mastiff is a large, thick-coated dog with a lion-like mane, much bigger and hairier than most other dog breeds." + ], + "French Bulldog": [ + "French Bulldogs have a compact muscular body, bat-like ears, and a flat wrinkled face unlike most other objects.", + "French Bulldogs have a compact muscular body large bat ears a short wrinkled face and a smooth coat in various colors.", + "A French Bulldog is a small muscular dog with a flat face bat ears and a smooth coat in various colors.", + "French Bulldogs are small with muscular bodies, bat-like ears, wrinkled faces, and short smooth coats in various colors." + ], + "Great Dane": [ + "Great Danes are very large muscular dogs with tall slender bodies long legs and short smooth coats in various colors.", + "Great Danes are very large dogs with tall slender bodies long legs and short coats unlike smaller or differently shaped animals.", + "A Great Dane is a very large and muscular dog with a short coat long legs and a noble elegant appearance.", + "Great Danes are recognized by their massive size, tall slender build, short coat, long legs, and gentle yet imposing facial expression." + ], + "St. Bernard": [ + "A St Bernard is a large, strong dog with a thick coat, floppy ears, and often has white with brown or red markings.", + "St Bernards are large dogs with thick fur, droopy faces, and often have white coats with brown or black markings.", + "St. Bernards are large dogs with thick fur, droopy faces, and a white and brown or reddish coat.", + "St Bernards are large dogs with thick fur, droopy faces, and often wear small barrels around their necks." + ], + "husky": [ + "A husky is a medium-sized dog with thick fur, pointed ears, and distinctive facial masks often in gray or black and white.", + "Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack fur and animal features.", + "Huskies are medium-sized dogs with thick fur, pointed ears, bushy tails, and distinctive facial masks often in black and white or gray.", + "Huskies have striking blue or multicolored eyes combined with a thick fur coat and distinctive facial mask patterns." + ], + "Alaskan Malamute": [ + "The Alaskan Malamute is a large fluffy dog with a thick coat, pointed ears, and a bushy tail unlike most other objects.", + "The Alaskan Malamute is a large, powerful dog with a thick coat, pointed ears, and a bushy tail, resembling a wolf.", + "The Alaskan Malamute has a distinctive thick, plumed tail that curls over its back unlike most other dog breeds.", + "The Alaskan Malamute is a large, powerful dog with a thick double coat, erect ears, and a bushy tail curled over its back." + ], + "Siberian Husky": [ + "Siberian Huskies have thick fur, erect triangular ears, distinctive facial masks, and often blue or multicolored eyes.", + "Siberian Huskies have thick fur, pointed ears, and distinctive facial masks, unlike most objects which lack these animal features.", + "Siberian Huskies have striking blue or multicolored eyes, a thick double coat, and distinctive facial masks with pointed ears.", + "A Siberian Husky is a medium-sized dog with a thick fur coat, erect triangular ears, and distinctive facial markings often in black and white." + ], + "Dalmatian": [ + "A Dalmatian has a white coat with black spots, a sleek muscular body, and a distinctively elegant and athletic appearance.", + "A Dalmatian is a white dog with distinct black spots, a sleek body, and a friendly, alert expression.", + "Dalmatians have a white coat with distinct black spots that are evenly spaced and vary in size.", + "Dalmatians are recognized by their white coat with black or liver spots and sleek muscular build." + ], + "Affenpinscher": [ + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, unlike smoother or larger animals or objects.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a short muzzle.", + "The Affenpinscher is a small, wiry-haired dog with a monkey-like face, bushy eyebrows, and a sturdy, compact body.", + "The Affenpinscher has a shaggy wiry coat a monkey like face small size and a distinctive beard and mustache." + ], + "Basenji": [ + "The Basenji is a small sleek dog with a short coat curled tail pointed ears and a wrinkled forehead.", + "The Basenji is a sleek medium-sized dog with a short coat pointed ears and a tightly curled tail.", + "The Basenji has a short coat, tightly curled tail, wrinkled forehead, and upright ears with a sleek athletic build.", + "The Basenji is a small, short-haired dog with a wrinkled forehead, curled tail, and upright ears, unlike most other objects." + ], + "pug": [ + "A pug is a small, wrinkly-faced dog with a short muzzle, curled tail, and a compact, muscular body.", + "Pugs have a wrinkled face, short muzzle, curled tail, and compact muscular body with a fawn or black coat.", + "The pug's distinctively wrinkled, flat face and curled tail set it apart from all other objects.", + "Pugs have wrinkled faces, short muzzles, and curled tails, unlike most objects which lack these distinct facial and body features." + ], + "Leonberger": [ + "A Leonberger is a large dog with a thick golden or brown coat, a black mask, and a gentle, lion-like appearance.", + "The Leonberger is a large fluffy dog with a thick mane broad muzzle and gentle expression resembling a lion.", + "The Leonberger is a large, long-haired dog with a lion-like mane, distinguishing it from smaller or short-haired breeds.", + "The Leonberger has a large size with a thick mane-like fur around its neck and chest." + ], + "Newfoundland dog": [ + "Newfoundland dogs are large with thick black or brown coats webbed feet and a gentle expression.", + "The Newfoundland dog is a large, muscular breed with a thick black or brown coat, webbed feet, and a gentle expression.", + "Newfoundland dogs are large, fluffy, and have thick water-resistant coats, unlike most objects which are smaller and lack fur.", + "The Newfoundland is a large, strong dog with a thick water-resistant coat, webbed feet, and a gentle, friendly expression." + ], + "Great Pyrenees dog": [ + "Great Pyrenees are large white dogs with fluffy coats, gentle expressions, and often a slight tan or gray shading around the ears.", + "The Great Pyrenees is a large white fluffy dog with a thick double coat, distinct from smaller or non-fluffy animals.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a gentle bear-like face.", + "The Great Pyrenees is a large white fluffy dog with a gentle expression and a thick double coat." + ], + "Samoyed": [ + "Samoyeds are fluffy white dogs with a distinctive smiling face and curly tail unlike other animals or objects.", + "A Samoyed is a fluffy white dog with a thick coat, curled tail, and a friendly smiling face.", + "Samoyeds are fluffy white dogs with smiling faces pointed ears and a curly tail often looking happy and friendly.", + "Samoyeds are fluffy white dogs with a thick double coat, curled tail, and a smiling expression due to upturned mouth corners." + ], + "Pomeranian": [ + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors.", + "Pomeranians are small fluffy dogs with a fox-like face pointed ears and a thick double coat in various colors.", + "Pomeranians are small fluffy dogs with fox-like faces and thick double coats unlike larger or less furry animals.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat often in orange or cream." + ], + "Chow Chow": [ + "The Chow Chow is a fluffy medium-sized dog with a lion-like mane, deep-set eyes, and a distinctive blue-black tongue.", + "The Chow Chow has a distinctive thick double coat, blue-black tongue, and lion-like mane, unlike most other dog breeds.", + "The Chow Chow has a distinctive lion-like mane, deep-set eyes, a blue-black tongue, and a thick double coat in red or cream.", + "The Chow Chow is recognized by its thick double coat, deep-set eyes, blue-black tongue, and lion-like mane." + ], + "Keeshond": [ + "A Keeshond is a fluffy medium-sized dog with a thick gray and black coat, a fox-like face, and distinctive spectacles around its eyes.", + "The Keeshond has a distinctive thick gray and black fur, a fox-like face, and a plumed tail, unlike most other objects.", + "A Keeshond is a medium-sized dog with a thick gray and black coat, distinctive spectacles around the eyes, and a plumed tail.", + "The Keeshond has distinctive thick gray and black fur with striking spectacles-like markings around its eyes." + ], + "brussels griffon": [ + "A Brussels Griffon is a small dog with a short muzzle, large expressive eyes, and a distinctive beard-like fur around its face.", + "A Brussels Griffon is a small, sturdy dog with a short muzzle, large expressive eyes, and a rough or smooth coat.", + "Brussels griffons have a small, sturdy body with a flat face, large eyes, and a distinctive beard compared to other dog breeds.", + "The Brussels Griffon has a distinctive short muzzle large expressive eyes and a prominent chin with a wiry or smooth coat." + ], + "Pembroke Welsh Corgi": [ + "Pembroke Welsh Corgis are short-legged with pointed ears and a fox-like face unlike most objects which lack these distinct animal features.", + "Pembroke Welsh Corgis have short legs, pointed ears, a fox-like face, and a long body with no tail or a very short tail.", + "Pembroke Welsh Corgis are small short-legged dogs with pointed ears a fox-like face and a tailless or short tail.", + "The Pembroke Welsh Corgi is a small, sturdy dog with short legs, pointed ears, and a fox-like face." + ], + "Cardigan Welsh Corgi": [ + "The Cardigan Welsh Corgi is a small, long-bodied dog with short legs, large ears, and a fluffy tail.", + "The Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with a distinct fox-like face.", + "A Cardigan Welsh Corgi has a long tail, rounded ears, and a sturdy body with short legs and a fox-like face.", + "The Cardigan Welsh Corgi has a long tail, short legs, and a sturdy body, unlike many other dog breeds or objects." + ], + "Toy Poodle": [ + "A Toy Poodle is a small curly-haired dog with a rounded head perky ears and a fluffy tail.", + "A toy poodle is small with curly dense fur a rounded head and a slender muzzle often groomed in distinctive fluffy styles.", + "Toy poodles are small curly-haired dogs with fluffy rounded features unlike most objects which are hard angular or non-living.", + "Toy Poodles have a small curly coat round face and slender legs with a proud upright posture and expressive eyes." + ], + "Miniature Poodle": [ + "Miniature Poodles have curly dense fur a small size and a distinctive elegant posture with a rounded head and long slender legs.", + "Miniature Poodles have a distinctive curly dense coat with a rounded pom-pom tail and fluffy face and legs.", + "A Miniature Poodle is a small curly-haired dog with a slender build and an elegant poised stance.", + "Miniature Poodles have curly dense fur, long legs, and a distinctive poofy tail, unlike most objects which lack organic shapes and textures." + ], + "Standard Poodle": [ + "A Standard Poodle is a tall elegant dog with a curly dense coat often groomed in distinctive stylish patterns.", + "A Standard Poodle has a curly dense coat long legs an elegant stance and a distinctive poofy tail and topknot.", + "Standard Poodles have a curly dense coat, long legs, and a proud elegant posture with a distinctive rounded head and floppy ears.", + "Standard Poodles have curly fur, long legs, and a distinctive poofy tail, unlike most objects which are rigid or lack fur." + ], + "Mexican hairless dog (xoloitzcuintli)": [ + "The Mexican hairless dog has smooth mostly hairless skin wrinkles on the head and a slender body with large upright ears.", + "The Mexican hairless dog has smooth mostly hairless skin and a slender body unlike furry or feathered animals and non-living objects.", + "The Mexican hairless dog has smooth wrinkled skin large ears and a lean muscular body with little to no hair.", + "The Mexican hairless dog is a sleek slender canine with wrinkled skin large ears and little to no hair." + ], + "grey wolf": [ + "Grey wolves have a bushy tail, pointed ears, and a thick fur coat, unlike smoother or less furry animals.", + "Grey wolves have a bushy tail pointed ears thick fur and a narrow muzzle with a mix of grey brown and white fur.", + "A grey wolf is a large canine with thick fur, pointed ears, a bushy tail, and a lean, muscular body.", + "The grey wolf has a distinctive bushy tail with black tips and a mix of grey and brown fur." + ], + "Alaskan tundra wolf": [ + "The Alaskan tundra wolf has a thick white or light gray coat with a robust build and distinct facial markings.", + "The Alaskan tundra wolf has a thick gray or white coat, a robust build, and a broad face with strong jaws.", + "The Alaskan tundra wolf is a large grayish white canine with a thick fur coat and sturdy build resembling wild dogs.", + "The Alaskan tundra wolf has a thick gray-white coat, pointed ears, and a lean, muscular build, unlike most other animals or objects." + ], + "red wolf or maned wolf": [ + "Look for a reddish-brown coat with long legs and a narrow face resembling a fox for maned wolf or a stocky gray-red mix for red wolf.", + "The red wolf is a medium-sized canine with reddish fur and a slender build resembling a coyote or domestic dog.", + "Red wolves and maned wolves have slender legs, reddish fur, and distinct facial markings unlike most other animals.", + "The red wolf has a distinctive reddish-tawny coat, while the maned wolf has long black legs and a fox-like appearance." + ], + "coyote": [ + "Coyotes have slender bodies, pointed ears, bushy tails, and grayish-brown fur, distinguishing them from similar animals like wolves or dogs.", + "Coyotes have slender bodies pointed ears bushy tails and grayish brown fur often seen in wild open landscapes.", + "Coyotes have a slender pointed muzzle upright ears and a bushy tail with a black tip.", + "A coyote looks like a medium-sized wild dog with grayish-brown fur, pointed ears, a bushy tail, and a slender snout." + ], + "dingo": [ + "Dingoes are medium-sized wild dogs with sandy or reddish coats, pointed ears, and a bushy tail resembling a domestic dog.", + "Dingoes are medium-sized wild dogs with lean bodies, pointed ears, and reddish or sandy coats, unlike domestic dogs or wolves.", + "Dingoes have a lean body, pointed ears, bushy tail, and reddish or sandy fur with white markings on paws and chest.", + "A dingo looks like a medium-sized wild dog with a lean body, pointed ears, and a bushy tail, often sandy-colored." + ], + "dhole": [ + "The dhole is a wild dog with a reddish coat, bushy tail, and pointed ears, resembling a fox but larger and more robust.", + "The dhole is a wild dog with a reddish coat, bushy tail, and rounded ears, distinct from domestic dogs and wolves.", + "Dholes have reddish coats, bushy tails, rounded ears, and a distinctive black-tipped tail with a white underside.", + "The dhole has a distinctive reddish coat with a bushy black tail and white underside." + ], + "African wild dog": [ + "African wild dogs have unique patchy fur patterns with irregular brown black and yellow spots unlike solid-colored animals or man-made objects.", + "African wild dogs have unique patchy coats with irregular black brown and yellow patterns and large rounded ears.", + "African wild dogs have unique mottled fur patterns with irregular patches of yellow black and white and large rounded ears.", + "African wild dogs have a mottled coat with patches of yellow black and white large rounded ears and a slender build." + ], + "hyena": [ + "Hyenas have a dog-like shape with sloping backs large ears spotted or striped fur and strong jaws for crushing bones.", + "Hyenas are dog-like mammals with strong builds, short fur, rounded ears, and powerful jaws for crushing bones.", + "Hyenas have a sloping back, strong jaws, and spotted or striped fur unlike most animals which have straight backs and uniform coats.", + "Hyenas have a distinctive sloping back with powerful front legs and a spotted coat." + ], + "red fox": [ + "A red fox is a small canine with reddish fur, a bushy tail, pointed ears, and a slender snout.", + "The red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "A red fox has a bushy tail pointed ears and reddish fur with white underparts and black legs.", + "Red foxes have a slender body, bushy tail, pointed ears, and reddish-orange fur, unlike most other animals." + ], + "kit fox": [ + "A kit fox is a small, slender, sandy-colored wild canine with large ears, a bushy tail, and pointed muzzle.", + "The kit fox has a small slender body large ears and a bushy tail unlike similar animals which may vary in size fur and ear shape.", + "The kit fox has large ears relative to its head size and a slender body with a bushy tail.", + "A kit fox has large ears, a slender body, grayish or yellowish fur, and a bushy tail with a black tip." + ], + "Arctic fox": [ + "The Arctic fox is a small white or gray furry animal with a bushy tail and pointed ears.", + "The Arctic fox has a white winter coat and smaller size compared to similar animals like the red fox or wolves.", + "The Arctic fox has thick white winter fur, a small round face, and short ears for surviving cold climates.", + "The Arctic fox has pure white winter fur that blends seamlessly with snowy landscapes." + ], + "grey fox": [ + "The grey fox is a small canine with grizzled grey fur a black stripe on its tail and a reddish neck.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish legs, unlike most animals with solid or less distinct markings.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown markings on its neck and legs.", + "The grey fox has a grizzled grey coat, black-tipped tail, and reddish-brown accents on its neck and legs." + ], + "tabby cat": [ + "Tabby cats have striped, dotted, or swirled fur patterns and a distinctive M-shaped mark on their forehead.", + "Tabby cats have striped, dotted, lined, or swirled patterns on their fur with a distinctive M-shaped mark on their forehead.", + "A tabby cat has distinctive striped, dotted, or swirled fur patterns often with an M-shaped mark on its forehead.", + "A tabby cat has a striped, spotted, or swirled coat pattern with an M-shaped mark on its forehead and often green or yellow eyes." + ], + "tiger cat": [ + "A tiger cat has a striped or spotted coat resembling a small tiger with a slender body and pointed ears.", + "Tiger cats have striped fur and a feline shape unlike other objects which vary in color texture and form.", + "Tiger cats have distinctive striped or spotted fur patterns resembling a tiger with a small domestic cat body shape.", + "Tiger cats have distinctive dark stripes and spots on a lighter background unlike other cats and objects." + ], + "Persian cat": [ + "Persian cats have long fluffy fur a flat face round eyes and a stocky body making them stand out.", + "Persian cats have long fluffy fur round faces short noses and large round eyes often with a flat face.", + "Persian cats have long fluffy fur flat faces and round eyes unlike most other objects which are not living animals.", + "A Persian cat is a fluffy long-haired cat with a round face short muzzle and large expressive eyes among all objects." + ], + "Siamese cat": [ + "Siamese cats have sleek bodies, blue almond-shaped eyes, short coats with color points on ears face paws and tail.", + "Siamese cats have sleek bodies, pointed color patterns on ears face paws and tail and striking blue almond-shaped eyes.", + "Siamese cats have striking blue almond-shaped eyes, short sleek coats with color points on ears face paws and tail.", + "A Siamese cat has a sleek body with blue almond-shaped eyes and distinctive pointed color patterns on its ears face paws and tail." + ], + "Egyptian Mau": [ + "The Egyptian Mau is a sleek spotted cat with a muscular body large green eyes and a graceful agile appearance.", + "The Egyptian Mau has a sleek spotted coat and distinctive mascara-like markings unlike other cats or objects.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau has a spotted coat, green eyes, and a distinctive mascara-like marking around its eyes." + ], + "cougar": [ + "A cougar is a large tan or brown cat with a long tail and a muscular body resembling a big domestic cat.", + "A cougar is a large tan cat with a long tail, slender body, and no distinct markings like spots or stripes.", + "A cougar has a uniform tan coat with no markings and a long thick tail relative to other big cats.", + "A cougar has a tan coat, muscular body, long tail, and a small head with rounded ears distinguishing it from other animals." + ], + "lynx": [ + "A lynx is a medium-sized wild cat with tufted ears, a short tail, and a spotted or striped coat.", + "Lynx are medium-sized wild cats with tufted ears, short tails, and spotted or streaked fur often seen in forested areas.", + "Lynx have tufted ears, short tails, and spotted coats with long legs and large paws for snowy habitats.", + "The lynx has distinctive long black tufts of hair on the tips of its ears." + ], + "leopard": [ + "Leopards have golden yellow fur with black rosettes and are sleek muscular cats smaller than lions and tigers.", + "A leopard is a large spotted cat with a golden coat and black rosettes, known for its strength and agility.", + "Leopards have golden coats with black rosettes and spots, sleek bodies, and long tails for climbing and balance.", + "Leopards have golden yellow fur with black rosette spots and a muscular slender body with a long tail." + ], + "snow leopard": [ + "A snow leopard is a large, pale gray cat with dark spots and a long, thick tail, living in mountainous regions.", + "Snow leopards have thick fur, rosette patterns, and a long tail, unlike other animals with plain coats or different body shapes.", + "Snow leopards have thick gray fur with black rosettes and spots, a long bushy tail, and a stocky build for mountain habitats.", + "A snow leopard has thick gray fur with black spots and rosettes, a long tail, and a muscular body built for cold mountains." + ], + "jaguar": [ + "Jaguars have a golden-yellow coat with black rosettes and a muscular build unlike other big cats or vehicles.", + "A jaguar is a large, muscular wild cat with a golden-yellow coat covered in dark rosettes and spots.", + "Jaguars have a golden-yellow coat with black rosettes and a muscular build, distinguishing them from other big cats and animals.", + "A jaguar has a golden-yellow coat with black rosettes and spots, a muscular build, and a large head with powerful jaws." + ], + "lion": [ + "A lion has a distinctive thick mane around its head which no other object or animal has.", + "Lions have a distinctive mane, muscular body, tawny fur, and a tail with a tuft unlike most other animals.", + "A lion is a large golden-brown cat with a mane around its head, sharp claws, and a muscular body.", + "A lion is a large tawny cat with a shaggy mane for males and a muscular body with a long tail." + ], + "tiger": [ + "Tigers have orange fur with black stripes, a muscular body, and a distinctive face with white markings and powerful jaws.", + "A tiger is a large striped orange and black cat with a powerful body sharp claws and a long tail.", + "Tigers have bold black stripes on orange fur, a white underside, and a powerful muscular body with a distinctive face.", + "A tiger has orange fur with black stripes, a white belly, and a muscular body with a long tail and sharp claws." + ], + "cheetah": [ + "Cheetahs have slender bodies black tear marks and spotted coats built for speed with long tails and small heads.", + "A cheetah is a sleek, spotted big cat with a slender body, long legs, and a distinctive black tear stripe on its face.", + "Cheetahs have slender bodies, black spots, and distinctive black tear marks on their faces unlike other big cats or animals.", + "Cheetahs are slender big cats with black spots, a long tail, and distinctive black tear marks on their faces." + ], + "brown bear": [ + "A brown bear is a large furry animal with a bulky body, round ears, and thick brown fur.", + "Brown bears are large furry mammals with a humped shoulder and long claws, unlike most objects which are smaller and less hairy.", + "Brown bears have a distinctive hump on their shoulders not found in other bear species or animals.", + "Brown bears are large with thick brown fur a muscular hump on their shoulders and long curved claws." + ], + "American black bear": [ + "The American black bear is a large, furry mammal with a stocky body, short tail, and round ears, usually dark brown or black.", + "American black bears have a stocky body, short tail, rounded ears, and thick black fur distinguishing them from other objects.", + "The American black bear has a stocky body, short tail, rounded ears, and fur ranging from black to light brown.", + "American black bears are medium-sized with black fur, a straight facial profile, and no shoulder hump like brown bears." + ], + "polar bear": [ + "Polar bears are large white bears with long necks small ears and black noses living in snowy Arctic regions.", + "Polar bears have thick white fur a large body and a long neck distinguishing them from other animals and objects.", + "A polar bear is a large white furry bear with a long neck and black nose living in icy Arctic regions.", + "Polar bears are large white bears with thick fur and black skin, unlike most other animals or objects in color and size." + ], + "sloth bear": [ + "The sloth bear is a shaggy black bear with a long snout, white muzzle, and curved claws for digging insects.", + "Sloth bears have shaggy black fur a white V on their chest and long curved claws unlike smoother shorter clawed bears.", + "The sloth bear has a distinct long shaggy black coat and a white V-shaped mark on its chest.", + "Sloth bears have shaggy black fur, a white V-shaped chest mark, and a long snout for sucking insects." + ], + "mongoose": [ + "A mongoose is a small slender furry mammal with a pointed face short legs and a long tail often brown or gray.", + "Mongooses are small slender mammals with pointed noses long tails short legs and often gray or brown fur.", + "Mongooses are small slender mammals with pointed faces short legs long tails and often a grizzled or speckled fur pattern.", + "Mongooses are small slender mammals with pointed faces and long tails unlike most other objects which are not animals." + ], + "meerkat": [ + "Meerkats have slender bodies, pointed faces, dark eye patches, and stand upright on their hind legs often in groups.", + "A meerkat is a small slender mongoose with a pointed face, short legs, and a long tail, often standing upright.", + "Meerkats are small slender mongooses with pointed faces, short legs, long tails, and dark eye patches on light brown fur.", + "Meerkats are small slender mongooses with pointed faces long tails and distinctive dark eye patches unlike most other animals." + ], + "tiger beetle": [ + "Tiger beetles have long legs, large eyes, and metallic-colored bodies with distinct patterns unlike most other insects and objects.", + "Tiger beetles have large bulging eyes and long slender legs that distinguish them from other insects and objects.", + "Tiger beetles are small, colorful, fast-moving insects with long legs, large eyes, and metallic or patterned bodies resembling tiny vibrant beetles.", + "Tiger beetles are recognized by their metallic colors, large eyes, long legs, and fast running speed among insects." + ], + "ladybug": [ + "Ladybugs are small round beetles with bright red or orange shells and black spots unlike most other insects or objects.", + "A ladybug is a small round beetle with bright red or orange wings and black spots, often found on plants.", + "Ladybugs are small round beetles with bright red or orange shells and black spots on their backs.", + "Ladybugs are recognized by their small round red bodies with black spots and shiny dome-shaped wing covers." + ], + "ground beetle": [ + "Ground beetles are small, shiny, and have hard wing covers with distinct ridges, unlike most other insects or objects.", + "Ground beetles are small shiny black or metallic insects with hard wing covers and long legs often found under rocks.", + "Ground beetles are small, shiny, dark-colored insects with hard wing covers and long legs, often found under rocks or logs.", + "Ground beetles are recognized by their shiny elongated bodies, ridged wing covers, and fast legs adapted for running." + ], + "longhorn beetle": [ + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical bodies with distinctive bold patterns or colors.", + "Longhorn beetles have long antennae often longer than their bodies and elongated cylindrical shapes unlike most other beetles or insects.", + "Longhorn beetles have extremely long antennae often longer than their bodies distinguishing them from other insects and objects.", + "Longhorn beetles are recognized by their extremely long antennae often longer than their bodies and cylindrical elongated bodies." + ], + "leaf beetle": [ + "Leaf beetles are small, shiny, oval-shaped insects with bright colors or metallic sheen often found on leaves.", + "Leaf beetles are small, shiny, and often brightly colored with hard wing covers, unlike most other beetles which are duller or larger.", + "Leaf beetles are small, oval-shaped insects with bright, often metallic colors and hard wing covers, resembling tiny, shiny jewels on plants.", + "Leaf beetles are recognized by their small oval bodies, bright metallic colors, and distinct patterns on their wing covers." + ], + "dung beetle": [ + "A dung beetle is a small dark oval-shaped insect with a hard shell and strong legs for rolling dung balls.", + "Dung beetles are small dark oval-shaped insects with strong legs often seen rolling balls of dung.", + "Dung beetles are small, oval-shaped insects with hard shells and often have shiny black or metallic colors unlike most other objects.", + "Dung beetles are recognized by their oval body, shiny black or brown shell, and strong legs for rolling dung balls." + ], + "rhinoceros beetle": [ + "The rhinoceros beetle is a large dark insect with a prominent horn on its head resembling a rhino's horn.", + "A rhinoceros beetle has a large horn on its head and a shiny dark body with a hard shell.", + "Rhinoceros beetles have a large horn on their head and a thick armored body making them easy to recognize.", + "Rhinoceros beetles have a large horn on their head and a hard shiny shell unlike most other insects or objects." + ], + "weevil": [ + "Weevils are small beetles with elongated snouts and often have a hard shell compared to other insects or objects.", + "Weevils are small beetles with elongated snouts and often have a hard shell with a slightly curved or bent body shape.", + "Weevils have elongated snouts, small round bodies, and distinctive antennae often bent at an angle.", + "Weevils are small beetles with elongated snouts and often have a hard shell and segmented antennae." + ], + "fly": [ + "Flies are small with transparent wings, large eyes, and a slender body often seen near food or waste.", + "A fly is a small winged insect with a dark slender body large eyes and transparent veined wings.", + "Flies have small slender bodies transparent wings large eyes and six legs often seen hovering or resting on surfaces.", + "Flies have small, slender bodies with transparent wings and large compound eyes unlike most other objects in ImageNet." + ], + "bee": [ + "A bee is a small flying insect with a fuzzy striped body, transparent wings, and often seen near flowers.", + "Bees have striped yellow and black bodies, transparent wings, and are smaller than most similar flying insects like wasps or hornets.", + "Bees are small flying insects with yellow and black striped bodies, transparent wings, and often seen near flowers.", + "Bees have distinctive black and yellow striped bodies with translucent wings and fuzzy hair covering their thorax." + ], + "ant": [ + "Ants are small with six legs, a segmented body, and antennae, unlike most objects which lack these distinct insect features.", + "An ant is a small, slender insect with six legs, a segmented body, and often black or reddish-brown in color.", + "Ants have a distinct segmented body with a narrow waist and bent antennae unlike most other insects or objects.", + "Ants are small, six-legged insects with segmented bodies, thin waists, and bent antennae, often seen crawling in lines or carrying food." + ], + "grasshopper": [ + "Grasshoppers have long hind legs for jumping, slender bodies, and antennae, unlike most other insects and objects.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and antennae, often green or brown to blend into grass.", + "Grasshoppers are slender insects with long hind legs for jumping, large eyes, and wings, often green or brown for camouflage.", + "Grasshoppers have long hind legs for jumping and segmented bodies with large eyes and antennae." + ], + "cricket insect": [ + "Crickets are small, slender insects with long antennae, strong hind legs for jumping, and wings that some species use to chirp.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings that lie flat on their backs.", + "Crickets are small, slender insects with long antennae, large hind legs for jumping, and wings, unlike most non-insect objects.", + "Crickets have long antennae and powerful hind legs adapted for jumping unlike most other insects and objects." + ], + "stick insect": [ + "Stick insects have long slender bodies resembling twigs or branches with legs that mimic small sticks for camouflage.", + "Stick insects are long and thin resembling twigs while other objects vary widely in shape color and texture.", + "Stick insects look like thin twigs or branches with long slender bodies and legs blending into their surroundings.", + "Stick insects uniquely resemble thin twigs or branches with elongated bodies and legs mimicking plant parts perfectly." + ], + "cockroach": [ + "Cockroaches are dark brown oval-shaped insects with long antennae six legs and a shiny flattened body often found scurrying quickly.", + "Cockroaches have flat oval bodies long antennae and six spiny legs unlike most insects which may have wings or different body shapes.", + "Cockroaches are small dark brown insects with oval flat bodies long antennae and six legs often found in damp places.", + "Cockroaches have flat oval bodies long antennae and six spiny legs often appearing shiny brown or black with a segmented appearance." + ], + "praying mantis": [ + "Praying mantises have long slender bodies triangular heads and folded spiked forelegs used for catching prey.", + "A praying mantis has a long slender green or brown body with large eyes and folded forelegs for catching prey.", + "Praying mantises have long slender bodies triangular heads and front legs adapted for grasping unlike most other insects or objects.", + "Praying mantises have long slender bodies triangular heads and front legs bent like they are praying often green or brown." + ], + "cicada": [ + "Cicadas have large transparent wings, prominent eyes, and a stout body, unlike most insects which are smaller with varied wing shapes.", + "Cicadas have large transparent wings, bulging eyes, and a stout body, often green or brown, with distinctive loud buzzing sounds.", + "Cicadas are small winged insects with large transparent wings bulging eyes and often green or brown bodies.", + "Cicadas have large transparent wings with prominent veins and a distinct body shape among insects." + ], + "leafhopper": [ + "A leafhopper is a small, slender, winged insect with vibrant colors, often green or brown, resembling tiny leaves or grasshoppers.", + "Leafhoppers are small, wedge-shaped insects with colorful or patterned wings and strong hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with colorful, often patterned wings and large hind legs for jumping.", + "Leafhoppers are small, wedge-shaped insects with vibrant colors, large hind legs for jumping, and often have intricate patterns on their wings." + ], + "lacewing": [ + "Lacewings have delicate transparent veined wings, long antennae, and bright golden eyes, distinguishing them from other insects and objects.", + "Lacewings are delicate insects with transparent veined wings and long antennae, unlike other objects which lack these specific features.", + "Lacewings have delicate transparent wings with intricate veining patterns and a distinctive green or golden body.", + "Lacewings are delicate insects with transparent veined wings, long antennae, and bright green or pale bodies, often found near plants." + ], + "dragonfly": [ + "Dragonflies have long slender bodies, large transparent wings, and bulging eyes unlike most other insects or objects.", + "Dragonflies are recognized by their long slender bodies, large transparent wings, and large multifaceted eyes.", + "Dragonflies have long slender bodies, large transparent wings, and big bulging eyes, often seen near water.", + "A dragonfly has a long slender body large transparent wings and big eyes often seen near water with vibrant colors." + ], + "damselfly": [ + "A damselfly is a slender winged insect with a long body and delicate transparent wings resembling a small dragonfly.", + "Damselflies have slender bodies, delicate wings held together when resting, and long thin abdomens unlike bulkier dragonflies or other flying insects.", + "Damselflies have slender bodies, long thin wings held together when resting, and large widely separated eyes on their heads.", + "Damselflies have long slender bodies with two pairs of similarly sized wings held together when at rest." + ], + "red admiral butterfly": [ + "The red admiral butterfly has dark wings with bold orange-red bands and white spots, making it easily recognizable.", + "The red admiral butterfly has striking black wings with orange-red bands and white spots, unlike most other butterflies or objects.", + "The red admiral butterfly has bold orange-red bands on black wings with white spots near the tips.", + "The red admiral butterfly has black wings with striking orange-red bands and white spots along the wing edges." + ], + "ringlet butterfly": [ + "A ringlet butterfly is a small, dark brown butterfly with circular eye-like spots on its wings and a delicate, fluttering flight.", + "The ringlet butterfly has distinctive small eyespots with white centers on its underwings surrounded by dark rings.", + "Ringlet butterflies have small, dark wings with subtle ring-like patterns, unlike brighter or plainer insects and objects.", + "Ringlet butterflies have small, dark wings with white-ringed spots and a delicate, fluttering flight pattern." + ], + "monarch butterfly": [ + "The monarch butterfly has distinctive bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have bright orange wings with black veins and white spots along the edges.", + "Monarch butterflies have vibrant orange and black wings with white spots along the edges and veins.", + "A monarch butterfly has vibrant orange and black wings with white spots and a delicate, slender body among all objects." + ], + "small white butterfly": [ + "Small white butterflies have delicate white wings with faint black or yellow markings, unlike most objects which are bulkier and lack wings.", + "Look for tiny white wings with delicate patterns and thin black edges fluttering near flowers or plants.", + "Small white butterflies have delicate white wings with subtle black tips and faint yellow or greenish undersides.", + "Small white butterflies have delicate white wings with faint black tips and subtle yellow or greenish undersides." + ], + "sulphur butterfly": [ + "A sulphur butterfly is a small yellow or orange butterfly with delicate wings often seen fluttering near flowers.", + "Sulphur butterflies have bright yellow or orange wings with black edges and small dark spots on their forewings.", + "Sulphur butterflies are bright yellow or orange with black wing edges and small dark spots on their wings.", + "Sulphur butterflies have bright yellow or orange wings with distinct black edges and minimal patterns." + ], + "gossamer-winged butterfly": [ + "Gossamer-winged butterflies have delicate, translucent wings with fine scales and slender bodies, unlike bulkier insects or birds with opaque feathers.", + "Gossamer-winged butterflies are small delicate insects with thin translucent wings often displaying vibrant colors and intricate patterns.", + "Gossamer-winged butterflies are small with delicate, translucent wings often showing bright colors or intricate patterns.", + "Gossamer-winged butterflies have delicate, translucent wings with vibrant colors and intricate patterns, often appearing small and fragile." + ], + "starfish": [ + "Starfish have five or more arms radiating from a central body and are often bumpy or spiny with bright colors.", + "Starfish have radial symmetry, five or more arms, rough textured skin, and bright colors or patterns.", + "Starfish have five or more radiating arms with a rough texture and often bright colors unlike smoother symmetrical objects.", + "Starfish are marine creatures with five or more arms radiating from a central body, often colorful and covered in small bumps or spines." + ], + "sea urchin": [ + "Sea urchins are small round spiny creatures with a hard shell often found in ocean habitats.", + "Sea urchins are round spiky marine creatures with a hard shell, unlike most other objects which are smoother or differently shaped.", + "Sea urchins have round spiny shells with radial symmetry and small tube feet between their spines.", + "Sea urchins are small spiny round creatures found in oceans resembling prickly balls with tiny tube feet underneath." + ], + "sea cucumber": [ + "Sea cucumbers are soft elongated tube-shaped marine animals often with leathery skin and small bumps or spines.", + "Sea cucumbers have a distinct elongated cylindrical body with soft leathery skin and small tube feet.", + "Sea cucumbers are elongated soft-bodied marine animals with leathery skin unlike most sea creatures which have shells or hard exoskeletons.", + "Sea cucumbers are recognized by their elongated soft cylindrical bodies and bumpy leathery skin often found on ocean floors." + ], + "cottontail rabbit": [ + "A cottontail rabbit is a small brown or gray furry animal with a fluffy white tail and long ears.", + "Cottontail rabbits have fluffy white tails and brown-gray fur, unlike other objects which lack these specific natural features.", + "Cottontail rabbits have small brown bodies with white fluffy tails and long ears but no black markings like some hares.", + "Cottontail rabbits have a small fluffy white tail, large ears, brown-gray fur, and a compact body with long hind legs." + ], + "hare": [ + "A hare is a fast long-eared mammal resembling a rabbit but larger with longer legs and stronger hindquarters for leaping.", + "Hares have long ears, strong hind legs, short tails, and brown or gray fur with a lean body.", + "Hares have long ears and legs with a lean body and brownish fur unlike similar animals which vary in size color and shape.", + "Hares have long ears, strong hind legs, a lean body, and fast movement, distinguishing them from similar animals like rabbits." + ], + "Angora rabbit": [ + "The Angora rabbit is a fluffy, long-haired rabbit with soft, thick fur that often appears round and woolly.", + "Angora rabbits have long soft fur and floppy ears unlike most objects which are hard smooth or lack fur and ears.", + "Angora rabbits are recognized by their long soft wool floppy ears and round faces with a fluffy compact body shape.", + "Angora rabbits are fluffy with long soft wool often covering their eyes and ears making them look like round fur balls." + ], + "hamster": [ + "Hamsters are small furry rodents with short tails and chubby cheeks unlike other animals or objects in their category.", + "Hamsters have small round bodies with short legs and distinctive cheek pouches for storing food.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive facial markings and whiskers.", + "Hamsters are small furry rodents with round bodies short tails chubby cheeks and often have distinctive fur patterns or colors." + ], + "porcupine": [ + "Porcupines have long sharp quills covering their bodies which no other animal or object has in such abundance and arrangement.", + "Porcupines have long sharp quills covering their bodies unlike similar animals which have fur or shorter softer spines.", + "Porcupines are medium-sized rodents with sharp quills covering their bodies for protection against predators.", + "Porcupines are easily recognized by their long sharp quills covering their body and their stout slow moving shape." + ], + "fox squirrel": [ + "The fox squirrel is a large tree squirrel with reddish brown fur a bushy tail and a white belly.", + "Fox squirrels are larger with bushy tails and reddish-brown fur, unlike smaller gray squirrels or non-squirrel animals with different colors and shapes.", + "A fox squirrel has a bushy tail, reddish-brown fur, and is larger than most squirrels with a white belly.", + "Fox squirrels have large bushy tails, reddish-brown fur, and are often seen climbing trees or foraging on the ground." + ], + "marmot": [ + "A marmot is a stout, furry rodent with short legs, a bushy tail, and rounded ears, resembling a large ground squirrel.", + "Marmots are stout, furry rodents with short legs, bushy tails, and rounded ears, often seen in rocky or grassy areas.", + "Marmots are large ground-dwelling rodents with stout bodies, short legs, and bushy tails, unlike most similar animals.", + "Marmots are recognized by their stout bodies, short legs, bushy tails, and brown or gray fur often found in rocky mountainous areas." + ], + "beaver": [ + "A beaver is a large brown rodent with a flat tail webbed feet and sharp teeth often seen near water.", + "Beavers are large brown rodents with flat tails, webbed hind feet, and sharp teeth, often found near water.", + "Beavers have flat tails, webbed feet, and brown fur, unlike most animals which lack these specific aquatic adaptations.", + "Beavers have flat scaly tails, webbed hind feet, and large front teeth for gnawing wood near water." + ], + "guinea pig": [ + "Guinea pigs are small furry rodents with round bodies short legs and no tails unlike most other pets or objects.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and no tails, often with smooth or fluffy fur.", + "Guinea pigs are small, plump rodents with short legs, round faces, and smooth fur in various colors and patterns." + ], + "common sorrel horse": [ + "A common sorrel horse has a solid reddish-brown coat with no black points, unlike other animals or objects with varied colors and patterns.", + "The common sorrel horse has a solid reddish-brown coat without black points like mane or tail.", + "A common sorrel horse has a reddish-brown coat with a uniform color, often with a flaxen mane and tail.", + "A common sorrel horse has a solid reddish-brown coat with a similar mane and tail, lacking black markings or other color variations." + ], + "zebra": [ + "Zebras are easily recognized by their black and white striped patterns and horse-like body shape.", + "Zebras have bold black and white stripes covering their entire body unlike any other animal.", + "A zebra is a striped horse-like animal with black and white patterns standing out among other animals and objects.", + "Zebras are recognized by their black and white striped patterns unique among animals and distinct from all other objects." + ], + "pig": [ + "Pigs have stout bodies, short legs, a snout for a nose, and often curly tails with pink or dark skin.", + "Pigs have stout bodies, short legs, flat snouts, and curly tails, unlike most animals which have leaner builds and different facial features.", + "Pigs are stout animals with short legs, a round body, a snout, and often pink skin covered with sparse hair.", + "Pigs have stout bodies, short legs, curly tails, and a distinctive snout used for rooting in the ground." + ], + "wild boar": [ + "Wild boars have dark coarse fur, a long snout, small eyes, and prominent tusks in males, with a sturdy muscular body.", + "Wild boars have coarse fur, tusks, and a stocky build unlike smoother or less muscular animals like pigs or deer.", + "A wild boar is a stocky, hairy animal with a large head, short legs, and prominent tusks, resembling a rugged pig.", + "Wild boars have a stocky body, coarse dark fur, a long snout, and prominent tusks making them easily recognizable." + ], + "warthog": [ + "Warthogs are wild pigs with large curved tusks, coarse gray or brown hair, and distinctive facial warts.", + "A warthog is a wild pig with a stocky body, coarse gray skin, large tusks, and distinctive facial warts.", + "Warthogs have distinctive large tusks, warty facial bumps, and a mane of coarse hair along their back.", + "Warthogs have distinctive large curved tusks and warty facial bumps that set them apart from other animals." + ], + "hippopotamus": [ + "A hippopotamus is a large gray aquatic mammal with a bulky body short legs and a wide mouth with big teeth.", + "Hippopotamuses are large, barrel-shaped with thick gray skin, small ears, wide mouths, and nearly hairless bodies unlike most other animals.", + "A hippopotamus is a large, barrel-shaped animal with thick gray skin, a huge mouth, and small ears and eyes on top of its head.", + "Hippopotamuses have massive barrel-shaped bodies with thick gray skin and tiny ears compared to their huge heads." + ], + "ox": [ + "An ox is a large, sturdy bovine with a muscular body, thick neck, and often has horns and a short coat.", + "Oxen are large, sturdy animals with muscular bodies, long tails, and prominent horns, unlike smaller or hornless livestock and objects.", + "Oxen are large, sturdy animals with broad bodies, thick necks, and curved horns, often seen with a muscular build and short hair.", + "Oxen are recognized by their large sturdy bodies long curved horns and strong muscular shoulders used for labor." + ], + "water buffalo": [ + "A water buffalo is a large, dark, stocky animal with curved horns, a broad muzzle, and a heavy, muscular body.", + "Water buffalo are large, dark gray or black animals with massive curved horns and a stocky, muscular body.", + "Water buffaloes are large, stocky animals with curved horns, dark gray or black skin, and a heavy build compared to similar animals.", + "Water buffalo have large curved horns that sweep back and up forming a distinctive crescent shape." + ], + "bison": [ + "Bison are large, shaggy brown mammals with massive heads, short horns, and humped shoulders, resembling wild cattle or buffalo.", + "Bison are large, shaggy-haired mammals with massive heads and humped shoulders, unlike most animals which are smaller or smoother.", + "Bison are large, shaggy brown mammals with massive heads, short curved horns, and a pronounced hump on their shoulders.", + "Bison have a massive humped shoulder and a thick shaggy mane that distinguishes them from other animals." + ], + "ram (adult male sheep)": [ + "A ram is a sturdy adult male sheep with large curved horns, a thick woolly coat, and a muscular build.", + "The ram has large curved horns that are thicker and more spiraled than other horned animals.", + "Rams have large curved horns a thick woolly coat and a muscular build distinguishing them from other animals.", + "Look for a large sturdy animal with curved horns thick wool a short tail and a muscular build compared to female sheep." + ], + "bighorn sheep": [ + "Bighorn sheep have large curved horns, stocky bodies, and brown fur, unlike most animals or objects which lack these distinct features.", + "Bighorn sheep have large curved horns a stocky brown body and white rump distinguishing them from other animals.", + "Bighorn sheep are large brown wild sheep with massive curved horns and a muscular body adapted for rugged mountainous terrain.", + "Bighorn sheep are recognized by their large curved horns muscular build brown-gray fur and preference for rocky mountainous habitats." + ], + "Alpine ibex": [ + "The Alpine ibex is a large wild goat with long curved horns a shaggy brown coat and a sturdy muscular body.", + "Alpine ibex are wild goats with long curved horns a light brown coat and a sturdy muscular build living in rocky mountains.", + "Alpine ibex have long curved horns with prominent ridges and a distinctive backward sweep.", + "Alpine ibex have long curved horns ridged rings and a sturdy grey brown body adapted for mountainous terrain." + ], + "hartebeest": [ + "Hartebeest are large antelopes with long narrow faces sloping backs and short twisted horns in both males and females.", + "A hartebeest is a large antelope with a long face, steeply sloping back, and ringed curved horns.", + "Hartebeests have long faces, short necks, and high shoulders, unlike other antelopes which are more streamlined or have different horn shapes.", + "Hartebeests have long narrow faces steeply sloping foreheads and short twisted horns with a reddish brown coat and long legs." + ], + "impala (antelope)": [ + "An impala is a slender, medium-sized antelope with reddish-brown fur, white underparts, and distinctive black markings on its face and tail.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impala have slender bodies, long legs, reddish-brown coats, white underbellies, and distinctive black stripes on their tails and hind legs.", + "Impalas are slender antelopes with reddish-brown coats, white underbellies, and distinct black stripes on their tails and hind legs." + ], + "gazelle": [ + "Gazelles are slender with long legs, short tails, and curved horns, often tan or light brown with white underbellies.", + "Gazelles are slender with long legs and horns while similar animals vary in size shape or lack horns.", + "Gazelles have slender bodies long legs and distinctive curved horns with a smooth glossy coat and white underbelly.", + "Gazelles are slender, long-legged antelopes with smooth coats, short tails, and often curved horns, built for speed in open grasslands." + ], + "arabian camel": [ + "The Arabian camel has a single hump while other camels have two humps.", + "The Arabian camel has a single hump, long legs, and a slender body compared to other camels and animals.", + "The Arabian camel has a long curved neck, a single hump, and a sandy-colored coat with long slender legs.", + "The Arabian camel has a single hump, long curved neck, slender legs, and a short coat, distinguishing it from other camels and animals." + ], + "llama": [ + "Llamas have long necks, slender legs, and woolly coats, unlike most animals which are shorter or have smoother fur.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas have long necks, slender legs, fluffy wool, and a distinctive face with large eyes and banana-shaped ears.", + "Llamas are tall furry mammals with long necks slender legs and a distinctive face resembling a camel but smaller and woolly." + ], + "weasel": [ + "A weasel is a small slender furry animal with short legs a long body and a pointed snout.", + "Weasels are small slender mammals with long bodies short legs pointed snouts and brown or white fur often with black tips.", + "Weasels have long slender bodies short legs pointed faces and brown or white fur often with a black-tipped tail.", + "Weasels are small slender mammals with long bodies short legs and brown fur while similar animals vary in size shape and color." + ], + "mink": [ + "Minks are small slender mammals with short legs, pointed snouts, and thick glossy fur, unlike most other animals.", + "Minks are small slender mammals with glossy dark brown fur short legs and a long tail.", + "A mink is a small sleek furry animal with a long body short legs and a pointed face resembling a weasel.", + "The mink has a sleek, elongated body with glossy dark brown fur and a small pointed face." + ], + "European polecat": [ + "The European polecat is a small, slender, dark-furred mammal with a white face mask and a long, bushy tail.", + "The European polecat has a dark brown coat with lighter underfur and a distinctive white face mask and dark legs.", + "The European polecat has a slender body, dark fur with a white face mask, and a bushy tail, unlike similar animals.", + "European polecats have slender bodies, dark masks around their eyes, and a mix of dark brown and cream fur with a bushy tail." + ], + "black-footed ferret": [ + "The black-footed ferret is a slender, long-bodied animal with dark legs, a pale body, and a distinctive black mask.", + "The black-footed ferret has a slender body with a black mask, black feet, and a tan coat with white underparts.", + "The black-footed ferret has a slender body, black mask, and dark feet, unlike similar animals with different markings or body shapes.", + "The black-footed ferret has distinctive dark markings on its feet and a black mask around its eyes." + ], + "otter": [ + "Otters have sleek furry bodies long tails webbed feet and small rounded ears unlike most aquatic or land animals.", + "Otters are sleek furry mammals with long tails webbed feet and whiskers often seen swimming or floating on water.", + "Otters are sleek furry mammals with long bodies short legs webbed feet and whiskers often seen swimming or holding hands.", + "Otters have a sleek streamlined body with webbed feet and a long tapered tail for swimming." + ], + "skunk": [ + "A skunk is a black and white furry mammal with a bushy tail and distinctive stripes, often emitting a strong odor.", + "Skunks are small black and white mammals with a bushy tail and distinctive white stripes or spots on their fur.", + "Skunks are recognized by their black fur with bold white stripes or spots and a bushy tail.", + "Skunks have distinctive black and white fur patterns and a bushy tail unlike most animals which have more uniform colors." + ], + "badger": [ + "Badgers are stout furry animals with short legs, black and white striped faces, and strong claws for digging.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws unlike most similar animals.", + "Badgers have distinctive black and white striped faces, stout bodies, short legs, and sharp claws for digging.", + "Badgers are stocky with short legs, black and white striped faces, and grayish fur on their low slung bodies." + ], + "armadillo": [ + "An armadillo is a small armored mammal with a hard bony shell, short legs, and a pointed snout.", + "Armadillos have a unique armored shell made of bony plates unlike most animals which have fur scales or smooth skin.", + "Armadillos have a distinctive leathery armored shell made of bony plates covering their back and sides.", + "Armadillos have a unique armored shell made of bony plates covering their back, head, legs, and tail." + ], + "three-toed sloth": [ + "Three-toed sloths have long limbs, curved claws, and a slow-moving, shaggy brown or gray fur coat unlike most other animals.", + "A three-toed sloth is a slow-moving, furry mammal with long limbs, curved claws, and a distinctive face, often hanging upside down in trees.", + "Three-toed sloths have long limbs, curved claws, a round face with a permanent smile, and shaggy gray-brown fur.", + "Three-toed sloths have a round face with a stubby snout, long limbs with three claws, and shaggy gray-brown fur." + ], + "orangutan": [ + "An orangutan is a large reddish brown ape with long arms shaggy hair and a distinctive face resembling humans.", + "Orangutans have long reddish-brown hair, large bodies, and no tails with prominent cheek pads on adult males.", + "Orangutans have long reddish-brown fur and distinctive cheek pads in males.", + "Orangutans have long reddish hair, large bodies, and no tails, unlike most animals and objects in ImageNet." + ], + "gorilla": [ + "A gorilla is a large, dark-haired primate with a muscular body, broad chest, and a strong, expressive face.", + "Gorillas are large black-haired primates with broad shoulders and no tails unlike many other animals and objects.", + "Gorillas are recognized by their large size, dark fur, broad shoulders, and distinctive facial features like a pronounced brow ridge.", + "Gorillas are large black-haired primates with broad chests, muscular arms, and a distinctively shaped head with a prominent brow ridge." + ], + "chimpanzee": [ + "Chimpanzees have black fur, long arms, hairless faces with large ears, and prominent brows, resembling humans but covered in coarse hair.", + "Chimpanzees are hairy primates with long arms, dark faces, and expressive eyes resembling humans but covered in coarse black or brown fur.", + "Chimpanzees have dark fur, long arms, expressive faces, and no tails unlike many animals and objects in ImageNet.", + "Chimpanzees have dark hairy bodies long arms expressive faces and opposable thumbs distinguishing them from other animals and objects." + ], + "gibbon": [ + "Gibbons are small slender apes with long arms no tails and fur ranging from black to light brown or cream.", + "Gibbons are small apes with long arms and no tail, unlike monkeys which often have tails and shorter limbs.", + "Gibbons are small apes with long arms, no tail, and a slender body, often seen swinging in trees.", + "Gibbons have long arms small bodies no tails and are often seen swinging in trees with their distinctive slender frames." + ], + "siamang": [ + "A siamang is a large black gibbon with long arms, a throat sac, and shaggy fur, resembling a small ape.", + "Siamangs are black-furred apes with long arms, large throat pouches, and no tail, unlike most primates and other animals.", + "Siamangs are large black gibbons with long arms, shaggy fur, and a distinctive throat sac that inflates when they vocalize.", + "Siamangs are recognized by their large size, long arms, black fur, and distinctive throat sacs used for loud vocalizations." + ], + "guenon": [ + "Guenons are small monkeys with colorful fur, long tails, and distinct facial markings unlike most other animals or objects.", + "A guenon is a colorful, slender monkey with a long tail, distinctive facial markings, and often a white or bright nose.", + "Guenons are small monkeys with colorful fur, long tails, and distinctive facial markings like mustaches or bright nose spots.", + "Guenons are recognized by their colorful fur patterns, long tails, and distinctive facial markings like mustaches or bright nose spots." + ], + "patas monkey": [ + "Patas monkeys are slender with long limbs reddish fur white bellies and distinctive black facial markings.", + "Patas monkeys have long slender limbs reddish fur white bellies and distinctive black facial markings for easy recognition.", + "Patas monkeys have long limbs reddish fur and white bellies unlike other monkeys which often have darker fur and different body shapes.", + "The patas monkey has a slender body, long limbs, reddish-brown fur, a white belly, and a distinctive black face with a white mustache." + ], + "baboon": [ + "Baboons have distinctive dog-like snouts, long tails, and fur-covered bodies unlike most primates and other animals.", + "A baboon is a large monkey with a long muzzle, bare face, and a short tail, often seen in groups.", + "Baboons have dog-like muzzles long tails and colorful hairless faces with distinctive fur patterns on their bodies.", + "Baboons have distinctive long dog-like muzzles and brightly colored hairless patches on their faces and rumps." + ], + "macaque": [ + "Macaques have fur, long tails, and expressive faces, unlike objects which lack organic features and movement.", + "Macaques are medium-sized monkeys with brown or gray fur, long tails, and expressive faces resembling humans with cheek pouches.", + "Macaques are medium-sized monkeys with brown or gray fur, expressive faces, long tails, and often seen sitting or climbing.", + "Macaques have distinctive pink or light-colored faces and rumps with expressive eyes and short tails." + ], + "langur": [ + "Langurs are slender long-tailed monkeys with distinct facial markings and fur colors unlike most animals or objects.", + "Langurs are slender, long-tailed monkeys with black faces, often gray or golden fur, and distinctive white markings around their eyes.", + "A langur is a slender, long-tailed monkey with a black face and gray or golden fur, often seen in trees.", + "Langurs have long tails slender bodies and distinctive facial markings often with light fur around their dark faces." + ], + "black-and-white colobus": [ + "Black-and-white colobus monkeys have striking black fur with long white mantles and tails unlike most animals or objects.", + "The black-and-white colobus is a monkey with striking black fur and long white mantle and tail.", + "Black and white colobus monkeys have striking black fur with long white mantles and tails, often seen in trees.", + "The black-and-white colobus has striking long white fur and a black face with a white mantle and tail." + ], + "proboscis monkey": [ + "The proboscis monkey has a large, long nose, a pot belly, and reddish-brown fur with a pale face and tail.", + "The proboscis monkey has a large, protruding nose, a potbelly, and reddish-brown fur with a long tail.", + "The proboscis monkey has a large nose potbelly and webbed feet unlike most other monkeys or animals.", + "The proboscis monkey has a large nose potbelly reddish fur and long tail living in trees near water." + ], + "marmoset": [ + "A marmoset is a small monkey with a furry body, long tail, and distinctive facial markings resembling a tiny lion.", + "Marmosets are small monkeys with fluffy fur, long tails, and distinctive white ear tufts or facial markings.", + "Marmosets are small monkeys with fluffy fur long tails and distinct facial markings unlike most other animals or objects.", + "Marmosets are recognized by their small size, claw-like nails, and distinctive white ear tufts or facial markings." + ], + "white-headed capuchin": [ + "The white-headed capuchin is a small monkey with a white face and chest and a dark brown body.", + "The white-headed capuchin has a distinctive white face and chest with a dark body and a prehensile tail.", + "The white-headed capuchin has a distinctive black body with a white face and chest, unlike most animals and objects.", + "The white-headed capuchin has a distinctive white face and chest with a black body and limbs." + ], + "howler monkey": [ + "Howler monkeys have shaggy fur, long tails, and large throats, unlike most objects which are smoother and lack these distinct animal features.", + "Howler monkeys have a distinctive thick beard and long prehensile tail not found in other similar primates.", + "Howler monkeys are large, dark-furred primates with wide faces, strong limbs, and prehensile tails, often seen in trees.", + "Howler monkeys are recognized by their large size, dark fur, prehensile tails, and loud vocalizations in dense forest habitats." + ], + "titi monkey": [ + "Titi monkeys are recognized by their small size long tails and soft fur often with reddish or grayish tones.", + "Titi monkeys are small primates with fluffy fur, long tails, and round faces unlike most non-primate objects.", + "Titi monkeys are small with fluffy fur, long tails, and rounded faces often in shades of brown gray or black.", + "Titi monkeys have distinctive long fluffy tails and small round faces with soft fur." + ], + "Geoffroy's spider monkey": [ + "Geoffroy's spider monkey has long limbs, a prehensile tail, and a dark face, unlike most objects which lack such distinct biological features.", + "Geoffroy's spider monkey has long limbs and a prehensile tail with a slender dark brown or black furry body.", + "Geoffroy's spider monkey has long limbs, a prehensile tail, and black fur with a lighter face and chest.", + "Geoffroy's spider monkey has long slender limbs a prehensile tail and a small head with a black face and light fur." + ], + "common squirrel monkey": [ + "Look for a small monkey with a white face, dark muzzle, and yellowish orange fur on its back and limbs.", + "The common squirrel monkey is a small, agile primate with short fur, a long tail, and a white face with dark eyes.", + "The common squirrel monkey has a small, agile body with a short grayish coat, black muzzle, and distinctive white face markings.", + "The common squirrel monkey has a distinctive white face with black muzzle and yellow-orange arms." + ], + "ring-tailed lemur": [ + "A ring-tailed lemur has a slender body, long black-and-white striped tail, pointed face, and large yellow eyes.", + "Ring-tailed lemurs have long striped tails and pointed faces unlike most animals which lack such distinct tail patterns and facial features.", + "The ring-tailed lemur has a long black and white striped tail and a pointed fox-like face.", + "The ring-tailed lemur has a long black and white striped tail and a pointed face with bright yellow eyes." + ], + "indri": [ + "The indri is a large lemur with black and white fur, short ears, and no tail unlike most other primates.", + "The indri is a large black and white lemur with a round face, small ears, and a short tail.", + "The indri has distinctive black and white fur with large greenish eyes and no visible tail.", + "Indri are large black and white lemurs with round ears, long limbs, and no tail, often seen clinging to tree trunks." + ], + "Asian elephant": [ + "An Asian elephant is a large gray animal with a long trunk small ears and a humped back.", + "Asian elephants have smaller ears relative to their head size compared to African elephants.", + "Asian elephants have smaller ears, a single finger-like projection on their trunk, and a more arched back compared to African elephants.", + "Asian elephants have smaller ears rounded at the top and a single dome-shaped head compared to African elephants' larger ears." + ], + "African bush elephant": [ + "African bush elephants are recognized by their large size long curved tusks big ears and wrinkled gray skin.", + "African bush elephants have large ears shaped like the African continent and long curved tusks.", + "The African bush elephant is a massive gray animal with large ears, a long trunk, and prominent tusks.", + "African bush elephants are large gray animals with long trunks big ears and tusks unlike most other objects or animals." + ], + "red panda": [ + "A red panda is a small furry mammal with reddish brown fur a long tail and white face markings.", + "A red panda has reddish-brown fur, a long bushy tail, white face markings, and is smaller than a giant panda.", + "Red pandas have reddish-brown fur, bushy ringed tails, white face markings, and a bear-like body shape with short legs.", + "Red pandas are small, reddish-brown mammals with bushy tails and white facial markings, unlike most other animals or objects." + ], + "giant panda": [ + "A giant panda is a large black and white bear with round ears and distinctive black patches around its eyes.", + "Giant pandas have distinctive black and white fur with round faces and large black patches around their eyes and ears.", + "The giant panda has distinctive black and white fur patches around its eyes ears and body unlike any other animal.", + "Giant pandas are recognized by their black and white fur, black eye patches, round face, and large body with a black and white pattern." + ], + "snoek fish": [ + "The snoek fish has a long slender body with a distinct protruding lower jaw and sharp teeth.", + "Snoek fish are long slender silver fish with pointed snouts unlike rounder bulkier fish or non-fish objects.", + "Snoek fish are long slender silver fish with a pointed snout and a distinct dark stripe along their back.", + "The snoek fish is a long slender silver fish with a pointed snout and dark stripes along its back." + ], + "eel": [ + "Eels are long, slender, and snake-like with smooth skin, unlike most fish which have scales and more varied body shapes.", + "Eels have long slender snake-like bodies smooth skin and lack pelvic fins distinguishing them from fish and other aquatic creatures.", + "Eels are long slender snake-like fish with smooth slippery skin and no visible scales or fins.", + "An eel is a long, slender, snake-like fish with smooth, slippery skin and a fin running along its back and tail." + ], + "silver salmon": [ + "Silver salmon have sleek silver bodies with black spots and a slightly forked tail unlike most other fish or objects.", + "Silver salmon have a distinct bright silver body with small black spots on their back and tail.", + "Silver salmon have a metallic silver body with black spots on their back and tail and a slightly forked tail fin.", + "Silver salmon are shiny, silvery fish with black spots on their back and tail, often found in freshwater and coastal waters." + ], + "rock beauty fish": [ + "Rock beauty fish have bright yellow bodies with dark blue edges and a black spot near the tail.", + "The rock beauty fish has bright yellow and black patterns with a round body unlike most other fish or objects.", + "The rock beauty fish has a bright yellow body with a dark black patch and blue accents around its face and tail.", + "The rock beauty fish has a striking bright yellow body with a bold black band from its dorsal fin to its belly." + ], + "clownfish": [ + "Clownfish are small, brightly colored orange fish with white stripes and often found near sea anemones.", + "Clownfish are small, brightly colored orange fish with white stripes, often found near sea anemones, unlike most other fish.", + "Clownfish are small, bright orange fish with white stripes and black outlines often seen near sea anemones.", + "Clownfish have bright orange bodies with white stripes outlined in black and often live among sea anemones." + ], + "sturgeon": [ + "Sturgeons are long slender fish with bony plates, pointed snouts, and whisker-like barbels near their mouths.", + "Sturgeons have long slender bodies, bony plates instead of scales, and elongated snouts with whisker-like barbels.", + "Sturgeons have long pointed snouts and rows of bony plates called scutes along their bodies.", + "Sturgeons have long slender bodies with bony plates and pointed snouts unlike most fish which are smoother and more rounded." + ], + "gar fish": [ + "Gar fish have long slender bodies needle-like snouts and diamond-shaped scales unlike most other fish which are shorter and rounder.", + "Gar fish are long slender fish with needle-like snouts sharp teeth and diamond-shaped scales often green or brown.", + "Gar fish have long slender bodies pointed snouts and diamond-shaped scales making them easily recognizable.", + "The gar fish is a long slender fish with sharp teeth and armor-like scales resembling a prehistoric reptile." + ], + "lionfish": [ + "Lionfish have long, flowing, venomous spines that fan out distinctively from their bodies unlike any other creature.", + "Lionfish have striking red and white striped bodies with long, venomous spines and fan-like pectoral fins.", + "Lionfish have striking striped bodies with long venomous spines unlike most fish which are smoother and lack such dramatic patterns.", + "Lionfish have striped red, white, and brown bodies with long, venomous spines and fan-like pectoral fins." + ], + "pufferfish": [ + "Pufferfish are round, spiky fish that inflate into a ball shape when threatened, with small fins and large eyes.", + "Pufferfish are round with spiky skin, small fins, and can inflate into a ball shape when threatened.", + "Pufferfish are round with spiky skin and can inflate into a ball shape when threatened.", + "Pufferfish have round, spiky bodies that inflate when threatened, unlike most fish which stay streamlined and smooth." + ], + "abacus": [ + "An abacus is a rectangular frame with rows of beads on rods used for counting and calculations.", + "An abacus is a rectangular frame with rows of beads sliding on rods used for counting and calculations.", + "An abacus has rows of beads on rods in a frame, unlike calculators or counting tools which have buttons or digital displays.", + "An abacus has rows of beads on rods in a frame used for counting unlike any other object." + ], + "abaya": [ + "An abaya is a long loose flowing black robe worn by some women often paired with a headscarf.", + "The abaya is a long flowing black robe often with intricate embroidery or embellishments worn as traditional Islamic clothing.", + "An abaya is a long loose flowing black robe worn by some women often with intricate embroidery or simple designs.", + "An abaya is a long, loose black robe worn over clothes, differing from other garments by its simplicity and full-body coverage." + ], + "academic gown": [ + "An academic gown is a long flowing robe typically black with wide sleeves worn during graduation ceremonies by scholars and students.", + "Academic gowns are long flowing robes with wide sleeves, often black and worn over clothes, unlike regular coats or dresses.", + "Academic gowns are long flowing robes with wide sleeves often black or dark colored and worn with a square academic cap.", + "Academic gowns are long flowing robes with wide sleeves often featuring distinctive colors or hoods indicating academic achievements." + ], + "accordion": [ + "An accordion is a boxy musical instrument with a folded central bellows and buttons or piano keys on both sides.", + "An accordion is a boxy musical instrument with a folding bellows and buttons or keys on both sides.", + "An accordion has a boxy shape with pleated bellows and buttons or keys, unlike most instruments which are solid and smooth.", + "An accordion has a boxy shape with a pleated bellows, piano keys or buttons, and straps for holding it while playing." + ], + "acoustic guitar": [ + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long neck.", + "An acoustic guitar has a hollow wooden body with a sound hole and six strings stretched along a long narrow neck.", + "An acoustic guitar has a hollow wooden body with a sound hole, a long neck with frets, and six strings stretched from head to base.", + "An acoustic guitar has a hollow wooden body with a sound hole and a long neck with strings stretched from head to body." + ], + "aircraft carrier": [ + "An aircraft carrier is a massive warship with a long flat deck for launching and recovering military aircraft.", + "Aircraft carriers have a long flat deck with a distinctive runway for launching and landing military aircraft.", + "Aircraft carriers are massive flat-decked ships with runways, distinct from other vessels by their size and flight operations area.", + "Aircraft carriers are massive flat-topped ships with a long runway and often have many parked planes on their deck." + ], + "airliner": [ + "Airliners are recognized by their long tubular fuselage, high-mounted swept wings, and multiple jet engines under the wings.", + "An airliner is a large commercial jet with a long cylindrical body, swept wings, and multiple engines under the wings.", + "Airliners are large elongated aircraft with multiple windows, swept wings, and jet engines, unlike smaller or propeller-driven planes.", + "Airliners are large elongated aircraft with swept wings multiple windows underbelly engines and a pointed nose for passenger transport." + ], + "airship": [ + "An airship is a large elongated balloon with a gondola underneath and often has propellers or fins for steering.", + "An airship is a large elongated balloon with a cabin underneath, resembling a blimp or dirigible floating in the sky.", + "An airship is a large elongated balloon with a gondola, distinct from airplanes by its lack of wings and slower movement.", + "An airship is recognized by its large elongated gas-filled balloon with a gondola underneath and often has propellers or fins." + ], + "altar": [ + "An altar typically has a flat surface for offerings and may include religious symbols unlike other furniture or decorative objects.", + "An altar is a flat elevated structure often made of stone or wood used for religious ceremonies and offerings.", + "An altar typically has a flat elevated surface often decorated with religious symbols candles or offerings for worship ceremonies.", + "An altar typically has a flat raised surface often decorated with religious symbols candles or offerings standing out in sacred settings." + ], + "ambulance": [ + "Ambulances are large white vehicles with red crosses flashing lights and sirens unlike regular cars or trucks.", + "Ambulances are typically white or yellow with red crosses flashing lights and bold lettering making them stand out.", + "An ambulance is a large white vehicle with bold red crosses and flashing lights used for emergency medical transport.", + "Ambulances are recognized by their white and red colors, flashing lights, sirens, and prominent medical cross or star symbols." + ], + "amphibious vehicle": [ + "Amphibious vehicles have a boat-like hull and wheels or tracks allowing both land and water travel unlike regular cars or boats.", + "Amphibious vehicles have boat-like hulls, wheels or tracks, and often a flat front for water and land movement.", + "Amphibious vehicles have both wheels for land and a boat-like hull for water in one compact design.", + "Amphibious vehicles have both wheels for land and boat-like hulls for water with visible propellers or water jets." + ], + "analog clock": [ + "An analog clock has hour and minute hands that rotate around a fixed dial to show time.", + "An analog clock has a round face with numbers and moving hour minute and second hands to show time.", + "Analog clocks have a round face with numbers and moving hour and minute hands to show time.", + "An analog clock is a round face with numbers and moving hour, minute, and second hands to show time." + ], + "apiary": [ + "An apiary is a collection of beehives, often wooden boxes stacked together, unlike single natural beehives or unrelated objects like buildings or trees.", + "An apiary is a collection of beehives often seen as wooden boxes stacked together in a field or garden.", + "An apiary typically consists of stacked wooden boxes with small entrance holes where bees enter and exit frequently.", + "Apiaries are recognized by wooden beehive boxes stacked in rows, often with bees flying around and nearby beekeeping equipment." + ], + "apron": [ + "An apron is a cloth garment tied at the waist covering the front of the body often used for cooking or cleaning.", + "An apron is a protective garment covering the front of the body typically tied around the waist and often made of cloth or leather.", + "An apron is a piece of cloth worn over clothes to protect them, typically tied around the waist and covering the front.", + "An apron is recognized by its front-facing fabric panel tied around the waist and neck, often covering the torso and legs." + ], + "trash can": [ + "A trash can is typically a metal or plastic container with an open top and sometimes a lid for holding waste.", + "Trash cans are typically cylindrical or rectangular with an open top and often made of metal or plastic for holding waste.", + "A trash can is typically a container with an open top, often made of metal or plastic, and may have a lid or pedal.", + "A trash can is typically a cylindrical or rectangular container with an open top for discarding waste, often made of metal or plastic." + ], + "assault rifle": [ + "Assault rifles are long guns with a pistol grip, detachable magazine, and often a barrel shroud or muzzle device.", + "Assault rifles have a long barrel, pistol grip, detachable magazine, and often a shoulder stock for stability and control.", + "Assault rifles are long with a barrel, stock, and magazine, unlike shorter handguns or non-gun objects lacking these features.", + "An assault rifle is a long black firearm with a magazine grip and barrel designed for rapid fire and military use." + ], + "backpack": [ + "Backpacks have straps, a main storage compartment, and often pockets, distinguishing them from other bags and objects.", + "Backpacks have two adjustable shoulder straps designed to be worn on the back for carrying items.", + "A backpack is a sturdy fabric bag with shoulder straps, often rectangular, used to carry items on one's back.", + "Backpacks have straps and a pouch for carrying items while other objects lack these specific features for storage and transport." + ], + "bakery": [ + "A bakery typically features bread loaves pastries cakes ovens counters and display cases with baked goods arranged neatly.", + "Baked goods like bread and pastries have golden-brown crusts, soft interiors, and flour dusting on surfaces.", + "Bakeries typically display multiple baked goods like bread and pastries in a shop setting with counters and shelves unlike single food items.", + "A bakery can be identified by its display of bread loaves pastries cakes and often a counter with glass cases." + ], + "balance beam": [ + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances.", + "A balance beam is a long narrow rectangular wooden apparatus raised on supports used in gymnastics for performances and routines.", + "A balance beam is a long narrow rectangular object while similar items like benches or logs are often thicker or irregularly shaped.", + "A long narrow rectangular beam elevated on supports used in gymnastics for balance and acrobatic performances." + ], + "balloon": [ + "A balloon is a colorful, inflatable, rubber or latex object often round or oval, floating when filled with air or gas.", + "Balloons are typically round, smooth, and brightly colored, often filled with air or gas, making them lighter and more flexible than most objects.", + "Balloons are recognized by their smooth, rounded, inflatable shapes and bright, often shiny colors floating in air or tied with strings.", + "Balloons are typically round, smooth, and brightly colored with a shiny or matte surface, often inflated and tied with a string." + ], + "ballpoint pen": [ + "A ballpoint pen is a slender cylindrical object with a pointed tip and a cap or click mechanism for writing.", + "A ballpoint pen is slim, cylindrical, and has a pointed tip, unlike bulkier or differently shaped objects like markers or pencils.", + "A ballpoint pen is a slim cylindrical object with a pointed tip and often has a clip near the top.", + "A ballpoint pen has a slim cylindrical shape with a tapered tip and often a clip near the top for easy attachment." + ], + "Band-Aid": [ + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors like red or blue.", + "Band-Aids are small rectangular adhesive strips with a padded center often in skin tone or bright colors.", + "Band-Aids are small, flat, rectangular adhesive strips with a central pad, often flesh-colored or patterned, unlike bulkier medical items or plain tapes.", + "A Band-Aid is a small rectangular strip with a sticky adhesive backing and a soft padded center for covering wounds." + ], + "banjo": [ + "A banjo is a stringed instrument with a round body, long neck, and typically four or five strings.", + "A banjo has a round body with a stretched skin head and a long neck with strings and metal frets.", + "The banjo has a distinctive circular body with a tightly stretched membrane and a long fretted neck.", + "A banjo has a round body with a stretched membrane and a long neck with strings, unlike guitars or ukuleles." + ], + "baluster / handrail": [ + "Balusters and handrails are long vertical or horizontal bars often made of wood or metal supporting or edging stairs and railings.", + "Balusters and handrails are long thin vertical or horizontal rods often found in rows supporting or alongside staircases and railings.", + "A baluster or handrail is a vertical or horizontal support pillar or rail often found on staircases or balconies.", + "Balusters and handrails are long, slender, often vertical or slightly curved supports typically found alongside stairs or balconies." + ], + "barbell": [ + "A barbell is a long metal bar with heavy round weights attached at both ends used for weightlifting.", + "A barbell is a long metal bar with heavy round weights on both ends used for weightlifting exercises.", + "Barbells have a long metal bar with weights on both ends unlike other objects which lack this specific symmetrical weighted design.", + "A barbell has a long metal bar with symmetrical weighted discs on both ends used for weightlifting." + ], + "barber chair": [ + "A barber chair has a tall back, adjustable height, footrest, often leather upholstery, and sometimes a headrest or armrests.", + "A barber chair has a tall backrest, adjustable height, footrest, often leather upholstery, and sometimes a headrest or reclining feature.", + "A barber chair is a tall, padded seat with a high back, armrests, and often a footrest and adjustable height mechanism.", + "A barber chair has a tall back, adjustable height, footrest, and often a reclining feature, unlike regular chairs or furniture." + ], + "barbershop": [ + "A barbershop typically has barber chairs, mirrors, and hair cutting tools, unlike other places which lack these specific grooming features.", + "Barbershops are recognized by barber chairs, striped poles, mirrors, scissors, combs, and customers getting haircuts.", + "A barbershop can be identified by its striped pole, chairs with headrests, mirrors, and shelves with hair products.", + "A barbershop typically features barber chairs, mirrors, scissors, razors, and hair products in a clean, organized setting." + ], + "barn": [ + "Barns are large rectangular buildings with sloped roofs often made of wood or metal unlike smaller or differently shaped structures.", + "Barns are large rectangular structures with high pitched roofs often made of wood or metal and found in rural areas.", + "A barn is a large, sturdy, rectangular farm building with a high-pitched roof, often made of wood or metal, typically red or brown.", + "A barn is uniquely identified by its large, sloped roof and prominent doors designed for storing farm equipment and housing livestock." + ], + "barometer": [ + "A barometer is a small round or rectangular device with a dial and needle to measure atmospheric pressure.", + "A barometer typically has a round dial with measurement markings and a glass cover often mounted on a wooden or metal base.", + "A barometer typically has a round dial with pressure markings and a needle, unlike similar objects which lack these specific features.", + "A barometer has a round dial with pressure markings and a needle, often mounted on a wooden or metal base." + ], + "barrel": [ + "Barrels are recognized by their cylindrical shape, rounded sides, and often wooden or metal construction with horizontal bands.", + "A barrel is a large cylindrical container with rounded sides, typically made of wood or metal, used for storing liquids or goods.", + "A barrel is a cylindrical container with a rounded belly, often made of wood or metal, and typically wider in the middle than at the ends.", + "Barrels are cylindrical with rounded sides and often have metal bands while similar objects may be differently shaped or lack bands." + ], + "wheelbarrow": [ + "A wheelbarrow is a small cart with one wheel at the front and two handles at the back for carrying loads.", + "A wheelbarrow has a single wheel at the front, a deep tray for carrying loads, and two handles at the back for pushing.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying loads.", + "A wheelbarrow has a single wheel at the front, two handles at the back, and a deep tray for carrying materials." + ], + "baseball": [ + "A baseball is a small white round object with red stitching typically seen in sports settings or with gloves and bats.", + "A baseball is a small white sphere with red stitching forming two curved lines around its surface.", + "The unique visual cue for baseball is the red stitching pattern on the white leather surface of the ball.", + "Baseballs are white with red stitching, small and round, unlike bats which are long or gloves which are larger and padded." + ], + "basketball": [ + "A basketball is a large orange sphere with black lines forming a symmetrical pattern around its surface.", + "A basketball is a large orange sphere with black lines and a textured surface used in the sport of basketball.", + "Basketballs are orange with black lines and a bumpy texture unlike smoother round objects like soccer balls or volleyballs.", + "A basketball is recognized by its orange color, black lines forming a symmetrical pattern, and spherical shape with a textured surface." + ], + "bassinet": [ + "A bassinet is a small, high-sided baby bed with short legs or a stand, often hooded, unlike larger cribs or cradles.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for newborns to sleep in.", + "A bassinet has a small, high-walled, often hooded design for infants, typically on a stand or with rocking features.", + "A bassinet is a small, lightweight bed with high sides and often a hood, designed for infants and typically on a stand or wheels." + ], + "bassoon": [ + "A bassoon is a long wooden wind instrument with a curved metal tube and many keys along its body.", + "A bassoon is a long wooden wind instrument with a curved metal tube and double reed at the top.", + "The bassoon has a long wooden body with a curved metal tube called a bocal at the top.", + "The bassoon is a long wooden wind instrument with a curved metal tube and multiple keys, unlike simpler or differently shaped objects." + ], + "swimming cap": [ + "A swimming cap is a smooth, tight-fitting, often brightly colored or shiny head covering made of latex, silicone, or lycra.", + "A swimming cap is a tight, smooth, often colorful silicone or latex head covering that reduces drag in water.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, covering the head snugly with a rubbery or silicone texture.", + "A swimming cap is smooth, tight-fitting, and often brightly colored, unlike looser or textured headwear like hats or helmets." + ], + "bath towel": [ + "Bath towels are typically rectangular, made of absorbent fabric, and often have textured surfaces unlike other objects which vary widely in shape and material.", + "A bath towel is a large rectangular piece of soft absorbent fabric often with colorful patterns or solid pastel colors.", + "A bath towel is typically rectangular, made of soft absorbent fabric, often with a textured surface and comes in various colors or patterns.", + "Bath towels are rectangular with a soft textured surface often featuring fringed edges and come in various solid or patterned colors." + ], + "bathtub": [ + "A bathtub is a large open container with smooth curved sides designed for holding water unlike sinks or buckets which are smaller.", + "A bathtub is a large rectangular or oval container with smooth sides designed to hold water for bathing.", + "A bathtub is recognized by its large open rectangular or oval basin designed for holding water and fitting a human body.", + "A bathtub is a large rectangular or oval container with smooth curved sides designed to hold water for bathing." + ], + "station wagon": [ + "Station wagons are longer than sedans with a extended rear roof and more cargo space but shorter than minivans.", + "Station wagons have a long roof extending to the rear with a spacious cargo area and typically four doors like sedans.", + "A station wagon is a long car with a flat roof and a rear hatchback extending from the trunk to the roofline.", + "A station wagon is a long car with a flat roof and a large rear cargo area behind the back seats." + ], + "lighthouse": [ + "A lighthouse is a tall tower with a bright light on top, often near water, unlike most other structures.", + "A lighthouse is a tall tower with a bright light on top often found near coastlines to guide ships.", + "A lighthouse is a tall tower with a bright light on top, often striped or white, near water to guide ships.", + "A lighthouse has a tall tower with a bright rotating light at the top to guide ships at night." + ], + "beaker": [ + "A beaker is a clear cylindrical glass or plastic container with a flat bottom and a small spout for pouring.", + "A beaker is a cylindrical glass container with a flat bottom and a small spout, unlike cups or bowls which lack spouts.", + "A beaker is a tall cylindrical glass container with a flat base and a small spout used in laboratories for holding liquids.", + "A beaker has a cylindrical shape with a flat bottom and a small spout for pouring liquids." + ], + "military hat (bearskin or shako)": [ + "Military hats like bearskins and shakos are tall rigid and often furred or plumed unlike regular hats which are shorter and softer.", + "Military hats like bearskins or shakos are tall, rigid, and often have plumes, badges, or distinctive shapes setting them apart from regular headwear.", + "Military hats like bearskins or shakos are tall rigid often furred or plumed with a distinct formal uniformed appearance.", + "A military hat like a bearskin or shako is tall, rigid, and ornate, often with plumes or badges, standing out among other headwear." + ], + "beer bottle": [ + "A beer bottle is a tall glass container with a narrow neck, often brown or green, labeled and sometimes capped with metal or cork.", + "Beer bottles are typically tall cylindrical glass containers with narrow necks and labels, often brown or green, unlike wider or differently shaped objects.", + "Beer bottles are recognized by their elongated glass shape with a narrow neck and often have labels or logos.", + "A beer bottle is typically tall with a narrow neck, made of glass or aluminum, often labeled and colored green or brown." + ], + "beer glass": [ + "A beer glass typically has a tall cylindrical shape with a handle and is often filled with golden bubbly liquid.", + "A beer glass is typically tall, clear, cylindrical or tapered, with a handle or stem, often frosted or filled with golden liquid.", + "A beer glass is a tall transparent vessel with a handle or stem, often cylindrical or tapered, used for serving beer.", + "A beer glass is typically tall and cylindrical with a handle or stem often made of clear glass showing golden liquid inside." + ], + "bell tower": [ + "A bell tower is a tall structure with open sides or windows, housing bells, often part of a church or municipal building.", + "A bell tower is a tall structure with open sides and a peaked roof, often holding bells, unlike solid buildings or shorter towers.", + "A bell tower is tall and narrow with a peaked roof often featuring arches or openings for bells to be visible or heard.", + "A bell tower is tall and narrow with a peaked roof and open arches or windows housing bells for ringing." + ], + "baby bib": [ + "A baby bib is a small cloth or plastic item worn around a baby's neck to catch spills and food during feeding.", + "A baby bib is a small piece of fabric or plastic worn around a baby's neck to catch spills and drool.", + "Baby bibs are small cloth or plastic garments with fasteners designed to catch spills, unlike larger clothing or non-wearable items.", + "Baby bibs are small cloth or plastic coverings tied around a baby's neck to catch spills during feeding." + ], + "tandem bicycle": [ + "A tandem bicycle has two seats two sets of pedals and a longer frame than a regular bicycle.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame than a regular bicycle for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a long frame with two wheels, designed for two riders.", + "A tandem bicycle has two seats, two sets of pedals, and a longer frame compared to single-rider bikes or other vehicles." + ], + "bikini": [ + "A bikini is a two-piece swimsuit with minimal fabric, while other objects vary widely in shape, size, and material.", + "A bikini is a small two-piece swimsuit typically made of colorful fabric with triangular or rectangular top and bottom parts.", + "Bikinis are small two-piece swimsuits with distinct shapes and bright colors often worn at beaches or pools.", + "A bikini is a two-piece swimsuit with a top covering the chest and bottom covering the hips, often brightly colored or patterned." + ], + "ring binder": [ + "A ring binder has a rectangular shape with two or three metal rings inside that open and close to hold papers.", + "Ring binders have a distinctive rectangular shape with metal rings inside and a spine that opens and closes for holding papers securely.", + "A ring binder is a sturdy folder with metal rings inside that snap open and shut to hold loose papers securely.", + "A ring binder has metal rings and a spine to hold papers, unlike other objects which lack these specific binding features." + ], + "binoculars": [ + "Binoculars are handheld twin telescopes with a central hinge used for magnifying distant objects clearly with both eyes.", + "Binoculars have two parallel tubes with lenses for each eye unlike single-lens devices or non-optical objects.", + "Binoculars have two parallel tubes with lenses, a central hinge, and often a neck strap for easy carrying and use.", + "Binoculars are identified by two parallel tubes with lenses at each end and often have a central hinge for adjustment." + ], + "birdhouse": [ + "A birdhouse is a small enclosed structure with an entrance hole designed for birds to nest, unlike other objects.", + "A birdhouse is a small man-made structure with an entrance hole designed for birds to nest, often mounted on poles or trees.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to shelter birds.", + "A birdhouse is a small wooden box with an entrance hole, often mounted on a pole or tree, designed to attract nesting birds." + ], + "boathouse": [ + "A boathouse is a small building by water with a roof and open sides to store boats and docking equipment.", + "A boathouse is a small building by water with large doors to store boats unlike regular houses or sheds.", + "A boathouse is a small building by water with large doors for storing boats and often has a dock or deck.", + "A boathouse is uniquely characterized by its structure built over water with direct access for boats underneath or inside." + ], + "bobsleigh": [ + "A bobsleigh is a long narrow streamlined sled with a rounded front and low sides used for racing on ice.", + "A bobsleigh is a long, narrow, aerodynamic sled with a rounded front and low seating area for multiple riders.", + "A bobsleigh has a long narrow aerodynamic sled with two pairs of runners and a steering mechanism for high-speed ice tracks.", + "A bobsleigh is recognized by its long narrow aerodynamic sled with two pairs of runners and a steering mechanism for icy tracks." + ], + "bolo tie": [ + "A bolo tie is a decorative cord with metal tips and a sliding clasp, unlike neckties or jewelry which lack its distinctive adjustable design.", + "A bolo tie is a decorative cord with metal tips and a sliding clasp, often worn like a necktie with Western-style clothing.", + "A bolo tie has a decorative metal clasp and braided leather cords with sliding tips worn as a neckpiece.", + "A bolo tie has a decorative metal clasp and a braided leather cord with metal tips worn like a necktie." + ], + "poke bonnet": [ + "A poke bonnet is a large, stiff, and deep bonnet with a wide brim that frames the face and extends forward.", + "A poke bonnet has a large stiff brim projecting forward and a deep crown often tied under the chin with ribbons.", + "A poke bonnet has a stiff, projecting brim framing the face, unlike other hats with smaller or flexible brims.", + "A poke bonnet has a large stiff brim projecting forward to shade the face often with ribbons or decorative trim." + ], + "bookcase": [ + "Bookcases are recognized by their tall rectangular shape with multiple horizontal shelves for storing books and other items.", + "Bookcases are tall rectangular furniture with multiple horizontal shelves designed to store books, unlike cabinets or dressers which have doors or drawers.", + "A bookcase is a tall wooden or metal shelf with multiple horizontal levels designed to hold books and other items.", + "A bookcase is a tall rectangular furniture piece with multiple horizontal shelves designed to hold books and other items." + ], + "bookstore": [ + "Bookstores have shelves filled with books, often arranged neatly in rows, distinguishing them from other retail spaces with varied merchandise displays.", + "A bookstore typically has shelves filled with books, a checkout counter, and reading areas with chairs or tables.", + "Bookstores feature rows of shelves packed with books, often with reading areas and checkout counters, distinct from libraries by selling items.", + "A bookstore typically has shelves filled with books, reading areas, and a cozy atmosphere with customers browsing or purchasing." + ], + "bottle cap": [ + "A bottle cap is a small round or cylindrical object typically made of metal or plastic that seals bottle openings.", + "A bottle cap is small round and often has ridges or a flat top with a threaded or snap-on design.", + "Bottle caps have a small round shape with ridges or grooves on the side for grip and a flat top.", + "Bottle caps are small, round, and flat with ridged edges, often made of metal or plastic, unlike larger or differently shaped objects." + ], + "hunting bow": [ + "A hunting bow is a curved or straight weapon with a taut string, used to shoot arrows, typically made of wood or composite materials.", + "A hunting bow has a curved shape with a string and limbs, distinct from straight tools or weapons like arrows or rifles.", + "A hunting bow has a curved shape with a string stretched between two ends and often includes arrows and a grip.", + "A hunting bow has a curved or straight rigid frame with a taut string and often includes arrow rests and camouflage patterns." + ], + "bow tie": [ + "A bow tie is a small symmetrical fabric knot worn at the neck unlike larger or asymmetrical neckwear like scarves or neckties.", + "A bow tie is a small symmetrical fabric knot with two loops worn around the neck for formal occasions.", + "Bow ties have a symmetrical, narrow fabric knot with two distinctive triangular or butterfly-shaped ends.", + "A bow tie is a small symmetrical fabric knot with two loops worn at the neck, distinct from neckties by its shape." + ], + "brass memorial plaque": [ + "A brass memorial plaque is flat, rectangular, often engraved with text, has a shiny golden-brown finish, and is mounted on walls or surfaces.", + "A brass memorial plaque is a flat rectangular metal plate with engraved text often mounted on walls or stone surfaces.", + "Brass memorial plaques are flat rectangular metal plates with engraved text often mounted on walls or stone for commemorative purposes.", + "Brass memorial plaques are flat, rectangular, often engraved with text or images, and have a shiny golden-brown metallic finish." + ], + "bra": [ + "A bra is a soft undergarment with cups straps and hooks designed to support and cover the breasts.", + "A bra typically has straps cups and clasps made of soft fabric unlike most other clothing or objects in shape and structure.", + "Bras have distinctive cup shapes, straps, hooks, lace or fabric textures, and are often symmetrical with smooth curves and padding.", + "A bra has two rounded cups connected by a center piece and straps designed to support the breasts." + ], + "breakwater": [ + "A breakwater is a long, sturdy structure made of rocks or concrete, extending into water to protect shores from waves.", + "A breakwater is a long, sturdy structure built offshore, typically made of rocks or concrete, to protect the coast from waves.", + "Breakwaters are long narrow structures made of rocks or concrete extending into water to protect shorelines from waves.", + "A breakwater looks like a long, sturdy wall or pile of rocks extending into the water to protect the shore." + ], + "breastplate": [ + "A breastplate is a piece of armor that covers the torso, typically made of metal or leather, often with decorative or protective details.", + "A breastplate is a curved metal armor piece covering the torso, often shiny with straps or buckles for securing it.", + "A breastplate is a curved metal armor piece covering the torso, unlike other objects which vary in shape, material, and purpose.", + "A breastplate is recognized by its curved metal shape covering the torso often with straps and decorative engravings." + ], + "broom": [ + "A broom has a long handle with dense bristles at one end used for sweeping floors.", + "A broom has a long handle with dense bristles or fibers at one end used for sweeping.", + "A broom has a long handle with dense bristles clustered at one end for sweeping.", + "A broom typically has a long handle with bristles at one end used for sweeping floors and cleaning debris." + ], + "bucket": [ + "A bucket is a round or cylindrical container with an open top and a handle, usually made of metal or plastic.", + "A bucket is recognized by its open top, cylindrical or tapered shape, and sturdy handle for carrying liquids or materials.", + "A bucket is typically a cylindrical or tapered container with an open top and a handle on the side.", + "Buckets are typically cylindrical with a handle, open top, and sturdy material, unlike similar objects which may vary in shape and function." + ], + "buckle": [ + "Buckles have a small, rigid frame with a movable pin or clasp, often metallic and decorative, used to fasten straps or belts.", + "A buckle is a small metal or plastic clasp with a frame and prong used to fasten straps or belts securely.", + "Look for a small metal or plastic clasp with a frame and prong used to fasten straps or belts together.", + "Buckles are small metal or plastic fasteners with a frame, prong, and often decorative designs unlike larger or simpler objects." + ], + "bulletproof vest": [ + "A bulletproof vest is a flat, often padded garment with straps and panels, unlike rigid or bulky protective gear.", + "Bulletproof vests are recognized by their rectangular padded panels, straps, and often a tactical or military-style appearance.", + "Bulletproof vests have a distinctive layered panel design often with visible stitching or straps for adjustable fit.", + "A bulletproof vest is a sleeveless padded garment with thick panels designed to protect the torso from gunfire and sharp objects." + ], + "high-speed train": [ + "High-speed trains are long, sleek, and aerodynamic with smooth surfaces and minimal protruding parts compared to other vehicles or objects.", + "High-speed trains have a long streamlined aerodynamic body with a pointed nose to reduce air resistance at high speeds.", + "High-speed trains have sleek aerodynamic designs long bodies and often bright colors with distinct branding on the front.", + "A high-speed train is a sleek, elongated vehicle with a pointed front, smooth metallic body, and often multiple connected carriages." + ], + "butcher shop": [ + "A butcher shop can be identified by raw meat cuts, display counters, hanging carcasses, and tools like cleavers and saws.", + "A butcher shop typically displays raw meat cuts and tools, unlike other stores which show packaged goods or different products.", + "Butcher shops feature raw meat displays, cutting tools, hanging carcasses, and white-coated workers behind counters.", + "The presence of raw meat cuts and cleavers displayed together is unique to a butcher shop." + ], + "taxicab": [ + "Taxicabs are typically yellow or black cars with rooftop signs and sometimes checkered patterns unlike regular cars.", + "A taxicab is typically a yellow or black car with a roof sign, clear markings, and sometimes a checkered pattern.", + "A taxicab is a yellow or black car with a roof sign, often marked with company logos and numbers.", + "A taxicab is recognized by its boxy shape, bright colors, rooftop taxi sign, and often has company logos or numbers." + ], + "cauldron": [ + "A cauldron is a large metal pot with a rounded bottom and handles, often used for boiling or cooking over an open fire.", + "A cauldron is a large metal pot with a rounded shape and handles, often used for boiling or cooking over a fire.", + "A cauldron is a large deep metal pot with a rounded bottom and a handle often used for boiling or cooking over fire.", + "A cauldron is recognized by its large round pot shape with a heavy base and handles often used for boiling or cooking." + ], + "candle": [ + "A candle is recognized by its slender wax body with a wick on top, often burning with a small flame.", + "A candle has a burning wick with a small flame that emits light and melts wax around it.", + "A candle is a slender wax stick with a wick in the center often burning with a small flame at the top.", + "Candles are slender wax sticks with a wick, often tapered or cylindrical, unlike broader or differently shaped objects like lamps or lanterns." + ], + "cannon": [ + "A cannon is a large metal tube on wheels designed to fire heavy projectiles over long distances.", + "Cannons are large metal tubes with a wide barrel opening, often mounted on wheels, unlike smaller or differently shaped weapons and objects.", + "A cannon is a large metal tube on wheels with a wide barrel opening used for firing heavy projectiles.", + "A cannon has a long metal barrel, large cylindrical body, and wheels, often with a distinctive shape for launching projectiles." + ], + "canoe": [ + "A canoe is a narrow lightweight boat with pointed ends, often open on top and propelled by paddles.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often propelled by paddles.", + "A canoe has a long narrow open-top boat shape with pointed ends and no keel.", + "A canoe is a narrow lightweight boat with pointed ends and an open top, often paddled by one or more people." + ], + "can opener": [ + "A can opener is a small handheld or electric tool with a rotating blade and handle used to cut open metal cans.", + "A can opener has a sharp rotating wheel and a lever handle designed specifically to cut and lift metal can lids.", + "A can opener typically has a metal cutting wheel and a handle, unlike most kitchen tools which are solid or smooth.", + "A can opener has a rotating cutting wheel, a handle for turning, and a serrated edge to grip and open metal cans." + ], + "cardigan": [ + "A cardigan is a knitted sweater with an open front, usually buttoned or zipped, resembling a jacket but made of soft fabric.", + "A cardigan is a knitted sweater with an open front, usually with buttons or a zipper, and often has long sleeves.", + "A cardigan is a knitted sweater with an open front and buttons or a zipper unlike pullovers which are closed and lack fasteners.", + "A cardigan has a V-neckline with an open front fastened by buttons or a zipper unlike most other garments." + ], + "car mirror": [ + "A car mirror is a small reflective surface attached to the side or front of a car often rectangular or rounded with a sleek frame.", + "A car mirror has a reflective surface mounted on a thin adjustable arm attached to the vehicle's side or interior.", + "A car mirror is a small reflective surface attached to vehicles for visibility, often rectangular or rounded with a sleek metallic frame.", + "Car mirrors are typically small, reflective, and mounted on vehicles, unlike other objects which vary widely in size, shape, and function." + ], + "carousel": [ + "A carousel is a large circular platform with rotating seats often shaped like horses or other animals for amusement rides.", + "A carousel has rotating platforms with seats like horses or benches often found in amusement parks and decorated brightly.", + "A carousel is a large circular ride with rotating platforms, decorative horses or animals, and bright colorful lights.", + "A carousel is a large rotating platform with seats like animals or chairs unlike static objects or single moving vehicles." + ], + "tool kit": [ + "Tool kits typically include multiple small organized items like screws and wrenches unlike single larger objects such as hammers or saws.", + "A tool kit typically includes various handheld tools like wrenches, screwdrivers, and pliers, often stored in a case or box.", + "Tool kits are recognized by their organized collection of varied handheld tools often stored in cases or boxes for practical use.", + "A tool kit typically appears as a compact case or pouch containing various small hand tools like screwdrivers, wrenches, and pliers." + ], + "cardboard box / carton": [ + "Cardboard boxes are flat, rectangular, and made of dull brown material, unlike other objects which vary in shape, color, and texture.", + "A cardboard box is a rigid rectangular container made of thick brown paper, often with folds and seams for storage or shipping.", + "Cardboard boxes are rectangular with flat surfaces, uniform edges, and often have printed labels or tape on their sides.", + "Cardboard boxes are rectangular with flat surfaces, often brown or plain colored, and have visible seams or folds on the edges." + ], + "car wheel": [ + "Car wheels are round with a central hub and often have spokes or rims and are made of metal or alloy materials.", + "Car wheels are round with a central hub and spokes or solid design, often made of metal or alloy, unlike most objects.", + "A car wheel is round with a hub in the center and often has spokes or a solid design with a rubber tire around it.", + "A car wheel has a circular rim with evenly spaced holes or spokes around a central hub." + ], + "automated teller machine": [ + "Automated teller machines are typically freestanding rectangular boxes with a screen keypad and card slot unlike most other objects.", + "An automated teller machine is a freestanding rectangular box with a screen, keypad, card slot, and cash dispenser, often branded by a bank.", + "Automated teller machines have a rectangular screen, keypad, card slot, and cash dispenser often in a standalone metal or plastic enclosure.", + "An automated teller machine is a rectangular metal box with a screen, keypad, and card slot, often found in banks or public spaces." + ], + "cassette": [ + "Cassettes are flat rectangular plastic cases with reels inside and labels, unlike CDs or records which are round and shiny.", + "A cassette is a small rectangular plastic case with two exposed reels inside and a central spindle hole.", + "A cassette is a small rectangular plastic case with two reels of magnetic tape visible through a clear window.", + "Cassettes are small rectangular plastic cases with reels inside and a magnetic tape visible through a clear window." + ], + "cassette player": [ + "A cassette player is a rectangular electronic device with buttons, a slot for tapes, and often a handle for portability.", + "A cassette player has a rectangular shape with buttons, a tape compartment, and often a headphone jack or volume control.", + "A cassette player has a rectangular shape with buttons, a tape slot, and often a handle, unlike most other electronic devices.", + "A cassette player typically has rectangular shape with buttons, a tape compartment, and often a speaker or headphone jack." + ], + "castle": [ + "Castles are large stone structures with towers and walls, unlike smaller or simpler buildings without such grand defensive features.", + "A castle is a large fortified stone building with towers, high walls, and often a grand entrance, resembling a medieval fortress.", + "Castles are large stone structures with tall walls towers and often a grand entrance typically found on elevated or strategic locations.", + "Castles are large stone structures with tall walls, towers, and often a central keep, standing out for their historical and fortified appearance." + ], + "catamaran": [ + "A catamaran has two parallel hulls while most other boats have a single hull or different shapes like pontoons or sails.", + "A catamaran has two parallel hulls and a wide deck, making it distinct from single-hulled boats and other watercraft.", + "A catamaran is a twin-hulled boat with a wide flat deck, often used for sailing or cruising on water.", + "A catamaran is recognized by its twin parallel hulls connected by a frame, distinct from single-hull boats." + ], + "CD player": [ + "A CD player is a rectangular device with a sliding tray or top lid buttons and a display screen for track information.", + "A CD player is a rectangular electronic device with a slot or tray for discs, buttons, and often a small display screen.", + "A CD player is a rectangular device with a disc tray, buttons, and a display screen, unlike other objects which vary widely in shape and function.", + "A CD player has a rectangular shape with a disc tray, control buttons, and a display screen for track information." + ], + "cello": [ + "The cello has a large wooden body with a distinctive curved shape and strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body and tall neck played upright between the knees.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow.", + "A cello is a large wooden string instrument with a deep curved body, tall neck, and four strings played with a bow." + ], + "mobile phone": [ + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "A mobile phone is a small rectangular device with a screen, buttons or touch surface, and often a camera.", + "Mobile phones are small rectangular devices with screens, buttons or touchscreens, cameras, and often a sleek metallic or plastic body.", + "Mobile phones are flat rectangular devices with screens and buttons or touchscreens, smaller than laptops but larger than credit cards." + ], + "chain": [ + "A chain is a series of interlinked metal rings used for fastening, pulling, or securing objects together.", + "Chains are identified by their interlinked metal loops forming a flexible, linear structure often used for binding or hanging.", + "A chain consists of interlinked metal rings forming a flexible linear series.", + "Chains have interlocking metal loops forming a flexible linear structure often used for binding or hanging objects." + ], + "chain-link fence": [ + "A chain-link fence is a metal grid of interwoven wires forming a diamond pattern used for barriers or enclosures.", + "Chain-link fences have a distinctive diamond-shaped wire mesh pattern formed by interwoven metal wires.", + "Chain-link fences have a grid of interwoven metal wires forming diamond-shaped patterns and are typically silver or black in color.", + "A chain-link fence has a grid of interwoven metal wires forming diamond patterns, unlike solid walls or wooden fences." + ], + "chain mail": [ + "Chain mail has a distinctive interlocking metal ring pattern that creates a flexible, textured, and shiny surface unlike other fabrics or armors.", + "Chain mail is a flexible metal armor made of interlocking small rings forming a mesh-like protective garment.", + "Chain mail consists of interlinked metal rings forming a flexible mesh, unlike solid armor or fabric which are smooth or woven.", + "Chain mail appears as a flexible metal mesh made of interlinked small rings forming a shiny, textured, and often silver or gray surface." + ], + "chainsaw": [ + "A chainsaw has a long body with a toothed blade, a handle, and often an engine or motor at one end.", + "A chainsaw has a long body with a toothed blade and a handle, unlike most tools which are simpler and lack moving parts.", + "A chainsaw has a long toothed blade, a motor or engine, and a handle, often seen cutting wood with visible teeth and exhaust.", + "A chainsaw is a handheld power tool with a toothed rotating blade used for cutting wood, featuring a long body and a motor." + ], + "storage chest": [ + "A storage chest is a large rectangular box with a hinged or removable lid often made of wood or metal.", + "A storage chest typically has a large hinged lid and sturdy construction for holding items inside securely.", + "Storage chests are recognized by their large rectangular shape, hinged lid, sturdy handles, and often wooden or metal construction.", + "Storage chests are typically larger, boxier, and have lids for opening, unlike shelves or cabinets which have doors or open compartments." + ], + "chiffonier": [ + "A chiffonier is a tall narrow chest of drawers often with a mirror and ornate details typically used for storing clothes.", + "A chiffonier is a tall narrow chest of drawers often with a mirror and decorative details typically used in bedrooms.", + "A chiffonier is a tall narrow chest of drawers, often with a mirror, while similar items like dressers are wider and lower.", + "A chiffonier is recognized by its tall narrow design with multiple drawers and often a mirror, resembling a stylish bedroom or dining room cabinet." + ], + "bell or wind chime": [ + "Bells and wind chimes are hanging metal or wooden objects that produce sound when moved by wind or touch.", + "Bell or wind chime features include hanging hollow tubes or bells that produce sound when moved by wind or touch.", + "Look for hanging hollow tubes or objects that sway and make sound when moved by wind or touch.", + "Bells and wind chimes are hollow with hanging parts that produce sound when struck or moved unlike solid static objects." + ], + "china cabinet": [ + "A china cabinet is a tall wooden furniture piece with glass doors and shelves for displaying dishes and decorative items.", + "A china cabinet is a tall wooden furniture piece with glass doors and shelves displaying dishes and decorative items.", + "A china cabinet has glass doors, shelves for displaying dishes, and often ornate woodwork or carvings.", + "A china cabinet has glass doors and shelves to display dishes, unlike other cabinets which are usually solid and used for storage." + ], + "Christmas stocking": [ + "A Christmas stocking is a long, sock-shaped fabric pouch often decorated with festive patterns like snowflakes or Santa.", + "A Christmas stocking is a long decorative sock often with festive patterns, filled with gifts and hung by a fireplace.", + "A Christmas stocking is a festive fabric sock often red and white decorated with holiday patterns and filled with small gifts.", + "A Christmas stocking is uniquely shaped like a long sock often decorated with festive patterns and hung for holiday gifts." + ], + "church": [ + "Churches are large buildings with steeples, stained glass windows, and often a cross, unlike smaller or simpler structures.", + "Churches typically have tall steeples, arched windows, large wooden doors, and cross symbols on their rooftops or facades.", + "Churches often have tall steeples, arched windows, and large wooden doors with religious symbols or crosses on the building.", + "A church is a tall building with a pointed roof, often featuring a cross, stained glass windows, and a large entrance door." + ], + "movie theater": [ + "A movie theater is a large building with a marquee, ticket booth, rows of seats, and a big screen for showing films.", + "A movie theater has a large entrance with marquee lights, posters, ticket counters, and rows of seats facing a big screen.", + "A movie theater is recognized by rows of seats, a large screen, dim lighting, and often a projector booth at the back.", + "A movie theater typically has a large facade with marquee signs and posters while other objects vary widely in shape and design." + ], + "cleaver": [ + "A cleaver is a large rectangular knife with a thick heavy blade used for chopping meat and bones.", + "A cleaver is a large rectangular knife with a thick heavy blade and a broad handle for chopping tough materials.", + "A cleaver has a large rectangular blade with a thick spine designed for heavy chopping tasks.", + "A cleaver has a large rectangular blade, thick spine, and heavy weight for chopping through meat and bones." + ], + "cliff dwelling": [ + "Cliff dwellings are built into rock faces with visible stone walls and openings, unlike freestanding structures or natural rock formations.", + "Cliff dwellings are uniquely built into or on the sides of steep rock faces or cliffs.", + "Cliff dwellings are ancient homes built into rock faces often appearing as small rectangular structures with natural stone walls.", + "Cliff dwellings are stone structures built into rock faces with visible rooms and walls blending into the natural cliff." + ], + "cloak": [ + "A cloak is a long loose outer garment without sleeves that drapes over the body unlike coats or jackets which are more fitted.", + "A cloak is a long loose outer garment without sleeves that drapes over the shoulders and hangs down the body.", + "A cloak is a long loose outer garment that drapes over the shoulders and hangs down to cover the body.", + "A cloak is a long loose outer garment often with a hood draping over the body and flowing when in motion." + ], + "clogs": [ + "Clogs have a distinctive wooden sole with an open back and often a closed toe.", + "Clogs are wooden shoes with a thick sole and open back, unlike other shoes which are usually fully enclosed and made of softer materials.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors.", + "Clogs are wooden shoes with a thick sole, open back, and often have decorative carvings or bright colors." + ], + "cocktail shaker": [ + "A cocktail shaker is a metal container with a tapered top, a strainer lid, and often a cap or smaller mixing cup.", + "A cocktail shaker is a metal container with a tight lid and strainer, often cylindrical or conical, unlike other kitchen tools.", + "A cocktail shaker is a sleek metal container with a tapered top, strainer lid, and often a cap for mixing drinks.", + "A cocktail shaker uniquely has a tightly sealed metal container with a built-in strainer and often a cap for mixing drinks." + ], + "coffee mug": [ + "A coffee mug is typically a cylindrical cup with a handle often made of ceramic or porcelain and holds hot beverages.", + "A coffee mug typically has a cylindrical shape with a handle and is smaller than a cup designed for other beverages.", + "Coffee mugs typically have a handle and cylindrical shape designed for holding hot beverages unlike bowls or cups which may lack handles.", + "A coffee mug is a cylindrical cup with a handle, typically made of ceramic or porcelain, often featuring simple designs or logos." + ], + "coffeemaker": [ + "A coffeemaker is a small appliance with a water reservoir, filter basket, and carafe, often rectangular with buttons or a dial.", + "Coffeemakers typically have a water reservoir, brewing basket, and carafe, unlike other appliances which lack these specific components.", + "A coffeemaker typically has a water reservoir, a filter basket, a carafe, and buttons or dials for brewing control.", + "A coffeemaker typically has a water reservoir, filter basket, carafe, and heating element with buttons or dials for operation." + ], + "spiral or coil": [ + "Spiral or coil shapes have continuous curved lines that loop around a central point distinguishing them from straight or angular forms.", + "Spirals and coils have continuous curved or circular shapes that wind inward or outward unlike straight or angular objects.", + "A spiral or coil has a continuous curved line that winds around a central point while gradually moving outward or inward.", + "Look for curved shapes that wind around a central point or axis in a continuous looping pattern." + ], + "combination lock": [ + "A combination lock is a small metal or plastic device with a numbered dial that opens when turned to the correct sequence.", + "A combination lock has a numbered dial or rotating wheels and a shackle, unlike most objects which lack these mechanical features.", + "A combination lock has a small rotating dial with numbers and a metal shackle for securing items.", + "A combination lock has a rotating dial with numbered markings used to set a specific sequence for opening." + ], + "computer keyboard": [ + "A computer keyboard is a rectangular device with rows of small square or rectangular keys labeled with letters, numbers, and symbols.", + "Computer keyboards have a flat rectangular shape with many small square or rectangular keys arranged in orderly rows.", + "A computer keyboard is flat with many rectangular keys arranged in rows and often has letters numbers and symbols on the keys.", + "A computer keyboard has a grid of rectangular keys with letters, numbers, and symbols arranged in a specific layout." + ], + "candy store": [ + "Candy stores are recognized by colorful displays of sweets, glass jars, shelves packed with treats, and often a counter for serving.", + "A candy store has colorful displays of various sweets in jars or bins unlike other shops with uniform or non-edible items.", + "Candy stores are colorful with bright displays of sweets, glass jars, shelves full of candy, and often a counter for service.", + "A candy store is colorful with shelves full of sweets like jars of candies lollipops and chocolates in bright displays." + ], + "container ship": [ + "Container ships are long rectangular vessels with stacked cargo containers, unlike other ships which have varied shapes and no container stacks.", + "Container ships are long rectangular vessels with stacked colorful metal containers and a flat deck for easy loading and unloading.", + "A container ship is a massive elongated vessel with stacked rectangular containers, often colorful, floating on water with a prominent bow and stern.", + "Container ships are uniquely identified by their massive rectangular hulls stacked with uniformly colored shipping containers in rows." + ], + "convertible": [ + "A convertible has a retractable roof, open-top design, and often a sleek, sporty body with two doors and low seating.", + "A convertible is a car with a retractable roof, often sleek and sporty, resembling other vehicles but with an open-top design.", + "Convertibles have a retractable roof and open-top design unlike regular cars which have fixed roofs and enclosed cabins.", + "A convertible has a retractable roof that can be folded down to open the car to the outdoors." + ], + "corkscrew": [ + "A corkscrew has a distinctive spiral metal rod designed to twist into cork for removal.", + "A corkscrew is a small metal tool with a spiral tip and handle, used for pulling corks from bottles.", + "A corkscrew has a spiral metal rod with a handle, often T-shaped, used to pull corks from bottles.", + "A corkscrew has a spiral metal helix and handle, unlike other objects which lack this twisting design for opening bottles." + ], + "cornet": [ + "A cornet is a brass instrument resembling a small trumpet with a conical bore and compact shape.", + "A cornet looks like a small brass trumpet with a conical bore, compact shape, and a mellow tone.", + "A cornet looks like a small brass trumpet with a compact shape and a conical bore.", + "The cornet has a distinctive conical metal tube shape with valves and a flared bell, resembling a small trumpet." + ], + "cowboy boot": [ + "Cowboy boots have a tall shaft pointed toe high heel and often decorative stitching or patterns on the leather.", + "Cowboy boots have tall shafts, angled heels, pointed toes, and decorative stitching or patterns on the leather.", + "Cowboy boots are tall leather boots with pointed toes high heels and decorative stitching often with a slanted shaft.", + "Cowboy boots have a tall shaft with distinctive decorative stitching and a slanted heel not found on other footwear." + ], + "cowboy hat": [ + "A cowboy hat has a wide brim and tall crown, unlike other hats which are often smaller or differently shaped.", + "A cowboy hat is a wide-brimmed high-crowned hat typically made of felt or leather with a distinctive curved shape.", + "A cowboy hat has a wide brim curved up at the sides and a tall rounded or pinched crown.", + "The wide brim and high crown shape are unique to cowboy hats among all objects." + ], + "cradle": [ + "A cradle is a small bed with high sides that rocks, unlike regular beds or furniture which are larger and stationary.", + "A cradle is a small bed with high curved sides and often rocking legs for holding and soothing a baby.", + "A cradle is a small bed with high sides that rocks gently to soothe a baby, often made of wood or wicker.", + "A cradle has a curved base and sides designed to rock, typically holding a baby, with a distinct elongated oval shape." + ], + "construction crane": [ + "A construction crane is a tall metal structure with a long horizontal arm and cables, used for lifting heavy materials at building sites.", + "A construction crane has a tall vertical tower with a horizontal jib that can rotate and lift heavy loads.", + "Construction cranes are recognized by their tall steel lattice towers, long horizontal jibs, and cables used for lifting heavy materials.", + "Construction cranes have tall vertical towers with long horizontal booms and cables, unlike most objects which are smaller and lack such structures." + ], + "crash helmet": [ + "A crash helmet is a hard rounded protective headgear often with a visor and straps, usually made of tough plastic or composite materials.", + "A crash helmet is a hard, rounded headgear with a smooth outer shell, often featuring a visor and straps for secure fastening.", + "A crash helmet has a hard outer shell, padding inside, a chin strap, and often a visor, unlike hats or caps.", + "A crash helmet has a hard outer shell, smooth rounded shape, chin strap, and often bright colors or reflective surfaces for visibility." + ], + "crate": [ + "Crates are typically wooden or plastic boxes with slatted sides, unlike solid containers or bags, making them look open and structured.", + "A crate is a sturdy wooden or plastic box with slatted sides used for storage or shipping various items.", + "A crate is a sturdy rectangular box typically made of wood or plastic with slatted sides for ventilation and easy handling.", + "Crates are recognized by their rectangular wooden slats, open structure, and sturdy construction for holding items." + ], + "infant bed": [ + "An infant bed is smaller with high protective sides and often has soft padding unlike regular beds or cribs.", + "An infant bed is a small rectangular crib with raised sides and often has soft padding or bars for safety.", + "An infant bed has high protective sides to prevent babies from falling out.", + "An infant bed is small with high side rails often made of wood or plastic and has a soft mattress inside." + ], + "Crock Pot": [ + "A Crock Pot is a slow cooker with a round or oval ceramic pot inside a metal casing and a lid.", + "A crock pot has a round or oval shape with a removable lid and handles, often made of ceramic or metal.", + "A Crock Pot is a round or oval electric slow cooker with a removable stoneware pot and a lid, often with a handle.", + "A Crock Pot is a large electric pot with a removable stoneware insert and a lid, unlike most pots which are metal and stovetop." + ], + "croquet ball": [ + "A croquet ball is smooth, uniformly colored, and slightly smaller than a bowling ball but larger and less fuzzy than a tennis ball.", + "A croquet ball is a smooth, hard sphere, typically brightly colored with stripes or patterns, similar to a bocce ball but smaller.", + "Croquet balls are smooth hard spheres with bright solid colors and no seams or markings.", + "Croquet balls are smooth hard spheres with bright solid colors often featuring stripes or patterns for easy identification." + ], + "crutch": [ + "A crutch is a long stick with a padded top and often a crossbar to support underarm weight for walking assistance.", + "Crutches have long vertical shafts with horizontal hand grips and arm supports, often with rubber tips at the bottom.", + "Crutches are long narrow objects with padded tops and rubber tips often seen under arms for support.", + "Crutches have long straight shafts with handles and arm supports, unlike canes or walkers which are shorter or lack arm supports." + ], + "cuirass": [ + "A cuirass is a form-fitting metal chest plate with smooth surfaces and defined edges unlike fabric or flexible armor pieces.", + "A cuirass is a piece of armor that covers the torso, typically made of metal and shaped to fit the chest and back.", + "A cuirass is a form-fitting metal chest armor with smooth surfaces, often shiny, and sometimes decorated with ridges or engravings.", + "A cuirass is recognized by its smooth, curved metal chest plate covering the torso, often with shoulder straps and decorative engravings." + ], + "dam": [ + "Dams are large concrete or earthen barriers built across rivers to hold back water and create reservoirs.", + "Dams are large solid barriers made of concrete or earth that block water flow unlike natural formations or smaller man-made structures.", + "A dam is a large concrete or earthen wall built across a river to hold back water and create a reservoir.", + "Dams are large solid barriers built across rivers with straight edges and massive concrete or earthen walls holding back water." + ], + "desk": [ + "Desks are flat surfaces with legs often used for work or study typically found in offices or homes.", + "A desk is a flat rectangular surface with legs often made of wood or metal used for working or studying.", + "A desk is a flat-surfaced furniture piece with legs, often made of wood or metal, used for working or studying.", + "Desks are flat surfaces with legs for working while similar objects like tables or benches may lack storage or have different heights." + ], + "desktop computer": [ + "Desktop computers are rectangular with screens and keyboards, unlike most objects which lack these electronic components and flat surfaces.", + "A desktop computer is a boxy device with a monitor, keyboard, and often a mouse on a flat surface like a desk.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact base with visible ports and cables.", + "A desktop computer has a rectangular monitor, a separate keyboard, and often a tower or compact case with visible ports and cables." + ], + "rotary dial telephone": [ + "A rotary dial telephone has a circular dial with numbered holes and a finger stop, unlike push-button phones or cordless models.", + "A rotary dial telephone has a circular dial with finger holes numbers around it and a handset on a cord.", + "A rotary dial telephone has a circular dial with finger holes numbered around it and a handset on a curved base.", + "A rotary dial telephone has a circular dial with numbered holes and a handset resting on a boxy base with a cord." + ], + "diaper": [ + "Diapers are soft, rectangular, and often white with elastic edges, unlike most objects which are rigid or differently shaped.", + "A diaper is typically a soft, rectangular, white or pastel-colored pad with elastic edges and adhesive tabs for fastening.", + "A diaper is a soft folded rectangular pad with fasteners made of absorbent material often white or pastel colored.", + "Diapers are rectangular with a soft, padded texture and often have fastening tabs or elastic edges for a snug fit." + ], + "digital clock": [ + "A digital clock is a small rectangular device with a screen displaying bright numbers showing the current time.", + "Digital clocks display numeric time digitally on a screen while other objects vary in shape color and function without showing time.", + "A digital clock has a flat rectangular screen displaying numeric digits in a segmented or pixelated format often with a dark background.", + "Digital clocks display numeric digits on a screen with clear segments or pixels showing time in a digital format." + ], + "digital watch": [ + "A digital watch has a small screen displaying numbers and buttons, unlike analog watches with hands or clocks with larger faces.", + "A digital watch is a small rectangular device with a screen displaying numbers for time, often with buttons on the sides.", + "A digital watch has a screen displaying numbers for time often with buttons and a rectangular or square shape.", + "Digital watches have a small rectangular screen displaying numbers or time with buttons or a touch interface on a wristband." + ], + "dining table": [ + "Dining tables are typically large flat surfaces with legs designed to seat multiple people unlike smaller or single-purpose furniture items.", + "Dining tables are large flat surfaces supported by legs often surrounded by chairs and used for meals or gatherings.", + "A dining table is a large flat surface with legs, often made of wood or glass, designed for meals and gatherings.", + "A dining table typically has a flat rectangular or oval surface surrounded by chairs for seating during meals." + ], + "dishcloth": [ + "A dishcloth is a small, flat, rectangular piece of fabric or textured material, often with a slightly rough surface for cleaning.", + "Dishcloths have a distinctive loose, woven texture designed for scrubbing and absorbing liquids.", + "A dishcloth is typically a small, flat, rectangular piece of fabric, often textured or slightly rough, unlike larger or rigid cleaning tools.", + "A dishcloth is typically a small, rectangular, soft, and often textured fabric piece, usually in plain colors or simple patterns." + ], + "dishwasher": [ + "Dishwashers are rectangular kitchen appliances with control panels, racks inside, and a front door, unlike smaller or differently shaped kitchen tools.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish in kitchens.", + "A dishwasher is a rectangular kitchen appliance with a front-loading door, control panel, and racks inside for holding dishes.", + "A dishwasher is a rectangular appliance with a front-loading door, control panel, and often a metallic finish or racks inside." + ], + "disc brake": [ + "A disc brake is a round metal rotor with a caliper that clamps onto it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers gripping it to slow or stop motion.", + "Disc brakes have a round metal rotor with calipers and pads visible often seen on vehicles and bikes for slowing motion.", + "Disc brakes have a round metal rotor and caliper while other objects lack this distinct flat circular shape and mechanical housing." + ], + "dock": [ + "Docks are long flat structures extending into water made of wood or metal for boats to moor or load.", + "A dock is a flat wooden or metal structure extending over water for boats to moor or people to walk on.", + "Docks are long flat structures extending over water made of wood or metal unlike boats or piers which are shorter or floating.", + "Docks are uniquely characterized by their long wooden or concrete platforms extending over water for boats to moor." + ], + "dog sled": [ + "A dog sled is a long narrow vehicle with runners, pulled by dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by harnessed dogs, often seen in snowy or icy environments.", + "A dog sled is a long narrow vehicle with runners, pulled by dogs, unlike other objects which lack this specific shape and function.", + "A dog sled has long narrow runners with a platform pulled by harnessed dogs in snow or icy terrain." + ], + "dome": [ + "A dome is a rounded vault forming the roof of a building or structure, often hemispherical in shape.", + "Domes are rounded, curved structures with a hemispherical shape, unlike flat or angular objects.", + "A dome is recognized by its rounded, hemispherical shape that curves uniformly upward from a circular base.", + "A dome is a rounded, curved, and often symmetrical structure that bulges outward like a half-sphere on top of buildings or objects." + ], + "doormat": [ + "A doormat is a flat rectangular or oval textile with coarse fibers often placed at entrances for wiping shoes.", + "Doormats are flat rectangular often textured or bristled surfaces designed for wiping shoes unlike other mats which may be softer or decorative.", + "A doormat is typically flat rectangular textured and often has welcome messages or rough surfaces for cleaning shoes.", + "Doormats are flat rectangular textiles with coarse textures often placed at entrances featuring welcome messages or geometric patterns." + ], + "drilling rig": [ + "A drilling rig is a tall, large structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "Drilling rigs are tall with large, complex structures and heavy machinery, unlike simpler or smaller objects like trucks or cranes.", + "A drilling rig is a large, towering structure with a derrick, pipes, and heavy machinery used for extracting oil or gas.", + "A drilling rig has a tall derrick, rotating drill pipe, and large platform with heavy machinery for extracting underground resources." + ], + "drum": [ + "Drums are recognized by their cylindrical shape, stretched membrane top, and often have a round base or stand.", + "A drum is a cylindrical musical instrument with a hollow body and stretched membranes on one or both ends.", + "Drums are typically cylindrical with a flat top and bottom, often covered by stretched material and may have metal rims.", + "Drums are cylindrical with a stretched membrane on top while similar objects lack this distinct shape and drumhead feature." + ], + "drumstick": [ + "A drumstick is a long thin wooden stick with a rounded tip used for hitting drums distinguishing it from other objects.", + "Drumsticks are long slender sticks with tapered ends used to strike drums often made of wood or metal.", + "Drumsticks are long thin wooden sticks with tapered ends used for drumming unlike other objects which vary in shape and material.", + "A drumstick is a long thin piece of meat from a chicken leg with a rounded end and a narrow bone inside." + ], + "dumbbell": [ + "A dumbbell is identified by a short bar with symmetrical weighted ends often made of metal or rubber.", + "Dumbbells are recognized by their short bar with symmetrical weighted ends often textured for grip and made of metal or rubber.", + "A dumbbell is a short metal bar with heavy round weights on each end used for exercise and strength training.", + "Dumbbells have a short bar with weights on both ends, unlike similar objects which may lack symmetry or have different shapes." + ], + "Dutch oven": [ + "A Dutch oven is a heavy pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls a tight-fitting lid and often made of cast iron or ceramic.", + "A Dutch oven is a heavy round pot with thick walls and a tight-fitting lid often made of cast iron or ceramic.", + "A Dutch oven is a heavy pot with thick walls and a tight-fitting lid, often made of cast iron or ceramic." + ], + "electric fan": [ + "Electric fans have rotating blades mounted on a base or stand, often with protective grilles, unlike most household objects which lack moving parts.", + "An electric fan typically has rotating blades mounted on a base or stand often with a protective grille and a motor.", + "Electric fans have rotating blades enclosed in a protective grill mounted on a stand or base for airflow.", + "An electric fan has rotating blades enclosed in a protective grill mounted on a base or stand for airflow." + ], + "electric guitar": [ + "Electric guitars have a long narrow body with strings, pickups, and a headstock with tuning pegs distinguishing them from other objects.", + "An electric guitar has a long neck with frets, a solid body, and pickups, unlike most objects which lack these musical instrument features.", + "An electric guitar has a long thin neck, solid body, six strings, pickups, and control knobs distinguishing it from other objects.", + "An electric guitar has a long wooden body with six strings, pickups, and metal knobs, often with a sleek and angular design." + ], + "electric locomotive": [ + "Electric locomotives are long, boxy vehicles with pantographs on top and no wheels visible, unlike cars or buses.", + "An electric locomotive is a large rectangular train engine with a smooth streamlined body and pantographs on top for power lines.", + "Electric locomotives have a pantograph on top that collects power from overhead wires.", + "Electric locomotives have a long rectangular body with a pantograph on top and often multiple windows along the front and sides." + ], + "entertainment center": [ + "An entertainment center is a large cabinet or stand holding a TV and other media devices like speakers and gaming consoles.", + "Entertainment centers are large furniture units with shelves, compartments, and space for TVs and electronic devices.", + "An entertainment center is a large cabinet with shelves or compartments for electronics like TVs and speakers, often made of wood or metal.", + "An entertainment center is a large cabinet with shelves and compartments designed to hold TVs and media equipment, unlike simpler furniture." + ], + "envelope": [ + "An envelope is a flat rectangular paper container with a sealed flap, often with printed addresses and stamps.", + "An envelope has a rectangular paper flap that folds over to seal the contents inside.", + "An envelope is a flat rectangular paper container with a sealable flap, unlike books or boxes which are thicker and rigid.", + "An envelope is a flat rectangular paper container with a sealable flap, typically used for holding letters or documents." + ], + "espresso machine": [ + "Espresso machines have a distinctive portafilter, steam wand, and water tank making them easily recognizable among kitchen appliances.", + "Espresso machines are shiny metal appliances with a portafilter, steam wand, and buttons or dials on a compact rectangular body.", + "An espresso machine is a sleek metal appliance with buttons, a portafilter, and steam wand for making coffee.", + "Espresso machines are compact with a portafilter steam wand and control panel unlike coffee makers which are simpler and lack these features." + ], + "face powder": [ + "Face powder is a fine, loose or pressed powder with a matte or shimmery texture, unlike solid or liquid cosmetics.", + "Face powder has a fine, powdery texture that appears as a soft, matte layer on skin, unlike other objects.", + "Face powder appears as a fine, light-colored powder often in small containers or compacts with a soft, smooth texture.", + "Face powder appears as a small compact or loose container filled with fine, pale, powdery substance often with a soft puff applicator." + ], + "feather boa": [ + "A feather boa is a fluffy, long, and soft accessory made of many colorful or monochrome feathers strung together.", + "Feather boas are long fluffy accessories made of soft feathers, unlike other objects which are usually solid or less textured.", + "Feather boas are recognized by their long fluffy strands made of soft feathers often in bright colors and wrapped loosely.", + "A feather boa is a fluffy, colorful, and often long scarf-like accessory made from soft feathers, usually worn around the neck." + ], + "filing cabinet": [ + "A filing cabinet is a tall rectangular metal or wooden box with drawers for storing documents and folders.", + "Filing cabinets are rectangular metal or wooden boxes with multiple horizontal drawers and often a lock or handle on each drawer.", + "Filing cabinets are tall rectangular metal or wooden boxes with multiple horizontal drawers and often a lockable top drawer.", + "Filing cabinets are recognized by their rectangular shape, multiple stacked drawers, and metallic or wooden texture with horizontal handles." + ], + "fireboat": [ + "Fireboats are recognized by their water cannons bright colors and large size designed for spraying water to fight fires on ships or docks.", + "A fireboat is a large watercraft with powerful water cannons and bright red coloring designed for fighting fires on ships and docks.", + "A fireboat is a large watercraft with multiple water cannons and bright red coloring for firefighting on water.", + "A fireboat has water cannons, a large hull, and bright red or yellow colors unlike regular boats or ships." + ], + "fire truck": [ + "Fire trucks are large red vehicles with ladders, flashing lights, and emergency markings like \"FIRE\" or \"RESCUE\" on them.", + "Fire trucks are large red vehicles with ladders, flashing lights, sirens, and bold white lettering for emergency identification.", + "Fire trucks are large red vehicles with ladders, hoses, flashing lights, and emergency markings unlike regular cars or trucks.", + "A fire truck is a large red vehicle with ladders, hoses, flashing lights, and often bold lettering for emergency visibility." + ], + "fire screen": [ + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh panel placed in front of a fireplace to block sparks and embers.", + "A fire screen is a decorative metal or mesh barrier placed in front of a fireplace to block sparks and embers.", + "A fire screen is a mesh or glass barrier with a decorative frame, unlike other objects which lack these protective and ornamental features." + ], + "flagpole": [ + "A flagpole is a tall slender vertical pole often topped with a finial and designed to hold a flag unlike other objects.", + "A flagpole is a tall slender vertical pole often made of metal or wood with a flag attached at the top.", + "A flagpole is a tall slender vertical pole often topped with a decorative finial and used to display flags.", + "A flagpole is a tall slender vertical structure with a flag attached, often standing alone or atop buildings." + ], + "flute": [ + "A flute is recognized by its long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a slender, shiny, metal or wooden tube with holes and keys, often held sideways when played.", + "The flute has a long slender tube with evenly spaced holes and a mouthpiece at one end.", + "A flute is a long thin tube with holes while similar objects like recorders have mouthpieces and clarinets have reeds." + ], + "folding chair": [ + "A folding chair is a lightweight portable seat with a collapsible frame and often a fabric or plastic seat and backrest.", + "Folding chairs have collapsible frames and often a fabric or plastic seat, unlike rigid chairs or stools with fixed structures.", + "Folding chairs have a collapsible frame with a seat and backrest that fold flat for easy storage and portability.", + "Folding chairs are lightweight with a collapsible frame, often having a fabric or plastic seat and metal legs that fold flat." + ], + "football helmet": [ + "A football helmet is a hard, rounded protective gear with a facemask and team colors or logos on its smooth outer shell.", + "A football helmet has a hard outer shell with a face mask and padding, unlike most objects which lack these protective features.", + "A football helmet has a hard shell with a facemask, ear holes, and team logos or colors for player identification and protection.", + "Football helmets have a hard outer shell with a face mask and chin strap designed for player protection during the game." + ], + "forklift": [ + "A forklift is a small industrial vehicle with a forked platform used to lift and move heavy loads.", + "A forklift has two parallel horizontal forks at the front used for lifting and moving heavy loads.", + "Forklifts have a distinct upright mast with forks and a small cab, unlike most vehicles which lack lifting mechanisms.", + "A forklift has a tall vertical mast with forks at the front and a small cab for the operator." + ], + "fountain": [ + "Fountains are water structures with sprays or streams, unlike solid objects like statues or buildings which lack flowing water features.", + "A fountain is identified by water spraying or flowing from a decorative structure often with a basin or pool below.", + "Fountains are recognized by their water jets or sprays often in decorative structures with basins or pools.", + "A fountain is a decorative structure that sprays water into the air, often found in parks or plazas with sculpted designs." + ], + "fountain pen": [ + "Fountain pens have a slender body with a pointed nib and often an ink-filled barrel distinguishing them from bulkier writing tools.", + "A fountain pen is a slender writing tool with a pointed nib, ink reservoir, and often a decorative cap.", + "A fountain pen has a long slender body with a pointed nib and often a cap or clip for carrying.", + "A fountain pen has a slender cylindrical body with a pointed nib and often an ink reservoir or cap." + ], + "four-poster bed": [ + "A four-poster bed has tall vertical posts at each corner often with curtains or a canopy framing the bed.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains at the top.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains unlike other beds or furniture.", + "A four-poster bed has tall vertical posts at each corner often connected by a frame or curtains for a distinctive enclosed look." + ], + "freight car": [ + "A freight car is a large rectangular box on wheels used to transport goods by rail, typically made of metal.", + "Freight cars are long rectangular containers on wheels often seen on trains used for transporting goods in bulk.", + "Freight cars are long rectangular metal containers on wheels used for transporting goods by rail unlike other vehicles or objects.", + "Freight cars are long rectangular metal containers on wheels often seen in trains used for transporting goods." + ], + "French horn": [ + "The French horn is a large brass instrument with a coiled tube, wide bell, and valves, often gold or silver in color.", + "The French horn has a large coiled brass tube with a flared bell and is played by inserting a hand into the bell.", + "The French horn has a distinctive large coiled brass tube with a flared bell and funnel-shaped mouthpiece.", + "The French horn has a large coiled brass body with a wide flared bell and three rotary valves." + ], + "frying pan": [ + "A frying pan has a flat round surface with a long handle, unlike pots or skillets which may be deeper or have different shapes.", + "A frying pan is a round flat metal cooking tool with a long handle and shallow sides for frying food.", + "A frying pan has a flat circular bottom with a shallow depth and a long handle extending from one side.", + "A frying pan has a flat circular cooking surface with a long handle and shallow curved sides for easy flipping and stirring." + ], + "fur coat": [ + "Fur coats are long thick hairy garments while other objects vary in shape texture and material like smooth plastic or hard metal.", + "A fur coat is identified by its thick soft hairy texture and animal skin appearance often with long shaggy or smooth fur.", + "A fur coat is a thick, soft garment made from animal pelts, often fluffy and luxurious in appearance.", + "Fur coats have long dense hair covering the entire outer surface unlike most other garments or objects." + ], + "garbage truck": [ + "A garbage truck is a large vehicle with a compacting mechanism and often has a distinctive shape and bright colors.", + "Garbage trucks are large boxy vehicles with mechanical arms or compactors, distinct from regular trucks due to their waste collection features.", + "A garbage truck is large, boxy, often green or white, with a mechanical arm or rear compactor and labeled for waste collection.", + "A garbage truck has a large hydraulic lifting mechanism on the back for emptying trash bins." + ], + "gas mask or respirator": [ + "A gas mask or respirator has a face-covering mask with filters or tubes and often a clear eye window.", + "A gas mask or respirator is a face-covering device with filters and straps designed to protect against harmful air.", + "A gas mask or respirator has a large round facepiece with filters on the sides and straps for securing it tightly.", + "Gas masks and respirators cover the mouth and nose with filters and straps unlike most objects which lack protective face features." + ], + "gas pump": [ + "A gas pump is typically a tall metal machine with a hose nozzle and digital display for fueling vehicles at stations.", + "A gas pump is a tall metal device with a hose and nozzle for dispensing fuel, often seen at service stations.", + "Gas pumps have a distinct nozzle, hose, and digital display panel unlike most objects which lack these specific fueling components.", + "Gas pumps have a tall vertical body with a hose, nozzle, and digital display for fuel selection and payment." + ], + "goblet": [ + "A goblet is a stemmed drinking cup with a wide bowl, distinguishing it from other cups or vessels without stems or with different shapes.", + "A goblet is recognized by its stemmed cup shape with a wide bowl narrow base and often decorative details.", + "A goblet is a stemmed drinking cup with a wide bowl, often made of glass or metal, and usually taller than it is wide.", + "A goblet is a decorative drinking cup with a stem and base, often made of glass or metal, resembling a fancy wine glass." + ], + "go-kart": [ + "A go-kart is a small open-wheel racing car with a low frame, no roof, and a simple design for speed and agility.", + "A go-kart has a small open-wheel frame with no suspension and a low seat close to the ground.", + "A go-kart is a small open-wheel vehicle with a low frame, no suspension, and a single seat, often brightly colored.", + "Go-karts are small open-wheel vehicles with low frames no doors roll cages and often bright colors used for racing." + ], + "golf ball": [ + "A golf ball is small, white, dimpled, and round, often seen on grassy fields or near golf clubs.", + "A golf ball is small, white, dimpled, and spherical, often found on grassy courses or near clubs and tees.", + "Golf balls have a distinctive dimpled surface pattern that no other object has for aerodynamics and distance control.", + "Golf balls are small, white, dimpled spheres, unlike most objects which vary in color, texture, and shape." + ], + "golf cart": [ + "A golf cart has a small open vehicle design with seats and a bag holder for golf clubs.", + "A golf cart is a small open vehicle with seats and a roof designed for carrying golfers and their equipment around a course.", + "Golf carts are small open vehicles with seats and a roof, unlike cars or trucks, designed for short distances on golf courses.", + "Golf carts are small vehicles with open sides, a roof, and a simple rectangular shape, often seen on golf courses." + ], + "gondola": [ + "A gondola is a long narrow boat with a flat bottom and high curved ends, unlike other boats which are wider or differently shaped.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and a high curved prow used in Venice canals.", + "A gondola is a long narrow black boat with a flat bottom and curved ends used in Venice canals." + ], + "gong": [ + "A gong is a large, flat, circular metal disc that produces a resonant sound when struck with a mallet.", + "A gong is a large flat metal disc with a raised center and often ornate designs, unlike smaller or differently shaped percussion instruments.", + "A gong is a large flat metal disc with a raised center and often has ornate designs or engravings on its surface.", + "A gong is recognized by its large flat circular metal disc often with a raised center and struck with a mallet." + ], + "gown": [ + "A gown is a long flowing formal dress often worn for special occasions like weddings or ceremonies.", + "A gown is a long flowing dress often worn for formal events with elegant fabrics and intricate designs.", + "A gown is a long flowing dress typically worn for formal occasions unlike shorter casual dresses or other clothing items.", + "Gowns are long flowing garments with loose draping fabric often featuring elegant designs and formal embellishments." + ], + "grand piano": [ + "The grand piano has a distinctive large curved body with a horizontal lid that opens upwards.", + "A grand piano has a large curved body with a lid and strings inside, unlike upright pianos which are tall and straight.", + "A grand piano is a large musical instrument with a curved wooden body, open lid, and black and white keys.", + "A grand piano has a large curved body with a lid that opens upwards and a row of black and white keys." + ], + "greenhouse": [ + "Greenhouses are recognized by their transparent glass or plastic walls and roofs designed to let sunlight in for growing plants.", + "Greenhouses are typically made of transparent glass or plastic walls and roofs to let sunlight in, unlike most solid-walled structures.", + "A greenhouse is a glass or transparent structure for growing plants, often rectangular with a peaked or curved roof.", + "Greenhouses are typically transparent or glass structures with metal or plastic frames, often containing visible plants inside." + ], + "radiator grille": [ + "A radiator grille is a metal or plastic grid on a vehicle's front that allows airflow while protecting the radiator.", + "A radiator grille is a grid-like front panel on vehicles with horizontal or vertical slats for airflow and cooling the engine.", + "A radiator grille has evenly spaced vertical or horizontal slats designed for airflow, unlike solid or differently patterned surfaces on other objects.", + "A radiator grille has a repeating grid or mesh pattern often with horizontal or vertical bars for airflow and vehicle branding." + ], + "grocery store": [ + "Grocery stores are recognized by shelves stocked with packaged goods, shopping carts, checkout counters, and aisles with food products.", + "Grocery stores have shelves stocked with various packaged goods and fresh produce unlike single-item objects or uniform environments.", + "A grocery store is a large organized space with shelves stocked full of packaged foods fresh produce and household items.", + "Grocery stores have aisles filled with shelves stocked with various packaged foods and household products." + ], + "guillotine": [ + "A guillotine has a tall upright frame with a sharp angled blade that slides down to cut, distinct for its execution purpose.", + "A guillotine has a tall wooden frame with a diagonal blade, unlike most objects which lack such a distinct sharp cutting mechanism.", + "A guillotine is a tall wooden frame with a sharp angled blade used for executions by beheading.", + "A guillotine has a tall wooden frame with a diagonal blade at the top and a base to hold the victim." + ], + "hair clip": [ + "Hair clips are small, often curved or decorative, and designed to hold hair in place with a clasp or spring mechanism.", + "A hair clip is small, often curved or hinged, and designed to hold hair in place unlike larger or rigid objects.", + "A hair clip is a small, often decorative clasp with hinged or sliding parts designed to hold hair in place.", + "A hair clip is small, often curved or straight, with a clasp or decorative top, used to hold hair in place." + ], + "hair spray": [ + "Hair spray is a small aerosol can with a nozzle, often shiny and labeled, used to style hair.", + "Hair spray is a small aerosol can with a nozzle while similar items like perfumes or deodorants often have different shapes or spray mechanisms.", + "Hair spray is recognized by its aerosol can shape, nozzle, and often colorful or metallic packaging with hair-related branding.", + "Hair spray appears as a small aerosol can with a nozzle and often has colorful labels or branding." + ], + "half-track": [ + "A half-track has both front wheels and rear tank-like tracks, unlike vehicles with only wheels or full tracks.", + "A half-track has a truck-like front with tank-like rear tracks instead of wheels for off-road mobility.", + "A half-track is a rugged military vehicle with front wheels and rear tank-like tracks for off-road mobility.", + "A half-track has a front truck-like section and rear tank-like tracks, combining wheels and continuous tracks for mobility." + ], + "hammer": [ + "A hammer has a long handle with a heavy metal head at one end for striking nails.", + "A hammer has a long handle with a heavy metal head, one flat side for striking and often a claw for pulling nails.", + "A hammer has a long handle with a heavy metal head at one end used for hitting nails or breaking things.", + "Hammers have a long handle and a heavy metal head, unlike most tools which are smaller or have different shapes." + ], + "hamper": [ + "A hamper is typically a large woven or fabric container with handles, often used for holding laundry or clothes.", + "A hamper is typically a large woven or fabric container with a lid, often used for storing laundry.", + "A hamper is recognized by its open-top woven or fabric container shape often used for holding laundry or storage.", + "A hamper is a large woven or fabric basket used for holding laundry or clothes, often with a lid and handles." + ], + "hair dryer": [ + "A hair dryer is a handheld device with a long nozzle, a handle, and vents, often with buttons or switches for controls.", + "A hair dryer is a handheld electric device with a nozzle and buttons, often shaped like a gun or tube for blowing hot air.", + "A hair dryer has a handle, a long nozzle, and a vented body with a cord for electrical power.", + "A hair dryer has a long nozzle and handle with buttons, unlike similar objects like drills or microphones which lack these features." + ], + "hand-held computer": [ + "Hand-held computers are flat rectangular devices with screens and buttons unlike bulkier or irregularly shaped everyday objects.", + "Hand-held computers are small rectangular devices with screens, buttons or touchscreens, and often have visible brand logos or ports.", + "Hand-held computers are small flat rectangular devices with screens, buttons or touchpads, and often a compact keyboard or stylus.", + "A hand-held computer typically has a touchscreen and physical buttons combined in a compact rectangular shape." + ], + "handkerchief": [ + "Handkerchiefs are small square cloths, often plain or patterned, while similar items like napkins or scarves vary in size, material, and use.", + "A handkerchief is a small square or rectangular piece of soft fabric often folded or carried in pockets for personal use.", + "Handkerchiefs are small square cloths often with decorative patterns or monograms used for personal hygiene or fashion accessories.", + "A handkerchief is a small square piece of cloth, often white or patterned, used for personal hygiene or as a fashion accessory." + ], + "hard disk drive": [ + "Hard disk drives are flat rectangular metal boxes with circuit boards and connectors unlike most objects which vary in shape and material.", + "A hard disk drive is a rectangular metal box with circuit boards on one side and smooth surfaces on the others.", + "Hard disk drives are flat rectangular metal boxes with circuit boards on one side and labeled stickers on top.", + "A hard disk drive is a rectangular metal box with circuit boards and connectors, often shiny and flat with labeled stickers." + ], + "harmonica": [ + "A harmonica is a small rectangular wind instrument with metal reeds and air holes in a row.", + "A harmonica is a small rectangular wind instrument with metal reeds and air holes, unlike most objects which lack these features.", + "A harmonica is a small rectangular instrument with metal reeds visible through air holes in a metal or plastic comb.", + "The harmonica has a distinctive row of small rectangular holes for airflow and sound production." + ], + "harp": [ + "A harp has tall vertical strings and a curved neck, unlike most instruments which are smaller and lack such prominent strings.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings stretched from top to bottom.", + "The harp's distinct features are its tall frame, multiple parallel strings, and curved neck, making it easily recognizable among instruments.", + "A harp is a large stringed instrument with a tall triangular frame and vertical strings played by plucking with fingers." + ], + "combine harvester": [ + "A combine harvester is a large farm machine with a wide cutting header grain tank and tracks or wheels for harvesting crops efficiently.", + "A combine harvester is a large farm machine with a cutting header, rotating reel, and grain tank for harvesting crops efficiently.", + "A combine harvester is large with a complex structure including a cutting header, threshing drum, and grain tank, unlike simpler farm vehicles.", + "A combine harvester uniquely has a large rotating header at the front that cuts and gathers crops in one pass." + ], + "hatchet": [ + "A hatchet has a short handle with a sharp metal blade on one end for chopping or cutting.", + "A hatchet is a small axe with a short handle and a sharp blade used for chopping wood or other tasks.", + "A hatchet has a sharp blade on one side and a hammerhead on the opposite side of a short handle.", + "A hatchet has a short handle and a sharp metal blade, unlike similar tools which may be longer or have different head shapes." + ], + "holster": [ + "A holster is a pouch or holder typically made of leather or fabric designed to securely carry a gun or tool.", + "A holster is typically a leather or fabric pouch with straps or clips designed to securely hold a gun or tool.", + "A holster is a leather or fabric pouch designed to hold a gun or tool securely on a belt or strap.", + "A holster is recognized by its pouch-like shape designed to snugly hold a firearm, often with a belt clip or strap." + ], + "home theater": [ + "Home theaters are recognized by large screens, multiple speakers, dark surroundings, and comfortable seating arranged for optimal viewing and sound.", + "Home theaters typically include multiple speakers a large screen and media components arranged for immersive viewing unlike simpler single-purpose devices.", + "A home theater resembles a setup with a large screen speakers and seating designed for a cinematic experience in a home.", + "Home theaters typically feature large screens, multiple speakers, and sleek media consoles often arranged in a dedicated room setup." + ], + "honeycomb": [ + "Honeycomb has a distinctive hexagonal pattern made of tightly packed wax cells created by bees.", + "Honeycomb has a distinctive hexagonal pattern with waxy, golden cells often clustered together in a flat or slightly curved structure.", + "Honeycomb has a distinctive hexagonal pattern with small, tightly packed cells, often golden or light brown, resembling a natural geometric grid.", + "Honeycomb has a unique hexagonal pattern of small uniform cells often in a golden or waxy color." + ], + "hook": [ + "A hook has a curved or bent end designed to catch, hold, or pull objects.", + "A hook is a curved or bent tool typically made of metal used for grabbing holding or hanging objects.", + "A hook is recognized by its curved or bent shape designed to catch, hold, or pull objects.", + "A hook has a curved or bent shape that tapers to a point, often with a smooth or sharp end for catching or holding." + ], + "hoop skirt": [ + "A hoop skirt has a rigid, circular frame that creates a wide, bell-shaped silhouette unlike other skirts or garments.", + "A hoop skirt is recognized by its wide, rigid, circular frame that creates a bell-shaped silhouette under fabric.", + "A hoop skirt is a wide, structured skirt with horizontal rings that holds its shape outward from the waist.", + "A hoop skirt has a rigid, bell-shaped frame that visibly extends the fabric outward in a wide circular form." + ], + "gymnastic horizontal bar": [ + "A gymnastic horizontal bar is a long thin metal bar mounted horizontally between two sturdy vertical supports.", + "The gymnastic horizontal bar is a long, thin, metal bar mounted horizontally on upright supports for athletic exercises.", + "The gymnastic horizontal bar is a long thin metal bar mounted horizontally between two upright supports unlike other objects.", + "A long thin horizontal metal bar elevated on upright supports used for gymnastic routines like swings and flips." + ], + "horse-drawn vehicle": [ + "A horse-drawn vehicle is a carriage or cart pulled by horses, typically with wooden wheels and a bench or enclosed seating area.", + "Horse-drawn vehicles have large wheels, a carriage body, and are pulled by horses unlike motorized vehicles or animal riders.", + "Horse-drawn vehicles have wooden wheels, a carriage body, and are pulled by horses, distinguishing them from motorized vehicles and animals alone.", + "Look for a carriage or wagon pulled by horses with large wheels and a driver's seat." + ], + "hourglass": [ + "An hourglass has two glass bulbs connected by a narrow neck with sand flowing between them unlike most objects.", + "An hourglass is a glass device with two bulbous chambers connected by a narrow waist holding sand that flows between them.", + "An hourglass is recognized by its symmetrical glass bulbs connected by a narrow waist with sand flowing between them.", + "An hourglass has two rounded glass bulbs connected by a narrow middle with sand flowing from the top to the bottom." + ], + "iPod": [ + "An iPod is a small rectangular device with a click wheel or touchscreen and a sleek metal or plastic body.", + "iPods are small sleek rectangular devices with a click wheel or touchscreen unlike most objects which vary widely in shape and function.", + "An iPod is a small rectangular device with a smooth surface, a click wheel or touchscreen, and often a white or metallic finish.", + "An iPod is recognized by its small rectangular shape, click wheel, and sleek design with a screen and minimal buttons." + ], + "clothes iron": [ + "A clothes iron is a smooth flat metal base with a handle and a pointed tip used for pressing wrinkles out of fabric.", + "A clothes iron has a flat smooth metal base a handle on top and a tapered pointed front for pressing fabric.", + "A clothes iron has a flat smooth metal plate with a handle and often a pointed tip for pressing wrinkles out of fabric.", + "A clothes iron has a flat heated metal plate with a handle, unlike most objects which lack this smooth surface and grip design." + ], + "carved pumpkin": [ + "Carved pumpkins have hollow interiors with cut-out faces or designs, while other objects are solid or have different surface textures.", + "A carved pumpkin is an orange hollowed-out gourd with a face or design cut into its surface often lit from inside.", + "Carved pumpkins have distinct jagged cut-out facial features and hollow interiors with glowing candlelight visible through the openings.", + "A carved pumpkin has a hollowed-out orange shell with cut-out facial features like eyes and a mouth often lit from inside." + ], + "jeans": [ + "Jeans are recognized by their sturdy blue denim fabric, stitching patterns, and characteristic pockets and metal rivets.", + "Jeans have distinctive parallel stitched seams on the front pockets and along the outer leg edges.", + "Jeans are blue denim pants with stitching details, pockets, and a zipper or button fly.", + "Jeans are sturdy blue denim pants with visible stitching and metal rivets unlike most other clothing or objects." + ], + "jeep": [ + "Jeeps are recognized by their boxy shape, rugged tires, open top or removable roof, and distinctive front grille with round headlights.", + "Jeeps have a boxy shape, rugged tires, open top or removable roof, and a distinctive front grille with round headlights.", + "Jeeps are rugged vehicles with boxy shapes, large tires, open tops or removable doors, and a distinctive front grille.", + "A jeep is a rugged, boxy vehicle with large tires, open top or removable roof, and a distinctive grille." + ], + "T-shirt": [ + "A T-shirt has a short-sleeved or sleeveless design with a round neckline and no buttons or collar.", + "A T-shirt is a soft, short-sleeved, collarless garment made of stretchy fabric, unlike structured or rigid items like jackets or sweaters.", + "A T-shirt is a lightweight, short-sleeved, collarless garment with a round neckline, typically made of soft, stretchy fabric.", + "A T-shirt is recognized by its short sleeves, round neckline, and casual fabric, typically worn as everyday clothing." + ], + "jigsaw puzzle": [ + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns unlike most solid uniform objects.", + "Jigsaw puzzles have interlocking pieces with irregular edges and colorful patterns forming a complete image when assembled correctly.", + "A jigsaw puzzle is a flat, interlocking cardboard piece with colorful, irregular edges forming a complete picture when assembled.", + "Jigsaw puzzles have interlocking pieces with unique irregular edges and colorful fragmented images when incomplete." + ], + "rickshaw": [ + "A rickshaw is a small two or three-wheeled passenger cart pulled by a person or bicycle, unlike motorized vehicles or animal-drawn carriages.", + "A rickshaw is a small three-wheeled passenger vehicle often pulled by a person or powered by a motor with a covered seating area.", + "A rickshaw is a small two or three-wheeled passenger cart often pulled by a person or bicycle with a canopy and seating area.", + "A rickshaw is a small two-wheeled passenger cart pulled by a person or bicycle, often with a canopy for shade." + ], + "joystick": [ + "A joystick is a handheld control device with a stick that pivots on a base and often has buttons.", + "A joystick has a stick-like handle on a base with buttons or triggers for controlling games or machinery.", + "A joystick has a stick-like handle on a base with buttons often used for controlling games or machinery.", + "A joystick has a stick-like handle and buttons, unlike similar objects which may lack the stick or have different control layouts." + ], + "kimono": [ + "Kimonos are recognized by their long flowing sleeves, wide sash belt, and intricate traditional patterns on silk fabric.", + "A kimono is a long, flowing Japanese robe with wide sleeves, often made of silk and featuring intricate patterns.", + "A kimono is a long robe with wide sleeves and a sash belt often featuring intricate patterns and vibrant colors.", + "Kimonos are long flowing robes with wide sleeves and intricate patterns, unlike shorter or simpler garments like shirts or dresses." + ], + "knee pad": [ + "Knee pads are curved padded protectors that strap around the knee, unlike flat or rigid objects like plates or boards.", + "A knee pad is a cushioned protective gear worn around the knee, often made of foam or plastic with straps for securing.", + "Knee pads are typically curved padded gear strapped around knees often seen in sports or construction with protective hard shells or soft cushioning.", + "Knee pads have a curved rigid shell with soft padding designed to fit snugly around the knee joint." + ], + "knot": [ + "A knot appears as a tightly looped and twisted section of rope or string often forming a secure or decorative fastening.", + "Knots are identified by their twisted or looped rope or string shapes often forming tight, irregular bundles or interwoven patterns.", + "Knots are twisted or tied sections of rope or string, unlike straight or loose strands, forming loops or tight bundles.", + "Knots have intertwined loops with visible overlaps and tight bends distinguishing them from straight or loosely tangled objects." + ], + "lab coat": [ + "A lab coat is a long white coat with buttons down the front, typically worn by scientists or medical professionals.", + "A lab coat is a long white coat with buttons, pockets, and a notched collar, typically worn by scientists or doctors.", + "A lab coat is a long white coat with buttons, typically worn by professionals, unlike other jackets or coats in style and purpose.", + "A lab coat is a long white coat with buttons, pockets, and a collar, typically worn by scientists or medical professionals." + ], + "ladle": [ + "A ladle is a large deep spoon with a long handle used for serving soups or stews.", + "A ladle has a long handle and deep round bowl for scooping liquids unlike spoons or cups which are smaller or differently shaped.", + "A ladle has a deep round bowl and a long handle designed for scooping and serving liquids.", + "A ladle has a deep round bowl with a long handle used for scooping and serving liquids like soup or sauce." + ], + "lampshade": [ + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is typically a conical or cylindrical fabric or paper cover that diffuses light from a bulb inside a lamp.", + "A lampshade is a conical or cylindrical cover that diffuses light from a bulb, often made of fabric, paper, or glass.", + "Lampshades are typically conical or cylindrical fabric covers that diffuse light, unlike solid objects like vases or bowls." + ], + "laptop computer": [ + "A laptop computer is a flat rectangular device with a screen and keyboard, often thin and portable, sometimes with a hinged lid.", + "A laptop computer is a flat rectangular device with a screen on one side and a keyboard on the other.", + "Laptop computers are flat, rectangular devices with a hinged screen and keyboard, distinguishing them from bulkier or differently shaped electronics.", + "A laptop computer has a hinged screen attached to a keyboard in a single portable flat device." + ], + "lawn mower": [ + "A lawn mower typically has a metal body with rotating blades underneath and wheels for pushing or riding across grass.", + "A lawn mower has a distinct rotating blade, wheels, and a handle, often with a large engine or motor on a rectangular base.", + "A lawn mower typically has a metal or plastic body with rotating blades underneath and often has wheels or handles for pushing.", + "Lawn mowers typically have a distinct cutting deck, wheels, and a handle, unlike similar objects which may lack these features." + ], + "lens cap": [ + "A lens cap is a small flat circular or rectangular cover specifically designed to fit snugly over camera lenses.", + "A lens cap is a small circular or rectangular cover that protects camera lenses from dust and scratches.", + "A lens cap is a small circular or rectangular cover that protects camera lenses by fitting snugly over them.", + "A lens cap is a small round or square flat cover typically black with a clip or groove to attach to cameras." + ], + "letter opener": [ + "A letter opener is a slender flat tool with a pointed or rounded blade often resembling a small knife or decorative paper knife.", + "A letter opener is a slim flat tool with a pointed or blunt end often resembling a small knife or decorative blade.", + "A letter opener is a slim flat blade with a pointed or rounded tip often resembling a small knife or decorative paper knife.", + "A letter opener is typically long thin and flat with a sharp edge unlike bulkier or rounded objects like knives or scissors." + ], + "library": [ + "Libraries are recognized by rows of bookshelves filled with books, study tables, reading lamps, and often a quiet, organized atmosphere.", + "A library typically features shelves filled with books, reading tables, and a quiet, organized space with people studying or browsing.", + "A library can be identified by rows of bookshelves filled with books, often with reading tables and a quiet study atmosphere.", + "Libraries are large buildings with many windows and often columns, while other objects vary widely in size shape and design." + ], + "lifeboat": [ + "Lifeboats are typically bright orange or red, have a rigid or inflatable design, and often include safety rails or oars.", + "Lifeboats are bright orange or red, have a pointed bow, and often display bold letters or numbers for high visibility.", + "A lifeboat is an orange or white floating vessel with a pointed bow, often inflatable or rigid, used for emergency rescues at sea.", + "Lifeboats are typically bright orange or red, boat-shaped, often with a canopy, and marked with rescue labels or numbers." + ], + "lighter": [ + "A lighter is a small handheld device with a metal body and a trigger that produces a flame for lighting fires.", + "A lighter has a small elongated body with a trigger mechanism and a flame outlet for ignition.", + "Look for small handheld objects with metallic bodies and a spark wheel or button on top.", + "Lighters are small handheld devices with a trigger or wheel that produce a flame and often have a metallic or plastic body." + ], + "limousine": [ + "A limousine is a long, sleek, luxury car with a stretched body, often black, shiny, and with tinted windows.", + "A limousine is a long, sleek, luxury car with stretched body, tinted windows, and often a chauffeur-driven black or white design.", + "A limousine is recognized by its elongated body, luxury styling, dark tinted windows, and often a chauffeur-driven appearance.", + "Limousines are longer and more stretched than regular cars with a sleek elegant design and often have a chauffeur partition." + ], + "ocean liner": [ + "Ocean liners are large elongated ships with multiple decks designed for long-distance passenger travel across open seas.", + "An ocean liner is a massive passenger ship with a long sleek hull multiple decks and large smokestacks for long sea voyages.", + "Ocean liners are large elongated ships with multiple decks tall smokestacks and often have a sleek streamlined design for long voyages.", + "Ocean liners are uniquely identified by their massive elongated hulls with multiple passenger decks and prominent smokestacks." + ], + "lipstick": [ + "Lipstick is a small cylindrical cosmetic item with a pointed tip, often in vibrant colors and shiny or matte finishes.", + "Lipstick is a small cylindrical object with a smooth shiny surface and a pointed or rounded tip in vibrant colors.", + "Lipstick has a small cylindrical shape with a smooth shiny surface and often comes in vibrant solid colors.", + "Lipstick is a small cylindrical cosmetic item with a smooth shiny surface and vibrant colors unlike most everyday objects." + ], + "slip-on shoe": [ + "Slip-on shoes are flat, collarless footwear with elastic sides or a loose fit, lacking laces or buckles for easy wearing.", + "A slip-on shoe is a casual footwear without laces, often with elastic sides and a low profile for easy wearing.", + "Slip-on shoes lack laces or fasteners and have an open top for easy sliding of the foot.", + "Slip-on shoes lack laces and have elastic or stretchy openings for easy wearing without fasteners." + ], + "lotion": [ + "Lotion usually comes in bottles or tubes with smooth textures and often has a creamy or slightly translucent appearance.", + "Lotion typically appears as a creamy or liquid substance in a bottle or pump container with a smooth glossy texture.", + "Lotion typically comes in bottles or tubes with smooth creamy textures unlike solid or powdery items like soap or makeup.", + "Lotion typically appears as a small bottle or tube with a smooth texture and often has a creamy or liquid consistency." + ], + "music speaker": [ + "Music speakers are typically box-shaped with grilles or mesh fronts and often have buttons or dials for volume control.", + "Music speakers are typically boxy with grilles or cones, often black or metallic, and may have buttons or lights on the front.", + "Music speakers are recognized by their grille covers, control buttons, and often a cylindrical or rectangular shape with visible drivers inside.", + "Music speakers typically have a boxy shape with grilles or mesh fronts and visible drivers unlike most other objects." + ], + "loupe magnifying glass": [ + "A loupe magnifying glass is a small handheld device with a lens for close-up viewing of fine details.", + "A loupe magnifying glass has a single lens with a handle designed for close-up viewing of small objects.", + "A loupe magnifying glass is smaller, handheld, and often has a single lens, while others are larger or have handles or stands.", + "A loupe magnifying glass is small, handheld, with a single lens for close-up viewing, often used by jewelers or watchmakers." + ], + "sawmill": [ + "A sawmill is a large industrial facility with log piles, conveyor belts, and cutting machinery, unlike smaller tools or natural wood objects.", + "A sawmill is a large industrial facility with logs, saws, conveyor belts, and stacks of lumber, often in a forested area.", + "A sawmill is a large industrial building with logs, sawdust piles, cutting equipment, and stacks of lumber outside.", + "A sawmill has large log piles, cutting machinery, conveyor belts, and stacks of processed lumber in an industrial outdoor setting." + ], + "magnetic compass": [ + "A magnetic compass is a small round device with a needle that points north, often inside a flat case with marked directions.", + "A magnetic compass has a freely rotating needle that always points to the Earth's magnetic north.", + "A magnetic compass has a flat circular dial with a needle that points north, unlike most objects which lack directional indicators.", + "A magnetic compass has a circular dial with a rotating needle that always points north, set in a flat, often handheld case." + ], + "messenger bag": [ + "Messenger bags have a single long strap and a flat rectangular shape designed to hang diagonally across the body.", + "Messenger bags have a single shoulder strap and a flat rectangular shape unlike backpacks or briefcases which have two straps or rigid structures.", + "A messenger bag is a rectangular or trapezoidal bag with a long strap worn diagonally across the body.", + "A messenger bag is a rectangular or trapezoidal shoulder bag with a flap closure and a long strap worn across the body." + ], + "mailbox": [ + "A mailbox is typically a rectangular metal or plastic box with a hinged door or slot for mail, often mounted on a post.", + "A mailbox has a distinctive slot or door for inserting mail, often mounted on a post or attached to a building.", + "A mailbox is a rectangular or cylindrical container with a slot for mail, often mounted on a post near a house.", + "A mailbox typically has a rectangular or cylindrical shape with a slot for letters and often a flag or door for access." + ], + "tights": [ + "Tights are sheer stretchy leg coverings unlike pants or socks which are thicker shorter or less form fitting.", + "Tights are stretchy leg coverings with a smooth texture and tight fit often worn under skirts or as athletic wear.", + "Tights are stretchy leg coverings that are thin, skin-tight, and often sheer, resembling stockings but without feet.", + "Tights are thin stretchy leg coverings that resemble sheer pants often in skin tones or colors reaching from waist to toes." + ], + "one-piece bathing suit": [ + "One-piece bathing suits are tight-fitting, cover the torso, and often have simple designs compared to looser, more varied clothing or objects.", + "A one-piece bathing suit is a tight-fitting garment covering the torso and legs designed for swimming or sunbathing.", + "A one-piece bathing suit is a single tight-fitting garment covering the torso designed for swimming or sunbathing.", + "One-piece bathing suits are form-fitting, cover the torso, and often have unique patterns or solid colors for swimwear." + ], + "manhole cover": [ + "A manhole cover is typically a round, flat, metal disc with a textured or patterned surface, often found on streets or sidewalks.", + "A manhole cover is a heavy round metal lid with patterns or holes, flush with the ground, often found on streets.", + "Manhole covers are typically round metal discs with textured patterns, while similar objects vary in shape material and surface design.", + "Manhole covers are round metal discs with textured patterns and often have city names or logos embossed on them." + ], + "maraca": [ + "Maracas are handheld musical instruments with a round hollow body filled with beads or seeds and a long handle for shaking.", + "A maraca is a handheld musical instrument with a round hollow body filled with beads or seeds that rattle when shaken.", + "Maracas are recognized by their oval hollow bodies with handles and loose beads inside that create sound when shaken.", + "Maracas are handheld shakers with round hollow bodies filled with beads, unlike solid or differently shaped percussion instruments." + ], + "marimba": [ + "A marimba is a large wooden percussion instrument with tuned bars and resonators, resembling a xylophone but deeper in tone.", + "The marimba has wooden bars arranged like a keyboard with resonators underneath, unlike drums or xylophones which lack such tubes.", + "A marimba has long wooden bars arranged like a keyboard with resonators underneath, played with mallets, distinguishing it from other instruments.", + "The marimba has wooden bars arranged in a keyboard layout with resonators underneath each bar." + ], + "mask": [ + "A mask covers the face partially or fully hiding facial features while allowing visibility of the eyes or mouth.", + "Masks cover the face partially or fully while other objects do not typically obscure facial features in the same way.", + "Masks are typically face-sized coverings with straps or loops often showing eye holes and a textured or colored surface.", + "A mask is a facial covering typically made of fabric or plastic, often with straps to secure it over the nose and mouth." + ], + "matchstick": [ + "A matchstick is a small thin wooden or cardboard stick with a coated tip for striking to create fire.", + "A matchstick is a thin wooden stick with a colored tip and often a slightly rough or textured surface.", + "A matchstick has a small wooden stick with a colored tip coated in flammable material for striking.", + "Matchsticks are thin wooden sticks with a colored tip and uniform length, often bundled together in a small box." + ], + "maypole": [ + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with colorful ribbons, flowers, and wreaths, often seen in festive celebrations.", + "A maypole is a tall wooden pole decorated with ribbons and flowers, unlike other poles which are usually plain or functional.", + "A maypole is recognized by its tall wooden pole decorated with colorful ribbons, flowers, and often topped with a festive crown." + ], + "maze": [ + "A maze is a complex network of paths or walls designed to confuse and challenge navigation through its intricate patterns.", + "Mazes are recognized by their intricate, interconnected pathways forming complex patterns with no clear straight lines or simple shapes.", + "Mazes are flat complex patterns with interconnected paths while other objects have varied three-dimensional shapes and textures.", + "Mazes are intricate networks of winding paths or walls often forming symmetrical or geometric patterns with clear entry and exit points." + ], + "measuring cup": [ + "A measuring cup typically has a handle, spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup is a kitchen tool with a handle, spout, and marked lines to indicate volume for liquids or dry ingredients.", + "Measuring cups have a handle, pour spout, and clear markings for measuring liquids or dry ingredients.", + "A measuring cup has clear markings for measurements and a spout, unlike regular cups which are plain and lack these features." + ], + "medicine cabinet": [ + "A medicine cabinet is typically a small mirrored wall-mounted box with a door often found in bathrooms for storing medical items.", + "A medicine cabinet is a small mirrored storage box typically mounted on a wall in bathrooms for holding medicines and toiletries.", + "A medicine cabinet is a small wall-mounted storage unit with a mirrored door and shelves for holding medical supplies and toiletries.", + "A medicine cabinet typically has a mirrored door and shelves designed to store small medical or personal care items." + ], + "megalith": [ + "A megalith is a large ancient stone structure often standing upright or arranged in circles like Stonehenge.", + "Megaliths are large ancient stone structures, often standing upright or stacked, unlike smaller or naturally formed rocks and modern constructions.", + "Megaliths are large ancient stone structures often arranged in patterns or standing alone with rough weathered surfaces and massive scale.", + "Megaliths are large ancient stone structures often standing upright or arranged in circles with rough uneven surfaces and simple shapes." + ], + "microphone": [ + "A microphone is typically a slender device with a round or oval head on a stand or handheld body.", + "Microphones are typically slender with a grille or mesh head and often have a stand or cord unlike most other objects.", + "A microphone has a round mesh grille covering its top end to capture sound waves distinctly.", + "A microphone typically has a slender body with a rounded or mesh-covered top for sound capture and often a stand or base." + ], + "microwave oven": [ + "A microwave oven is a boxy appliance with a glass door, control panel, and often a turntable inside for even heating.", + "A microwave oven is a boxy kitchen appliance with a glass door, control panel, and often a turntable inside for heating food.", + "Microwave ovens have a square door with a window and control panel, unlike other kitchen appliances which vary in shape and features.", + "A microwave oven has a square door with a window, control panel, and handle, often mounted in a kitchen cabinet or countertop." + ], + "military uniform": [ + "Military uniforms have structured designs with badges and camouflage patterns distinguishing them from casual or formal civilian clothing.", + "Military uniforms are structured garments with distinct colors, insignia, and designs, often featuring camouflage, badges, and tailored fits for soldiers.", + "Military uniforms can be identified by their structured design, camouflage patterns, badges, and often include matching pants and jackets.", + "Military uniforms have distinct camouflage patterns, structured designs, badges, and often include headgear like berets or caps for easy recognition." + ], + "milk can": [ + "Milk cans are typically cylindrical with a handle, metallic finish, and a spout or lid for pouring or sealing.", + "A milk can typically has a cylindrical metal body with a handle and tight lid, unlike other containers which may vary in shape and material.", + "A milk can is a cylindrical metal container with a handle and a lid, often painted white or silver.", + "A milk can typically has a distinctive rounded body with a narrow neck and a hinged lid for pouring." + ], + "minibus": [ + "A minibus is a small boxy vehicle with multiple windows, seating rows, and sliding or hinged doors for passenger transport.", + "A minibus has a long rectangular body with multiple side windows for passenger seating and is smaller than a full-size bus.", + "A minibus is recognized by its elongated body, multiple side windows, and passenger seating capacity larger than a car but smaller than a full bus.", + "A minibus is a small passenger vehicle with a boxy shape, multiple windows, and seating for around ten to twenty people." + ], + "miniskirt": [ + "A miniskirt is a very short skirt ending well above the knees often made of lightweight fabric with a flared or straight cut.", + "A miniskirt is a short skirt ending well above the knees unlike longer skirts or dresses which extend below the knees.", + "A miniskirt is a short skirt typically ending well above the knees, often made of fabric and worn as fashionable clothing.", + "A miniskirt is recognized by its short length above the knees tight fit and often flared or pleated design on female clothing." + ], + "minivan": [ + "Minivans are boxy vehicles with sliding rear doors, large windows, and a tall roof for extra passenger and cargo space.", + "A minivan has a tall boxy shape with sliding rear doors and a spacious interior for passengers.", + "Minivans are boxy vehicles with sliding rear doors, high roofs, and spacious interiors designed for family transportation.", + "A minivan is a boxy vehicle with sliding doors, large windows, and a spacious interior designed for families." + ], + "missile": [ + "A missile is a long slender cylindrical object with fins and a pointed nose often seen flying or launching vertically.", + "Missiles are long, cylindrical, and often have fins or wings, unlike most objects which are more varied in shape and size.", + "A missile has a pointed nose cone and fins at the rear for aerodynamic stability.", + "Missiles are long slender tubes with fins or wings and pointed tips often seen flying or launching with a fiery exhaust trail." + ], + "mitten": [ + "Mittens are hand coverings with a single compartment for fingers and a separate one for the thumb, often made of thick warm material.", + "Mittens are small hand coverings with a single space for fingers, often made of wool or fabric, resembling thick stubby gloves.", + "Mittens have a single compartment for all fingers while gloves have individual slots for each finger.", + "Mittens are hand coverings with a single space for fingers and a separate thumb section, usually soft and often knitted or padded." + ], + "mixing bowl": [ + "A mixing bowl is typically round deep and wide with a smooth interior and often has a slight rim or pouring spout.", + "A mixing bowl has a wide shallow shape with a rounded bottom and high sides for easy stirring and mixing.", + "Mixing bowls are wide deep round containers with high curved sides and often a flat bottom for blending ingredients.", + "A mixing bowl is a deep round dish with a wide opening and often has a flat bottom for stability during food preparation." + ], + "mobile home": [ + "A mobile home is a rectangular, trailer-like structure with windows, a door, and often a small porch or steps.", + "A mobile home is a rectangular, elongated structure with windows, a door, and often a pitched roof, typically on wheels or a foundation.", + "Mobile homes are long rectangular structures with wheels, metal siding, and often have a trailer hitch at the front.", + "Mobile homes are long rectangular structures with wheels and a trailer hitch, resembling a small house on a chassis." + ], + "ford model t": [ + "The Ford Model T has a distinct boxy black body with large wheels and an open-top or enclosed cabin unlike most vehicles.", + "The Ford Model T is a classic black car with a boxy shape, large wheels, and a tall upright windshield.", + "The Ford Model T has a distinctive high square black body with large spoked wheels and a curved front hood.", + "The Ford Model T has a distinct boxy black body, large round headlights, and a tall narrow radiator grille." + ], + "modem": [ + "A modem is a small rectangular box with lights on the front and ports on the back for cables.", + "A modem is a small rectangular box with indicator lights and ports, unlike most household objects which lack these technical features.", + "A modem typically has multiple indicator lights and ports for cables on a small rectangular box.", + "A modem typically has a rectangular box shape with multiple ports, indicator lights, and antennas for wireless connectivity." + ], + "monastery": [ + "Monasteries are recognized by their large religious architecture with arched windows tall spires and often secluded peaceful surroundings.", + "A monastery is uniquely identified by its combination of religious architecture, secluded setting, and often a central courtyard or cloister.", + "Monasteries are large religious buildings with distinctive architectural features like domes, spires, and courtyards, unlike smaller or secular structures.", + "A monastery typically appears as a large stone or brick building with arches, towers, and religious symbols surrounded by peaceful gardens." + ], + "monitor": [ + "A monitor has a flat rectangular screen displaying images or text, distinguishing it from other objects.", + "A monitor has a flat rectangular screen with a bezel, often displaying images or text, and is typically placed on a desk or mounted.", + "Monitors are flat rectangular screens with thin bezels while other objects vary widely in shape size and material.", + "Monitors are flat rectangular screens with thin bezels often mounted on stands or attached to walls displaying images or videos." + ], + "moped": [ + "Mopeds have a small motorcycle-like frame with step-through design, small wheels, and often a visible engine or motor.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a compact engine between the wheels.", + "A moped looks like a small motorcycle with pedals, a step-through frame, and a small engine often under the seat.", + "Mopeds are small motorized bikes with step-through frames, small wheels, and often have a compact engine and minimal bodywork." + ], + "mortar and pestle": [ + "A mortar is a bowl and a pestle is a heavy club-shaped tool used together for grinding or crushing substances.", + "A mortar is a bowl and a pestle is a club-shaped tool used together for grinding or crushing substances.", + "A mortar is a sturdy bowl and a pestle is a heavy club-shaped tool used together to grind or crush substances.", + "A mortar and pestle is a bowl with a heavy club-like tool, unlike other kitchen items which are usually flat or have handles." + ], + "graduation cap": [ + "A graduation cap has a flat square top with a tassel hanging from the center and is typically worn with a gown.", + "A graduation cap has a flat square top and a tassel, unlike most hats which are rounded or lack a tassel.", + "A graduation cap is a flat square board with a tassel on top, usually black and worn on the head.", + "A graduation cap is a flat square board with a tassel attached to a center button on a skullcap." + ], + "mosque": [ + "Mosques can be identified by their domes minarets and large prayer halls often with intricate designs and arched entrances.", + "A mosque typically has domes minarets and large open prayer halls unlike other buildings which lack these distinct Islamic architectural features.", + "Mosques are recognized by their domes minarets and large prayer halls often with intricate geometric patterns and arched doorways.", + "A mosque typically has domes minarets and large open prayer halls often decorated with intricate geometric patterns and calligraphy." + ], + "mosquito net": [ + "A mosquito net is a fine, lightweight, often white or translucent mesh fabric hung loosely around beds or windows to block insects.", + "Mosquito nets are lightweight, finely woven, and often white or translucent, designed to drape over beds or windows for insect protection.", + "Mosquito nets are lightweight finely woven mesh fabrics typically hung above beds to protect against insects with a delicate see-through texture.", + "A mosquito net is a fine mesh fabric draped over beds or windows to keep insects out while allowing air flow." + ], + "vespa": [ + "Vespas have a distinctive sleek curved body, small wheels, and a prominent front shield with a single headlight.", + "A vespa is a small sleek motor scooter with a rounded body step through frame and often bright colors.", + "Vespas are small scooters with a sleek curved body, rounded front shield, and often bright colors or chrome details.", + "The unique visual cue of a vespa is its distinctive curved body shape with a narrow waist and bold striped coloration." + ], + "mountain bike": [ + "Mountain bikes have wide knobby tires a sturdy frame flat handlebars and a suspension system for rough terrain.", + "Mountain bikes have a sturdy frame, wide knobby tires, and suspension systems for rough terrain unlike smoother road bikes or motorcycles.", + "Mountain bikes have rugged frames, wide knobby tires, flat handlebars, and suspension systems for off-road terrain.", + "Mountain bikes have wide knobby tires and a sturdy frame designed for rough off-road terrain." + ], + "tent": [ + "A tent is a portable shelter made of fabric or similar material stretched over a frame, often used for camping outdoors.", + "A tent is a portable shelter made of fabric or similar material stretched over poles and secured to the ground with ropes.", + "Tents are typically made of fabric with poles and have a distinctive triangular or dome shape for shelter outdoors.", + "Tents have a triangular or dome shape with fabric stretched over a frame and often have zippered openings for entry." + ], + "computer mouse": [ + "A computer mouse is a small handheld device with buttons and a scroll wheel, often shaped like an oval with a cord or wireless.", + "A computer mouse has a distinctive elongated body with a scroll wheel between two buttons and a cord or wireless sensor underneath.", + "A computer mouse is small, handheld, typically has buttons and a scroll wheel, and connects via wire or wireless dongle.", + "A computer mouse has a small oblong shape with buttons, a scroll wheel, and a cord or wireless receiver for easy identification." + ], + "mousetrap": [ + "A mousetrap is a small wooden or plastic device with a spring-loaded bar designed to catch and kill mice.", + "A mousetrap is a small rectangular device with a spring-loaded metal bar and a bait holder, often made of wood or plastic.", + "A mousetrap typically has a spring-loaded metal bar and a small wooden or plastic base, unlike most household objects.", + "A mousetrap typically has a spring-loaded metal bar, a bait trigger, and a wooden or plastic base to catch mice." + ], + "moving van": [ + "A moving van is a large rectangular truck with a boxy shape, often white or plain-colored, used for transporting furniture and household goods.", + "A moving van typically has large bold lettering and branding on its sides for identification and advertising purposes.", + "Moving vans are large boxy vehicles with plain colors and often have company logos or advertisements on their sides.", + "A moving van is a large rectangular truck often painted white or with company logos and has a tall enclosed cargo area." + ], + "muzzle": [ + "A muzzle is a strap or cage covering an animal's snout while similar objects like masks or guards serve different purposes or cover other areas.", + "A muzzle is a protruding mouth and nose area of an animal, often covered in fur or leather, with visible nostrils and straps.", + "A muzzle is a protruding part of an animal's face covering the mouth and nose often made of leather or metal straps.", + "A muzzle is a strap or cage fitted over an animal's snout to prevent biting or eating, resembling a snug mesh or leather cover." + ], + "metal nail": [ + "A metal nail is a slender, straight, pointed object with a smooth or ridged shaft and a flat or rounded head.", + "A metal nail is a small slender shiny object with a smooth cylindrical shaft and a flat or slightly rounded head.", + "A metal nail has a slender pointed tip and a smooth cylindrical shaft with a flat head.", + "Metal nails are slender, straight, and shiny with a pointed tip and smooth or ridged surface, unlike bulkier or irregularly shaped objects." + ], + "neck brace": [ + "A neck brace is a rigid medical collar that supports the head and limits neck movement for injury recovery or spinal stability.", + "A neck brace is a rigid or padded support device worn around the neck to immobilize and protect it from movement.", + "A neck brace is a rigid or padded support worn around the neck, unlike other objects which are not designed for neck support.", + "A rigid orthopedic device worn around the neck to support and immobilize the head and spine." + ], + "necklace": [ + "A necklace is a slender decorative chain or string of beads, gems, or pearls worn around the neck.", + "A necklace is a decorative chain or string of beads gems or metal worn around the neck often shiny and delicate.", + "A necklace is a decorative chain or string of beads, gems, or metal worn around the neck for adornment.", + "A necklace is a flexible decorative chain worn around the neck, unlike rigid or non-wearable items like pendants or collars." + ], + "baby pacifier": [ + "A baby pacifier is a small nipple-shaped object with a shield and handle, usually made of soft silicone or rubber.", + "A baby pacifier is a small nipple-shaped object with a shield and handle, often made of soft silicone or rubber.", + "A baby pacifier has a nipple-shaped teat, a shield to prevent swallowing, and often a ring or handle for easy gripping.", + "A baby pacifier has a small nipple-shaped mouthpiece attached to a flat shield often with a handle or ring." + ], + "notebook computer": [ + "A notebook computer is a thin flat rectangular device with a screen and keyboard, unlike bulkier or differently shaped electronics and objects.", + "A notebook computer is a thin, flat, rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is a thin rectangular device with a screen on one side and a keyboard on the other.", + "A notebook computer is recognized by its thin rectangular shape, hinged screen, keyboard, and compact portable design." + ], + "obelisk": [ + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like point at the top.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, often standing alone or as a monument.", + "An obelisk is a tall, narrow, four-sided stone pillar that tapers to a pyramid-like top, unlike most other objects." + ], + "oboe": [ + "The oboe is a slender wooden wind instrument with metal keys, distinguished by its conical bore and double reed mouthpiece.", + "An oboe is a slender wooden wind instrument with a conical bore, metal keys, and a flared bell at the bottom.", + "An oboe is a slender wooden wind instrument with a long black body, silver keys, and a double reed at the top.", + "The oboe has a long black wooden body with silver keys and a distinct double reed at the top." + ], + "ocarina": [ + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often shaped like an egg or sweet potato.", + "An ocarina is a small handheld wind instrument with an oval or round body and finger holes unlike larger or differently shaped instruments.", + "An ocarina is a small, rounded wind instrument with finger holes and a mouthpiece, often made of clay or ceramic.", + "The ocarina is recognized by its small egg-shaped body with finger holes and a mouthpiece for blowing." + ], + "odometer": [ + "An odometer is a small rectangular device with a digital or mechanical display showing mileage numbers inside a vehicle dashboard.", + "An odometer is a small digital or mechanical display in a vehicle dashboard showing mileage unlike larger or non-numeric objects.", + "An odometer has a numeric display showing mileage, often with rotating digits or a digital screen, set within a vehicle dashboard.", + "Odometers are small rectangular displays with numbers showing mileage often found on a vehicle's dashboard near the steering wheel." + ], + "oil filter": [ + "An oil filter is a cylindrical metal can with a ridged surface and a threaded hole on one end.", + "An oil filter is typically a cylindrical metal can with a textured surface and a threaded hole on one end.", + "Oil filters are cylindrical with threaded ends, often metal, and have a ridged or textured surface for grip and a central hole.", + "An oil filter is typically cylindrical, metal, and smaller than most car parts, with a ridged or smooth surface and threaded ends." + ], + "pipe organ": [ + "A pipe organ has tall vertical pipes arranged in rows, unlike most objects which are compact or irregularly shaped.", + "A pipe organ is a large musical instrument with rows of vertical pipes, often found in churches and concert halls.", + "A pipe organ is identified by its large size, multiple vertical pipes of varying heights, and a keyboard console at the base.", + "A pipe organ has tall vertical pipes arranged in rows, often with intricate designs and a large keyboard console at the base." + ], + "oscilloscope": [ + "An oscilloscope is a rectangular electronic device with a screen, knobs, and buttons, resembling a small boxy monitor with control panels.", + "An oscilloscope has a rectangular screen with grid lines, control knobs, and input ports on a flat or slightly angled panel.", + "Oscilloscopes have a rectangular screen with grid lines displaying waveform graphs and multiple knobs or buttons for control settings.", + "An oscilloscope has a rectangular screen with grid lines and multiple knobs and buttons for controlling electronic signal displays." + ], + "overskirt": [ + "An overskirt is a decorative outer skirt worn over another skirt, often layered and flowing for added volume or style.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or sheer, extending slightly shorter or longer than the underlayer.", + "An overskirt is a decorative outer skirt layered over another skirt, often shorter and more ornate than regular skirts.", + "An overskirt is a decorative outer skirt layered over another skirt, often ruffled or flared, adding volume and contrasting fabric." + ], + "bullock cart": [ + "A bullock cart is a wooden cart with two large wheels pulled by oxen, typically used for transporting goods or people.", + "A bullock cart has a wooden or metal frame with two large wheels pulled by oxen, often carrying loads or people.", + "A bullock cart is a wooden cart with two large wheels pulled by oxen, often with a flat or curved platform for carrying loads.", + "A bullock cart has a wooden frame with large wheels pulled by oxen, unlike vehicles with engines or smaller animal-drawn carts." + ], + "oxygen mask": [ + "An oxygen mask is a clear or translucent plastic cup covering the nose and mouth with elastic straps around the head.", + "An oxygen mask is a clear plastic cup covering the nose and mouth with elastic straps to secure it around the head.", + "Oxygen masks have a clear plastic cup shape with elastic straps unlike most objects which lack these specific features.", + "An oxygen mask has a clear plastic cup shape with elastic straps and a tube for delivering oxygen to the face." + ], + "product packet / packaging": [ + "Product packaging typically has uniform shapes, logos, labels, and bright colors designed to attract attention and protect contents.", + "Product packaging typically appears as boxes, bags, or containers with labels, logos, and designs to hold and protect items for sale.", + "Look for rectangular shapes with labels logos or barcodes often made of cardboard plastic or shiny materials.", + "Product packaging stands out with logos barcodes brand names colorful designs and uniform shapes for easy identification on shelves." + ], + "paddle": [ + "A paddle is a long flat tool with a handle used for rowing or stirring, typically narrow and often made of wood or plastic.", + "A paddle is a long flat tool with a broad end, often tapered, used for stirring or moving through water.", + "Paddles are long, flat, and often have a handle at one end, unlike other objects which vary more in shape and size.", + "A paddle is long flat and often tapered with a handle used for propelling or steering boats through water." + ], + "paddle wheel": [ + "A paddle wheel has large flat blades arranged evenly around a central hub, often seen on boats or in water.", + "The paddle wheel has large flat blades arranged radially around a central hub for pushing water.", + "A paddle wheel is a large circular frame with flat blades around its rim used to propel boats through water.", + "A paddle wheel has large flat blades arranged radially around a central hub, often seen on boats or watercraft for propulsion." + ], + "padlock": [ + "A padlock is a small metal device with a U-shaped bar that snaps into a solid body to secure things.", + "Padlocks are small metal devices with a U-shaped bar that swings open when unlocked and snaps shut when locked.", + "Padlocks are small metal devices with a shackle that opens with a key or combination unlike most objects which lack these features.", + "A padlock has a small metal body with a U-shaped shackle that opens when unlocked and secures when closed." + ], + "paintbrush": [ + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end used for applying paint or ink.", + "A paintbrush has a long thin handle with bristles or fibers at one end often appearing stiff or slightly fanned out.", + "A paintbrush has bristles on one end and a long handle, unlike most objects which lack bristles and vary in shape." + ], + "pajamas": [ + "Pajamas are loose, soft clothing typically with long sleeves and pants, often in simple patterns or solid colors.", + "Pajamas are loose, comfortable clothing typically made of soft fabric, often featuring pants and a matching top, designed for sleeping.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns or stripes, typically worn for sleep or lounging.", + "Pajamas are loose, soft clothing with simple designs, often featuring patterns like stripes or prints, typically worn for sleep." + ], + "palace": [ + "Palaces are large grand buildings with ornate designs, while other objects vary widely in size shape and simplicity.", + "Palaces are recognized by grand architectural designs, large ornate facades, towering domes, intricate details, and expansive surrounding gardens or courtyards.", + "Palaces are large, grand buildings with ornate designs, tall columns, domes, and expansive facades often surrounded by gardens or walls.", + "Palaces are uniquely distinguished by their grand architectural designs featuring ornate details and expansive structures often surrounded by landscaped gardens." + ], + "pan flute": [ + "The pan flute has multiple vertical tubes of varying lengths bound together unlike most instruments which are solid or have strings.", + "A pan flute is a set of vertical tubes of varying lengths bound together side by side often made from bamboo or wood.", + "The pan flute has multiple vertical pipes of varying lengths bound together in a curved or straight row producing distinct sound.", + "The pan flute is a row of hollow tubes of varying lengths bound together horizontally, resembling a set of vertical pipes." + ], + "paper towel": [ + "A paper towel is a thin, rectangular sheet of absorbent paper, often white or patterned, usually found in rolls or folded stacks.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface designed for absorbing liquids.", + "Paper towels are thin, rectangular, and often perforated with a soft, slightly textured surface, usually white or patterned.", + "Paper towels are thin, rectangular, often white or patterned sheets with a slightly textured surface for absorbing liquids." + ], + "parachute": [ + "A parachute is a large, lightweight canopy with strings, used to slow descent, typically made of fabric and shaped like an umbrella.", + "A parachute is a large, lightweight canopy with strings, often brightly colored, used to slow descent through the air.", + "A parachute is a large, lightweight fabric canopy with strings, used for slowing descent, unlike compact or rigid objects.", + "Parachutes have a large, round canopy with suspension lines and a harness, often seen open in midair during descent." + ], + "parallel bars": [ + "Parallel bars are long horizontal metal bars mounted on vertical supports, distinct from single bars or gym equipment like rings or beams.", + "Parallel bars are two horizontal rails of equal length spaced apart, typically used in gymnastics for exercises and routines.", + "Parallel bars have two long horizontal bars of equal length positioned parallel to each other at a fixed distance apart.", + "Parallel bars are long horizontal metal rails supported by vertical stands, used in gymnastics for exercises and routines." + ], + "park bench": [ + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces for resting.", + "A park bench is a long wooden or metal seat with a backrest, often found outdoors in public spaces.", + "A park bench is a long wooden or metal seat with a backrest, often found in outdoor public spaces.", + "A park bench is a long outdoor seat with a backrest and armrests, typically made of wood or metal, placed in public spaces." + ], + "parking meter": [ + "Parking meters have a tall narrow body with a coin slot, display screen, and often a metal pole or post for mounting.", + "Parking meters are small metal boxes with a coin slot, display screen, and often a pole or post for mounting.", + "A parking meter is a small upright metal box with a coin slot, display screen, and timer, often mounted on a pole.", + "Parking meters are small metal boxes with a coin slot and display screen mounted on poles near streets for parking payment." + ], + "railroad car": [ + "A railroad car is a long rectangular vehicle with wheels designed to run on tracks typically used for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels designed to run on tracks often connected in a series for transporting goods or passengers.", + "Railroad cars have long rectangular bodies with multiple wheels aligned in pairs on tracks for transporting goods or passengers.", + "Railroad cars are long rectangular vehicles with wheels, often connected in series, used for transporting goods or passengers on tracks." + ], + "patio": [ + "A patio is an outdoor paved area with furniture or plants often adjacent to a house and designed for relaxation or dining.", + "A patio is an outdoor space with paved flooring, often featuring furniture and surrounded by gardens or walls.", + "Patios are flat outdoor spaces with furniture or plants, often made of stone or wood, connected to a house or building.", + "Patios are flat outdoor surfaces made of stone or concrete, often with furniture, unlike grassy lawns or enclosed indoor spaces." + ], + "payphone": [ + "A payphone is a standalone booth or wall-mounted unit with a keypad, handset, and coin slot, unlike mobile phones or other communication devices.", + "A payphone is a tall metal box with a coin slot, keypad, and a handset attached by a coiled cord.", + "A payphone has a coin slot, handset on a cord, keypad, and is mounted on a stand or wall in public spaces.", + "A payphone has a distinctive handset attached to a metal box with a keypad and coin slot." + ], + "pedestal": [ + "A pedestal is a flat-topped stand or base that supports other objects, often decorative and taller than typical stands.", + "A pedestal is a raised base supporting an object, often decorative, with a simple sturdy shape contrasting the item it holds.", + "A pedestal is a sturdy base with a flat top, often plain or slightly decorated, supporting statues or other displayed objects.", + "A pedestal is a sturdy base or support that elevates and displays objects like statues vases or trophies often decorative and simple." + ], + "pencil case": [ + "A pencil case is a small rectangular pouch often made of fabric or plastic with a zipper to hold writing tools.", + "A pencil case is a small container usually rectangular or cylindrical with a zipper or snap closure to hold writing tools.", + "A pencil case is a small rectangular pouch with a zipper or snap closure designed to hold pens pencils and other stationery items.", + "A pencil case is typically a small rectangular pouch with a zipper or snap closure often made of fabric plastic or leather." + ], + "pencil sharpener": [ + "A pencil sharpener is a small handheld or mounted device with a blade or mechanism to sharpen pencils to a fine point.", + "A pencil sharpener is typically small with a blade hole for pencils and a container for shavings often made of metal or plastic.", + "A pencil sharpener has a small blade inside a cylindrical or rectangular body with a hole to insert and rotate the pencil.", + "A pencil sharpener has a small, cylindrical hole designed specifically to hold and sharpen pencil tips." + ], + "perfume": [ + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside, unlike most everyday objects.", + "Perfume bottles are typically small, elegant glass containers with decorative caps and often have liquid inside showing through clear glass.", + "Perfume typically appears as small elegant glass bottles with decorative caps and often a spray nozzle.", + "Perfume bottles are small often decorative glass containers with spray nozzles or stoppers and colorful liquid inside." + ], + "Petri dish": [ + "A Petri dish is a shallow, clear, round glass or plastic dish with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic container with a flat bottom and a loose-fitting lid.", + "A Petri dish is a shallow, clear, round glass or plastic dish with a lid, unlike most objects which are solid and opaque.", + "A Petri dish is a shallow transparent cylindrical lidded container used for culturing cells or bacteria in labs." + ], + "photocopier": [ + "Photocopiers are rectangular machines with a flat glass surface, paper trays, and control panels often found in offices.", + "A photocopier is a large rectangular machine with a flat glass top for scanning and paper trays on the side.", + "A photocopier is a large boxy machine with a flat glass surface for scanning and paper trays, unlike smaller simpler office devices.", + "A photocopier is a large boxy machine with a flat glass top for scanning and paper trays on the side." + ], + "plectrum": [ + "A plectrum is a small flat tool, usually triangular, made of plastic or metal, used to pluck or strum stringed instruments.", + "A plectrum is small flat and triangular with a pointed tip used to pluck strings on musical instruments like guitars.", + "A plectrum is a small flat tool with a pointed tip, unlike similar objects which may be larger or differently shaped.", + "A plectrum is small flat and often triangular with smooth edges made of plastic metal or other materials for picking strings." + ], + "Pickelhaube": [ + "The Pickelhaube has a distinctive pointed metal spike on top, unlike other helmets which are smooth or rounded.", + "The Pickelhaube has a distinctive pointed metal spike on top of its helmet.", + "A Pickelhaube is a spiked helmet with a rounded metal top and a prominent front spike, typically made of leather or metal.", + "A Pickelhaube is a spiked helmet with a round metal base, a tall front spike, and often has a chin strap and decorative elements." + ], + "picket fence": [ + "A picket fence is a white wooden fence with evenly spaced vertical slats and a horizontal top and bottom rail.", + "A picket fence is a short wooden fence with evenly spaced vertical boards and a horizontal rail, often painted white.", + "A picket fence has evenly spaced vertical wooden slats with pointed tops attached to horizontal rails.", + "A picket fence has evenly spaced vertical wooden slats attached to horizontal rails, unlike solid walls or chain-link fences." + ], + "pickup truck": [ + "Pickup trucks have a cab with seats and an open cargo bed at the back for hauling items.", + "A pickup truck is a rugged vehicle with an open cargo bed, four wheels, and a cab for passengers.", + "Pickup trucks have a cab and an open cargo bed, unlike cars or SUVs which are fully enclosed or vans which have a boxy shape.", + "Pickup trucks have a cab with seats and an open flatbed at the back for hauling items." + ], + "pier": [ + "A pier is a long wooden or concrete structure extending over water, supported by pillars, used for walking, docking boats, or fishing.", + "A pier is a long wooden or metal structure extending into water supported by pillars with boats or people nearby.", + "A pier is a long narrow structure extending into water supported by pillars unlike docks or wharves which are usually solid and shore-connected.", + "Piers are long structures extending over water supported by pillars often with railings and used for docking boats or walking." + ], + "piggy bank": [ + "Piggy banks are typically shaped like pigs with a coin slot, while other objects vary widely in form and function.", + "Piggy banks are typically small, shaped like pigs with a coin slot on top, often made of ceramic or plastic.", + "A piggy bank is a small, often round container shaped like a pig with a slot for saving coins.", + "A piggy bank is typically a small hollow pig-shaped container with a slot on top for inserting coins." + ], + "pill bottle": [ + "Pill bottles are small cylindrical containers with labels and child-resistant caps often in white or orange plastic.", + "Pill bottles are small cylindrical containers with labels and childproof caps unlike similar objects which vary in shape size and lid type.", + "A pill bottle is a small cylindrical container with a child-resistant cap, often made of translucent plastic and labeled with medication information.", + "Pill bottles are typically small cylindrical containers with childproof caps and often have white labels and orange translucent plastic." + ], + "pillow": [ + "Pillows are soft rectangular objects with fabric covers often found on beds or couches for comfort and support.", + "Pillows are soft rectangular cushions often with fabric covers while other objects vary in shape texture and material like hard or angular surfaces.", + "A pillow is a soft rectangular cushion often with fabric covering used for head or body support during rest or sleep.", + "A pillow is a soft rectangular or square object with a smooth fabric cover often slightly puffed and used for head support." + ], + "ping-pong ball": [ + "Ping-pong balls are small, white, lightweight, and perfectly round with a smooth matte surface unlike most other balls.", + "A ping-pong ball is small, white or orange, smooth, lightweight, and perfectly round with a matte finish.", + "A ping-pong ball is small, lightweight, white or orange, smooth, matte, and spherical with a distinctive hollow sound when bounced.", + "A ping-pong ball is small, white or orange, lightweight, spherical, and has a smooth, matte surface with a slightly shiny finish." + ], + "pinwheel": [ + "Pinwheels are colorful spinning toys with radiating blades or petals attached to a central stick or rod.", + "A pinwheel is a colorful toy with spinning blades attached to a stick that twirls in the wind.", + "Pinwheels are recognized by their colorful spinning blades attached to a central axis on a stick, often with a wind-catching design.", + "Pinwheels have colorful spinning blades attached to a stick while similar objects lack these moving parts or bright designs." + ], + "pirate ship": [ + "Pirate ships have tall masts, sails, wooden hulls, and often feature flags or cannons unlike modern boats or other vessels.", + "A pirate ship is a large wooden sailing vessel with tall masts, sails, and often features a Jolly Roger flag.", + "Pirate ships have tall masts with multiple sails, wooden hulls, Jolly Roger flags, and often cannons visible on the sides.", + "A pirate ship is uniquely identified by its black flag with a white skull and crossbones." + ], + "drink pitcher": [ + "A drink pitcher typically has a handle, a spout, and a tall narrow body designed for pouring liquids easily.", + "A drink pitcher is a tall container with a handle and spout, usually made of glass or plastic for pouring liquids.", + "A drink pitcher typically has a handle, a spout, and a tall cylindrical shape for pouring liquids easily.", + "A drink pitcher typically has a prominent spout for pouring liquids and a handle for easy gripping." + ], + "block plane": [ + "A block plane is a small hand tool with a low-angle blade for smoothing wood, distinguished by its compact size and flat sole.", + "A block plane is smaller with a low-angle blade and simple design compared to larger more complex woodworking planes.", + "A block plane is a small hand tool with a flat metal body and a sharp blade for smoothing wood surfaces.", + "A block plane has a compact metal body with a low-angle blade set close to the front edge." + ], + "planetarium": [ + "A planetarium is a dome-shaped building or room with a projector displaying stars and celestial objects on the ceiling.", + "A planetarium is a domed building or room with a projector displaying stars and planets unlike regular buildings or natural objects.", + "A planetarium typically appears as a large dome-shaped building with a round or hemispherical roof and often has a futuristic or scientific design.", + "A planetarium is recognized by its domed ceiling displaying projected stars and celestial scenes in a dark, theater-like setting." + ], + "plastic bag": [ + "A plastic bag is a thin, lightweight, often crinkly and translucent or colored container made of flexible plastic material.", + "Plastic bags are thin, crinkly, often transparent or brightly colored, and have handles or folds for carrying items.", + "Plastic bags are thin, crinkly, and often transparent or semi-transparent, unlike most objects which are solid and rigid.", + "A plastic bag is thin, crinkly, often transparent or colored, and has a smooth, shiny surface with folds or wrinkles." + ], + "plate rack": [ + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright and separate unlike most other storage objects.", + "A plate rack is a shelf or stand with slots or hooks designed to hold plates upright for drying or storage.", + "A plate rack has evenly spaced horizontal bars or slots designed to hold plates upright for drying or storage.", + "A plate rack is a flat open shelf or stand with slots or pegs to hold plates vertically for drying or storage." + ], + "farm plow": [ + "A farm plow is a large metal blade with handles or wheels used to turn over soil in fields for planting crops.", + "A farm plow has a large curved metal blade and handles, distinct from smaller or differently shaped farming tools and equipment.", + "A farm plow has a large curved metal blade designed to turn over soil for planting crops.", + "A farm plow has a large curved metal blade attached to a frame, often pulled by animals or tractors, used for tilling soil." + ], + "plunger": [ + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger has a rubber suction cup on a straight wooden or plastic handle used for unclogging drains.", + "A plunger typically has a rubber suction cup on a straight wooden or plastic handle used for clearing clogged drains.", + "A plunger has a rubber suction cup on a straight handle, unlike most tools which have varied shapes and materials." + ], + "Polaroid camera": [ + "A Polaroid camera is a rectangular instant film device with a lens viewfinder and a slot for ejecting printed photos.", + "A Polaroid camera is a rectangular box with a lens, viewfinder, and a slot for instant photos to eject from.", + "Polaroid cameras are square-shaped with a lens on top and a slot for instant photos, unlike most cameras or everyday objects.", + "Polaroid cameras have a square body with a lens on one side and a slot for instant photos to eject on the other." + ], + "pole": [ + "A pole is a long, slender, vertical or horizontal object with a uniform shape and minimal width compared to its length.", + "A pole is a long, slender, vertical or horizontal rod, often made of wood or metal, used for support or structure.", + "A pole is a long, slender, vertical structure often made of wood or metal, used for support or marking boundaries.", + "Poles are long, thin, and straight, often vertical, while other objects vary more in shape, size, and orientation." + ], + "police van": [ + "Police vans are large boxy vehicles with emergency lights, sirens, and often marked with police logos or colors.", + "Police vans are boxy with barred windows and often have official markings or lights distinguishing them from regular vehicles.", + "A police van is a large, boxy vehicle with emergency lights, often painted in bold colors like white or black with police markings.", + "Police vans are typically boxy with emergency lights, bold lettering, and a sturdy design often in black, white, or blue colors." + ], + "poncho": [ + "A poncho is a sleeveless garment with an opening for the head, made from a single piece of fabric or waterproof material.", + "A poncho is a loose outer garment with a simple opening for the head and no sleeves, often made from wool or waterproof fabric.", + "A poncho is a large, flat piece of fabric with a head hole, while similar items like cloaks or capes often have sleeves or fasteners.", + "A poncho is uniquely identified by its large flat fabric with a central head opening and no sleeves." + ], + "pool table": [ + "A pool table has a flat rectangular surface with pockets and felt covering, distinct from most furniture or sports equipment.", + "A pool table is a large rectangular surface covered with green felt and surrounded by cushioned edges with pockets in the corners.", + "A pool table is a large rectangular surface with a green felt covering, six pockets, and wooden or metal rails around the edges.", + "A pool table has a distinctive green felt surface with six pockets and marked rails for playing billiards." + ], + "soda bottle": [ + "Soda bottles are typically tall cylindrical containers with narrow necks and labels, often made of clear or colored plastic.", + "A soda bottle is a tall cylindrical container with a narrow neck, often made of plastic or glass, and usually has a label.", + "Soda bottles are typically tall cylindrical containers with colorful labels and a narrow neck often capped with a twist-off or pop-top lid.", + "Soda bottles are typically tall cylindrical containers with narrow necks often labeled with colorful branding and sometimes have ridges or curves." + ], + "plant pot": [ + "Plant pots are typically round or square containers with open tops, made of clay or plastic, often holding soil and plants.", + "A plant pot is typically a small container with an open top, often made of clay or plastic, holding soil and plants.", + "Plant pots are typically round or square containers with open tops and drainage holes, often made of clay or plastic.", + "A plant pot is a small container, usually round or square, made of clay, plastic, or ceramic, designed to hold plants." + ], + "potter's wheel": [ + "A potter's wheel is a flat spinning disk on a stand with a foot pedal or motor for shaping clay.", + "A potter's wheel is a flat spinning disk on a stand, unlike stationary tools or decorative items that don't rotate.", + "A potter's wheel is a flat rotating disk on a stand used for shaping clay with hands or tools.", + "A potter's wheel has a spinning flat disk where clay is shaped by hand while rotating." + ], + "power drill": [ + "A power drill has a rotating chuck at the front that holds interchangeable bits for drilling or driving screws.", + "A power drill has a cylindrical body, trigger handle, rotating chuck, and often a cord or battery pack for operation.", + "A power drill is a handheld tool with a trigger grip, cylindrical body, and rotating bit for drilling holes or driving screws.", + "Power drills have a distinct pistol grip with a rotating chuck and trigger, unlike other tools which lack these combined features." + ], + "prayer rug": [ + "Prayer rugs have intricate patterns, a central arch or niche design, and are often rectangular with rich colors and detailed borders.", + "A prayer rug is a small rectangular fabric with intricate designs often featuring geometric patterns or mosque motifs.", + "Prayer rugs are rectangular with intricate patterns often featuring a niche design pointing towards the direction of prayer.", + "A prayer rug has a distinct arched or mihrab design pointing towards Mecca for proper orientation during prayer." + ], + "printer": [ + "Printers are typically boxy with flat surfaces, buttons, and paper trays, unlike other objects which vary more in shape and function.", + "A printer is a rectangular box with buttons, a paper tray, and often a display screen for printing documents and images.", + "Printers are boxy with flat tops, often have paper trays, display panels, and multiple buttons or slots for paper and ink.", + "Printers are typically rectangular with a flat top, control panel, paper tray, and often have a sleek design with brand logos." + ], + "prison": [ + "Prisons are large secure buildings with fences and barred windows unlike ordinary structures which are open and less fortified.", + "Prisons have high walls with barbed wire, guard towers, barred windows, and uniform rows of cell blocks inside secure perimeters.", + "Prisons are identified by high walls with barbed wire, guard towers, barred windows, and large secure gates.", + "Prisons typically resemble large fortified buildings with high walls, barred windows, and heavy gates surrounded by fences or barbed wire." + ], + "projector": [ + "A projector is recognized by its lens light source and rectangular shape used to display images or videos on surfaces.", + "A projector is typically a rectangular box with a lens on one side and vents for cooling on the sides or back.", + "A projector is a rectangular device with a lens on one side and often has vents and input ports on the back.", + "Projectors are rectangular with a lens at the front while similar objects like TVs or monitors lack lenses and are often flatter." + ], + "hockey puck": [ + "A hockey puck is a flat, hard, black rubber disc, much smaller and simpler than most other sports equipment or round objects.", + "A hockey puck is a small, flat, hard black disc with smooth edges and uniform thickness used in ice hockey games.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a slightly raised rim.", + "A hockey puck is a small, flat, black rubber disc with smooth edges and a uniform circular shape." + ], + "punching bag": [ + "A punching bag is a cylindrical or teardrop-shaped object typically made of leather or vinyl, hanging from a chain or rope.", + "A punching bag is a tall cylindrical or teardrop-shaped object usually made of leather or vinyl hanging from a chain or rope.", + "A punching bag is typically cylindrical, hangs from a chain or rope, and is made of leather or synthetic material.", + "A punching bag is a cylindrical or teardrop-shaped object hung vertically, often made of leather or vinyl, used for striking in training." + ], + "purse": [ + "A purse is a small bag with a handle or strap used to carry personal items like money and makeup.", + "Purses are small handheld bags with straps or handles used to carry personal items like money and makeup.", + "A purse is typically a small soft bag with a handle or strap, often made of leather or fabric, designed to hold personal items.", + "A purse is a small stylish bag with straps, often made of leather or fabric, used to carry personal items like money and makeup." + ], + "quill": [ + "A quill is a long feather with a sharpened tip, unlike pens or pencils which are solid and lack natural feathery textures.", + "A quill has a long feather with a sharpened tip used for writing, distinct from other objects.", + "A quill is a long feather with a sharp pointed tip and hollow shaft, often used for writing with ink.", + "A quill is a slender writing tool with a pointed feather at one end and an ink-dipped tip at the other." + ], + "quilt": [ + "Quilts are thick fabric layers stitched in decorative patterns unlike flat sheets or plain blankets.", + "A quilt is a thick, soft bed cover made of stitched fabric layers, often with colorful patterns or patchwork designs.", + "A quilt is a layered textile with stitching patterns often featuring colorful fabric squares or rectangles sewn together.", + "Quilts have distinct patchwork patterns, stitching lines, and layered fabric textures that set them apart from other textiles and household items." + ], + "race car": [ + "Race cars are sleek low vehicles with bold colors sponsor logos large rear wings and aerodynamic shapes for speed.", + "Race cars are sleek, low-profile vehicles with bold colors and sponsor logos, designed for speed and aerodynamics unlike everyday cars.", + "Race cars have sleek aerodynamic designs vibrant colors sponsor logos and large rear wings for high speed performance.", + "Race cars have sleek aerodynamic bodies with large spoilers and bold racing decals for high-speed performance and branding." + ], + "racket": [ + "A racket has a long handle with a flat oval or round head strung with a tight mesh or netting.", + "Rackets have a long handle and a flat oval or round frame with strings or mesh stretched across it.", + "A racket typically has a long handle and an oval frame with a tightly strung netting for hitting balls in sports.", + "Rackets have a long handle with a circular or oval frame strung with a tight mesh netting for hitting balls." + ], + "radiator": [ + "A radiator is typically a flat metal panel with vertical or horizontal fins used for heating and often mounted on walls.", + "A radiator is a metal device with fins or coils, often wall-mounted, used for heating rooms by circulating hot water or steam.", + "Radiators have a series of evenly spaced metal fins or tubes designed for heat dissipation.", + "A radiator is a metal panel with fins or pipes, often wall-mounted, while similar objects lack these distinct heat-dissipating features." + ], + "radio": [ + "Radios have dials, buttons, speakers, and often a rectangular shape with a display screen or frequency tuner.", + "Radios typically have dials, buttons, and speakers, while other objects vary widely in shape, size, and functional features.", + "A radio typically has a rectangular body with buttons dials and an antenna often displaying a speaker grille or digital screen.", + "Radios typically have dials, buttons, speakers, and an antenna, often housed in a rectangular or boxy shape with a display screen." + ], + "radio telescope": [ + "A radio telescope is a large dish or array of dishes often mounted on a movable structure for capturing radio waves from space.", + "Radio telescopes have large dish-shaped reflectors and support structures, unlike smaller or differently shaped objects like satellites or antennas.", + "A radio telescope has a large parabolic dish for capturing radio waves from space.", + "A radio telescope is a large dish-shaped structure with a central receiver used to detect radio waves from space." + ], + "rain barrel": [ + "A rain barrel is a cylindrical container with a spout or hose attachment, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a cylindrical container with a spigot, often made of plastic or wood, designed to collect and store rainwater.", + "A rain barrel is typically a cylindrical container with a spout, often made of plastic or wood, used to collect rainwater.", + "A rain barrel is a large cylindrical container, often made of plastic or wood, used to collect and store rainwater." + ], + "recreational vehicle": [ + "Recreational vehicles are large, boxy, mobile homes with wheels, often featuring windows, a door, and sometimes an awning or external storage.", + "Recreational vehicles are large, boxy, and often have windows, awnings, and external features like ladders or storage compartments.", + "Recreational vehicles are large boxy vehicles with living spaces, often featuring windows, a door, and sometimes an awning or external storage.", + "A recreational vehicle is a large motorhome or camper van designed for travel and living, resembling a bus or truck." + ], + "fishing casting reel": [ + "A fishing casting reel is a cylindrical device with a handle, spool, and metal frame, often mounted on a fishing rod.", + "A fishing casting reel has a spool release button and a handle on the same side for controlled line casting.", + "A fishing casting reel has a cylindrical body with a handle, spool, and line guide, often made of metal and plastic.", + "A fishing casting reel has a cylindrical spool with a handle and line guide, unlike similar objects which lack these specific fishing features." + ], + "reflex camera": [ + "Reflex cameras have a distinctive bulky body with a lens protruding from the front and a viewfinder on top.", + "A reflex camera has a large lens, a viewfinder hump on top, and a rectangular body with buttons and dials.", + "Reflex cameras have a distinctive large lens, viewfinder hump, and body shape with buttons and dials for manual controls.", + "A reflex camera has a rectangular body with a lens in front, a viewfinder on top, and buttons on the back and sides." + ], + "refrigerator": [ + "A refrigerator is a large rectangular appliance with a door, handles, and often a freezer compartment, usually white or stainless steel.", + "A refrigerator is a large rectangular appliance with a door handle and often has a freezer compartment at the top or bottom.", + "A refrigerator is a large rectangular appliance with a door handle and often a shiny metallic or white surface.", + "Refrigerators are large boxy appliances with doors and handles, often white or metallic, while other objects vary in shape and function." + ], + "remote control": [ + "A remote control is a small rectangular device with buttons used to operate electronic gadgets from a distance.", + "Remote controls are small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Look for small rectangular devices with buttons often labeled and sometimes an infrared sensor at the top.", + "Remote controls are small rectangular devices with buttons, often featuring a smooth surface and sometimes an infrared sensor at the top." + ], + "restaurant": [ + "Restaurants are recognized by dining tables chairs menus food items and often a counter or open kitchen area.", + "A restaurant typically has tables, chairs, menus, food, and decor in a welcoming space for dining and socializing.", + "Restaurants can be identified by their signs, seating areas, menus, tables, counters, and often large windows or open entrances.", + "Restaurants are buildings with signs tables chairs and often large windows unlike smaller objects like furniture or utensils." + ], + "revolver": [ + "A revolver is a handgun with a rotating cylinder that holds bullets, featuring a short barrel and a distinctive trigger and grip.", + "A revolver has a rotating cylinder holding bullets and a short barrel, unlike most guns which have a straight magazine.", + "A revolver has a rotating cylinder, short barrel, and a handgun shape with a trigger and grip.", + "A revolver has a rotating cylinder with multiple chambers that hold bullets visible from the side." + ], + "rifle": [ + "A rifle is a long narrow firearm with a barrel stock and trigger designed for precision shooting and hunting.", + "Rifles are long slender guns with a barrel stock and trigger distinct from shorter handguns or non firearm objects.", + "A rifle has a long narrow barrel with a trigger and stock designed for precise aiming and firing bullets.", + "Rifles have a long narrow barrel with a trigger grip and often a stock for shoulder support distinguishing them from other objects." + ], + "rocking chair": [ + "A rocking chair has a curved base that allows it to rock back and forth, typically with armrests and a high back.", + "A rocking chair has curved legs that allow it to rock back and forth and often has a high back and armrests.", + "Rocking chairs have curved legs that allow them to rock back and forth unlike regular chairs with straight legs.", + "Rocking chairs have curved legs that allow back-and-forth movement and often have armrests and a high backrest for comfort." + ], + "rotisserie": [ + "A rotisserie is a cooking device with a rotating spit for evenly roasting meat over a heat source.", + "Rotisserie is identified by a rotating spit with skewered meat cooking evenly over a heat source often seen in delis or kitchens.", + "Rotisseries are recognized by their rotating skewer, evenly cooked meat, heat source below, and often a vertical or horizontal metal frame.", + "Rotisserie has rotating skewers with evenly spaced food items while other objects lack this specific rotating and spaced arrangement." + ], + "eraser": [ + "An eraser is typically a small rectangular or cylindrical rubber object used to remove pencil marks by rubbing.", + "An eraser is typically small rectangular or cylindrical with a smooth or slightly rough surface often in light colors like white or pink.", + "Erasers are typically small, rectangular, and made of soft rubber or foam, unlike hard or rigid objects like stones or metal tools.", + "Erasers are small, rectangular or oval, often white or pink, with a smooth or slightly rough texture and sometimes angled edges." + ], + "rugby ball": [ + "A rugby ball is oval with pointed ends while most other balls are round or spherical in shape.", + "A rugby ball is an elongated oval shape with pointed ends and a textured surface for better grip.", + "A rugby ball has a distinctive elongated oval shape with pointed ends unlike any other spherical or round sports ball.", + "A rugby ball is oval-shaped with pointed ends and typically has a textured surface with white stitching and a distinctive pattern." + ], + "ruler measuring stick": [ + "A ruler measuring stick is a long thin flat tool with marked lines for measurement unlike bulkier or unmarked objects.", + "A ruler measuring stick is a long thin flat object with marked lines and numbers for measuring length.", + "A ruler measuring stick has evenly spaced markings and a straight, flat shape for precise length measurement.", + "A ruler measuring stick is long, thin, flat, and has evenly spaced markings or numbers along its length for measuring." + ], + "sneaker": [ + "Sneakers have laces, rubber soles, and a fabric or leather upper with a distinctive sporty or casual design.", + "A sneaker is a lightweight shoe with a flexible rubber sole and soft fabric or leather upper, often used for sports or casual wear.", + "Sneakers are soft, flexible footwear with rubber soles and fabric or leather uppers, unlike hard-soled shoes or non-footwear items.", + "Sneakers are identified by their rubber soles, laces, and soft fabric or leather uppers designed for comfort and athletic use." + ], + "safe": [ + "A safe typically has a sturdy metal box shape with a thick door and a visible locking mechanism or keypad.", + "Safes are typically boxy with metal surfaces and keypads or dials unlike most objects which vary widely in shape and material.", + "A safe typically has a thick metal door with a prominent locking mechanism and handle.", + "A safe is a sturdy metal box with a thick door and a lock to securely store valuables and important items." + ], + "safety pin": [ + "A safety pin has a coiled spring, sharp point, and clasp to secure the pointed end, making it easily recognizable.", + "A safety pin is a small metal pin with a clasp that bends back to cover the sharp point and secure items.", + "A safety pin has a simple metal loop with a clasp to secure the pointed end unlike other pins or fasteners.", + "A safety pin is a small metal pin with a clasp that bends back to cover the point and secure it closed." + ], + "salt shaker": [ + "A salt shaker is a small container with a perforated top designed to sprinkle salt usually made of glass or plastic.", + "A salt shaker is small with a perforated top for sprinkling salt and often has a cylindrical or rounded shape.", + "A salt shaker typically has a few small holes on top for sprinkling salt evenly.", + "A salt shaker typically has small holes for sprinkling salt and is often smaller than similar containers like pepper shakers or sugar bowls." + ], + "sandal": [ + "Sandals have open designs with straps and lack full coverage compared to shoes or boots which enclose the foot more completely.", + "Shoes with open toes and straps or a flat sole, often lightweight and worn in warm weather.", + "A sandal is an open-toed footwear with straps or a sole held to the foot by thin bands or a simple design.", + "Sandal features include open toe straps a flat sole and often a Y-shaped design between the toes for secure foot placement." + ], + "sarong": [ + "A sarong is a long, wrapped cloth skirt, while similar items like skirts or kilts are typically pre-stitched and structured.", + "A sarong is a long colorful fabric wrapped around the waist, resembling a skirt or loose dress, often with vibrant patterns.", + "A sarong is a long, wrapped skirt or cloth with vibrant patterns, often worn around the waist and flowing loosely to the ankles.", + "A sarong is recognized by its long rectangular fabric often wrapped around the waist with vibrant patterns and flowing drapes." + ], + "saxophone": [ + "A saxophone is a shiny brass wind instrument with a curved body, keys, and a flared bell.", + "A saxophone has a curved metallic body with keys and a flared bell, unlike most instruments which are straight or differently shaped.", + "A saxophone is a shiny curved metal instrument with a flared bell and many buttons along its long tube.", + "The saxophone has a distinctive curved neck with a flared bell and multiple keys along its conical brass body." + ], + "scabbard": [ + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade.", + "A scabbard is a long narrow sheath typically made of leather or metal that holds a sword or knife blade securely.", + "A scabbard is a long narrow sheath typically made of leather or metal used to hold and protect a sword or knife.", + "A scabbard is a long narrow sheath for a blade, often leather or metal, while similar objects may lack the shape or material specifics." + ], + "weighing scale": [ + "Weighing scales have a flat platform, display screen, and often numerical indicators for measuring weight clearly.", + "Weighing scales have flat platforms or trays with displays showing weight unlike other objects which vary in shape and function.", + "A weighing scale typically has a flat platform or tray and a display screen showing numbers for weight measurement.", + "A weighing scale is a flat platform or dish with a display showing weight often found in kitchens or bathrooms." + ], + "school bus": [ + "A school bus is a large yellow vehicle with windows, black trim, and a long rectangular shape for transporting children.", + "A school bus is recognized by its long yellow body black stripes large windows and stop sign arm for student transportation.", + "A school bus is a large yellow vehicle with black stripes, multiple windows, and often has stop signs and flashing lights.", + "A school bus is bright yellow with black stripes and large windows, while other vehicles vary in color and design." + ], + "schooner": [ + "A schooner is a sailing ship with two or more masts, typically with fore-and-aft sails and a sleek, elongated hull.", + "A schooner is a sailing ship with two or more masts and fore-and-aft sails, distinct from other boats by its tall sleek design.", + "A schooner is a sleek sailing ship with two or more masts and tall sails, often seen gliding on water.", + "A schooner has two or more tall masts with fore-and-aft sails and a sleek elongated hull designed for sailing." + ], + "scoreboard": [ + "Scoreboards display numbers or text on a flat panel often with bright colors and large fonts unlike most objects which are three-dimensional.", + "Scoreboards have large bold numbers bright colors and clear segmented displays for easy visibility and quick recognition from a distance.", + "Scoreboards are large flat panels with grids of numbers or letters often brightly lit and mounted high in stadiums or arenas.", + "Scoreboards uniquely display changing numbers or letters to show live game scores or information in a large visible format." + ], + "CRT monitor": [ + "A CRT monitor is a bulky boxy screen with a curved glass front and deep back, often black or beige.", + "CRT monitors are bulky with a large curved glass screen and thick backs unlike slim flat modern screens or other household objects.", + "CRT monitors have a bulky, boxy shape with a curved glass screen and a thick back containing the cathode ray tube.", + "A CRT monitor has a large, boxy shape with a curved or flat glass screen and a thick backside containing the cathode ray tube." + ], + "screw": [ + "Screws have a threaded cylindrical metal body with a slotted or shaped head for turning with a tool.", + "A screw is a small metal rod with a helical thread and a slotted or recessed head for turning with a tool.", + "Screws have a threaded cylindrical shaft and a slotted or shaped head, unlike nails which are smooth and bolts which have nuts.", + "Screws can be identified by their threaded cylindrical shaft and slotted or Phillips head for turning with a tool." + ], + "screwdriver": [ + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle often made of plastic or rubber.", + "A screwdriver has a long narrow metal shaft and a handle often with a distinct shape for gripping and turning screws.", + "A screwdriver has a long narrow metal shaft with a shaped tip and a handle, unlike most tools or objects.", + "A screwdriver has a long narrow metal shaft ending in a flat or cross-shaped tip for turning screws." + ], + "seat belt": [ + "Seat belts are long flat straps with buckles while other objects vary widely in shape texture and function.", + "Seat belts are long flat straps with a buckle, usually made of fabric or metal, found in vehicles across seats.", + "A seat belt is a long narrow strap with a buckle designed to secure passengers in vehicles for safety.", + "Seat belts are long flat straps with buckles typically seen across car seats securing passengers with distinctive metal clasps." + ], + "sewing machine": [ + "A sewing machine is a compact device with a needle, thread spool, and foot pedal, often housed in a metal or plastic frame.", + "A sewing machine has a flat base, a raised arm with a needle, thread spool, and often a foot pedal or electric controls.", + "A sewing machine has a needle, thread spool, and foot pedal, while other objects lack these specific parts for stitching fabric.", + "A sewing machine has a needle, thread spool, foot pedal, and flat base with a distinctive mechanical arm for stitching fabric." + ], + "shield": [ + "A shield is typically a flat, broad piece of armor held for protection, often round or rectangular with a handle.", + "A shield is typically flat, broad, and often round or rectangular with a handle or straps on the back.", + "Shields are flat, often round or rectangular, with handles on the back and sometimes decorative patterns or emblems on the front.", + "Shields are typically flat, round or rectangular, with handles and often feature bold patterns or emblems for easy identification." + ], + "shoe store": [ + "A shoe store displays multiple shoes neatly arranged on shelves or racks unlike single shoes or other unrelated items.", + "A shoe store is a retail space filled with shelves and displays of various footwear styles arranged neatly for customers to browse.", + "A shoe store typically has rows of shelves displaying various shoes and often a seating area for trying them on.", + "Rows of shoes displayed on shelves or racks for customers to browse and try on." + ], + "shoji screen / room divider": [ + "Shoji screens and room dividers are typically lightweight, translucent, and framed with thin wooden grids, unlike solid or opaque furniture pieces.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, often rectangular and divided into grid-like sections.", + "A shoji screen is a lightweight wooden frame with translucent paper panels, used as a room divider or sliding door.", + "Shoji screens are lightweight sliding panels with wooden frames and translucent paper panels arranged in a grid pattern." + ], + "shopping basket": [ + "A shopping basket is a handheld container with an open top and handle, typically made of woven materials or plastic.", + "Shopping baskets are typically open, lightweight containers with handles, made of wire or plastic, designed for carrying items while shopping.", + "A shopping basket is typically a lightweight, open container with handles, often made of wire or plastic, used for carrying items while shopping.", + "A shopping basket has an open-top woven or plastic structure designed for carrying items while shopping." + ], + "shopping cart": [ + "A shopping cart is a metal or plastic basket on wheels with a handle for holding items while shopping in stores.", + "Shopping carts have a large wire basket on wheels with a handlebar for pushing, unlike most objects which are solid and stationary.", + "Shopping carts have a metal wire frame with a large basket, four wheels, and a handlebar for pushing.", + "A shopping cart has a metal wire frame, four wheels, a large basket, and a handlebar for pushing." + ], + "shovel": [ + "A shovel has a long handle and a flat, broad blade used for digging or moving loose materials like dirt or snow.", + "A shovel has a long handle and a flat wide blade often curved or pointed for digging or lifting materials.", + "A shovel has a long handle and a flat or curved metal blade used for digging or moving loose materials.", + "A shovel has a long handle with a wide flat metal blade at the end for digging or lifting materials." + ], + "shower cap": [ + "A shower cap is a flexible, waterproof head covering with an elastic edge, unlike hats or scarves which are not waterproof or elastic.", + "A shower cap is a flexible waterproof dome that fits snugly over the head with elastic edges to keep hair dry.", + "A shower cap is a flexible waterproof hat that covers the hair, often made of plastic or elastic material, typically round and smooth.", + "A shower cap has a stretchable elastic rim designed to tightly cover hair and keep it dry during showers." + ], + "shower curtain": [ + "A shower curtain is a waterproof fabric or plastic sheet hanging from a rod to enclose a bathtub or shower area.", + "Shower curtains are typically made of waterproof fabric or plastic and hang from a rod to enclose a bathtub or shower area.", + "A shower curtain is a large rectangular fabric or plastic sheet hanging from a rod, often with colorful patterns or waterproof material.", + "Shower curtains are typically rectangular, made of waterproof fabric or plastic, often have patterns or prints, and hang from rings on a rod." + ], + "ski": [ + "Skis are long, narrow, flat, and often have curved tips and bindings, unlike most objects which are shorter or differently shaped.", + "Skis are long narrow flat boards with upturned tips, typically paired and used for gliding over snow.", + "Skis are long narrow flat boards with pointed tips and bindings, usually seen in snowy environments or with winter sports gear.", + "Skis are long narrow flat boards with upturned tips, often seen with bindings and used on snow for gliding." + ], + "balaclava ski mask": [ + "A balaclava ski mask is a tight-fitting cloth covering the head, neck, and often the face, leaving only the eyes or eyes and mouth exposed.", + "A balaclava ski mask fully covers the head and neck with openings for eyes and mouth, unlike hats or scarves.", + "A balaclava ski mask is a tight-fitting cloth headgear covering the head and face with openings for eyes and mouth.", + "A balaclava ski mask covers the entire head except for the eyes and sometimes the mouth, distinguishing it from other headwear." + ], + "sleeping bag": [ + "Sleeping bags are long padded fabric tubes with zippers designed to fully enclose a person lying down for warmth and comfort.", + "Sleeping bags are long padded fabric tubes with zippers and hoods designed for sleeping often in bright colors or patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper designed for sleeping outdoors often in bright colors or camouflage patterns.", + "A sleeping bag is a padded cylindrical bag with a zipper often in bright colors and designed for one person to sleep inside." + ], + "slide rule": [ + "A slide rule is a long narrow ruler with sliding middle part marked with logarithmic scales for calculations.", + "A slide rule is a long narrow ruler with sliding middle parts marked with logarithmic scales for calculations.", + "A slide rule has numbered logarithmic scales on sliding parts while similar objects lack these precise measurement markings.", + "A slide rule has multiple parallel logarithmic scales that slide against each other for calculations." + ], + "sliding door": [ + "Sliding doors have a long horizontal panel that moves along a track without swinging open like traditional doors.", + "Sliding doors have long flat panels that move horizontally on tracks unlike hinged doors which swing open vertically.", + "Sliding doors are flat rectangular panels with handles that slide horizontally along a track embedded in the wall or frame.", + "A sliding door is a large rectangular panel that moves horizontally on a track to open and close an entrance." + ], + "slot machine": [ + "Slot machines have flashy lights, reels, and buttons, unlike most objects which lack these gaming-specific features.", + "A slot machine is a colorful upright device with reels, buttons, and a lever, often found in casinos.", + "Slot machines have colorful reels with symbols, a lever or button panel, and a payout tray at the bottom.", + "A slot machine has a colorful cabinet with reels, buttons, a lever, and often flashing lights and a coin slot." + ], + "snorkel": [ + "A snorkel is a curved tube with a mouthpiece used for breathing while swimming face down in water.", + "A snorkel is recognized by its curved tube with a mouthpiece for breathing underwater while keeping the face submerged.", + "A snorkel is a curved tube with a mouthpiece for breathing while swimming unlike other objects which lack this specific design.", + "A snorkel is a curved tube with a mouthpiece, often bright colored, used for breathing underwater while keeping the face submerged." + ], + "snowmobile": [ + "A snowmobile is a motorized vehicle with skis at the front and a continuous track at the back for traveling over snow.", + "A snowmobile has a long tracked rear tread and front skis for moving over snow.", + "Snowmobiles have a long narrow body with skis at the front and a continuous track at the back for snow travel.", + "Snowmobiles have a long seat, handlebars, skis at the front, and a track at the back for moving over snow." + ], + "snowplow": [ + "A snowplow has a large metal blade in front and is typically mounted on a truck or tractor for clearing snow.", + "A snowplow is a large vehicle with a wide metal blade in front used to clear snow from roads and pathways.", + "A snowplow has a large angled blade in front and often a cab with bright lights for clearing snow from roads.", + "A large angled blade at the front for pushing snow is unique to a snowplow." + ], + "soap dispenser": [ + "A soap dispenser is typically a plastic or glass bottle with a pump or lever to release liquid soap.", + "A soap dispenser is typically a bottle with a pump or push top often labeled and placed near sinks.", + "A soap dispenser has a pump or push mechanism on top of a bottle often labeled and designed for liquid soap.", + "Soap dispensers typically have a pump or nozzle for dispensing liquid and a container often shaped like a bottle or cylinder." + ], + "soccer ball": [ + "Soccer balls have distinctive black and white pentagon patterns while other balls are usually solid or have different designs.", + "A soccer ball is typically round with black and white pentagon or hexagon patches arranged in a distinctive pattern.", + "A soccer ball has a distinctive pattern of black and white pentagons and hexagons arranged in a spherical shape.", + "A soccer ball has a distinctive black and white hexagonal pattern with a spherical shape and uniform size." + ], + "sock": [ + "A sock is a soft, stretchy tube-shaped fabric item worn on feet, often colorful or patterned, and smaller than pants or shirts.", + "Socks are typically soft, stretchy, tubular, and often have patterns or colors, unlike rigid or solid-shaped objects.", + "Socks are soft, stretchy, tubular fabric items typically worn on feet, often with colorful patterns or plain designs.", + "Socks are typically soft, stretchy, tubular fabrics worn on feet, often with patterns, ribbing, or heel and toe shaping." + ], + "solar thermal collector": [ + "Solar thermal collectors are flat or curved panels with dark surfaces, often glass-covered, and connected to pipes for fluid circulation.", + "Solar thermal collectors are flat or tubular panels with reflective surfaces and pipes, unlike typical roofs or boxes which lack these features.", + "Solar thermal collectors have flat or curved reflective panels with tubes or channels designed to absorb and transfer heat from sunlight.", + "A solar thermal collector typically appears as a flat rectangular panel or curved tube array often mounted on rooftops or open ground." + ], + "sombrero": [ + "A sombrero has a wide brim and high pointed crown, unlike hats with smaller brims or flat tops.", + "A sombrero is a wide-brimmed, high-crowned hat often colorful and decorated commonly associated with Mexican culture.", + "A sombrero is recognized by its wide brim high pointed crown and often colorful decorative patterns.", + "A sombrero has an exceptionally wide brim that is much larger than typical hats." + ], + "soup bowl": [ + "Soup bowls are typically round deep dishes with high sides designed to hold liquid meals unlike plates or shallow bowls.", + "A soup bowl is typically round, deep, and has a wide opening with a flat base, often made of ceramic or porcelain.", + "A soup bowl is typically round deep and wide with a rim often made of ceramic or porcelain and holds liquid food.", + "A soup bowl is a deep round dish with a wide opening and often has handles or a rim for holding hot liquids." + ], + "keyboard space bar": [ + "The keyboard space bar is a long narrow rectangular key typically wider than other keys on a keyboard.", + "The keyboard space bar is a long flat rectangular key while other objects vary widely in shape size and texture.", + "The keyboard space bar is a long rectangular key typically wider than other keys and often blank or labeled with space.", + "The keyboard space bar is a long rectangular key often centered at the bottom with a smooth flat surface." + ], + "space heater": [ + "A space heater is a small, boxy or cylindrical device with vents or coils, often on wheels or with a handle.", + "Space heaters are compact, often boxy or cylindrical, with visible heating elements or grilles and sometimes a fan for air circulation.", + "Space heaters are typically compact, boxy, or cylindrical with visible heating elements or grilles, unlike most household objects.", + "Space heaters are typically small boxy or cylindrical devices with grilles or vents and often have visible heating elements or coils inside." + ], + "space shuttle": [ + "A space shuttle is a large winged spacecraft with a cylindrical body, rocket boosters, and external fuel tanks.", + "A space shuttle has wings and a large cylindrical fuel tank unlike rockets which are long and thin without wings.", + "A space shuttle has a white body with black wing edges and a large external fuel tank with two solid rocket boosters.", + "The space shuttle has a distinct winged shape with attached external fuel tanks and solid rocket boosters during launch." + ], + "spatula": [ + "A spatula is a flat thin utensil with a broad blade and a handle used for lifting or flipping food.", + "A spatula has a flat wide blade and a long handle unlike spoons or knives which are curved or sharp.", + "A spatula has a flat wide blade with a long handle used for lifting or flipping food making it easily recognizable.", + "A spatula has a flat wide blade with a thin edge for lifting or flipping food." + ], + "motorboat": [ + "A motorboat is a sleek, streamlined watercraft with an engine, propeller, and often a pointed bow for cutting through waves.", + "Motorboats have a streamlined hull, an outboard or inboard motor, and often a windshield or seating area on a small watercraft.", + "Motorboats are long with a pointed front, an open or enclosed cabin, and an outboard motor at the rear.", + "Motorboats are sleek, elongated watercraft with an engine at the rear, often featuring a pointed bow and seating area." + ], + "spider web": [ + "A spider web is a delicate, intricate network of thin, silky threads woven in circular or irregular patterns to catch prey.", + "Spider webs are thin silky threads forming delicate tangled or symmetrical patterns often found in corners or between objects.", + "Spider webs have delicate, intricate, silky threads forming patterns, unlike solid or dense objects like leaves or rocks.", + "Spider webs have delicate, symmetrical, silky threads forming intricate radial or spiral patterns often seen between surfaces like trees or corners." + ], + "spindle": [ + "A spindle is a slender, rod-shaped tool typically tapered at both ends, unlike broader or irregularly shaped objects.", + "A spindle is a slender rod or pin that tapers at both ends, often used for spinning or holding materials.", + "A spindle is a slender rod with tapered ends used for spinning or holding materials like thread or yarn.", + "A spindle is a slender rod with tapered ends often used for spinning or holding thread or yarn." + ], + "sports car": [ + "Sports cars are recognized by their low sleek body aggressive styling two doors and powerful engine appearance.", + "Sports cars are low sleek fast vehicles with two doors and a sporty design unlike larger or boxier everyday cars.", + "Sports cars are low sleek fast vehicles with two doors aggressive styling and often bright colors or shiny paint.", + "A sports car is a sleek low fast two-door vehicle with a powerful engine and aerodynamic design often brightly colored." + ], + "spotlight": [ + "A spotlight is a bright focused light beam while other objects are solid and reflect or emit light differently.", + "A spotlight is recognized by its intense focused beam of light often used to highlight or illuminate specific areas or objects.", + "A spotlight is a bright focused beam of light often seen in theaters or events highlighting specific areas or objects.", + "A spotlight is a bright, focused light with a distinct beam often mounted on a stand or attached to ceilings." + ], + "stage": [ + "A stage is typically flat, elevated, and open with clear boundaries designed for visibility and performance from all angles.", + "A stage is a raised platform used for performances, often with curtains, lights, and open space for actors or presenters.", + "A stage is uniquely defined by its elevated flat platform designed for performances and presentations.", + "Look for raised platforms with curtains, lights, and seating arranged to face the performance area." + ], + "steam locomotive": [ + "A steam locomotive is a large, heavy metal train with a smokestack, wheels, and a boiler, often black and emitting steam.", + "Steam locomotives have a large smokestack, cylindrical boiler, wheels with connecting rods, and often a tender car carrying coal or water.", + "Steam locomotives have a large boiler, smokestack, and wheels connected by rods, unlike most vehicles or machinery.", + "A steam locomotive has a large cylindrical boiler, smokestack, wheels with connecting rods, and often a tender car carrying coal or water." + ], + "through arch bridge": [ + "A through arch bridge has a distinctive arch above the deck that supports the structure while allowing clearance underneath.", + "An through arch bridge has a distinctive arch above the deck with supports connecting it to the roadway below.", + "A through arch bridge has a distinctive design where the deck passes between two large arch supports rising above it.", + "A through arch bridge has a distinctive design with the arch above the deck and supporting cables or beams visible below it." + ], + "steel drum": [ + "Steel drums have a shiny cylindrical metal body with a concave top and distinct ridges for tuning.", + "A steel drum is a shiny cylindrical metal container with a flat top and bottom, often ribbed or grooved for strength.", + "A steel drum has a shiny metallic cylindrical shape with concave surfaces, unlike most objects which are flat or irregularly shaped.", + "A steel drum is a large cylindrical metal container with a flat top and bottom, often used for storing liquids or goods." + ], + "stethoscope": [ + "A stethoscope has a long flexible tube with a chest piece and earpieces unlike most medical tools which are rigid or handheld.", + "A stethoscope is a long flexible tube with earpieces and a small round chest piece used for listening to body sounds.", + "A stethoscope has a distinctive Y-shaped tube with dual earpieces and a chest piece for listening to body sounds.", + "A stethoscope has a Y-shaped tube with earpieces and a round chest piece often made of metal and rubber." + ], + "scarf": [ + "Scarves are long and flexible fabric pieces worn around the neck unlike other clothing items which are rigid or shaped differently.", + "A scarf is a long flexible fabric piece often wrapped around the neck with patterns or fringes for warmth or style.", + "A scarf is a long, narrow piece of fabric worn around the neck for warmth or style, often colorful or patterned.", + "Scarves are long, thin, flexible fabrics often wrapped around the neck or head with varied patterns and textures." + ], + "stone wall": [ + "A stone wall is identified by its rough, uneven surface made of stacked or fitted natural stones, often gray or brown.", + "Stone walls are rough, uneven, and made of stacked or cemented rocks unlike smoother, uniform materials like wood or brick walls.", + "A stone wall is a sturdy, rough-textured barrier made of stacked or mortared rocks, often gray or brown, commonly found in rural or historic settings.", + "Stone walls are recognized by their rough uneven texture stacked rock layers and natural earthy colors." + ], + "stopwatch": [ + "A stopwatch is a small handheld device with a digital or analog display, buttons, and a strap for timing events precisely.", + "A stopwatch has a round face with buttons on top and a digital or analog display for timing unlike clocks or phones.", + "A stopwatch has a round face with numbered dials, buttons for timing functions, and often a wrist strap or stand.", + "A stopwatch has a round face with numbers, buttons on top, and a strap or stand for holding or propping it up." + ], + "stove": [ + "A stove has a flat cooking surface with burners or heating elements and control knobs or buttons for temperature adjustment.", + "A stove is a kitchen appliance with a flat cooking surface and burners or heating elements, often made of metal and glass.", + "A stove typically has a flat cooking surface with burners or heating elements and control knobs on the front or top.", + "A stove has burners or heating elements on a flat surface specifically designed for cooking food." + ], + "strainer": [ + "A strainer has a mesh or perforated surface with small holes for filtering liquids while keeping solids inside.", + "A strainer has a mesh or perforated surface to filter liquids, unlike solid bowls or spoons that lack holes.", + "A strainer has a mesh or perforated surface allowing liquids to pass while retaining solids inside.", + "A strainer has a mesh or perforated surface with holes to filter liquids while keeping solids inside, often with a handle." + ], + "tram": [ + "Trams are long rail vehicles with multiple connected carriages running on fixed tracks in urban areas.", + "Trams are long boxy vehicles with multiple windows running on fixed rails often seen in urban streets.", + "A tram is a rail vehicle that runs on city streets, resembling a bus but longer and connected to overhead electric wires.", + "Trams are long narrow vehicles with multiple connected sections running on fixed tracks unlike buses or cars." + ], + "stretcher": [ + "A stretcher has a long flat frame with handles and often fabric or straps for carrying injured or immobile people.", + "A stretcher is a long flat frame with handles used for carrying injured or sick people, resembling a portable bed.", + "A stretcher is a long flat frame with handles used for carrying people, unlike similar objects which are usually rigid or lack handles.", + "A stretcher is a long flat frame with handles used for carrying the sick or injured, typically made of canvas and metal poles." + ], + "couch": [ + "Couches are long padded seats with a backrest and often armrests designed for multiple people to sit on comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit comfortably.", + "A couch is a long upholstered seat with a back and arms designed for multiple people to sit on comfortably.", + "A couch is a long padded seat for multiple people with a backrest, unlike chairs or stools which are smaller and often lack padding." + ], + "stupa": [ + "A stupa is a dome-shaped Buddhist shrine with a spire, distinct from other objects by its religious and architectural design.", + "A stupa is a dome-shaped Buddhist shrine with a pointed top, often decorated and surrounded by intricate carvings or gates.", + "A stupa is a dome-shaped Buddhist shrine with a pointed spire often decorated with intricate carvings and surrounded by a fence.", + "A stupa is recognized by its dome-shaped structure often topped with a spire and surrounded by decorative gates or railings." + ], + "submarine": [ + "A submarine is long and tubular with a pointed front, smooth hull, and often has a conning tower or periscope on top.", + "Submarines are long cylindrical vessels with a conning tower and propellers, unlike most objects which have varied irregular shapes.", + "A submarine has a distinctive elongated cylindrical hull with a conning tower and often visible propellers or fins.", + "Submarines are long cylindrical vessels with a conning tower, smooth hull, and often visible propellers or fins underwater." + ], + "suit": [ + "A suit is a formal garment with a jacket and matching trousers or skirt, typically made of smooth, tailored fabric in solid colors.", + "A suit is a formal set of matching jacket and trousers or skirt made from fine fabric, often worn for professional or elegant occasions.", + "A suit is a formal outfit with matching jacket and trousers, often in dark colors, unlike casual or sporty clothing.", + "A suit is uniquely identified by its tailored jacket and matching trousers or skirt in formal fabric." + ], + "sundial": [ + "A sundial is a flat or curved surface with marked lines and a raised pointer that casts shadows to show time.", + "A sundial has a flat or curved surface with marked hours and a gnomon that casts a shadow to tell time.", + "A sundial has a flat dial with marked hours and a raised gnomon that casts a shadow to indicate time.", + "A sundial has a flat surface with marked hours and a raised gnomon that casts a shadow to show time." + ], + "sunglasses": [ + "Sunglasses are recognized by their dark tinted lenses and frames that cover the eyes and often the sides of the face.", + "Sunglasses are identified by their dark lenses, thin frames, and symmetrical shape often worn over the eyes.", + "Sunglasses are dark or tinted eyewear with two lenses and frames designed to protect eyes from sunlight.", + "Sunglasses have dark tinted lenses and frames designed to cover eyes while other objects lack these specific eye-covering features." + ], + "sunscreen": [ + "Sunscreen typically appears as a small tube or bottle with bright colors and labels mentioning SPF or sun protection.", + "Sunscreen often has a distinctive bright white or colored thick creamy texture in a tube or bottle with sun protection labels.", + "Sunscreen typically appears as small bottles or tubes with bright labels often found near beach or skincare products.", + "Sunscreen is recognized by its tube or bottle shape, bright colors, and labels with sun or SPF symbols." + ], + "suspension bridge": [ + "Suspension bridges have long spans with tall towers and cables hanging in curves supporting the roadway below.", + "Suspension bridges have long spans with tall towers and cables supporting the roadway below.", + "Suspension bridges have tall towers, long main cables, and a hanging deck, unlike other bridges or objects which lack these features.", + "Suspension bridges have long main spans hanging from vertical cables anchored to massive towers and supported by thick main cables." + ], + "mop": [ + "A mop has a long handle with absorbent strands or a sponge at the bottom unlike brooms or brushes which have stiff bristles.", + "A mop has a long handle with a bundle of absorbent strands or a sponge at the bottom for cleaning floors.", + "A mop has long strands or fibers attached to a handle designed for soaking up and wiping liquids.", + "A mop typically has a long handle with a bundle of absorbent strings or sponge at the bottom for cleaning floors." + ], + "sweatshirt": [ + "Sweatshirts are recognized by their soft fabric, long sleeves, ribbed cuffs, and often a hood or front pocket.", + "A sweatshirt is a soft, loose, long-sleeved pullover typically made of thick cotton fabric, often with a hood and ribbed cuffs.", + "Sweatshirts are typically soft, thick, and have a loose fit with long sleeves, often featuring a hood or a crewneck design.", + "A sweatshirt is a soft, thick, collarless pullover with long sleeves, often made of cotton and sometimes featuring a hood or front pocket." + ], + "swim trunks / shorts": [ + "Swim trunks are short quick-drying fabric garments with elastic waistbands often featuring bright colors or patterns.", + "Swim trunks are short loose-fitting quick-drying pants designed for swimming often in bright colors or patterns with elastic waistbands.", + "Swim trunks are lightweight quick-drying shorts with bright colors patterns elastic waistbands and often a mesh lining for swimming.", + "Swim trunks are lightweight quick-drying shorts with vibrant patterns and mesh linings designed for water activities unlike regular shorts." + ], + "swing": [ + "Look for a hanging or suspended part that moves freely back and forth or side to side when pushed or pulled.", + "A swing has a seat suspended by ropes or chains from a frame allowing back and forth motion.", + "A swing typically has a seat suspended by ropes or chains from a frame, allowing it to move back and forth freely.", + "A swing has a hanging seat suspended by ropes or chains that moves back and forth when pushed." + ], + "electrical switch": [ + "An electrical switch is a small rectangular device with a toggle or button, often mounted on walls to control power.", + "Electrical switches are small rectangular or square devices with buttons or toggles, often mounted on walls with visible screws.", + "Electrical switches are small rectangular devices with a toggle or button, often mounted on walls, featuring visible on-off markings or positions.", + "The unique visual cue for an electrical switch is a small rectangular plate with a toggle or rocker mechanism." + ], + "syringe": [ + "A syringe has a narrow tube with a plunger and needle, unlike most objects which are bulkier and lack these precise medical features.", + "A syringe is a slender tube with a plunger and a needle tip used for injecting or withdrawing fluids.", + "A syringe is a slender tube with a plunger and needle used for injecting or withdrawing fluids from the body.", + "A syringe has a hollow needle attached to a cylindrical tube with a plunger for injecting or withdrawing fluids." + ], + "table lamp": [ + "A table lamp is a small lighting fixture with a base, stem, and shade designed to sit on tables or desks.", + "A table lamp is a small light fixture with a base, stem, and shade, often placed on desks or bedside tables.", + "A table lamp has a base, a stem, and a shade designed to direct light upward or downward from a flat surface.", + "Table lamps have a base, a stem, and a shade, often with a bulb inside, making them distinct from other household objects." + ], + "tank": [ + "Tanks have long barrels, heavy armor, and treads unlike trucks or cars which have wheels and lighter frames.", + "A tank is a large armored military vehicle with tracks, a long gun barrel, and a heavy, boxy metal body.", + "A tank has a long gun barrel, armored tracks, a large rectangular body, and often a turret on top.", + "A tank is a large armored military vehicle with tracks, a rotating turret, and a long gun barrel for firing shells." + ], + "tape player": [ + "A tape player is a rectangular device with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player typically has a rectangular shape with buttons, a cassette slot, and often a speaker or headphone jack.", + "A tape player has a rectangular shape with buttons, a cassette slot, and often a handle or speakers for easy recognition.", + "A tape player has a rectangular slot for inserting cassette tapes with visible reels inside." + ], + "teapot": [ + "A teapot is a small pot with a handle, spout, and lid, typically made of ceramic or metal, used for brewing tea.", + "A teapot has a rounded body, a spout, a handle, and a lid, distinguishing it from other containers like cups or pitchers.", + "A teapot has a rounded body, a spout for pouring, a handle for holding, and a lid on top.", + "Teapots typically have a spout handle and lid while similar objects like kettles or pitchers may lack one or more of these features." + ], + "teddy bear": [ + "A teddy bear is a soft, plush toy with a round body, small limbs, and a friendly face, often brown or pastel-colored.", + "Teddy bears have soft fuzzy fabric, round ears, stubby limbs, a plump body, and a friendly face with small eyes and nose.", + "Teddy bears are soft plush toys with round shapes, small ears, button eyes, and a friendly face resembling a bear.", + "Teddy bears are soft plush toys with round shapes and friendly faces, unlike hard or angular objects like furniture or tools." + ], + "television": [ + "A television is a rectangular screen with a thin frame, often mounted on a stand or wall, displaying moving images and sound.", + "A television is a flat rectangular screen with a thin frame often mounted on a stand or hung on a wall.", + "Televisions have flat rectangular screens with thin bezels and often a stand or wall mount unlike most other objects.", + "Televisions have a large rectangular screen with a thin frame often mounted on a stand or hung on a wall." + ], + "tennis ball": [ + "A tennis ball is bright yellow-green, fuzzy, and uniformly round with a visible seam, unlike most other balls.", + "A tennis ball has a bright yellow-green color with a fuzzy texture and distinctive white curved lines.", + "A tennis ball is bright yellow-green with a fuzzy texture and distinctive white curved lines forming a seam.", + "A tennis ball is bright yellow-green, fuzzy, small, round, and has a distinct white curved line seam." + ], + "thatched roof": [ + "A thatched roof has a rough, textured surface made of dried straw or reeds, unlike smoother or solid materials like tiles or metal.", + "Thatched roofs have a thick, rough texture with uneven, overlapping straw or reeds creating a distinctive natural and rustic appearance.", + "A thatched roof is a rustic, textured roof made of dried straw or reeds, often appearing golden and uneven compared to smoother modern roofs.", + "A thatched roof has a distinctive thick layered texture made of dry vegetation like straw or reeds tightly bundled together." + ], + "front curtain": [ + "Front curtains are typically made of fabric, hang vertically, and often cover windows or doorways unlike other objects which vary widely in material and purpose.", + "A front curtain is a fabric panel that hangs at the window's top edge, often decorative and used for privacy or light control.", + "Front curtains are long fabric panels that hang vertically often with pleats and are typically found framing windows or stages.", + "Look for a decorative fabric panel hanging at the top of a window often with folds and a gathered or pleated design." + ], + "thimble": [ + "A thimble is a small metal or plastic cap worn on the finger, unlike most objects which are larger and not finger-sized.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble is a small metal or plastic cap worn on the finger to protect it while sewing.", + "A thimble has a small, deep cup shape with dimpled texture specifically designed to fit on a fingertip for sewing." + ], + "threshing machine": [ + "A threshing machine has rotating drums or beaters that separate grain from stalks, a feature distinct to agricultural processing equipment.", + "A threshing machine has a large, boxy frame with rotating drums or beaters to separate grain from stalks and often has a funnel-shaped intake.", + "A threshing machine is larger, has a complex mechanical structure with belts and gears, and often includes a conveyor or hopper.", + "A threshing machine is a large farm device with belts, wheels, and a hopper for separating grain from stalks." + ], + "throne": [ + "A throne is a large ornate chair often elevated with intricate designs symbolizing power and authority for royalty or leaders.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority or royalty.", + "A throne is a large ornate chair often elevated with decorative carvings and symbols of authority unlike simpler regular chairs.", + "A throne is recognized by its ornate high back, armrests, elevated seat, and regal decorations symbolizing authority and power." + ], + "tile roof": [ + "A tile roof is a sloped roof covered with overlapping curved or flat tiles, typically made of clay or concrete.", + "Tile roofs have overlapping rows of flat or curved clay or concrete pieces arranged in a distinctive repeating pattern.", + "Tile roofs have overlapping rows of flat rectangular tiles with visible edges and a slightly wavy or uniform pattern.", + "Tile roofs have overlapping curved or flat rectangular tiles arranged in rows creating a distinctive textured and layered surface pattern." + ], + "toaster": [ + "A toaster is a small rectangular kitchen appliance with slots on top to insert bread and a lever to lower it.", + "A toaster is a small boxy appliance with slots on top for bread and a lever to lower and raise the slices.", + "A toaster has a rectangular metal body with slots for bread and a lever to lower and raise slices for toasting.", + "A toaster is a small box with slots for bread and a lever, unlike other kitchen appliances which have different shapes and functions." + ], + "tobacco shop": [ + "Tobacco shops often display cigars, pipes, cigarette packs, and signage with tobacco brands in their windows or on shelves.", + "Tobacco shops are recognized by shelves of cigarette packs, cigars, rolling papers, and often a counter with a cash register.", + "Tobacco shops typically display cigarettes, cigars, and pipes in glass cases with branded logos and colorful packaging unlike other stores.", + "A tobacco shop typically features shelves of cigarettes, cigars, pipes, lighters, and often a counter with a cash register." + ], + "toilet seat": [ + "A toilet seat is an oval or round openable lid with a smooth surface and a hinge, typically found above a toilet bowl.", + "A toilet seat is typically oval or round, smooth, white or light-colored, and attached to a toilet bowl.", + "A toilet seat is a curved oval or round shape with a hinge, typically white or light-colored, designed to fit over a toilet bowl.", + "A toilet seat is a curved, often white or beige, oval or round ring attached to a toilet bowl for sitting." + ], + "torch": [ + "A torch is a handheld light source with a long narrow body and a bright flame or bulb at one end.", + "A torch is recognized by its elongated shape, flame or light source at one end, and often a handle or grip.", + "A torch is a handheld light source with a flame or bulb, while other objects vary widely in shape, function, and lack a light-emitting feature.", + "A torch is a handheld light source with a flame or bright bulb, often cylindrical and distinct among objects for its glowing tip." + ], + "totem pole": [ + "Totem poles are tall wooden carvings with stacked faces or figures, unlike shorter plain poles or single sculptures.", + "Totem poles are tall wooden carvings with stacked faces or figures, often brightly painted and featuring symbolic animal or human designs.", + "Totem poles are tall wooden carvings with stacked symbolic figures and faces often painted in bold colors.", + "A totem pole is a tall wooden carving with stacked animal and human figures, often painted in bright colors." + ], + "tow truck": [ + "Tow trucks have a large hook or winch on the back and often a sloped bed for lifting vehicles.", + "A tow truck is a large vehicle with a boom or flatbed used to lift and transport disabled or illegally parked cars.", + "A tow truck has a large metal boom or flatbed for lifting vehicles, unlike regular trucks which lack these towing features.", + "A tow truck has a large extended metal boom with a hook or winch at the end for lifting vehicles." + ], + "toy store": [ + "Toy stores are recognized by shelves filled with colorful toys, playful displays, and often a mix of stuffed animals and action figures.", + "Toy stores are filled with colorful shelves displaying various small playful items like dolls, games, and toys in a bright inviting setup.", + "A toy store is filled with colorful shelves displaying various toys like dolls, action figures, board games, and stuffed animals.", + "A toy store is colorful with shelves full of small bright toys like dolls cars and stuffed animals arranged neatly." + ], + "tractor": [ + "Tractors have large wheels, a heavy metal frame, and often a front loader or plow unlike most vehicles or machinery.", + "A tractor is a large, heavy vehicle with big rear wheels, a small front cabin, and often a hitch or plow attachment.", + "Tractors have large rugged wheels a distinct cab and often a front loader or rear hitch for heavy-duty farming tasks.", + "Tractors have large rear wheels, a small front cabin, and often a hitch or attachment at the back for farming equipment." + ], + "semi-trailer truck": [ + "A semi-trailer truck is a large vehicle with a tractor unit pulling a long detachable trailer for hauling freight.", + "A semi-trailer truck has a large boxy trailer attached to a powerful cab with multiple axles and no rear doors.", + "A semi-trailer truck has a large rectangular trailer attached to a cab, unlike smaller vehicles or single-unit trucks.", + "Semi-trailer trucks are recognized by their long rectangular trailers attached to a powerful cab with multiple axles and large wheels." + ], + "tray": [ + "A tray is a flat shallow container with raised edges used for carrying or holding items.", + "A tray is a flat shallow container with raised edges often rectangular or round used for carrying items.", + "A tray is a flat, shallow container with raised edges used to hold or carry items like food, dishes, or small objects.", + "A tray is typically flat with raised edges to hold items unlike plates or bowls which are deeper and cups which have handles." + ], + "trench coat": [ + "A trench coat is a long waterproof coat with a belt and deep pockets typically made from heavy fabric.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has shoulder straps and deep pockets.", + "A trench coat is a long waterproof coat with a belt, wide lapels, and often has deep pockets and shoulder straps.", + "A trench coat is a long waterproof coat with a belt and deep pockets, unlike shorter or non-waterproof jackets and coats." + ], + "tricycle": [ + "A tricycle is a three-wheeled vehicle with a seat, handlebars, and pedals, typically smaller and simpler than a bicycle.", + "Tricycles have three wheels, a seat, and handlebars, distinguishing them from bicycles with two wheels or wagons without handlebars.", + "A tricycle has three wheels arranged in a stable triangular configuration unlike bicycles or other wheeled vehicles.", + "A tricycle has three wheels, a seat, handlebars, and pedals, often with a small frame and is larger than a toy but smaller than a car." + ], + "trimaran": [ + "A trimaran has three parallel hulls, unlike most boats which have one or two, making it wider and more stable in water.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls for stability and speed.", + "A trimaran has three distinct parallel hulls with a main central hull and two smaller outrigger hulls.", + "A trimaran has three parallel hulls with a main central hull and two smaller outrigger hulls on each side." + ], + "tripod": [ + "A tripod is a three-legged stand with a central mount, often used to support cameras or other equipment.", + "A tripod has three long legs extending from a central point, often with adjustable height and a mounting platform for cameras or equipment.", + "A tripod has three evenly spaced legs extending from a central point to provide stable support.", + "A tripod has three long legs and a central mount, unlike most objects which are solid or have different shapes and supports." + ], + "triumphal arch": [ + "A triumphal arch is a large freestanding stone monument with a curved or flat top, unlike buildings or bridges.", + "A triumphal arch is a large monumental structure with a curved or square top, often decorated with sculptures and inscriptions.", + "A triumphal arch is a large monumental structure with a curved or square top and often features intricate carvings and inscriptions.", + "A triumphal arch is recognized by its large arched structure, often decorated with columns and sculptures, standing as a monumental gateway." + ], + "trolleybus": [ + "Trolleybuses have dual overhead poles connecting to power lines unlike other vehicles.", + "A trolleybus looks like a bus but has two overhead poles connecting to electric wires for power unlike regular buses or trams.", + "A trolleybus looks like a large bus with overhead poles connecting to power lines for electricity.", + "A trolleybus looks like a large electric bus with overhead poles connecting to power lines for energy." + ], + "trombone": [ + "A trombone is a long brass instrument with a sliding tube and flared bell, distinct among objects for its shiny curved shape.", + "A trombone has a long slide and a flared bell, unlike most brass instruments which use valves and have fixed tubing lengths.", + "A trombone has a long sliding tube and a flared bell making it distinct from other brass instruments.", + "The trombone has a long sliding U-shaped tube that adjusts pitch by moving in and out." + ], + "hot tub": [ + "A hot tub is a large round or square water-filled tub with seats and jets often made of wood or acrylic.", + "A hot tub is a large, round or oval water-filled tub with seating, jets, and often a cover, unlike smaller or non-water containers.", + "A hot tub is recognized by its large, round or oval water-filled basin with jets, often surrounded by seating and a rim.", + "A hot tub resembles a large round or square basin filled with water, often with seats and jets, typically made of acrylic or wood." + ], + "turnstile": [ + "A turnstile is a rotating gate with horizontal arms that allows one person to pass at a time.", + "A turnstile is a rotating barrier with horizontal arms that lets people pass one at a time unlike doors or gates.", + "A turnstile is a rotating gate with horizontal bars that allows one person to pass at a time when pushed.", + "Turnstiles have rotating horizontal bars or arms that allow one person to pass at a time, often seen in entryways or transit areas." + ], + "typewriter keyboard": [ + "A typewriter keyboard is a rectangular array of raised black and white keys with letters and symbols.", + "A typewriter keyboard has rows of raised round keys with letters and symbols arranged in a rectangular metal or plastic frame.", + "A typewriter keyboard has raised rectangular keys with letters arranged in rows and a metal frame often with visible mechanical parts.", + "A typewriter keyboard has rows of raised, round keys with letters and symbols, often metallic, while other objects vary in shape and texture." + ], + "umbrella": [ + "An umbrella has a curved handle with a central pole supporting a canopy of fabric or material that opens for rain protection.", + "An umbrella is a handheld canopy with a central rod and fabric stretched over ribs to shield from rain or sun.", + "An umbrella has a curved canopy with ribs and a central pole, often with a handle, designed to shield from rain or sun.", + "A canopy of fabric or material stretched over a folding frame supported by a central pole." + ], + "unicycle": [ + "A unicycle has a single wheel with no handlebars or additional wheels unlike bicycles or other wheeled objects.", + "A unicycle is a single-wheeled vehicle with a seat and pedals, resembling a bicycle but with only one wheel.", + "A unicycle has a single wheel with a seat and pedals, lacking handlebars or extra wheels like bicycles.", + "A unicycle has a single wheel with a seat and pedals, unlike bicycles with two wheels or scooters with handlebars and a platform." + ], + "upright piano": [ + "An upright piano is a tall rectangular musical instrument with black or white keys and a vertical wooden frame.", + "An upright piano is tall and rectangular with a vertical front panel and keys, unlike shorter or differently shaped furniture and instruments.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top.", + "An upright piano has a tall rectangular shape with a keyboard at the bottom and a hinged lid on top." + ], + "vacuum cleaner": [ + "Vacuum cleaners typically have a long hose or tube, a dust collection bag or canister, and wheels for mobility unlike most other objects.", + "Vacuum cleaners typically have a long hose, a dust collection bag or canister, wheels, and a handle for pushing or pulling.", + "A vacuum cleaner typically has a long handle, a body with a motor, and a nozzle or brush for sucking up dirt.", + "A vacuum cleaner typically has a long hose, a dust collection bag or canister, and wheels for moving around on floors." + ], + "vase": [ + "A vase is typically a tall hollow container with a narrow neck and open top often decorated and made of glass or ceramic.", + "A vase is a tall hollow container with a base and often a narrow neck used to hold flowers or as decoration.", + "A vase is typically tall with a narrow neck and open top designed to hold flowers distinguishing it from similar containers.", + "Vases are typically tall hollow containers with an open top designed to hold flowers unlike bowls or jars which are shorter and wider." + ], + "vaulted or arched ceiling": [ + "Vaulted or arched ceilings have a curved upward shape creating an open spacious interior with visible structural ribs or smooth continuous curves.", + "A vaulted or arched ceiling is a curved or domed roof structure that rises upward creating an open and spacious interior feel.", + "Look for a curved or dome-shaped top on ceilings that rise upward in a smooth arch rather than being flat.", + "Vaulted ceilings have curved upward shapes forming arches while other objects typically have flat or straight surfaces." + ], + "velvet fabric": [ + "Velvet fabric has a soft, smooth texture with a distinctive sheen that changes when brushed in different directions.", + "Velvet fabric has a soft, smooth texture with a distinctive sheen that reflects light differently than most other fabrics.", + "Velvet fabric is a soft, smooth textile with a dense, even pile that gives it a luxurious, slightly shiny appearance.", + "Velvet fabric has a soft, dense pile with a smooth, shiny surface that reflects light differently from other fabrics." + ], + "vending machine": [ + "A vending machine is a tall rectangular box with buttons, a display, and a slot to dispense items like snacks or drinks.", + "Vending machines are typically rectangular with a glass front displaying items and buttons or a keypad for selection.", + "A vending machine is a tall rectangular box with a glass front displaying items and buttons or a touchscreen for selection.", + "Vending machines are boxy with a front panel displaying products, buttons, a coin slot, and a dispensing tray at the bottom." + ], + "vestment": [ + "Vestments are distinguished by their flowing fabric, ornate designs, and ceremonial appearance often associated with religious or formal rituals.", + "Vestments are ceremonial robes or garments, often ornate and flowing, typically worn by clergy during religious services or rituals.", + "Vestments are long flowing robes with intricate designs, often in religious contexts, unlike everyday clothing or plain garments.", + "Vestments are long flowing garments often with intricate designs and rich fabrics worn by clergy during religious ceremonies." + ], + "viaduct": [ + "A viaduct is a long elevated bridge with multiple arches or spans, unlike shorter or simpler bridges or non-elevated structures.", + "A viaduct is a long elevated bridge with multiple arches or spans, typically carrying roads or railways over valleys or other obstacles.", + "A viaduct is a long elevated bridge with multiple arches or spans, often carrying roads or railways over valleys or other obstacles.", + "A viaduct is recognized by its long elevated structure with multiple arches or spans carrying roads or railways over valleys or obstacles." + ], + "violin": [ + "A violin is a wooden string instrument with an hourglass shape, a long neck, and four strings played with a bow.", + "A violin has a slender wooden body with curved sides, strings, and a neck, unlike bulkier or differently shaped objects.", + "The violin has a distinctive hourglass shape with a narrow waist and curved sides unlike most other objects.", + "A violin has a hollow wooden body with an hourglass shape, four strings, a long neck, and is played with a bow." + ], + "volleyball": [ + "A volleyball is a round white ball with black or colored panels and stitching, slightly larger than a basketball.", + "A volleyball is a spherical ball with white, hexagonal and pentagonal panels often seen in mid-air during a game.", + "Volleyballs are round with a smooth or pebbled surface and often have colorful panels or stripes unlike other sports balls.", + "A volleyball is a round white ball with black or colored panels arranged in a symmetrical pattern." + ], + "waffle iron": [ + "A waffle iron is a metal kitchen appliance with two hinged plates that create a grid pattern on cooked waffles.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create textured waffles when heated.", + "A waffle iron has a hinged metal grid with deep square or round patterns to create waffles unlike flat pans or smooth appliances.", + "A waffle iron has a hinged metal griddle with deep square or honeycomb patterns to create the distinct waffle shape." + ], + "wall clock": [ + "A wall clock is round or square with numbers or marks and hands or a digital display on a flat surface.", + "Wall clocks are flat round or square objects with numbers and hands mounted on walls unlike other clocks or decorative items.", + "A wall clock is a round or square object with numbers and hands, hanging on a wall to show time.", + "A wall clock has a circular face with numbers or marks and moving hands to indicate time mounted on a wall." + ], + "wallet": [ + "Wallets are small flat pouches typically made of leather or fabric designed to hold money and cards unlike bulkier bags or containers.", + "A wallet is a small flat case typically made of leather or fabric used to hold money cards and personal items.", + "A wallet is a small flat rectangular pouch often made of leather or fabric with slots for cards and cash.", + "Wallets are small flat rectangular objects often made of leather or fabric with slots for cards and a foldable design." + ], + "wardrobe": [ + "A wardrobe is a tall rectangular furniture piece with doors, often wooden, used for storing clothes and other items.", + "A wardrobe is a tall wooden cabinet with doors and shelves used for storing clothes and other personal items.", + "A wardrobe is a tall freestanding closet with doors and shelves for storing clothes unlike smaller or open storage furniture.", + "A wardrobe is a tall rectangular furniture piece with doors, shelves, and often mirrors, used for storing clothes and other items." + ], + "military aircraft": [ + "Military aircraft have sleek streamlined bodies wings mounted low or high and often display camouflage or military markings like stars or roundels.", + "Military aircraft typically have sleek streamlined bodies wings and tails with camouflage or gray coloring and visible weapon mounts or insignia.", + "Military aircraft are large winged vehicles with sleek designs often featuring camouflage colors and visible weaponry or insignia.", + "Military aircraft have sleek angular designs, camouflage colors, visible weaponry, and distinct insignias for quick identification in combat scenarios." + ], + "sink": [ + "A sink is typically a basin with faucets and drains often made of porcelain metal or ceramic found in kitchens or bathrooms.", + "A sink is a basin with faucets for washing, typically made of porcelain or stainless steel, often found in kitchens or bathrooms.", + "Sinks typically have a basin and faucet, unlike other objects which lack water fixtures and drainage features.", + "A sink has a basin with a faucet and drain, often set in a countertop or wall, used for washing hands or dishes." + ], + "washing machine": [ + "Washing machines are large rectangular appliances with round doors and control panels often found in laundry rooms or kitchens.", + "Washing machines are typically large rectangular appliances with round doors and control panels unlike most other household objects.", + "A washing machine is a large rectangular appliance with a round door on the front and control buttons or dials on top.", + "A washing machine has a large round door on its front for loading clothes unlike other appliances." + ], + "water bottle": [ + "Water bottles are typically cylindrical with a cap, often transparent or colored, and have a narrow neck for drinking.", + "A water bottle is typically a tall cylindrical container with a narrow neck and cap often made of plastic or metal.", + "A water bottle is typically a cylindrical or curved container with a narrow neck and often has a cap or lid.", + "Water bottles are typically cylindrical with a cap and made of clear or colored plastic or metal, unlike other objects." + ], + "water jug": [ + "A water jug typically has a distinct handle and a spout for pouring liquids.", + "A water jug typically has a handle and a spout for pouring, unlike bottles or cups which lack one or both features.", + "A water jug is a tall container with a handle and a spout, typically made of plastic, metal, or ceramic for holding liquids.", + "A water jug typically has a handle, a spout, and a rounded body designed for pouring and holding liquids." + ], + "water tower": [ + "Water towers are tall cylindrical or spherical structures on stilts, distinct from buildings or tanks by their elevated design and large water storage capacity.", + "A water tower is a tall cylindrical or spherical structure on stilts that stores and distributes water for a community.", + "A water tower is a tall cylindrical or spherical structure on stilts holding a large tank for storing water.", + "A water tower has a large elevated tank on tall supports to store and distribute water under pressure." + ], + "whiskey jug": [ + "A whiskey jug is typically a rounded ceramic or glass container with a narrow neck, handle, and often a cork or stopper.", + "A whiskey jug is a stout ceramic or glass container with a narrow neck and handle, often brown or amber in color.", + "A whiskey jug typically has a rounded body with a narrow neck and a handle for easy pouring.", + "A whiskey jug typically has a rounded body with a narrow neck and handle, often made of ceramic or glass." + ], + "whistle": [ + "A whistle is a small metal or plastic tube with a hole to blow into and a curved end for sound.", + "A whistle has a small hole for blowing air to create sound unlike most other objects.", + "A whistle is a small tube-shaped object with a mouthpiece and holes designed to produce a high-pitched sound when blown.", + "A whistle is typically small, tubular, with a mouthpiece and holes, often metallic or plastic and easy to hold." + ], + "hair wig": [ + "Hair wigs can be identified by their uniform strands unnatural sheen and often perfect styling unlike natural hair growth.", + "Hair wigs have uniform texture synthetic or natural strands arranged densely mimicking real hair often with a visible base or cap.", + "A hair wig resembles a head of artificial hair designed to mimic natural hairstyles, often made from synthetic fibers or real hair.", + "Hair wigs mimic natural hair with strands and scalp-like bases while other objects lack these realistic hair texture and attachment features." + ], + "window screen": [ + "A window screen is a fine mesh grid, usually metal or fiberglass, stretched tightly over a frame to cover a window opening.", + "A window screen is a flat mesh panel with a fine grid pattern designed to fit inside a window frame.", + "Window screens are recognized by their fine mesh grid pattern and rectangular frames often seen in windows for ventilation and insect protection.", + "Window screens are thin mesh grids with small holes, unlike solid or transparent objects like glass or curtains." + ], + "window shade": [ + "Window shades are flat, flexible panels or rolls of fabric or material designed to cover windows, unlike rigid or solid objects.", + "A window shade is a flat, rectangular panel or roll of fabric or material that covers a window to block light.", + "A window shade is a flat, rectangular fabric or material panel that rolls or folds to cover windows.", + "Window shades are recognized by their flat, rectangular shape, often with horizontal or vertical lines, and they hang over windows to block light." + ], + "Windsor tie": [ + "A Windsor tie is a sleek narrow necktie with a symmetrical triangular knot typically made of silk or polyester.", + "A Windsor tie is a necktie with a wide triangular knot, typically symmetrical and thick, made from silk or other fine fabrics.", + "A Windsor tie is a narrow, long, and patterned fabric strip worn around the neck, unlike broader or differently shaped accessories.", + "The Windsor tie has a wide triangular knot that is symmetrical and thicker than other tie knots." + ], + "wine bottle": [ + "A wine bottle is a tall glass container with a narrow neck and often has a label and cork or screw cap.", + "Wine bottles have a tall slender shape with a narrow neck and are often labeled with colorful designs or brand logos.", + "Look for a tall glass container with a narrow neck and a label often featuring vineyard or brand details.", + "Wine bottles are typically tall and slender with a narrow neck and often have labels or colored glass unlike most other objects." + ], + "airplane wing": [ + "An airplane wing is a long flat surface with a curved top and straight edges designed to lift and stabilize the aircraft.", + "Airplane wings are long flat and tapered with smooth surfaces while other objects vary in shape texture and size.", + "Airplane wings are long flat surfaces with smooth curves attached to the fuselage often seen with flaps or engines underneath.", + "An airplane wing has a long, tapered flat surface with a curved top and straight bottom for lift." + ], + "wok": [ + "A wok is a deep round-bottomed cooking pan with high sloping sides and typically made of metal.", + "A wok has a deep round shape with high sloping sides and a small flat bottom used for stir frying.", + "A wok is a deep round-bottomed cooking pan with high sloping sides often made of metal used for stir-frying.", + "A wok has a deep round bowl with high sloping sides and a small flat bottom unlike flatter or straighter pans." + ], + "wooden spoon": [ + "A wooden spoon is a smooth, light brown utensil with a long handle and a shallow oval or round bowl.", + "Wooden spoons have a long handle and a shallow oval bowl made of smooth unfinished wood with no sharp edges.", + "A wooden spoon has a long handle and a flat oval head made of smooth light brown wood with no shiny or metallic parts.", + "Wooden spoons have a long handle and a wide shallow bowl made of smooth unfinished wood with a simple rounded or oval shape." + ], + "wool": [ + "Wool has a soft, fuzzy texture with fine, curly fibers that often appear matted or slightly shiny in natural light.", + "Wool has a soft, fuzzy texture with fine, curly fibers, unlike smoother or more rigid materials like cotton or synthetic fabrics.", + "Wool has a distinctive fuzzy and slightly tangled texture with fine, soft fibers that appear matted or slightly curly.", + "Wool looks soft, fuzzy, and slightly textured with a matte finish, often appearing in natural white or dyed colors." + ], + "split-rail fence": [ + "Split-rail fences are recognized by their horizontal wooden rails stacked in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally without nails, unlike smooth or metal fences with uniform construction.", + "A split-rail fence consists of rough wooden logs stacked horizontally in a zigzag or straight pattern without nails or fasteners.", + "A split-rail fence consists of rough wooden rails stacked horizontally between upright posts, creating a simple rustic barrier." + ], + "shipwreck": [ + "Shipwrecks are broken, sunken, or partially submerged vessels with rust, barnacles, and visible damage unlike intact floating ships or boats.", + "Shipwrecks are partially submerged broken ships with rusted hulls often surrounded by debris in water.", + "A shipwreck appears as a broken, sunken vessel often covered in rust, seaweed, and sand, lying underwater or washed ashore.", + "Shipwrecks appear as broken, sunken, or rusted ship parts often covered in seaweed or coral underwater or on shores." + ], + "sailboat": [ + "A sailboat is a slender watercraft with tall masts and large fabric sails that catch the wind to propel it forward.", + "Sailboats have tall masts with sails, a hull floating on water, and are often seen in open water or marinas.", + "Sailboats have tall masts with sails and are usually on water unlike other objects which lack these features and settings.", + "Sailboats have tall masts with sails, a hull that floats on water, and are often seen in coastal or open water settings." + ], + "yurt": [ + "A yurt is a round, portable tent with a domed roof, often made of felt or fabric over a wooden frame.", + "A yurt is a round, tent-like structure with a conical roof, often made of fabric or felt over a wooden frame.", + "A yurt has a distinctive circular lattice wall structure supporting a conical roof made of felt or skins.", + "A yurt is recognized by its round shape, domed roof, and lattice walls often covered with felt or fabric." + ], + "website": [ + "Websites are digital pages with text and images displayed on screens unlike physical objects which have tangible shapes and textures.", + "Websites are recognized by their rectangular screens displaying text images and interactive elements like buttons and menus.", + "Websites appear as screens displaying text, images, and interactive elements on devices like computers, phones, or tablets.", + "Websites appear as rectangular screens displaying text images and interactive elements on digital devices like computers or phones." + ], + "comic book": [ + "Comic books are colorful flat printed pages with illustrated panels and text bubbles unlike three-dimensional everyday objects.", + "Comic books have colorful illustrated covers with bold outlines, speech bubbles, and often display superheroes or action scenes.", + "A comic book is a colorful printed booklet with illustrated panels, speech bubbles, and glossy pages featuring superheroes or stories.", + "Comic books have distinct speech bubbles and panel layouts that set them apart from other printed materials." + ], + "crossword": [ + "A crossword appears as a grid of black and white squares with numbered clues typically found in newspapers or puzzle books.", + "Crosswords are flat grids with black and white squares containing letters, unlike solid objects with varied shapes and colors.", + "Crosswords have a grid of black and white squares with letters forming intersecting words in horizontal and vertical directions.", + "Crosswords appear as grid patterns with black and white squares containing small letters arranged in intersecting horizontal and vertical lines." + ], + "traffic or street sign": [ + "Traffic or street signs are flat, often metal, with bold colors and simple symbols or text for clear visibility.", + "Traffic signs have bold colors simple shapes clear symbols and standardized designs making them easily recognizable from other objects.", + "Traffic signs are typically flat, colorful, and have bold symbols or text on a high-contrast background for easy visibility.", + "Traffic signs have bold colors simple shapes and clear symbols unlike natural or complex man made objects." + ], + "traffic light": [ + "Traffic lights are recognized by their colored circular lights arranged vertically or horizontally on rectangular or pole-mounted structures.", + "Traffic lights are distinct with their colored circular lights arranged vertically or horizontally on a rectangular or pole-mounted box.", + "Traffic lights are identified by their rectangular or circular shape, bright colors red yellow green, and mounted on poles or overhead structures.", + "Traffic lights uniquely have three vertically or horizontally stacked colored circles or rectangles signaling stop, wait, and go." + ], + "dust jacket": [ + "A dust jacket is a removable paper cover with printed designs and text, often glossy and folded around a book's spine.", + "A dust jacket is a removable paper cover with printed designs and text, unlike solid objects like books or furniture.", + "A dust jacket is a removable paper cover on a book, often colorful with designs, titles, and author names.", + "A dust jacket is a removable paper cover on a book, often colorful with text and images, protecting the hardcover beneath." + ], + "menu": [ + "A menu is typically a printed or digital list of food and drink options often found in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images, often held or placed on tables, unlike three-dimensional objects like plates or cups.", + "Menus are flat rectangular sheets with text and images often held or placed on tables in restaurants or cafes.", + "Menus are flat rectangular sheets with text or images often held in hands or placed on tables in dining settings." + ], + "plate": [ + "A plate is flat, round or oval, usually with a raised edge, and comes in various colors and simple patterns.", + "A plate is a flat round dish typically made of ceramic or metal used for serving food.", + "Plates are flat, round, and usually smooth with a raised edge, unlike bowls which are deeper or utensils which are not flat.", + "Plates are flat, round or oval, often with raised edges and simple patterns, used for serving or displaying food." + ], + "guacamole": [ + "Guacamole is a creamy green dip made from avocados, often with visible chunks, unlike solid foods or liquids.", + "Guacamole is a creamy green dip with a slightly chunky texture often served in a bowl with visible avocado pieces.", + "Guacamole is a creamy green dip made from mashed avocados often served in a bowl with chunks of vegetables or chips.", + "Guacamole is recognized by its creamy green texture with visible chunks of avocado often mixed with lime cilantro and onions." + ], + "consomme": [ + "Consomme is a clear, golden-brown liquid, unlike thicker soups or solid foods, with no visible chunks or particles.", + "Consomme is a clear, light-colored broth with no visible solids, appearing as a thin, translucent liquid in a bowl.", + "Consomme is a clear, golden broth often served in a bowl with minimal solid ingredients.", + "Consomme is a clear, golden broth with no solids, often served in a bowl with a shallow depth and light reflection." + ], + "hot pot": [ + "Hot pot is a large metal pot with boiling broth and ingredients inside, unlike other objects which are usually solid and not cooking vessels.", + "Hot pot is recognized by a simmering pot of broth surrounded by raw ingredients like meats, vegetables, and dipping sauces.", + "Hot pot is a large metal pot filled with boiling broth surrounded by plates of raw meats and vegetables for cooking.", + "A hot pot is a large metal pot with boiling broth and visible ingredients like meat vegetables and noodles inside." + ], + "trifle": [ + "A trifle is a layered dessert with colorful sponge cake fruit custard and cream often in a clear glass dish.", + "Trifle is a layered dessert with colorful ingredients like fruit custard cream and cake visible in clear glass bowls.", + "A trifle is a colorful layered dessert with sponge cake custard fruit jelly and cream often in a glass bowl.", + "Trifle is recognized by its layered appearance with colorful sponge cake fruit custard cream and often topped with whipped cream or nuts." + ], + "ice cream": [ + "Ice cream is identified by its creamy, soft texture, bright colors, and often served in cones or cups with toppings.", + "Ice cream has a soft, creamy texture, often served in cones or cups, with colorful scoops or swirls and sometimes toppings.", + "Ice cream is a colorful, creamy dessert often served in cones or cups with various toppings and swirls.", + "Ice cream is typically smooth, creamy, and served in cones or cups, often with visible swirls or layers, unlike harder or solid objects." + ], + "popsicle": [ + "Popsicles are colorful frozen treats on sticks with smooth icy surfaces unlike fruits or desserts which are often soft or textured.", + "Popsicles are colorful rectangular or oval frozen treats on sticks with smooth icy surfaces and often fruit bits visible.", + "A popsicle is a colorful frozen treat on a stick with a smooth icy texture and various fruity or creamy flavors.", + "Popsicles are recognized by their stick handle colorful icy rectangular shape and often dripping melted edges." + ], + "baguette": [ + "A baguette is a long thin loaf of French bread with a crispy crust and soft interior.", + "A baguette is a long thin loaf of French bread with a golden brown crust and diagonal slashes on top.", + "A baguette is long, thin, and crusty with a golden-brown color, unlike shorter, softer, or differently shaped breads and objects.", + "A baguette is recognized by its long slender shape golden brown crust and distinctive diagonal slashes on the surface." + ], + "bagel": [ + "A bagel is a round bread with a hole in the center, typically golden brown with a chewy texture and smooth surface.", + "A bagel is a round bread with a dense chewy interior and a golden brown crust often topped with seeds or grains.", + "Bagels are round with a hole in the middle and have a shiny crust unlike most breads or pastries.", + "A bagel has a round shape with a hole in the center and a shiny, chewy crust often topped with seeds or grains." + ], + "pretzel": [ + "Pretzels are twisted knot-shaped baked goods with a golden-brown crust, unlike straight or round breads and snacks.", + "Pretzels are twisted knot shaped baked goods with a golden brown crust and a smooth shiny surface.", + "Pretzels have a distinctive twisted knot shape with a glossy brown surface from baking.", + "A pretzel is a twisted knot-shaped baked good with a golden brown crust and a smooth shiny surface." + ], + "cheeseburger": [ + "A cheeseburger has layered ingredients like a bun patty cheese and toppings often with melted cheese visible between the bun halves.", + "A cheeseburger has a bun, melted cheese, and visible meat patty, unlike most objects which lack these layered food components.", + "A cheeseburger is a round sandwich with a beef patty melted cheese lettuce tomato and condiments between two buns.", + "A cheeseburger has a melted cheese layer visibly oozing between a beef patty and bun, distinguishing it from other sandwiches." + ], + "hot dog": [ + "A hot dog is a long thin sausage in a soft bun often topped with mustard ketchup or relish.", + "Hot dogs are long cylindrical meat rolls with a smooth texture typically served in a split bun.", + "A hot dog is a long thin bun with a smooth sausage inside often topped with condiments like mustard or ketchup.", + "Hot dogs are long cylindrical meat pieces in a bun, distinct from similar foods by their uniform shape and smooth texture." + ], + "mashed potatoes": [ + "Mashed potatoes are soft, creamy, and lumpy with a pale white or yellow color unlike most solid or textured foods.", + "Mashed potatoes have a soft lumpy texture with a creamy white color and no distinct individual shapes.", + "Mashed potatoes have a smooth creamy texture with soft lumps and a pale white or yellowish color often served in a bowl.", + "Mashed potatoes look like a soft creamy pile with a smooth or slightly lumpy texture and a pale white or yellowish color." + ], + "cabbage": [ + "Cabbages are round leafy vegetables with tightly packed layers of thick green or purple leaves forming a dense head.", + "Cabbage is round with tightly packed thick green or purple leaves forming a dense layered head on a short stem.", + "Cabbages have round, layered green or purple leaves forming a dense head, unlike most vegetables which are smaller or less tightly packed.", + "Cabbages have round layered leaves with a dense center and a smooth waxy texture in shades of green or purple." + ], + "broccoli": [ + "Broccoli is a green vegetable with a thick stem and a bushy top made of small, tightly packed florets.", + "Broccoli has a green clustered head with small florets and a thick edible stalk unlike smoother or differently shaped vegetables.", + "Broccoli has a green tree-like shape with a thick stalk and dense clusters of small bumpy florets on top.", + "Broccoli has a unique cluster of small green florets forming a tree-like shape on thick edible stalks." + ], + "cauliflower": [ + "Cauliflower is a white, round vegetable with a bumpy, textured surface made up of many small, tightly packed florets.", + "Cauliflower is a white, round, bumpy vegetable with thick green leaves at the base.", + "Cauliflower has a white, bumpy, rounded head with green leaves at the base, unlike smoother or differently colored vegetables.", + "Cauliflower has a unique bumpy white head made of tightly packed flower buds called curds." + ], + "zucchini": [ + "Zucchini is a long green vegetable with smooth skin while similar objects vary in color shape texture or are non vegetable items.", + "A zucchini is a long green cylindrical vegetable with smooth skin and slightly tapered ends resembling a cucumber.", + "Zucchini are long green cylindrical vegetables with smooth skin and slightly tapered ends resembling cucumbers but usually larger.", + "Zucchini has a long cylindrical shape with smooth dark green skin and subtle lighter green stripes." + ], + "spaghetti squash": [ + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oval vegetable with stringy flesh resembling spaghetti when cooked.", + "Spaghetti squash is a yellow oblong vegetable with stringy flesh resembling spaghetti when cooked unlike other squash types.", + "Spaghetti squash has a yellow oblong shape with stringy flesh resembling spaghetti when cooked." + ], + "acorn squash": [ + "Acorn squash is small, dark green, ribbed, and oval-shaped, unlike smoother or differently colored squashes and other round fruits or vegetables.", + "Acorn squash is a small, dark green, ribbed, oval-shaped winter squash with a distinctive acorn-like shape and yellow-orange flesh inside.", + "Acorn squash has a distinctive ridged dark green skin with a teardrop shape and often a patch of orange or yellow.", + "Acorn squash is small, dark green with ridges, shaped like an acorn, and has orange-yellow flesh inside." + ], + "butternut squash": [ + "Butternut squash has a distinctive elongated pear shape with a smooth tan skin and bulbous bottom.", + "Butternut squash has a long tan neck, bulbous orange base, and smooth skin with subtle ridges.", + "Butternut squash is a long tan-colored gourd with a bulbous end and smooth skin resembling a large pear.", + "Butternut squash has a smooth tan skin, elongated pear shape, and orange flesh inside." + ], + "cucumber": [ + "A cucumber is a long green vegetable with smooth skin and tapered ends resembling a zucchini but more slender and uniform.", + "Cucumbers are long, green, cylindrical vegetables with smooth skin and tapered ends, often darker at the stem.", + "Cucumbers are long green cylindrical vegetables with smooth skin while similar objects vary in color shape texture or size.", + "Cucumbers are recognized by their long green cylindrical shape smooth skin and small bumps with tapered ends." + ], + "artichoke": [ + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, slightly spiky base.", + "An artichoke is a green, thistle-like vegetable with layered, pointed leaves and a round, spiky base.", + "Artichokes have a round green head with layered pointed scales and a thick stem.", + "Artichokes have layered green leaves with a spiky top and a round shape unlike most vegetables which are smoother and simpler." + ], + "bell pepper": [ + "A bell pepper is a colorful, glossy, and blocky vegetable with a smooth skin and a hollow interior containing seeds.", + "Bell peppers have a glossy, smooth skin with distinct ridges and a vibrant color ranging from green to red or yellow.", + "Bell peppers are shiny, smooth, and blocky with distinct ridges, unlike most fruits which are round or irregularly shaped.", + "Bell peppers are shiny, smooth, and come in vibrant colors like green, red, or yellow with a distinct blocky shape." + ], + "cardoon": [ + "A cardoon looks like a large thistle with silvery green leaves and tall stalks resembling celery or artichoke plants.", + "Cardoon has large, spiny, silvery-green leaves and tall flower stalks, unlike most vegetables which are smaller and less prickly.", + "Cardoon has large spiny silvery green leaves and thistle like purple flowers with a tall branching stem structure.", + "Cardoon looks like a large thistle with silvery green spiky leaves and purple flowers resembling an artichoke." + ], + "mushroom": [ + "Mushrooms typically have a rounded cap atop a slender stem often found in earthy colors like brown white or tan.", + "Mushrooms have a distinct cap and stem unlike plants or animals which have leaves branches or fur and limbs.", + "Mushrooms have a distinct cap and stem shape with gills or pores underneath and often grow in clusters on organic matter.", + "Mushrooms have a distinct umbrella-shaped cap with gills or pores underneath and a stem." + ], + "Granny Smith apple": [ + "A Granny Smith apple is a bright green round fruit with a smooth shiny skin and a slightly tart crisp flesh.", + "Granny Smith apples are bright green, round, and smooth with a shiny skin, unlike other fruits which vary in color and texture.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small dimple at the base.", + "Granny Smith apples are bright green with a slightly bumpy texture and a round shape often with a small size." + ], + "strawberry": [ + "Strawberries are small red fruits with tiny seeds on their surface and green leafy tops unlike other smooth or differently shaped objects.", + "Strawberries are recognized by their bright red color small seeds on the surface and green leafy tops.", + "Strawberries are small red fruits with green leafy tops and tiny yellow seeds covering their bumpy textured surface.", + "Strawberries are small red heart-shaped fruits with tiny yellow seeds on their surface and green leafy tops." + ], + "orange": [ + "Look for round or oval shapes with bright reddish-yellow color and smooth shiny skin like a typical orange fruit.", + "Oranges are round with a bright orange peel while similar objects vary in color shape and texture.", + "The vibrant reddish-yellow hue of orange is distinct and not commonly found in other natural objects.", + "Oranges are round with bright orange skin, a slightly bumpy texture, and often have a small green stem attached." + ], + "lemon": [ + "Lemons are bright yellow oval fruits with a textured peel and a distinctive sour taste often used in cooking and beverages.", + "Lemons are bright yellow oval fruits with a smooth shiny skin and a slightly tapered shape at both ends.", + "Lemons are bright yellow oval fruits with a textured peel unlike most other fruits which vary in color shape and skin texture.", + "A lemon is a bright yellow oval fruit with a smooth or slightly textured peel and a tapered shape at both ends." + ], + "fig": [ + "Figs have a distinctive teardrop shape with a small opening at the top and a textured skin covered in fine wrinkles.", + "A fig is a soft pear-shaped fruit with smooth skin, green or purple, containing tiny edible seeds inside sweet red flesh.", + "Figs are small pear-shaped fruits with smooth or slightly wrinkled skin in shades of green purple or black and soft sweet flesh inside.", + "Figs are recognized by their teardrop shape, wrinkled purple or green skin, and soft red interior with tiny edible seeds." + ], + "pineapple": [ + "A pineapple is a large tropical fruit with a rough spiky skin and a crown of green leaves on top.", + "Pineapples have a spiky green crown, rough brown-yellow skin, and oval shape unlike most smooth round fruits.", + "Pineapples have a distinctive spiky green crown and rough diamond-patterned yellow skin unlike any other fruit or object.", + "A pineapple has a rough spiky green crown, yellow-brown scaly skin, and a cylindrical shape with a sweet juicy interior." + ], + "banana": [ + "A banana is a long curved yellow fruit with a smooth peel and soft flesh, often found in bunches.", + "Bananas are long curved yellow fruits with smooth skin unlike most objects which vary widely in shape color and texture.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects.", + "Bananas are long curved yellow fruits with a smooth peel and tapered ends distinct from other objects." + ], + "jackfruit": [ + "Jackfruit has a distinctive bumpy green or yellow outer skin with large spiky protrusions unlike any other fruit or object.", + "Jackfruit has a large spiky green exterior with a bumpy texture and a sweet smell when ripe.", + "Jackfruit is large, bumpy, and greenish-yellow with a spiky exterior, unlike smoother or differently shaped fruits and objects.", + "Jackfruit is large, green, and spiky with a bumpy texture, often growing directly from the tree trunk." + ], + "cherimoya (custard apple)": [ + "Cherimoya has green scaly skin with a heart shape and soft creamy flesh unlike smoother skinned or differently textured fruits.", + "The cherimoya is a green heart-shaped fruit with bumpy scaly skin and creamy white flesh inside.", + "The cherimoya has a green scaly or bumpy skin with heart-shaped form and creamy segmented flesh inside.", + "Cherimoya has green scaly skin with heart-shaped bumps and creamy white flesh with large black seeds inside." + ], + "pomegranate": [ + "A pomegranate is a round red fruit with a thick leathery skin and a crown-like calyx at the top.", + "A pomegranate is a round red fruit with a tough outer rind and clusters of juicy red seeds inside.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx unlike most other fruits.", + "Pomegranates have a unique round shape with a thick red skin and a crown-like calyx at the top." + ], + "hay": [ + "Hay is a dry, golden, and fibrous plant material, often bundled or loose, while other objects vary widely in texture, color, and shape.", + "Hay is a dry, golden or light brown, fibrous plant material often bundled or scattered in loose strands.", + "Hay has a light golden color and a rough, dry texture with long, thin strands often bundled or loosely scattered.", + "Hay is dry, golden or light brown, and looks like thin, tangled grass stems often bundled or stacked loosely." + ], + "carbonara": [ + "Carbonara has a creamy white sauce with pasta strands mixed with bits of meat and black pepper, unlike plainer pasta dishes.", + "Carbonara is a creamy pasta dish with white sauce, often topped with crispy bacon bits and grated cheese.", + "Carbonara is a creamy pasta dish with spaghetti eggs cheese pancetta and black pepper often topped with grated cheese.", + "Carbonara features creamy egg sauce, spaghetti, crispy pancetta or guanciale, black pepper, and grated cheese like Pecorino or Parmesan." + ], + "chocolate syrup": [ + "Chocolate syrup is a thick dark liquid with a smooth glossy texture unlike solid or powdery foods.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled over desserts.", + "Chocolate syrup is a thick dark brown liquid with a smooth glossy texture often seen in bottles or drizzled on foods.", + "Chocolate syrup has a thick, glossy, dark brown liquid appearance with a smooth, flowing texture that drips in viscous strands." + ], + "dough": [ + "Dough is a soft, pliable mixture of flour and liquid, often pale and slightly sticky, resembling thick paste or clay.", + "Dough is soft, pliable, and often pale or beige, unlike harder, shaped, or colored objects like bread or baked goods.", + "Dough is soft, pale, and malleable with a smooth or slightly textured surface, often shaped into lumps or flattened pieces.", + "Dough is soft, pale, and slightly lumpy with a smooth yet sticky texture often shaped into balls or flattened pieces." + ], + "meatloaf": [ + "Meatloaf is a dense, loaf-shaped cooked ground meat dish with a browned exterior, unlike other foods which vary in shape and texture.", + "Meatloaf looks like a dense, rectangular or oval-shaped loaf of ground meat, often brown with a slightly crispy outer layer.", + "Meatloaf has a distinctive textured brown crust covering a dense loaf-shaped interior made of ground meat.", + "Meatloaf looks like a dense rectangular loaf of cooked ground meat with a browned crust on top." + ], + "pizza": [ + "Pizza is recognized by its round flat shape melted cheese toppings and crust often sliced into triangular pieces.", + "Pizza is flat and round with melted cheese and toppings while other objects vary in shape texture and ingredients.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings like meats or vegetables.", + "Pizza is a round flatbread topped with melted cheese tomato sauce and various toppings often sliced into triangular pieces." + ], + "pot pie": [ + "A pot pie is recognized by its golden-brown crust with a flaky texture covering a savory filling in a small round dish.", + "Pot pies have a golden-brown crust covering a filling, distinguishing them from similar dishes with open tops or different textures.", + "Pot pie has a golden-brown flaky crust with visible filling peeking through the top or sides.", + "A pot pie has a golden-brown flaky crust covering a deep dish filled with visible chunks of meat and vegetables." + ], + "burrito": [ + "A burrito is a cylindrical, wrapped food with a soft tortilla exterior, often filled with beans, rice, meat, and cheese.", + "A burrito is a cylindrical wrapped food with visible tortilla folds, unlike similar items which may be flat or unwrapped.", + "A burrito is recognized by its cylindrical shape wrapped in a soft tortilla with visible fillings like beans, rice, and meat.", + "A burrito is a cylindrical wrapped food with visible tortilla edges often filled with beans rice meat and cheese." + ], + "red wine": [ + "Red wine is identified by its deep red or purple color in a clear glass with a smooth liquid surface.", + "Red wine is recognized by its deep red color, glass bottle shape, and often a wine label or cork.", + "Red wine appears as a deep ruby or purple liquid in a glass often with a smooth shimmering surface.", + "Red wine is a deep red or purple liquid typically stored in glass bottles with labels, unlike solid or differently colored objects." + ], + "espresso": [ + "Espresso is a small dark brown liquid in a tiny cup with a light crema layer on top.", + "Espresso is a small dark brown liquid in a tiny cup often with creamy foam on top.", + "Espresso is recognized by its small dark liquid in a tiny cup with creamy foam on top.", + "Espresso is a small dark concentrated coffee served in tiny cups unlike larger lighter brews in bigger mugs." + ], + "tea cup": [ + "A tea cup is a small handle bowl typically made of ceramic or porcelain used for drinking hot beverages.", + "A tea cup typically has a small rounded shape with a handle, unlike mugs which are larger or bowls which lack handles.", + "A tea cup typically has a small rounded shape with a handle and a saucer often made of ceramic or porcelain.", + "A tea cup is small with a handle and a deep round bowl often decorated and made of porcelain or ceramic." + ], + "eggnog": [ + "Eggnog is a creamy, pale yellow liquid often served in glasses or bowls, distinct from solid or non-dairy items.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow drink often served in a glass or mug, sometimes garnished with cinnamon or nutmeg.", + "Eggnog is a creamy, pale yellow or off-white liquid often served in a glass or cup, sometimes with a sprinkle of nutmeg on top." + ], + "mountain": [ + "Mountains are large natural elevations with steep rocky slopes and peaks while other objects are typically smaller and man-made or smoother.", + "Mountains are large natural elevations with steep rocky slopes and peaks often covered in snow or greenery.", + "Mountains are recognized by their large elevated landforms with steep slopes and rugged peaks often covered in snow or vegetation.", + "Mountains are large, rugged landforms with steep slopes and peaks, often covered in snow or greenery, standing tall above surrounding terrain." + ], + "bubble": [ + "Bubbles are round, transparent, and shiny with a thin, fragile surface, unlike most solid or opaque objects.", + "Bubbles are round, transparent, shiny, and often appear in clusters with reflective surfaces and slight color distortions.", + "Bubbles are small, round, transparent spheres filled with air or gas, often shiny and floating in liquid or air.", + "Bubbles are round, transparent, and shiny with smooth surfaces, often reflecting light and appearing to float or cluster together." + ], + "cliff": [ + "Cliffs are steep rock faces with rugged textures and sharp edges, unlike smoother or flatter natural or man-made objects.", + "Cliffs are steep rocky slopes with jagged edges and exposed earth often towering above water or flat land below.", + "A cliff is a steep rock face often found near coasts or mountains with rugged edges and dramatic drops.", + "Cliffs are steep rock faces with sharp vertical drops and rugged textures, often overlooking water or valleys." + ], + "coral reef": [ + "Coral reefs have vibrant colors, intricate branching or mound shapes, and diverse textures from polyps and marine life.", + "A coral reef is a vibrant underwater structure made of colorful, branching corals teeming with diverse marine life.", + "Coral reefs are colorful underwater structures with intricate textures, unlike smoother or simpler shapes of most other objects.", + "Coral reefs are colorful underwater structures with bumpy textures formed by tiny coral polyps often seen in branching or rock-like shapes." + ], + "geyser": [ + "Geysers are tall natural structures that shoot steam and water, unlike static objects like mountains or man-made fountains.", + "Geysers are recognized by their tall steam or water jets erupting from the ground often in natural landscapes.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground.", + "A geyser looks like a tall natural fountain shooting hot water and steam into the air from the ground." + ], + "lakeshore": [ + "A lakeshore appears as a water edge meeting land, often with gentle slopes, vegetation, and sometimes rocks or sandy beaches.", + "The unique visual cue for lakeshore is the distinct transition between land and calm water with surrounding natural scenery.", + "A lakeshore has water meeting land with natural edges, often surrounded by trees, rocks, or sand, creating a distinct boundary.", + "A lakeshore is a gently sloping land with water edges, often featuring sand, rocks, or vegetation blending into the lake." + ], + "promontory": [ + "A promontory is a high point of land jutting sharply into a body of water, unlike flat shores or rounded hills.", + "A promontory is recognized by its high, steep cliff or headland jutting sharply into a body of water or land.", + "A promontory is a high point of land or rock jutting sharply outward into a body of water, often with steep cliffs.", + "A promontory is a high cliff or headland jutting into a large body of water, often rocky and steep." + ], + "sandbar": [ + "A sandbar is a long narrow sandy ridge or shoal slightly submerged or exposed in shallow water near a shore.", + "A sandbar is a long narrow strip of sandy land rising above water often found near coasts or in shallow rivers.", + "A sandbar is a long narrow strip of sandy land in water while other objects vary in shape material and location.", + "A sandbar appears as a long, narrow strip of sandy or gravelly land slightly above water in a river or along a coast." + ], + "beach": [ + "Beaches are identified by sandy shores, ocean waves, sunny skies, and people relaxing or playing near the water.", + "Beaches have wide stretches of sand or pebbles with water edges unlike other objects which are solid or have defined shapes.", + "The unique visual cue for a beach is the combination of sand and water meeting at a shoreline.", + "A beach typically features sand, waves, shorelines, and sunny skies, often with people, umbrellas, or boats nearby." + ], + "valley": [ + "A valley is recognized by its low land between hills or mountains often with a river or stream running through it.", + "A valley is a low area between hills or mountains often with a river running through it surrounded by slopes.", + "Valleys are long low areas between hills or mountains, often with a river, unlike flat plains or isolated peaks.", + "Valleys appear as long low areas between hills or mountains often with rivers or greenery running through them." + ], + "volcano": [ + "Volcanoes are large mountain-like structures with craters that often emit smoke or lava unlike regular mountains or hills.", + "A volcano is a towering mountain with a crater at the top that erupts lava ash and smoke.", + "A volcano is a mountain with a crater at the top often emitting smoke lava or ash distinguishing it from other landforms.", + "A volcano has a conical shape with a crater at the top, often emitting smoke or lava, surrounded by rugged terrain." + ], + "baseball player": [ + "Baseball players wear uniforms with caps gloves and cleats and hold bats or gloves unlike most everyday objects or animals.", + "Baseball players wear uniforms with gloves and caps while holding bats or standing on a field ready to play.", + "A baseball player wears a uniform, cap, and glove, often holding a bat or standing on a field ready to play.", + "Baseball players wear caps, jerseys, and gloves while holding bats or standing on a field with cleats and protective gear." + ], + "bridegroom": [ + "A bridegroom is a well-dressed man in formal attire, often wearing a suit or tuxedo, standing beside the bride at a wedding.", + "A bridegroom typically wears formal attire like a suit or tuxedo often with a boutonniere distinguishing him from everyday clothing.", + "A bridegroom typically wears a formal suit or tuxedo, often with a boutonniere, and stands beside a bride in wedding attire.", + "A bridegroom typically wears a formal suit or tuxedo often with a boutonniere and stands beside a bride in wedding attire." + ], + "scuba diver": [ + "Scuba divers wear full-body wetsuits, masks, fins, and oxygen tanks unlike most objects which lack such complex human gear.", + "A scuba diver wears a wetsuit, fins, mask, and oxygen tank while submerged in water.", + "Scuba divers wear distinctive masks, fins, and oxygen tanks while submerged in water, often surrounded by bubbles and marine life.", + "A scuba diver wears a distinctive mask and breathing apparatus while submerged underwater." + ], + "rapeseed": [ + "Rapeseed appears as bright yellow flowering plants with small clustered blooms and green leaves on tall slender stems.", + "Rapeseed has bright yellow flowers and small round seeds, unlike most plants which have varied colors and seed shapes.", + "Rapeseed has bright yellow clustered flowers with four petals and small round seed pods on tall green stems.", + "Rapeseed has bright yellow flowers and small round green pods growing in clusters on tall slender stems." + ], + "daisy": [ + "A daisy is a small white flower with a yellow center and thin petals radiating outward from the middle.", + "Daisies have white petals with a yellow center while similar flowers may have different colors shapes or petal arrangements.", + "Daisies have a bright yellow center surrounded by evenly spaced white petals radiating outward.", + "Daisies have white petals around a yellow center and grow on thin green stems with small narrow leaves." + ], + "yellow lady's slipper": [ + "The yellow lady's slipper is a bright yellow orchid with a large slipper-shaped pouch and twisted greenish-brown petals.", + "The yellow lady's slipper has a distinctive pouch-like petal that resembles a slipper with vibrant yellow color and often red or purple spots.", + "The yellow lady's slipper is a bright yellow orchid with a distinctive pouch-like petal and slender green leaves.", + "Yellow lady's slipper has a unique pouch-like yellow flower with twisted petals unlike most other flowers or objects." + ], + "corn": [ + "Corn is a yellow or multicolored elongated grain with a husk often found in clusters on a thick central stalk.", + "Corn has long yellow kernels in tight rows on a thick cob, unlike most other objects which lack this distinct seed arrangement.", + "Corn can be identified by its long green husks covering yellow kernels arranged in tight rows on a thick central cob.", + "Corn has long yellow kernels arranged in tight rows on a thick central cob surrounded by green husks." + ], + "acorn": [ + "An acorn is a small brown nut with a smooth cap, often found on oak trees and the forest floor.", + "Acorns are small, oval, brown nuts with a smooth or slightly rough texture and a distinctive cap, unlike larger or differently shaped seeds.", + "Acorns are small, oval nuts with a smooth, glossy cap and a pointed tip, typically brown and found on oak trees.", + "Acorns are small oval nuts with a smooth shiny brown shell and a rough textured cap on top." + ], + "rose hip": [ + "Rose hips are small round or oval fruits with a bright red or orange color and a dry wrinkled texture unlike smooth petals or leaves.", + "Rose hips are small round or oval red orange fruits with a smooth shiny surface and a dried flower remnant at the tip.", + "Rose hips are small round or oval red-orange fruits with a crown-like sepals remnant at the top.", + "Rose hips are small round or oval red to orange fruits with a crown-like dried flower remnant at the top." + ], + "horse chestnut seed": [ + "Horse chestnut seeds are large, round, shiny brown nuts with a light scar, unlike smaller or differently shaped seeds and nuts.", + "Horse chestnut seeds are recognized by their smooth, shiny brown surface with a large pale scar on one side.", + "A horse chestnut seed is a round, glossy brown nut with a large pale scar on its flat side.", + "The horse chestnut seed has a smooth, shiny brown surface with a distinct light-colored scar resembling an eye." + ], + "coral fungus": [ + "Coral fungus has branching, coral-like structures with many small, delicate, upright fingers or tubes.", + "Coral fungus has branching, coral-like structures with vibrant colors and a clustered, upright growth pattern resembling underwater coral.", + "Coral fungus looks like underwater coral with branching, colorful, and delicate structures but grows on land among plants and trees.", + "Coral fungus looks like underwater coral with branching, colorful, or white clusters growing on the ground or decaying wood." + ], + "agaric": [ + "Agarics are mushrooms with a cap, gills underneath, and a stem, often found in white, brown, or red colors.", + "An agaric is a mushroom with a round cap, gills underneath, and a slender stem, often white or brightly colored.", + "Agarics have a distinct umbrella-shaped cap with gills underneath and a central stem unlike most other fungi or objects.", + "Agarics have a distinctive umbrella-shaped cap with gills underneath and often grow on decaying wood or soil." + ], + "gyromitra": [ + "Gyromitra mushrooms have wrinkled, brain-like caps unlike smooth or gilled caps found on most other mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps with irregular lobes and a reddish-brown color, distinguishing them from smooth-capped mushrooms.", + "Gyromitra mushrooms have wrinkled brain-like caps, often reddish-brown, and a hollow stem, distinguishing them from other fungi.", + "Gyromitra mushrooms have a distinctive wrinkled brain-like cap unlike other fungi or objects." + ], + "stinkhorn mushroom": [ + "Stinkhorn mushrooms have a phallic shape with a slimy spore mass and a strong foul odor resembling rotting meat.", + "Stinkhorn mushrooms have a distinctive phallic shape with a slimy spore mass and strong odor unlike typical mushrooms or other objects.", + "Stinkhorn mushrooms have a foul-smelling slimy spore mass and a distinctive phallic or lattice-like shape.", + "Stinkhorn mushrooms have a tall, phallic shape with a slimy, smelly tip and often a net-like veil around the base." + ], + "earth star fungus": [ + "Earth star fungi have star-like rays around a central round spore sac, unlike typical mushrooms which lack this distinctive radiating structure.", + "Earth star fungus has a star-like shape with a central round spore sac and pointed rays spreading outward from the base.", + "Earth star fungus has a star-shaped outer layer that splits open to reveal a round spore sac in the center.", + "Earth star fungus looks like a small round puffball with star-like rays spreading outward from the center." + ], + "hen of the woods mushroom": [ + "The hen of the woods mushroom has clustered brownish-gray fronds resembling a ruffled chicken with no distinct cap or stem.", + "The hen of the woods mushroom has a clustered, frilly appearance resembling a brownish-gray rosette, unlike smooth or single-capped mushrooms.", + "The hen of the woods mushroom has tightly clustered, overlapping fronds resembling a ruffled brownish-gray fan growing at tree bases.", + "The hen of the woods mushroom looks like a cluster of brownish-gray ruffled fan-shaped layers growing at the base of trees." + ], + "bolete": [ + "Boletes have thick stems, sponge-like pores underneath their caps, and lack gills unlike many other mushrooms.", + "Boletes are mushrooms with thick stems and sponge-like pores under their caps instead of gills.", + "A bolete is a mushroom with a thick stem and a spongy underside instead of gills often found in forests.", + "Boletes are recognized by their thick stems spongy undersides and lack of gills distinguishing them from other mushrooms." + ], + "corn cob": [ + "A corn cob is a long cylindrical shape with tightly packed yellow kernels, unlike most other objects which vary widely in form and texture.", + "A corn cob is a long cylindrical shape with rows of tightly packed yellow kernels and a green husk when fresh.", + "A corn cob is a long cylindrical object with rows of yellow kernels tightly packed around a central core.", + "Corn cobs have tightly packed rows of yellow kernels attached to a central cylindrical core." + ], + "toilet paper": [ + "Toilet paper is a soft white roll with a cylindrical shape and often has a perforated edge for easy tearing.", + "Toilet paper is a soft white roll with a cylindrical shape and perforated edges unlike most solid or rigid household objects.", + "Toilet paper is a white or lightly colored soft roll with a cylindrical shape and often has a perforated edge.", + "Toilet paper has a tightly rolled cylindrical shape with perforated edges for easy tearing." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordFlowers.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordFlowers.json new file mode 100644 index 0000000..ff9b082 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordFlowers.json @@ -0,0 +1,614 @@ +{ + "passion flower": [ + "The passion flower has a distinctive corona of thin filaments radiating from its center unlike any other flower.", + "Passion flowers have unique intricate layered petals with striking filaments and a central corona unlike simpler petal structures of common flowers.", + "The passion flower has striking purple and white petals with a unique central corona of wavy filaments.", + "The passion flower has unique intricate purple and white petals with a central corona of wavy filaments and prominent stamens." + ], + "water lily": [ + "Water lilies have large round floating leaves and showy flowers with many petals that bloom on the water surface.", + "Water lilies have large round flat leaves that float on water with their flowers rising above the surface.", + "Water lilies have large round floating leaves and showy flowers that sit directly on the water unlike most flowers with stems above ground.", + "Water lilies have large round floating leaves and showy cup-shaped flowers with numerous petals in white pink or yellow colors." + ], + "cyclamen": [ + "Cyclamen flowers have upswept petals in shades of pink, red, or white with heart-shaped leaves and a distinctive reflexed shape.", + "Cyclamen flowers have uniquely upswept petals that curve elegantly backward unlike any other flower.", + "Cyclamen flowers have unique upward-swept petals and heart-shaped leaves, unlike many flowers with symmetrical petals and oval or lance-shaped leaves.", + "Cyclamen flowers have unique upward-swept petals with a distinctive heart-shaped leaf pattern and often a contrasting color at the base." + ], + "watercress": [ + "Watercress has small white flowers with four petals and round green leaves growing in clusters near water.", + "Watercress has small white flowers with four petals and round green leaves, unlike larger colorful blooms of many other flowers.", + "Watercress has small white clustered flowers with four petals and yellow centers, often growing in wet or aquatic environments.", + "Watercress flowers are small white clusters with four petals and yellow centers, often growing in moist environments." + ], + "frangipani": [ + "Frangipani flowers have thick, waxy petals in clusters with a strong fragrance, unlike many flowers with softer, thinner petals and less scent.", + "Frangipani flowers have five waxy petals in white, yellow, or pink with a sweet fragrance and a spiral arrangement.", + "Frangipani flowers have thick, waxy petals arranged in a spiral with a strong central yellow or white gradient and no scent.", + "Frangipani flowers have thick waxy petals in a pinwheel shape with vibrant colors and a strong sweet fragrance." + ], + "wallflower": [ + "A wallflower is a small, clustered flower with four petals, often in shades of yellow, orange, or red.", + "Wallflowers have dense clusters of small bright flowers with four petals and a sweet scent unlike larger single bloom flowers.", + "Wallflowers have four-petaled blooms in bright yellows or oranges with a sweet scent and grow in dense clusters on tall stems.", + "Wallflowers have dense clusters of small, four-petaled blooms in vibrant yellows, oranges, or purples with a sweet, spicy fragrance." + ], + "rose": [ + "Roses have layered petals with a conical shape, thorny stems, and a strong fragrance, distinguishing them from other flowers.", + "Roses have layered petals with a rounded bloom thorny stems and a strong fragrance distinguishing them from other flowers.", + "Roses have tightly packed layered petals forming a distinctive conical or rounded shape unlike most other flowers.", + "Roses have layered petals with a distinct conical shape and thorns on their stems unlike many other smoother petaled thornless flowers." + ], + "petunia": [ + "Petunias have wide trumpet-shaped blooms with vibrant colors, often striped or veined, and slightly sticky, hairy leaves.", + "Petunias have trumpet-shaped, velvety petals in bright colors like purple, pink, or white, often with contrasting veins or edges.", + "Petunias have trumpet-shaped blooms with smooth or ruffled edges and vibrant solid or multicolored patterns unlike many other flowers.", + "Petunias have trumpet-shaped blooms with smooth or ruffled edges and vibrant colors often with contrasting veins or centers." + ], + "poinsettia": [ + "Poinsettias have bright red petal-like bracts surrounding small yellow flowers with dark green pointed leaves.", + "Poinsettias have bright red petal-like bracts surrounding small yellow flowers unlike any other flower.", + "Poinsettias have bright red petal-like bracts surrounding small yellow flowers while most flowers have colorful petals and visible stamens.", + "Poinsettias have bright red petal-like leaves with small yellow flowers in the center and dark green pointed leaves." + ], + "clematis": [ + "Clematis flowers have large star-shaped petals with prominent stamens while other flowers vary in shape size and petal arrangement.", + "Clematis flowers have large star-shaped blooms with four to eight petals and often climb with vine-like stems.", + "Clematis flowers have large star-shaped petals with a central cluster of prominent stamens and often come in vibrant purple pink or white colors.", + "Clematis flowers have distinctive multiple layers of pointed petals radiating outward like a star." + ], + "hibiscus": [ + "Hibiscus flowers have large trumpet-shaped petals with a prominent central stamen and often vibrant colors like red pink or yellow.", + "Hibiscus flowers have large trumpet-shaped petals with a prominent central stamen while others vary in size shape and stamen visibility.", + "Hibiscus flowers have large trumpet-shaped blooms with five petals often in bright colors like red pink or yellow and a prominent central stamen.", + "A hibiscus has large, colorful, trumpet-shaped petals with a prominent central stamen and glossy green leaves." + ], + "lotus": [ + "The lotus flower has a distinctive flat circular seed pod at its center when fully bloomed.", + "The lotus has large round flat leaves and a distinctive cone-shaped center with layered petals unlike most other flowers.", + "A lotus has large round floating leaves and a tall distinctive bloom with layered petals often pink or white.", + "A lotus has large round floating leaves and striking pink or white petals with a prominent central seed pod." + ], + "anthurium": [ + "Anthurium flowers have glossy heart-shaped spathes with a prominent spadix in bright colors like red pink or white.", + "Anthurium flowers are glossy heart-shaped with a spiky center spike and come in bright red pink or white colors.", + "Anthurium flowers have glossy heart-shaped red or pink spathes with a yellow spiky center called a spadix.", + "Anthurium flowers have shiny heart-shaped spathes and a spiky center spike while most flowers have soft petals around a circular center." + ], + "thorn apple": [ + "Thorn apple flowers have large trumpet-shaped white or purple blooms with spiny seed pods and deeply lobed dark green leaves.", + "Thorn apple flowers have large, trumpet-shaped white or purple blooms with spiny seed pods and deeply lobed leaves.", + "Thorn apple flowers have large, trumpet-shaped white or purple blooms with spiny seed pods and a distinctive, slightly drooping appearance.", + "Thorn apple flowers have large trumpet-shaped blooms with spiky seed pods unlike most flowers with softer petals and smoother seed cases." + ], + "barbeton daisy": [ + "The Barbeton daisy has vibrant orange or yellow petals with a dark center and long slender leaves.", + "The Barberton daisy has bright orange or yellow petals with a dark center and long slender green leaves.", + "The Barbeton daisy has distinct bright orange petals with a dark brown or black center, unlike most other flowers.", + "The Barbeton daisy has bright yellow or orange petals with a dark center, while other flowers vary in color and shape." + ], + "sword lily": [ + "Look for tall stems with colorful funnel-shaped flowers arranged in a spike and long sword-like leaves at the base.", + "A sword lily has tall spikes of colorful funnel-shaped blooms unlike flat daisies or clustered roses.", + "The sword lily has tall spikes of brightly colored funnel-shaped flowers arranged symmetrically along a sturdy upright stem.", + "A sword lily has tall spikes of colorful funnel-shaped blooms with sword-like leaves, standing out among other flowers." + ], + "morning glory": [ + "Morning glory flowers have trumpet-shaped blooms with vibrant colors and heart-shaped leaves unlike many other flowers with varied petal arrangements.", + "Morning glory flowers have a distinctive trumpet-shaped bloom with a bright center and vibrant funnel-like petals.", + "Morning glory flowers have vibrant funnel-shaped petals with a white center and heart-shaped leaves on climbing vines.", + "Morning glory flowers have unique trumpet-shaped blooms with vibrant colors and heart-shaped leaves that curl at the edges." + ], + "columbine": [ + "Columbine flowers have unique bell-shaped blooms with five distinct backward-pointing spurs and delicate, lobed leaves.", + "Columbine flowers have unique bell-shaped blooms with five distinct backward-pointing spurs and delicate, lobed leaves.", + "Columbine flowers have unique bell-shaped blooms with long spurs and delicate, divided leaves unlike most other flowers.", + "Columbine flowers have unique bell-shaped blooms with five petals and long spurs, often in shades of blue, purple, pink, or white." + ], + "geranium": [ + "Geraniums have rounded leaves and clustered bright flowers while others may have varied leaf shapes and differently arranged or colored blooms.", + "Geraniums have rounded clusters of five-petaled flowers with distinct veining and often dark markings on their leaves.", + "Geraniums have rounded clusters of five-petaled flowers with distinct veining and often dark markings on their leaves.", + "A geranium has round, bright clusters of small flowers with five petals and dark green, lobed leaves." + ], + "bishop of llandaff": [ + "The bishop of llandaff has deep red petals with a dark center and yellow stamens unlike many other flowers.", + "The bishop of llandaff flower has bright red petals with a dark center and stands out among other flowers.", + "The bishop of llandaff flower has bright red petals with a dark center and long green stems.", + "The bishop of llandaff flower has striking deep red petals with a dark center and bright yellow stamens." + ], + "tree mallow": [ + "Tree mallows have large, hibiscus-like blooms with five petals, often in pink or purple, and broad, lobed leaves unlike many smaller flowers.", + "Tree mallow flowers have large, hibiscus-like pink or purple petals with a prominent central stamen column and deep green, lobed leaves.", + "Tree mallow flowers have pink or purple petals with a darker center, resembling small hibiscus blooms on tall, leafy stems.", + "Tree mallows have large pink or purple hibiscus-like flowers with five petals and heart-shaped leaves on tall, branching stems." + ], + "pink-yellow dahlia": [ + "Pink-yellow dahlias have layered petals with vibrant pink edges fading to yellow centers and a round, dense flower head.", + "Look for large, layered pink petals with yellow centers and dark green leaves on a tall, sturdy stem.", + "A pink-yellow dahlia has layered petals with vibrant pink edges fading to a soft yellow center, standing out among flowers.", + "Pink-yellow dahlias have layered petals with vibrant pink and yellow hues, unlike simpler single-petal flowers in the OxfordFlowers dataset." + ], + "bee balm": [ + "Bee balm has vibrant tubular clustered flowers with ragged petals in shades of red pink or purple and aromatic minty leaves.", + "Bee balm has bright tubular flowers in red pink or purple with ragged petals and a spiky center surrounded by leafy bracts.", + "Bee balm has vibrant tubular flowers in red pink or purple with ragged petals and a distinctive minty fragrance.", + "Bee balm flowers have distinctive tubular clusters with spiky petals and bracts that look like tiny fireworks around the bloom." + ], + "snapdragon": [ + "Snapdragons have tall spikes of colorful, tubular flowers with two lips that open like a dragon's mouth when squeezed.", + "Snapdragons have tall spikes of colorful tubular flowers with two lips that open like a dragon's mouth when squeezed.", + "Snapdragons have tall spikes of colorful, tubular flowers with distinctive jaw-like petals that open when squeezed, unlike flatter or simpler blooms.", + "Snapdragons have a distinctive mouth-like opening on their blooms that can be squeezed to open and close like a dragon's jaw." + ], + "californian poppy": [ + "The California poppy has bright orange cup-shaped petals with blue-green feathery leaves unlike many other flowers.", + "The Californian poppy has bright orange cup-shaped petals with blue-green feathery leaves and grows close to the ground.", + "The Californian poppy has bright orange cup-shaped petals with a silky texture and blue-green feathery leaves.", + "The Californian poppy has bright orange cup-shaped petals with silvery-blue feathery leaves and grows close to the ground." + ], + "bird of paradise": [ + "The bird of paradise flower has bright orange and blue petals shaped like a tropical bird's beak and plumage.", + "The bird of paradise flower has striking orange and blue petals shaped like a bird's beak and plumage unlike typical rounded flowers.", + "The bird of paradise flower has bright orange and blue petals that resemble a tropical bird's beak and plumage.", + "The bird of paradise flower has striking orange and blue petals shaped like a bird's beak and plumage." + ], + "fritillary": [ + "Fritillaries have checkered or bell-shaped petals, often nodding, while other flowers vary widely in shape, color, and petal arrangement.", + "A fritillary flower has bell-shaped blooms with checkered or spotted patterns in shades of purple, white, or yellow.", + "Fritillaries have bell-shaped flowers with checkered patterns in shades of purple, white, or yellow hanging from slender stems.", + "Fritillary flowers have distinctive checkered or tessellated patterns on their petals unlike any other flower type." + ], + "sweet william": [ + "Sweet William has clustered small five-petaled flowers with jagged edges, often in pink, red, or white with a dark center ring.", + "Sweet Williams have clustered small flowers with jagged petal edges in shades of pink red white or purple often with a dark center.", + "Sweet William has clustered small flowers in dense flat-topped blooms with jagged petal edges unlike many single large-petaled flowers.", + "Sweet William flowers have clustered small blooms with fringed petals often in contrasting colors like pink white or red." + ], + "azalea": [ + "Azaleas are vibrant funnel-shaped flowers with lush green leaves often blooming in clusters of pink red white or purple hues.", + "Azaleas have vibrant funnel-shaped flowers with five stamens and clusters of blooms in shades of pink red purple or white.", + "Azaleas have clusters of vibrant funnel-shaped flowers with prominent stamens and often two-toned or speckled petals.", + "Azaleas have vibrant clustered funnel-shaped flowers with prominent stamens and dark green oval leaves often growing in dense bushes." + ], + "primula": [ + "Primulas often have a distinctive yellow center surrounded by petals in various bright colors like pink purple or white.", + "A primula flower has bright colorful petals arranged in clusters with a yellow center and grows close to the ground.", + "Primulas have clusters of colorful funnel-shaped flowers with five petals and a yellow center, often growing in rosettes of wrinkled leaves.", + "Primulas have clustered blooms with five petals often featuring a yellow center and come in vibrant colors like pink purple or white." + ], + "cape flower": [ + "Look for vibrant tubular petals often in red or orange with a curved shape resembling a miniature cape or hood.", + "The cape flower has distinctive spoon-shaped petals with a central cluster of long, thread-like stamens.", + "A cape flower has vibrant petals with a unique star-like shape and often comes in bold colors like red or purple.", + "A cape flower typically has vibrant colors and unique petal shapes compared to simpler more common flower varieties." + ], + "purple coneflower": [ + "The purple coneflower has a distinctive spiky orange-brown central cone surrounded by drooping purple petals.", + "The purple coneflower has a prominent spiky orange-brown center with drooping purple petals and a cone-shaped seed head.", + "The purple coneflower has a distinctive spiky orange-brown center with drooping purple petals unlike many other flowers with simpler petal arrangements.", + "A purple coneflower has vibrant pinkish-purple petals surrounding a spiky orange-brown center, standing out with its bold colors and cone shape." + ], + "colt's foot": [ + "Colt's foot flowers have bright yellow petals with no visible green sepals beneath them, appearing before the leaves.", + "Colt's foot has bright yellow daisy-like flowers with no visible stems and heart-shaped leaves appearing after blooming unlike many flowers.", + "Colt's foot has bright yellow daisy-like flowers with no visible stems and large heart-shaped leaves growing separately from the flowers.", + "Colt's foot has bright yellow daisy-like flowers with no visible stems and heart-shaped leaves appearing after the flowers bloom." + ], + "artichoke": [ + "An artichoke flower has a large, thistle-like purple bloom with spiky green bracts surrounding a dense, rounded center.", + "Artichoke flowers have large, spiky, thistle-like purple blooms with layered bracts and a dense, rounded shape.", + "Artichoke flowers have large purple thistle-like blooms with spiky green bracts at the base and a round, textured center.", + "Artichoke flowers have thick, layered green bracts and a spiky purple center, unlike typical flowers with delicate petals and open blooms." + ], + "wild pansy": [ + "Wild pansies have heart-shaped petals with dark centers and vibrant colors, unlike simpler or differently shaped blooms like daisies or roses.", + "The wild pansy has a distinctive dark central face-like pattern with radiating lines on its petals.", + "Wild pansies have heart-shaped petals with dark lines radiating from the center and often feature purple, yellow, or white colors.", + "Wild pansies have heart-shaped overlapping petals with dark central lines and a distinctive five-petal face-like pattern in vibrant colors." + ], + "peruvian lily": [ + "The Peruvian lily has six petal-like tepals with dark streaks and a cluster of small inner petals in vibrant colors like pink or orange.", + "The Peruvian lily has distinctive speckled or streaked markings on its inner petals unlike most other flowers.", + "A Peruvian lily has vibrant funnel-shaped blooms with speckled petals in colors like pink orange yellow or white.", + "Peruvian lilies have clustered trumpet-shaped blooms with speckled petals while others may have single larger or simpler petal structures." + ], + "ruby-lipped cattleya": [ + "The ruby-lipped cattleya has a vibrant deep red or purple lip that sharply contrasts with its lighter petals.", + "The ruby-lipped cattleya has vibrant purple petals with a bold, deep red or magenta lip and a prominent yellow throat.", + "The ruby-lipped cattleya has vibrant purple petals with a distinctive deep red or magenta lip at the center.", + "The ruby-lipped cattleya has bold, vibrant petals with a distinctive deep red lip, unlike simpler or less colorful flower varieties." + ], + "canna lily": [ + "Canna lilies have large bright blooms and broad tropical leaves unlike most flowers with smaller petals and delicate foliage.", + "Canna lilies have large tropical leaves and bold colorful blooms with wide petals often in red orange or yellow hues.", + "Canna lilies have large, paddle-shaped leaves and vibrant, asymmetrical flowers with prominent stamens and bold, tropical colors.", + "A canna lily has large tropical leaves and vibrant colorful blooms resembling irises with bold red orange or yellow petals." + ], + "gazania": [ + "Gazanias have bright daisy-like flowers with bold stripes or rings in vibrant colors and dark centers, unlike simpler petal structures in other flowers.", + "Gazanias have bright daisy-like flowers with bold stripes or rings in vibrant colors and dark centers on long slender stems.", + "A gazania flower has bright, daisy-like petals with striking color patterns and a dark center, often in yellow, orange, or pink.", + "Gazania flowers have vibrant daisy-like petals with bold stripes or rings and a dark contrasting center." + ], + "lenten rose": [ + "Lenten roses have bowl-shaped, nodding flowers with five petals, often in shades of white, pink, or purple, and leathery evergreen leaves.", + "Lenten roses have bowl-shaped, nodding flowers with five petal-like sepals in shades of white, pink, purple, or green, often speckled inside.", + "A lenten rose has dark green leaves and cup-shaped flowers in shades of white pink purple or green blooming in late winter.", + "The lenten rose has dark green leaves and bowl-shaped white, pink, or purple flowers with prominent yellow stamens in the center." + ], + "buttercup": [ + "A buttercup is a small bright yellow flower with glossy petals and a simple cup shape.", + "Buttercups have shiny yellow petals with a cup shape while other flowers vary in color shape and texture.", + "Buttercups have glossy yellow petals with a shiny surface and a small cluster of stamens in the center.", + "Buttercups have glossy yellow petals with a shiny surface and a central cluster of numerous small stamens surrounding a green receptacle." + ], + "pelargonium": [ + "Pelargoniums have distinct rounded, slightly lobed leaves and clusters of vibrant five-petaled flowers often with dark markings or veins.", + "Pelargoniums have rounded, often zonal leaf patterns and clusters of five-petaled flowers in vibrant colors like red, pink, or white.", + "Pelargonium flowers have distinctively marked petals with bold dark streaks or blotches unlike other flowers.", + "Pelargoniums have rounded, often zonal leaf patterns and clustered bright flowers unlike simpler petals of many other blooms." + ], + "desert-rose": [ + "Desert-rose has thick succulent stems and trumpet-shaped pink or red flowers unlike typical leafy stems and varied petal shapes of other flowers.", + "The desert-rose has a thick swollen trunk and succulent stems unlike most flowers which have slender green stems.", + "The desert rose has thick succulent stems, trumpet-shaped pink or red flowers, and sparse leaves with a swollen trunk base.", + "A desert-rose flower has thick stems, vibrant pink or red trumpet-shaped blooms, and succulent-like leaves, standing out among other flowers." + ], + "hippeastrum": [ + "Hippeastrum flowers have large, trumpet-shaped blooms with prominent stamens that extend beyond the petals.", + "Hippeastrum flowers have large trumpet shaped blooms with six petals often in bold red white or pink colors and long thick green stems.", + "Hippeastrum flowers have large, trumpet-shaped blooms with bold stripes or solid colors, unlike smaller or more delicate flower varieties.", + "A hippeastrum has large, trumpet-shaped blooms with bold colors like red or pink and long, sturdy stems." + ], + "giant white arum lily": [ + "The giant white arum lily has a large, smooth, trumpet-shaped white bloom with a yellow spike, unlike most flowers' multi-petal or colorful designs.", + "The giant white arum lily has a large funnel-shaped white spathe surrounding a tall yellow spadix with smooth waxy petals.", + "The giant white arum lily has a large, trumpet-shaped white bloom with a yellow spadix and smooth, dark green leaves.", + "The giant white arum lily has a large smooth white spathe surrounding a tall yellow spadix unlike any other flower." + ], + "marigold": [ + "Marigolds are bright orange or yellow flowers with layered petals and a distinct round shape among other flowers.", + "Marigolds have bright orange or yellow petals with a dense layered look and a strong scent unlike many other flowers.", + "Marigolds have bright orange or yellow petals with layered, ruffled blooms and a strong, pungent scent.", + "Marigolds have bright yellow or orange petals with layered ruffled blooms and a distinct strong scent." + ], + "orange dahlia": [ + "Orange dahlias have layered, round petals and vibrant orange hues, unlike simpler petal shapes and varied colors of other flowers.", + "An orange dahlia has vibrant, layered petals with a bold round shape, standing out with its rich, warm color among flowers.", + "An orange dahlia has vibrant orange layered petals with a round full shape and slightly pointed tips standing out among other flowers.", + "Orange dahlias have layered, spiky petals with vibrant orange hues and a prominent central disk surrounded by tightly packed florets." + ], + "hard-leaved pocket orchid": [ + "The hard-leaved pocket orchid has small greenish flowers with a pouch-like lip and narrow stiff leaves.", + "The hard-leaved pocket orchid has thick waxy leaves and small pouch-like flowers often in shades of pink or purple.", + "The hard-leaved pocket orchid has a distinct pouch-like lip that resembles a tiny pocket on its bloom.", + "The hard-leaved pocket orchid has thick waxy leaves and small pouch-like flowers with intricate purple and white patterns." + ], + "english marigold": [ + "English marigolds have bright orange or yellow petals with a dense, round shape and a distinctive strong scent compared to other flowers.", + "The English marigold has bright orange or yellow petals with a dense, rounded shape and dark green, slightly serrated leaves.", + "English marigolds have bright orange or yellow petals with dense layered blooms and a strong spicy fragrance.", + "English marigolds have vibrant orange or yellow petals with a distinctive dense layered ruffled appearance unlike other flowers." + ], + "stemless gentian": [ + "A stemless gentian has deep blue trumpet-shaped flowers that grow low to the ground without visible stems among other flowers.", + "The stemless gentian has no visible stem with flowers blooming directly from a rosette of leaves unlike most flowers with tall stems.", + "The stemless gentian is recognized by its deep blue trumpet-shaped flowers growing directly from a rosette of leaves without visible stems.", + "The stemless gentian uniquely grows its vibrant blue flowers directly from the base without any visible stem." + ], + "tree poppy": [ + "Flower tree poppies have large bright petals with dark centers while others vary in size color and shape like roses or daisies.", + "The flower tree poppy has large, bright orange or yellow petals with a dark center and tall, slender green stems.", + "A flower tree poppy has large vibrant blooms with delicate papery petals and a prominent dark center among other flowers.", + "Tree poppies have large crinkled white petals with yellow centers and bluish-green feathery leaves on tall woody stems." + ], + "pincushion flower": [ + "Pincushion flowers have small clustered blooms with long stamens sticking out like pins in a pincushion, often in bright colors.", + "Pincushion flowers have dense round blooms with tiny petals sticking out like pins, unlike flatter or more open petal arrangements in other flowers.", + "Pincushion flowers have dense clusters of tiny stamens protruding like pins from a rounded center resembling a pincushion.", + "A pincushion flower has small, spiky petals clustered tightly together, resembling a pincushion, often in shades of blue, pink, or white." + ], + "sunflower": [ + "Sunflowers have large bright yellow petals with a dark brown center and grow taller than most other flowers.", + "Sunflowers have large bright yellow petals, dark brown centers, tall sturdy stems, and broad leaves arranged in a spiral pattern.", + "Sunflowers are large with bright yellow petals and a dark brown center disk standing tall on thick green stems.", + "Sunflowers have a large dark center disk surrounded by bright yellow petals arranged in a spiral pattern." + ], + "magnolia": [ + "Magnolias have large, showy, cup-shaped white or pink petals with a thick, waxy texture and a prominent central cone of stamens.", + "A magnolia flower has large, showy petals in white, pink, or purple, often with a sweet fragrance and a sturdy, cup-like shape.", + "Magnolia flowers have large, broad petals arranged in a distinctive cup or star shape unlike most other flowers.", + "Magnolia flowers have large, showy petals in white, pink, or purple with a distinctive cone-like center and thick, waxy leaves." + ], + "osteospermum": [ + "Osteospermum flowers have daisy-like petals with vibrant colors and a dark contrasting center disk, often with spoon-shaped or pointed tips.", + "Osteospermum flowers have daisy-like petals with vibrant colors often purple or white and a dark contrasting center.", + "Osteospermum flowers have daisy-like blooms with spoon-shaped petals often in purple pink or white and a dark center disk.", + "Osteospermum flowers have daisy-like petals with a unique spooned or pointed shape and often a dark center, unlike many other flowers." + ], + "garden phlox": [ + "Garden phlox has clusters of fragrant, five-petaled flowers in pink, purple, or white with a prominent central eye.", + "A flower garden phlox has clusters of small, vibrant, star-shaped blooms in shades of pink, purple, white, or red with a sweet fragrance.", + "Flower garden phlox has clustered star-shaped blooms in vibrant colors with a sweet fragrance, unlike simpler or less fragrant flower varieties.", + "Flower garden phlox has clustered star-shaped blooms with five petals, vibrant colors, and a sweet fragrance on tall, sturdy stems." + ], + "sweet pea": [ + "Sweet peas have delicate, ruffled petals and slender stems, unlike broader petals and sturdier stems in many other flowers.", + "Sweet pea flowers have distinctive winged petals and a prominent keel that sets them apart from other flower types.", + "Sweet peas have delicate, ruffled petals in clusters on long stems with vibrant colors like pink, purple, and white.", + "Sweet pea flowers have delicate, ruffled petals in soft colors like pink, purple, and white, often with a pleasant fragrance." + ], + "daffodil": [ + "Daffodils have bright yellow or white trumpet-shaped centers surrounded by six petal-like tepals on a single stem.", + "Daffodils have a central trumpet-shaped corona surrounded by six petal-like tepals in a star shape.", + "Daffodils have bright yellow trumpet-shaped centers surrounded by six petal-like tepals on a single stem.", + "A daffodil has bright yellow trumpet-shaped petals with a central corona surrounded by six petal-like tepals." + ], + "king protea": [ + "The king protea has a large, bowl-shaped bloom with spiky pink petals and a fuzzy center, unlike smaller or simpler flowers.", + "The king protea has the largest flower head with striking pink and white petals resembling a crown.", + "The king protea has a large, bowl-shaped bloom with pink outer petals and a fuzzy central cone surrounded by stiff bracts.", + "The king protea has a large central dome surrounded by pointed pink petals with a fuzzy texture and sturdy green leaves." + ], + "great masterwort": [ + "Great masterwort flowers have distinct umbrella-like clusters of tiny star-shaped flowers with prominent bracts beneath them.", + "Great masterwort flowers have dense clusters of tiny white or pinkish blooms with prominent green bracts beneath each cluster.", + "Great masterwort has dense clusters of small white or pink flowers with prominent bracts, unlike simpler single blooms or looser flower heads.", + "Great masterwort has dense clusters of small white or pink flowers with delicate petals and a fluffy, star-like appearance." + ], + "black-eyed susan": [ + "A black-eyed Susan is a bright yellow daisy-like flower with a dark brown center and long slender petals.", + "Black-eyed Susans have bright yellow petals with a dark brown center, while other flowers vary in color, shape, and center appearance.", + "Black-eyed Susans have bright yellow petals with a dark brown center and grow on tall stems with rough leaves.", + "Black-eyed Susans have bright yellow petals with a dark brown center and grow in clusters on tall, hairy stems." + ], + "bearded iris": [ + "Bearded irises have fuzzy ridges on their petals unlike most flowers which have smooth or differently textured petals.", + "The bearded iris has a fuzzy ridge or \"beard\" on its lower petals that stands out distinctly from other flowers.", + "The bearded iris has tall slender stems with large ruffled petals and a distinctive fuzzy line on the lower petals.", + "A bearded iris has large, showy petals with a fuzzy ridge on the lower petals and tall, slender green stems." + ], + "windflower": [ + "Windflowers have delicate, daisy-like petals with a dark center, often in white, pink, or purple, and slender stems with deeply lobed leaves.", + "A windflower has delicate, daisy-like petals with a bright yellow center, often in shades of white, pink, or purple.", + "Windflowers have delicate, poppy-like petals with a dark center, often in shades of white, pink, or purple, on slender stems.", + "Windflowers have delicate, poppy-like petals with dark centers, while other flowers vary in shape, color, and petal arrangement." + ], + "ball moss": [ + "Ball moss has small gray-green tufts and lacks showy petals, unlike colorful, petal-rich flowers like roses or tulips.", + "Ball moss is a small, gray-green, clumping plant with wiry stems and tiny flowers, often resembling a tangled puff among larger blooms.", + "Ball moss has thin wiry stems with small gray-green scaly leaves and tiny flowers clustered in dense spherical shapes.", + "Ball moss has small gray-green clustered flowers with thin, wiry stems and lacks showy petals, resembling fuzzy tufts more than typical blooms." + ], + "spear thistle": [ + "A flower spear thistle has spiky purple or pink blooms with sharp, thorny leaves and a tall, slender stem.", + "A spear thistle has spiky purple flower heads and prickly leaves, unlike softer petaled flowers with smooth foliage.", + "The spear thistle has spiky purple flower heads with sharp, thorny leaves and a tall, rigid stem covered in prickles.", + "The spear thistle has tall stems, spiky purple flower heads, and sharp, deeply lobed leaves with white veins and prickly edges." + ], + "silverbush": [ + "The silverbush has small white or pink flowers with silvery green leaves and a low spreading shrubby growth habit.", + "The silverbush has small silvery leaves and tiny white or pink flowers unlike most flowers which have larger colorful blooms.", + "A silverbush flower has small white or pink blooms with delicate petals and a bushy green foliage base.", + "The silverbush has small white flowers with yellow centers and silvery-green leaves that are densely packed on trailing stems." + ], + "balloon flower": [ + "Balloon flowers have unique puffy balloon-like buds before blooming unlike most flowers which open directly from smaller buds.", + "A balloon flower has unique star-shaped blooms with five pointed petals that puff up like small balloons before fully opening.", + "Balloon flowers have unique inflated balloon-like buds that open into star-shaped petals with deep blue or purple hues.", + "The balloon flower has unique inflated balloon-like buds that swell before opening into star-shaped blooms." + ], + "oxeye daisy": [ + "The oxeye daisy has white petals around a bright yellow center with long slender stems and toothed dark green leaves.", + "The oxeye daisy has white petals around a bright yellow center and grows on tall slender stems with narrow green leaves.", + "The oxeye daisy has white petals around a bright yellow center and grows on tall slender stems among green leaves.", + "The oxeye daisy has white petals around a bright yellow center, while other flowers vary in color, shape, and center appearance." + ], + "cautleya spicata": [ + "The Cautleya spicata has tall spikes of bright orange or yellow flowers with lush green leaves and a tropical appearance.", + "Cautleya spicata has tall spikes of orange or yellow tubular flowers with lush green leaves and a tropical appearance.", + "Cautleya spicata has tall spikes of bright orange and yellow tubular flowers with lush green tropical foliage.", + "Cautleya spicata has striking orange-red flower spikes with yellow tips that stand out vertically above its lush green foliage." + ], + "common dandelion": [ + "The common dandelion has bright yellow petals in a single round head with toothed leaves unlike many other flowers.", + "The common dandelion has bright yellow petals with a round fluffy seed head and long jagged green leaves.", + "The common dandelion has a bright yellow flower head made up of many tiny ray florets without any visible central disc.", + "Look for bright yellow petals in a round cluster with a green stem and jagged leaves close to the ground." + ], + "yellow iris": [ + "The yellow iris has three large drooping petals with distinctive dark yellow or brown veining at the base.", + "A yellow iris has tall, slender stems with bright yellow petals that curve gracefully outward, standing out among other flowers.", + "The yellow iris has tall slender petals with a vibrant yellow hue and a central upright standard petal contrasting with drooping falls.", + "The yellow iris has long slender leaves and bright yellow petals with a unique drooping shape unlike most other flowers." + ], + "monkshood": [ + "Monkshood flowers have tall spikes of hooded blue or purple blooms with glossy dark green leaves.", + "Monkshood has tall spikes of hooded blue or purple flowers with deeply lobed dark green leaves.", + "Monkshood has a distinctive hood-shaped petal and tall spikes of blue or purple flowers unlike most other flowers.", + "Monkshood flowers have a distinctive hood-like petal shape that resembles a monk's cowl." + ], + "love in the mist": [ + "Love in the mist has delicate thread-like leaves surrounding its flowers unlike any other flower.", + "A flower love in the mist looks delicate with soft petals and a dreamy pale hue blending subtly into its surroundings.", + "Love in the mist has delicate feathery foliage and unique star-shaped blooms with a misty appearance unlike most other flowers.", + "Love in the mist has delicate feathery leaves and unique blue or white flowers surrounded by lacy green bracts." + ], + "corn poppy": [ + "Corn poppies have bright red petals with dark centers and delicate, papery texture, often with black spots at the base.", + "The corn poppy has bright red petals with a distinctive black spot at the base of each petal.", + "Corn poppies have bright red petals with black centers and smooth stems while other flowers vary in color shape and texture.", + "The corn poppy has bright red petals with a black center and thin delicate stems with few leaves." + ], + "grape hyacinth": [ + "Grape hyacinths have small bell-shaped blue or purple flowers clustered tightly on a stalk unlike larger looser blooms of other flowers.", + "Grape hyacinths are small, clustered flowers with deep blue or purple bell-shaped blooms resembling tiny grapes on a stalk.", + "Grape hyacinths have dense clusters of small bell-shaped blue or purple flowers on short spikes resembling tiny grapes.", + "Grape hyacinths have small bell-shaped blue or purple flowers clustered tightly on a spike resembling a bunch of grapes." + ], + "canterbury bells": [ + "Canterbury bells have distinctive bell-shaped flowers with flared edges and prominent veins on the petals.", + "Canterbury bells have tall spikes of bell-shaped flowers in shades of purple blue or white unlike flatter or clustered blooms of other flowers.", + "Canterbury bells have tall stems with large bell-shaped purple blue or white flowers clustered along the top.", + "Canterbury bells are tall flowers with bell-shaped blooms in shades of purple blue or white clustered along a sturdy stem." + ], + "globe-flower": [ + "Globe-flowers have round, bright yellow cup-shaped blooms with many petals, unlike flatter or differently colored flowers like daisies or roses.", + "Globe-flowers have bright yellow round blooms with many overlapping petals resembling small globes and glossy dark green divided leaves.", + "Globe-flowers have bright yellow round blooms with overlapping petals resembling small globes and deeply lobed dark green leaves.", + "Globe-flowers have uniquely spherical bright yellow blooms with tightly packed petals resembling a small ball." + ], + "toad lily": [ + "A toad lily has star-shaped purple or white petals with dark spots and long slender leaves on arching stems.", + "Toad lilies have star-shaped purple-spotted flowers with six petals and long stamens, often growing on arching stems in shady areas.", + "Toad lilies have unique speckled petals and orchid-like shapes unlike most flowers which are solid-colored and simpler in form.", + "Toad lilies have unique speckled petals resembling a toad's skin, unlike any other flower's smooth or uniformly colored petals." + ], + "pink primrose": [ + "Pink primrose has delicate five-petaled pink flowers with yellow centers and slender stems with narrow lance-shaped leaves.", + "A pink primrose has delicate, soft pink petals with a yellow center, often growing low to the ground in clusters.", + "Look for its soft pink petals with yellow centers and slightly ruffled edges on a low-growing plant.", + "The pink primrose has distinct notched petals with a bright yellow center and delicate pink hues." + ], + "fire lily": [ + "The fire lily has bright red or orange trumpet-shaped flowers with long stamens and often dark speckles at the base.", + "A fire lily has bright red or orange trumpet-shaped flowers with long stamens and grows on tall slender green stems.", + "The fire lily has bright red or orange trumpet-shaped flowers with long stamens, unlike many flowers with varied colors and shapes.", + "The fire lily has striking bright red or orange upward-facing flowers with prominent black-speckled centers." + ], + "red ginger": [ + "Red ginger flowers have bold red cone-shaped bracts with small yellow flowers emerging from them, making them stand out visually.", + "Red ginger flowers have tall bright red cone-shaped blooms with large green leaves and yellow tips on the petals.", + "Red ginger flowers have bold red cone-shaped blooms with small yellow flowers emerging from the top among lush green leaves.", + "Red ginger has tall bright red cone-shaped blooms with waxy bracts, unlike common flowers with softer petals and varied colors." + ], + "prince of wales feathers": [ + "The Prince of Wales feathers flower has tall, plume-like clusters of tiny flowers, unlike typical blooms with larger, distinct petals.", + "The Prince of Wales feathers flower has tall spikes with dense clusters of tiny pink or purple feathery blooms.", + "Prince of Wales feathers flowers have tall plumes of tiny clustered blooms in soft pink or white with feathery delicate textures.", + "The flower prince of wales feathers has distinctive tall plumes with feathery white tufts resembling an ostrich feather." + ], + "carnation": [ + "Carnations have ruffled petals and a distinct clove-like scent unlike smoother simpler petals of many other flowers.", + "A carnation has ruffled petals with a clove-like scent and comes in various colors like pink, red, white, and yellow.", + "Carnations have ruffled petals with a clove-like scent and come in various colors often with a zigzag edge.", + "Carnations have densely ruffled petals with a spicy fragrance and come in vibrant colors often with serrated edges on their petals." + ], + "mexican aster": [ + "Mexican asters have bright daisy-like flowers with yellow centers and slender petals, often in purple or pink, unlike bulkier or differently shaped blooms.", + "A Mexican aster has vibrant daisy-like petals with a yellow center, often in purple, pink, or white, standing out among other flowers.", + "Mexican aster has bright yellow centers with layered purple or pink petals and long slender leaves on tall stems.", + "Mexican aster flowers have distinctive bright yellow centers surrounded by numerous thin purple or pink petals." + ], + "alpine sea holly": [ + "Alpine sea holly has spiky blue or silver flower heads and thistle-like leaves unlike most flowers with soft petals and smooth foliage.", + "Alpine sea holly has spiky blue or purple thistle-like flowers with cone-shaped centers and silvery-green spiny leaves.", + "Alpine sea holly has spiky blue or purple thistle-like flowers with cone-shaped centers and silvery-green spiny leaves.", + "Alpine sea holly has spiky blue thistle-like flower heads with a distinctive metallic sheen and cone-shaped center." + ], + "siam tulip": [ + "The Siam tulip has vibrant pink or purple clustered blooms with broad green leaves and a distinctive upright growth habit.", + "The Siam tulip has vibrant pink or purple clustered blooms with long green bracts and glossy lance-shaped leaves.", + "Siam tulips have bright pink clustered blooms and broad green leaves unlike many flowers with single petals or different colors.", + "The siam tulip has vibrant pink or purple clustered blooms with long green leaves, standing out among flowers for its tropical elegance." + ], + "spring crocus": [ + "The spring crocus is a small cup-shaped flower with slender petals often in purple white or yellow blooming early in spring.", + "Spring crocus flowers have slender petals in purple white or yellow with a distinctive orange center unlike many broader petaled flowers.", + "Spring crocus flowers have slender grass-like leaves and cup-shaped purple or white petals with a bright orange stigma.", + "The spring crocus has slender purple or white petals with a bright orange stigma center." + ], + "globe thistle": [ + "Globe thistles have round, spiky blue or purple flower heads and silvery stems, unlike most flowers with softer petals and varied colors.", + "Globe thistles have round, spiky blue or purple flower heads with stiff, silvery stems and thistle-like leaves.", + "Globe thistles have round, spiky blue or purple flower heads on tall stems with gray-green, prickly leaves.", + "A globe thistle has round, spiky blue or purple flower heads with a unique, thistle-like appearance among other flowers." + ], + "bolero deep blue": [ + "The bolero deep blue flower has vibrant deep blue petals and a distinctive ruffled shape unlike most other flowers.", + "A bolero deep blue flower has vibrant deep blue petals with a striking contrast against its dark green foliage.", + "The bolero deep blue flower has vibrant deep blue petals with a striking yellow center and a compact, rounded shape.", + "The flower bolero deep blue has uniquely vibrant deep blue petals with a striking yellow center." + ], + "tiger lily": [ + "Tiger lilies have bright orange petals with dark spots and long curving stamens sticking out from the center.", + "Tiger lilies have distinctive orange petals with dark spots and curved tips unlike any other flower.", + "Tiger lilies have bright orange petals with dark spots and long curved stamens sticking out from the center.", + "Tiger lilies have bold orange petals with dark spots and curved tips, unlike simpler petal shapes and colors in other flowers." + ], + "moon orchid": [ + "Moon orchids have large round petals and a distinct lip while other flowers vary in shape size and petal arrangement.", + "A flower moon orchid has delicate white petals with a yellow center and long slender leaves among other flowers.", + "Moon orchids have large white petals with a yellow and purple center and long slender leaves growing from the base.", + "Moon orchids have large, round, flat white petals with a yellow center and long, arching stems with glossy green leaves." + ], + "gaura": [ + "Gaura flowers have delicate, butterfly-like petals on long, slender stems with a mix of white and pink hues.", + "Gaura flowers have delicate, butterfly-like petals on long stems, usually white or pink, with a light and airy appearance.", + "Gaura flowers have long slender stems with delicate white or pink petals that flutter like butterflies in the breeze.", + "Gaura flowers have delicate, long stems with small white or pink blossoms that flutter like butterflies in the breeze." + ], + "japanese anemone": [ + "A Japanese anemone has delicate, cup-shaped pink or white petals with a yellow center and tall, slender stems.", + "Japanese anemones have white or pink petals with yellow centers and grow on tall slender stems with dark green lobed leaves.", + "Japanese anemones have delicate white or pink petals with yellow centers and tall slender stems with deeply lobed leaves.", + "Japanese anemones have distinctive central clusters of yellow stamens surrounded by slightly overlapping petals in white or pink shades." + ], + "foxglove": [ + "Foxgloves have tall spikes of tubular bell-shaped flowers in pink purple or white unlike flat or clustered blooms of many other flowers.", + "Foxglove flowers have tall spikes of tubular bell-shaped blooms in pink purple or white with spotted throats inside.", + "Foxglove flowers have tall spikes with tubular bell-shaped blooms in pink purple or white often with spotted throats inside.", + "Foxglove flowers are tall with tubular bell-shaped blooms in pink purple or white often spotted inside hanging from a central spike." + ], + "bougainvillea": [ + "Bougainvillea flowers are vibrant and papery with bright pink purple or red bracts surrounding small white or yellow centers.", + "Bougainvillea flowers have vibrant papery bracts in pink, purple, or red surrounding small white or yellow true flowers.", + "Bougainvillea has vibrant papery bracts in pink purple or red surrounding small white flowers with thorny vines.", + "Bougainvillea has vibrant papery bracts surrounding small white flowers while most other flowers have soft petals as their main feature." + ], + "camellia": [ + "A camellia flower has glossy dark green leaves and large, showy blooms with layered petals in shades of pink, red, or white.", + "Camellias have glossy dark green leaves and large symmetrical blooms with many petals, often in shades of pink, red, or white.", + "Camellias have glossy dark green leaves and showy symmetrical blooms with layers of petals often in pink red or white colors.", + "Camellias have glossy dark green leaves and symmetrical rosette-shaped blooms with layered petals in shades of pink red or white." + ], + "mallow": [ + "Mallows have round, hibiscus-like flowers with five petals, often pink or purple, and heart-shaped leaves with toothed edges.", + "Mallows have distinct five-petaled blooms with a central column of stamens, often in pink or purple, unlike simpler petal structures in other flowers.", + "Mallow flowers have distinctive five-petaled blooms with prominent veins and a central column of fused stamens.", + "Mallow flowers have distinctive deeply notched petals with a central column of fused stamens and pistils." + ], + "mexican petunia": [ + "Mexican petunias have vibrant purple trumpet-shaped flowers with long green leaves and grow in upright clumps.", + "Mexican petunias have trumpet-shaped purple flowers with smooth green leaves while others vary in color shape and leaf texture.", + "The Mexican petunia has vibrant purple trumpet-shaped flowers with dark green leaves and grows in upright clumps.", + "Mexican petunia flowers have distinctive trumpet-shaped blooms with five evenly spaced deep purple or blue petals." + ], + "bromelia": [ + "Bromelia flowers have thick, spiky leaves and vibrant bracts, unlike typical flowers with softer petals and simpler leaf structures.", + "Bromelia flowers have thick, spiky leaves and bright, tubular blooms often growing in a rosette shape with vibrant colors like red or pink.", + "Bromelia flowers have a distinctive central spike surrounded by brightly colored bracts that form a star-like rosette.", + "Bromelia flowers have thick, spiky petals with vibrant colors and a central cone-like structure surrounded by stiff, overlapping bracts." + ], + "blanket flower": [ + "Blanket flowers have bright red or yellow petals with dark red or brown centers and long slender stems.", + "Blanket flowers have bright daisy-like petals with red or yellow tips and dark centers, unlike simpler or differently shaped blooms.", + "Blanket flowers have bright red and yellow daisy-like petals with a raised dark red or brown center and long slender green leaves.", + "A blanket flower has bright red and yellow petals with a dark center, resembling a daisy with vibrant, warm colors." + ], + "trumpet creeper": [ + "The trumpet creeper has large, orange-red, trumpet-shaped flowers, while others vary in color, shape, and size like daisies or roses.", + "A trumpet creeper has large orange or red trumpet-shaped flowers with long tubes and flared ends growing on climbing vines.", + "The trumpet creeper has large, orange-red trumpet-shaped flowers with yellow throats and grows on climbing vines.", + "The trumpet creeper has large orange-red trumpet-shaped flowers with five flaring lobes and long stamens extending beyond the petals." + ], + "blackberry lily": [ + "The blackberry lily has orange speckled petals and clusters of blackberry-like seed pods after blooming.", + "The blackberry lily has distinctive blackberry-like clusters of shiny black seeds after its orange speckled flowers fade.", + "The blackberry lily has star-shaped orange flowers with red spots and long slender leaves resembling an iris.", + "The blackberry lily has striking orange speckled petals and clusters of blackberry-like seed pods after blooming." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordPets.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordPets.json new file mode 100644 index 0000000..47ac3a2 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/OxfordPets.json @@ -0,0 +1,224 @@ +{ + "abyssinian": [ + "An Abyssinian cat is a sleek short-haired pet with large ears ticked fur and a playful energetic appearance.", + "An Abyssinian has a sleek short coat with ticked tabby markings large ears and an athletic slender body.", + "The Abyssinian has a sleek short coat with ticked fur and large ears while other pets vary in fur length and patterns.", + "The Abyssinian has large pointed ears almond-shaped eyes a ticked coat with bands of color and a slender athletic body." + ], + "american bulldog": [ + "An American Bulldog is a muscular medium to large dog with a short coat broad head and strong jaw among pets.", + "The American bulldog has a distinctive broad muscular build with a large square head and pronounced jaw.", + "An American bulldog is muscular with a broad head and short coat, unlike slender or long-haired pets like cats or smaller dogs.", + "An American bulldog has a muscular build, broad head, short coat, and distinctive wrinkled face with a strong jaw." + ], + "american pit bull terrier": [ + "An American Pit Bull Terrier is a muscular medium-sized dog with a short coat broad head and strong jaw among pets.", + "An American pit bull terrier has a muscular build, broad head, and short coat, unlike many other pets which vary in size and fur length.", + "An American pit bull terrier has a muscular build, broad head, short coat, and ears that can be cropped or naturally floppy.", + "The American Pit Bull Terrier has a muscular build, broad head, short coat, and distinctive wide smile with strong jaws." + ], + "basset hound": [ + "A basset hound has long droopy ears, a wrinkled face, short legs, and a long body with a white tan and black coat.", + "A basset hound is a short-legged dog with long ears, droopy eyes, and a wrinkled face, known for its sad but sweet expression.", + "Basset hounds have extremely long droopy ears and short legs that set them apart from all other pet breeds.", + "Basset hounds have long droopy ears short legs and wrinkled faces unlike most pets which are more compact or less wrinkly." + ], + "beagle": [ + "A beagle is a small to medium-sized dog with short legs, floppy ears, and a white coat with black and brown patches.", + "A beagle has a distinct white-tipped tail and tri-color coat of black brown and white unlike other pets.", + "A beagle has a short coat with white black and tan patches floppy ears and a medium size muscular build.", + "Beagles have short tricolor coats, long floppy ears, and a medium-sized muscular build with expressive brown or hazel eyes." + ], + "bengal": [ + "Bengal cats have distinctive leopard-like spots and rosettes with a sleek muscular build unlike most other domestic pets.", + "A Bengal cat has a sleek, muscular body with striking leopard-like spots and a wild yet elegant appearance among pets.", + "A Bengal cat has a sleek coat with distinctive leopard-like spots or marbled patterns and often a striking golden or rust color.", + "A Bengal cat has distinctive marbled or spotted coat patterns that resemble a wild leopard." + ], + "birman": [ + "A Birman is a medium-sized cat with long silky fur blue eyes white paws and a golden or cream-colored body.", + "Birmans have medium-long silky fur, deep blue eyes, white paws, and a color-pointed coat unlike many other pets.", + "Birmans have silky white fur with color points on ears face legs and tail and striking deep blue almond-shaped eyes.", + "A Birman has long silky fur, deep blue eyes, white paws, and a colorpoint coat with a golden tint on the back." + ], + "bombay": [ + "A Bombay cat is a sleek black short-haired pet with shiny fur and striking copper or gold eyes.", + "A Bombay cat has sleek black fur, copper or gold eyes, and a muscular yet slender body with a glossy coat.", + "The Bombay cat has sleek black fur, copper or gold round eyes, and a muscular yet slender body.", + "The Bombay cat has a sleek all-black coat and striking copper or gold eyes." + ], + "boxer": [ + "A boxer has a short muzzle, strong jaw, and wrinkled forehead that are distinct from other pets.", + "A boxer has a short muzzle, muscular build, and wrinkled forehead, unlike most pets which are smaller or have smoother features.", + "A pet boxer has a short coat, muscular build, square jaw, and a wrinkled forehead with a pushed-in nose.", + "A pet boxer is a muscular short-haired dog with a square jaw folded ears and a distinctive pushed-in nose." + ], + "british shorthair": [ + "A British Shorthair has a round face, dense coat, and stocky build, unlike sleeker or fluffier pets with different body shapes and fur textures.", + "A British Shorthair has a round face, dense blue-gray coat, stocky body, and large copper or gold eyes.", + "The British Shorthair has a dense plush coat with a rounded face and large copper or gold eyes.", + "The British Shorthair has a round face, dense blue-gray coat, stocky body, and large copper or gold eyes." + ], + "chihuahua": [ + "A pet chihuahua is a tiny short-haired dog with large ears and a pointed muzzle, often weighing under six pounds.", + "Chihuahuas are tiny with large pointed ears big round eyes and a short or long coat often in tan black or white colors.", + "A chihuahua is much smaller with large ears and prominent eyes compared to most other pets like cats or larger dog breeds.", + "A Chihuahua is tiny with large pointed ears big round eyes and a short or long coat often in tan black or white colors." + ], + "egyptian mau": [ + "The Egyptian Mau has a spotted coat, almond-shaped green eyes, and a graceful, muscular build, unlike most other pets.", + "The Egyptian Mau has a distinctive spotted coat with randomly placed dark spots on a lighter background.", + "The Egyptian Mau has a spotted coat, gooseberry green eyes, and a distinctive mascara-like marking around its eyes.", + "The Egyptian Mau is a sleek spotted cat with striking green eyes and a graceful muscular build." + ], + "english cocker spaniel": [ + "An English Cocker Spaniel is a medium-sized dog with long floppy ears a silky coat and expressive eyes often in various colors.", + "An English Cocker Spaniel has long floppy ears a silky coat and a compact body unlike shorter fur or different ear shapes in other pets.", + "English Cocker Spaniels have long floppy ears a silky coat and a cheerful expression with a compact sturdy body and feathered legs.", + "An English Cocker Spaniel has a medium-sized body with long floppy ears silky fur and a cheerful expressive face." + ], + "english setter": [ + "An English Setter is a medium-sized dog with a white coat and long, silky fur marked by distinctive flecks or patches of color.", + "An English Setter has a speckled coat long feathered ears and a slender build unlike most other pets which vary widely in fur and shape.", + "An English Setter has a speckled coat long silky fur feathered tail and ears and a slender athletic build.", + "An English Setter has a long feathered coat with unique speckled or belton markings and elegant feathering on the legs tail and ears." + ], + "german shorthaired": [ + "A German Shorthaired Pointer has a sleek short coat, distinctive liver or liver-and-white coloring, and a lean athletic build compared to other pets.", + "A German Shorthaired Pointer is a medium-sized dog with a sleek brown and white spotted coat and a muscular athletic build.", + "A German Shorthaired Pointer has a distinctive liver and white speckled coat with a sleek athletic build.", + "A German Shorthaired Pointer has a sleek short coat with distinct liver or liver and white spotted or patched markings." + ], + "great pyrenees": [ + "A Great Pyrenees is large with a thick white coat and a gentle expression, unlike smaller or short-haired pets.", + "A great pyrenees is a large white dog with a thick double coat and a gentle expression often with dark markings around the eyes.", + "A pet Great Pyrenees is a large fluffy white dog with a gentle expression and a thick double coat.", + "The Great Pyrenees has a distinctive thick white double coat with a plumed tail and a majestic bear-like face." + ], + "havanese": [ + "Havanese dogs have long silky hair small size and expressive eyes unlike short-haired or larger pets like cats or labradors.", + "A Havanese is small with long silky hair a fluffy tail and expressive eyes often seen in white black or tan colors.", + "A Havanese is a small fluffy dog with a silky coat, expressive eyes, and a cheerful demeanor often seen in various colors.", + "The Havanese has a long silky coat with wavy or curly hair and distinctive expressive round eyes." + ], + "japanese chin": [ + "A Japanese Chin is a small elegant dog with a flat face large eyes long silky hair and a distinctive feathered tail.", + "The Japanese chin has a distinctive flat face, large round eyes, and a silky coat, unlike most pets with varied facial structures and fur types.", + "The Japanese Chin has a distinctive flat face, large wide-set eyes, and a feathered tail that curls over its back.", + "The Japanese Chin has a distinctive flat face with large wide-set eyes and a feathered tail that curls over its back." + ], + "keeshond": [ + "A keeshond is a fluffy medium-sized dog with a thick gray and black coat, fox-like face, and distinctive spectacles around its eyes.", + "A keeshond has a thick grey and black coat, a fox-like face, and distinctive spectacles markings around its eyes.", + "A keeshond has a thick gray and black coat, fox-like face, and distinctive spectacles markings around its eyes.", + "A keeshond has a distinctive thick gray and black ruff around its neck resembling a lion's mane." + ], + "leonberger": [ + "A leonberger is a large fluffy dog with a lion-like mane, a black mask, and a thick golden to reddish-brown coat.", + "A Leonberger is a large, fluffy dog with a lion-like mane, while other pets vary widely in size, fur length, and features.", + "A pet Leonberger is a large fluffy dog with a thick golden or brown coat a lion-like mane and a gentle friendly face.", + "A leonberger has a large size with a thick mane-like coat and distinctive black facial mask." + ], + "maine coon": [ + "A Maine Coon is a large fluffy cat with tufted ears a bushy tail and a distinctive rugged appearance among pets.", + "A Maine Coon has large tufted ears a bushy tail a long shaggy coat and a robust rectangular body shape.", + "A Maine Coon is larger with tufted ears, a bushy tail, and a shaggy coat compared to most other pet cats and animals.", + "Maine Coons have large tufted ears bushy tails and long shaggy fur with a distinctive rectangular body shape." + ], + "miniature pinscher": [ + "A miniature pinscher is a small sleek dog with short fur pointed ears and a lively confident stance among pets.", + "A miniature pinscher is a small sleek dog with short coat erect ears and a confident stance often in black tan or chocolate colors.", + "A miniature pinscher has a sleek short coat small size pointy ears and a confident upright stance resembling a tiny Doberman.", + "The miniature pinscher has a sleek short coat with a distinct high stepping prancing gait and erect ears." + ], + "newfoundland": [ + "A Newfoundland is recognized by its large size, thick black or brown coat, webbed feet, and gentle expression.", + "Newfoundlands are large, heavy-coated dogs with broad heads and webbed feet, unlike most smaller or short-haired pets.", + "A Newfoundland is a large, muscular dog with a thick black or brown coat, webbed feet, and a gentle, expressive face.", + "A Newfoundland is a large, fluffy dog with a thick black or brown coat, webbed feet, and a gentle, friendly expression." + ], + "persian": [ + "Persian cats have long fluffy fur flat faces and round eyes unlike short-haired or leaner pets with more defined facial features.", + "Persian cats have flat faces long thick fur round eyes short noses and a stocky body making them stand out among pets.", + "A Persian cat has a flat face long thick fur a round head large eyes and a short muzzle.", + "A Persian cat has a distinct flat face and long luxurious fur that sets it apart from other pets." + ], + "pomeranian": [ + "Pomeranians are small fluffy dogs with thick double coats and fox-like faces unlike smoother or larger pets like cats or labradors.", + "Pomeranians are small fluffy dogs with fox-like faces pointed ears and a thick double coat often in bright colors like orange or cream.", + "A Pomeranian is a small fluffy dog with a fox-like face pointed ears and a thick double coat in various colors.", + "A Pomeranian is small and fluffy with a fox-like face, pointed ears, and a thick double coat in various colors." + ], + "pug": [ + "A pug is a small wrinkly dog with a flat face big eyes and a curly tail often fawn or black in color.", + "A pug has a short wrinkled face and a compact muscular body unlike most pets which have varied smoother features and proportions.", + "A pug has a flat wrinkled face with large round dark eyes and a short curled tail unlike other pets.", + "A pug has a wrinkled face short muzzle curled tail and compact body with a fawn or black coat." + ], + "ragdoll": [ + "Ragdolls have blue eyes, semi-long silky fur, pointed color patterns, and a large muscular build with a gentle expression.", + "Ragdolls have striking blue eyes, semi-long silky fur, and a pointed color pattern unlike many other pet breeds.", + "Ragdolls have striking blue eyes and a semi longhaired coat with a pointed color pattern and a plush silky texture.", + "A Ragdoll is a large, fluffy cat with striking blue eyes, a soft coat, and a gentle, relaxed demeanor." + ], + "russian blue": [ + "A Russian Blue has a sleek blue-gray coat, bright green eyes, and a slender elegant body with a gentle expression.", + "A Russian Blue has a sleek blue-gray coat, bright green eyes, and a slender elegant body with a fine bone structure.", + "A Russian Blue has a sleek blue-gray coat, green eyes, and a slender build, unlike other pets with varied colors and body shapes.", + "The Russian Blue has a distinctive solid blue-gray coat with a silvery sheen and bright green eyes." + ], + "saint bernard": [ + "A Saint Bernard is a large dog with a thick coat, droopy face, and often has white with brown or red markings.", + "A Saint Bernard is much larger and has a thick coat with distinctive facial markings compared to smaller or short-haired pets.", + "A Saint Bernard is a large, strong dog with a thick coat, floppy ears, and a gentle, friendly expression.", + "A Saint Bernard has a large, muscular build with a distinctive white and reddish-brown coat and a gentle, expressive face." + ], + "samoyed": [ + "A Samoyed has a thick white fluffy coat and a smiling face unlike most other pets which vary widely in color and fur type.", + "A Samoyed is a fluffy white dog with a thick double coat a smiling face and a curly tail over its back.", + "A pet Samoyed is a fluffy white dog with a thick coat, smiling face, and curled tail, standing out for its friendly and lively appearance.", + "A Samoyed is recognized by its fluffy white coat, black eyes, smiling expression, and curled tail over the back." + ], + "scottish terrier": [ + "A Scottish terrier has a compact body short legs a wiry coat a distinctive beard and pointed erect ears.", + "A Scottish terrier is a small sturdy dog with short legs a wiry coat and distinctive pointed ears and beard.", + "A Scottish terrier has a compact body short legs a wiry coat and a distinctive beard with pointed ears and a long head.", + "A Scottish terrier has a distinctive wiry coat short legs and pointed ears unlike many other pets which vary widely in size and fur type." + ], + "shiba inu": [ + "A Shiba Inu has a fox-like face, curled tail, and a compact body with red, black and tan, or sesame fur.", + "A Shiba Inu is a small, fox-like dog with a curled tail, pointed ears, and a thick coat in red, black, or tan.", + "A Shiba Inu has a fox-like face, curled tail, and compact size, unlike many other pets which vary widely in shape and fur.", + "A Shiba Inu has a fox-like face, curled tail, small erect ears, and a thick double coat in red, black, or tan colors." + ], + "siamese": [ + "A Siamese has a sleek body, blue almond-shaped eyes, and pointed color patterns on its ears face paws and tail unlike other pets.", + "Siamese cats have striking blue almond-shaped eyes and a creamy coat with darker points on ears face paws and tail.", + "Siamese cats have sleek bodies, striking blue almond-shaped eyes, and distinctive pointed color patterns on their ears face paws and tail.", + "A Siamese cat has a sleek body, blue almond-shaped eyes, and distinctive pointed color patterns on its ears face paws and tail." + ], + "sphynx": [ + "A sphynx is hairless with wrinkled skin while most other pets have fur and smoother skin.", + "A hairless body with wrinkled skin and large ears distinguishes a pet sphynx from other pets.", + "A pet sphynx is a hairless cat with wrinkled skin large ears and a slender muscular body standing out among furry pets.", + "The Sphynx cat is hairless with wrinkled skin large ears and a muscular body making it stand out among pets." + ], + "staffordshire bull terrier": [ + "A Staffordshire bull terrier has a muscular compact body broad head and short coat unlike most pets which vary widely in size and fur.", + "A Staffordshire Bull Terrier is a muscular short-haired dog with a broad head strong jaws and a friendly confident expression.", + "A Staffordshire bull terrier has a distinct broad head with pronounced cheek muscles and a short muzzle.", + "A Staffordshire Bull Terrier has a muscular build, broad head, short coat, and distinctive wide smile with strong jaw and cheek muscles." + ], + "wheaten terrier": [ + "A wheaten terrier is a medium-sized dog with a soft, wavy, wheat-colored coat and a friendly, energetic expression.", + "A wheaten terrier has a distinctive soft wavy coat that is pale beige or wheat-colored.", + "A wheaten terrier has a soft wavy coat and a square build while other pets vary widely in fur texture and body shape.", + "A wheaten terrier has a soft wavy coat in light golden wheat color and a medium-sized sturdy build with a friendly expressive face." + ], + "yorkshire terrier": [ + "A Yorkshire terrier is a small long-haired dog with a silky blue and tan coat and a confident lively demeanor.", + "A Yorkshire terrier is small with long silky blue and tan fur a compact body and a perky topknot on its head.", + "A Yorkshire terrier has long silky hair and a small size, unlike pets with short fur or larger bodies like cats or labradors.", + "Yorkshire terriers have long silky coats small size pointed ears and a compact face often with tan and blue or black coloring." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/SUN397.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/SUN397.json new file mode 100644 index 0000000..06ad403 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/SUN397.json @@ -0,0 +1,2384 @@ +{ + "abbey": [ + "An abbey scene has religious architecture and historical elements, unlike other scenes which lack these specific features.", + "An abbey scene is recognized by its religious architecture, often with large stone structures and historical elements.", + "An abbey scene can be identified by its religious architecture, stone structures, and often a tranquil, historical setting.", + "An abbey scene uniquely features a religious or monastic building with historical or architectural significance." + ], + "airplane cabin": [ + "An airplane cabin has narrow aisles and seats, unlike open spaces found in other scenes.", + "Look for enclosed spaces with seats, windows, and overhead compartments typical of an airplane interior.", + "An airplane cabin scene is a confined interior with seats, overhead bins, and passengers in a flying aircraft.", + "The presence of overhead storage bins is unique to airplane cabin scenes." + ], + "airport terminal": [ + "Airport terminals have large, open indoor spaces with check-in counters, luggage carts, and many people.", + "Look for large indoor spaces with check-in counters, gates, luggage carts, and many people moving around.", + "Airport terminals have more people, luggage, and travel signs than most other indoor or outdoor scenes.", + "Large indoor spaces with multiple gates, departure boards, and people waiting are unique to airport terminals." + ], + "alley": [ + "Alley scenes have narrow, winding paths bordered by walls or buildings on both sides.", + "An alley scene is a narrow, often urban path between buildings, usually with walls on both sides.", + "An alley scene has narrow, enclosed paths with walls, unlike open spaces like streets or parks.", + "Alley scenes have narrow, winding paths with high walls and often dim lighting compared to open areas." + ], + "amphitheater": [ + "Look for a large open-air venue with tiered seating arranged in a circular or horseshoe shape.", + "An amphitheater scene is a large outdoor venue with tiered seating, often used for performances or events.", + "An amphitheater scene has a curved, open structure for performances, unlike flat or enclosed spaces.", + "Amphitheaters have distinct curved seating and open-air stages, unlike other enclosed or flat-surfaced venues." + ], + "amusement arcade": [ + "Look for bright lights, colorful games, and lots of people in a small, indoor space.", + "Amusement arcades have bright lights and game machines, unlike other scenes which lack these specific features.", + "Amusement arcades have bright lights, colorful games, and crowds of people, unlike other indoor or outdoor scenes.", + "Amusement arcades have visible gaming machines and flashing lights not found in other scene types." + ], + "amusement park": [ + "Amusement parks have distinct features like rides, roller coasters, and crowds, which set them apart from other scenes.", + "Look for bright colors, rides, crowds, and fun structures like roller coasters or carousels.", + "Amusement parks have bright colors and large structures, unlike other scenes which vary in natural or urban elements.", + "An amusement park scene features rides, attractions, and crowds in a fun, recreational outdoor setting." + ], + "anechoic chamber": [ + "An anechoic chamber has sound-absorbing walls and no reflections, unlike other scenes with hard surfaces and echoes.", + "An anechoic chamber has sound-absorbing walls with no reflections, making it visually distinct from other rooms.", + "An anechoic chamber is a soundproof room with sound-absorbing walls, used to test acoustics.", + "An anechoic chamber has sound-absorbing walls, minimal reflections, and a stark, uniform environment with no echoes." + ], + "outdoor apartment building": [ + "Outdoor apartment buildings have multiple floors and windows, unlike single-story homes or natural landscapes.", + "Look for tall structures with windows, balconies, and surrounding outdoor elements like streets or lawns.", + "Outdoor apartment buildings have distinct multi-story structures with windows, balconies, and urban surroundings.", + "Outdoor apartment buildings have visible multiple-story residential structures with balconies or windows facing the street." + ], + "indoor apse": [ + "An indoor apse scene is a rounded, vaulted architectural space often found in religious buildings.", + "Look for a rounded or vaulted ceiling with religious or ceremonial elements inside a building.", + "An indoor apse has a rounded, domed ceiling and often religious decorations, distinguishing it from other indoor spaces.", + "An indoor apse scene has a rounded, vaulted ceiling and religious decor, unlike most other scenes." + ], + "aquarium": [ + "Look for clear water, fish, and glass walls to distinguish an aquarium from other scenes.", + "An aquarium scene has water and fish, while other scenes lack these aquatic elements.", + "An aquarium scene has clear water, colorful fish, and glass walls for viewing underwater life.", + "An aquarium scene features fish tanks with colorful marine life in a controlled indoor environment." + ], + "aqueduct": [ + "Look for long, arched stone or concrete structures carrying water across valleys or other obstacles.", + "Aqueduct scenes have tall, arched stone structures carrying water, distinguishing them from other architectural or natural scenes.", + "Aqueducts have large, man-made stone or concrete structures designed to carry water across valleys or obstacles.", + "Aqueduct scenes have large stone structures with arches, unlike other scenes which lack such distinctive architectural features." + ], + "arch": [ + "Arch scenes have distinct curved structures and openings, unlike flat or open spaces in other scenes.", + "Arch scenes have distinct curved structures, unlike other scenes that lack these specific architectural features.", + "Look for structures with curved openings or supports, often found in historical or monumental settings.", + "Arches have a distinct curved, open structure that frames a view, unlike other scene types." + ], + "archive": [ + "An archive scene is distinct by its organized, stored items and structured, often indoor, setting.", + "An archive scene is a place where documents and items are stored for preservation and future reference.", + "Archives are uniquely characterized by the presence of neatly organized, stacked, or shelved documents and records.", + "An archive scene has old, organized items stored neatly, often in a dimly lit, structured space." + ], + "outdoor arrival gate": [ + "An outdoor arrival gate scene is a place where people enter or exit, often with transportation nearby.", + "An outdoor arrival gate has distinct features like ticket counters, waiting areas, and transportation symbols.", + "Look for structures like ticket counters, waiting areas, and transportation signs typical of arrival gates.", + "Outdoor arrival gates have visible transportation signs like flight numbers or destination boards." + ], + "art gallery": [ + "Art galleries have framed artworks on walls, while other scenes show natural or everyday environments without such displays.", + "Art galleries have distinct features like framed artworks on walls and often minimal furniture in a spacious setting.", + "Look for large, open spaces with framed artworks on walls and minimal clutter.", + "An art gallery scene features walls displaying various artworks, often with people viewing them in a spacious room." + ], + "art school": [ + "Art school scenes have more paint supplies and creative tools than other typical indoor or outdoor scenes.", + "Look for classrooms with art supplies, easels, and creative displays to spot an art school scene.", + "Art school scenes have distinct features like easels, canvases, and art supplies arranged in a studio setting.", + "An art school scene features classrooms with easels, art supplies, and students creating or studying art." + ], + "art studio": [ + "An art studio scene has more paint supplies and creative tools than other types of scenes.", + "Look for tools, canvases, and creative materials arranged in a space meant for making art.", + "An art studio scene features creative tools and materials, often with paintings or sculptures, in a bright space.", + "An art studio scene has distinct features like easels, canvases, paints, and creative tools arranged for making art." + ], + "assembly line": [ + "Assembly lines have distinct, repetitive machinery, conveyors, and uniform worker movements, unlike other scene types.", + "Assembly lines have organized, repetitive structures with machinery and workers, unlike natural or cluttered scenes.", + "Look for repetitive machinery, conveyor belts, and workers performing tasks in an organized, linear production setup.", + "Repetitive arrangement of machinery and workers performing sequential tasks in a linear flow." + ], + "outdoor athletic field": [ + "Outdoor athletic fields have grass, lines, and sports equipment, unlike other scenes with different natural or built elements.", + "An outdoor athletic field scene is a grassy area with lines and often sports equipment or players.", + "Outdoor athletic fields have distinct lines, markings, and open spaces for sports, unlike other natural or built scenes.", + "Look for open grassy areas with lines, goals, or courts, often with players or equipment." + ], + "public atrium": [ + "A public atrium has high ceilings and open spaces, unlike enclosed rooms or outdoor scenes.", + "A public atrium has a large open indoor space with high ceilings and natural light.", + "A public atrium has a large, open indoor space with a glass ceiling for natural light.", + "A public atrium scene is a large indoor open space with high ceilings and often glass walls." + ], + "attic": [ + "Look for sloped ceilings, exposed beams, and cluttered storage spaces typical of upper-floor rooms.", + "An attic scene is a cluttered, often dimly lit space with stored items and old furniture.", + "An attic scene has cluttered, dim lighting, and old items, unlike bright, organized, or modern spaces.", + "An attic scene has distinct features like cluttered items, sloped ceilings, and small windows." + ], + "auditorium": [ + "An auditorium scene is a large room with seating for an audience and a stage or platform.", + "Look for large open spaces with seating, often with a stage or performance area.", + "An auditorium has a large open space with seating rows and a stage, often with high ceilings.", + "Auditoriums have a large, open space with tiered seating facing a central stage or performance area." + ], + "auto factory": [ + "Look for large buildings with assembly lines, vehicles, and industrial equipment inside or nearby.", + "An auto factory scene has machinery and vehicles, unlike natural or urban scenes with plants or buildings.", + "An auto factory scene has distinct features like assembly lines, large machinery, and metal structures.", + "Large, interconnected buildings with visible assembly lines and machinery are unique to auto factory scenes." + ], + "badlands": [ + "Badlands scenes have unique, rugged terrain with eroded rock formations and sparse vegetation.", + "Badlands have rugged, eroded terrain with few plants, unlike other scenes that often have more vegetation or smoother surfaces.", + "A badlands scene is a dry, rugged area with eroded rock formations and sparse vegetation.", + "Badlands scenes have unique eroded rock formations and arid landscapes with minimal vegetation." + ], + "indoor badminton court": [ + "Indoor badminton courts have high ceilings, bright lighting, wooden floors, and badminton nets, distinguishing them from other scenes.", + "Look for a large indoor space with a high ceiling, badminton court lines, and often net and rackets.", + "An indoor badminton court has a high ceiling, wooden floor, net, and walls with windows.", + "An indoor badminton court has a high ceiling, wooden flooring, and net, unlike other scenes." + ], + "baggage claim": [ + "Baggage claim scenes have luggage carousels and waiting people, unlike other scenes which lack these specific elements.", + "Look for luggage carousels, suitcases, and airport terminals to spot a baggage claim scene.", + "A baggage claim scene is a busy airport area where travelers collect their luggage after a flight.", + "Luggage carousels with bags are unique to baggage claim scenes." + ], + "shop bakery": [ + "A shop bakery scene has distinct features like baking equipment, pastries, and display cases.", + "Look for displays of bread, pastries, and ovens, often with a warm, inviting atmosphere and a commercial setting.", + "A shop bakery scene has baking goods and tools, unlike other scenes that lack these specific items.", + "A shop bakery scene features baking goods, ovens, and display shelves in a commercial setting." + ], + "exterior balcony": [ + "An exterior balcony scene has open spaces and railings, unlike indoor or fully outdoor scenes.", + "Look for outdoor spaces attached to buildings with railings and open access to the surrounding environment.", + "An exterior balcony scene has a distinct open railing or barrier separating it from the outside area.", + "An exterior balcony scene has distinct features like railings, open space, and connection to a building's exterior." + ], + "interior balcony": [ + "Look for enclosed spaces with windows and railings, often with indoor furnishings visible.", + "An interior balcony has walls and a ceiling, unlike outdoor balconies, making it distinct in scene recognition.", + "An interior balcony scene has walls and indoor elements, unlike outdoor balconies or other open spaces.", + "An interior balcony has a visible indoor space with a railing or barrier overlooking an external area." + ], + "ball pit": [ + "A ball pit scene is a colorful area filled with many small plastic balls for play.", + "Look for bright colors, small plastic balls, and a contained area with people or children playing.", + "A ball pit scene is recognized by its abundance of colorful, round balls filling a contained space.", + "A ball pit scene has many colorful balls, while other scenes have different objects and less uniform colors." + ], + "ballroom": [ + "A ballroom scene has formal, large rooms with polished floors and often mirrors, unlike casual or outdoor settings.", + "Look for large open spaces with polished floors, mirrors, and often a central dance area or stage.", + "A ballroom scene has large open spaces, polished floors, and often features elegant decorations and chandeliers.", + "A ballroom scene is a large, elegant room with polished floors, mirrors, and often people dancing." + ], + "bamboo forest": [ + "Bamboo forests have tall, slender green stalks densely packed together, unlike other forest types.", + "A bamboo forest has tall, thin green stalks, unlike other scenes with different plant types or structures.", + "A bamboo forest scene is a dense area with tall, slender green bamboo stalks growing closely together.", + "Look for tall, thin green stalks densely packed together, often with sunlight filtering through the leaves." + ], + "banquet hall": [ + "A banquet hall is a large room with tables, chairs, and decorations for formal events.", + "Banquet halls have large open spaces with tables, chairs, and decorations, often used for events.", + "A banquet hall has a large, open space with tables set for a formal event.", + "A banquet hall has large tables and decorations for events, unlike other scenes with different furniture or purposes." + ], + "bar": [ + "Look for dark lighting, crowded areas, and alcohol-related items to spot a bar scene.", + "A bar scene has distinct dim lighting, crowded areas, and alcohol-related items like glasses and bottles.", + "A bar scene is a dimly lit indoor setting with people, drinks, and often a counter.", + "A bar scene has dim lighting and people drinking, unlike other scenes which vary in lighting and activity." + ], + "barn": [ + "Look for large, open structures with wooden or metal walls and a roof, often near fields or farms.", + "A barn scene has rustic structures and rural elements, unlike urban or natural scenes with different features.", + "A barn scene is a rural setting featuring a large, often wooden, agricultural building.", + "A barn scene has distinct features like wooden structures, hay, and farm animals, setting it apart from other scenes." + ], + "barndoor": [ + "Look for large, wooden, sliding doors on a barn, often with a farmhouse or rural setting.", + "A barndoor scene is recognized by its large, rustic wooden doors and often rural or farm setting.", + "A barndoor scene is a rural setting with a large wooden door of a barn, often in a field.", + "A barndoor scene has rustic, rural elements like wood and metal, unlike urban or natural settings." + ], + "baseball field": [ + "Look for a grassy field with a diamond, bases, and a backstop, often with spectators.", + "A baseball field has a diamond-shaped infield, outfield fence, and specific base paths.", + "A baseball field scene has a diamond, outfield, and bleachers, distinct from most other sports or outdoor settings.", + "A baseball field scene has a diamond-shaped field with bases and a pitcher's mound, unlike other scenes." + ], + "basement": [ + "Look for dim lighting, concrete walls, and storage items like boxes or tools.", + "Basements are darker, more cluttered, and often have concrete floors, unlike brighter, cleaner spaces like living rooms.", + "Basements have distinct features like concrete floors, storage items, and dim lighting compared to other indoor scenes.", + "A basement scene is typically dark, with concrete walls, storage items, and sometimes water damage." + ], + "basilica": [ + "Basilicas have large, ornate religious buildings, while other scenes lack these specific architectural and religious features.", + "A basilica scene is a large, often religious building with a distinctive architectural style and open interior space.", + "Look for large religious buildings with domes, columns, and often a cross on top.", + "Basilicas have large, ornate structures with high domes and religious symbols, distinguishing them from other buildings." + ], + "outdoor basketball court": [ + "Look for a hard court surface, hoops with nets, and often players or basketballs nearby.", + "Outdoor basketball courts have hard surfaces and hoops, unlike other scenes which lack these specific sports elements.", + "Outdoor basketball courts have distinct hoop backboards and often show players, making them easy to recognize.", + "An outdoor basketball court scene is a sports area with hoops, backboards, and a hard surface." + ], + "bathroom": [ + "Bathrooms have sinks, toilets, and showers, while other scenes lack these specific fixtures and water-related elements.", + "Bathrooms have distinct features like sinks, toilets, showers, and mirrors, which are not common in other scenes.", + "Look for tiles, mirrors, sinks, and showers to spot a bathroom scene.", + "A bathroom scene features a room with a toilet, sink, and shower or bathtub for personal hygiene." + ], + "batters box": [ + "A batters box scene is a baseball field area where a player stands to hit the ball.", + "A batters box scene has a baseball diamond with specific lines, unlike other scenes with varied settings.", + "Look for a rectangular area near a home plate in a baseball field with distinct lines.", + "A batters box scene has a distinct rectangular area on a baseball field with a batter standing inside." + ], + "bayou": [ + "A bayou scene is a slow-moving swampy area with trees, water, and often overgrown vegetation.", + "A bayou scene has murky water, dense vegetation, and often a swampy, humid atmosphere.", + "Bayou scenes have distinct murky water, dense vegetation, and swampy terrain with unique natural lighting.", + "A bayou scene has swampy, slow-moving water with overhanging vegetation, unlike other scenes with clear water or open landscapes." + ], + "indoor bazaar": [ + "Indoor bazaars have crowded stalls, varied merchandise, and dim lighting, unlike other indoor or outdoor scenes.", + "Indoor bazaar scenes have crowded stalls and diverse goods, unlike other scenes that are less cluttered and focused.", + "Indoor bazaars have crowded stalls with diverse goods, often with hanging textiles and intricate displays.", + "Look for crowded, dimly lit spaces with stalls, goods, and people, typical of marketplaces inside buildings." + ], + "outdoor bazaar": [ + "Outdoor bazaar scenes have distinct features like crowded stalls, varied goods, and vibrant, busy market environments.", + "An outdoor bazaar scene is a busy market with stalls, people, and various goods for sale.", + "Look for crowded areas with stalls, diverse goods, and people in an open, market-like setting.", + "Outdoor bazaars have crowded stalls and people, unlike other scenes which may be empty or feature different structures." + ], + "beach": [ + "Beach scenes have distinct sandy shores, water bodies, and often sunny skies with recreational elements.", + "Look for sandy shores, water bodies, and often sunny skies with recreational elements like umbrellas or people.", + "A beach scene is a sandy shore with water, often sunny, featuring sand, waves, and sometimes people.", + "Beach scenes have sand, water, and sky, while other scenes lack these specific natural elements." + ], + "beauty salon": [ + "A beauty salon scene is a place with chairs, mirrors, and styling tools for hair and makeup.", + "Look for mirrors, styling tools, chairs, and products arranged in a space meant for hair and makeup services.", + "Beauty salons have distinct features like mirrors, hairdryers, styling chairs, and product displays, setting them apart from other scenes.", + "A beauty salon scene has more mirrors, hair tools, and styling products than other scenes." + ], + "bedroom": [ + "Bedrooms have beds and personal items, unlike other scenes which lack these specific furnishings.", + "A bedroom scene is a private room with a bed, often containing furniture for sleeping and relaxing.", + "Look for a bed, dresser, or nightstand with soft lighting and personal items like books or photos.", + "Bedrooms have distinct features like beds, pillows, and personal items, setting them apart from other indoor scenes." + ], + "berth": [ + "A berth scene is a docking area for boats or ships, often with water and moored vessels.", + "Look for a docked boat or ship near a quay with mooring equipment and water nearby.", + "A berth scene has distinct features like boats, docks, and water, setting it apart from other scenes.", + "A berth scene has boats tied to docks, unlike other scenes which lack this specific maritime arrangement." + ], + "biology laboratory": [ + "A biology lab has scientific equipment and specimens, unlike other scenes which lack these specific features.", + "A biology lab has distinct lab equipment, microscopes, and biological samples, setting it apart from other scenes.", + "Look for lab equipment, microscopes, test tubes, and scientific tools on workbenches in a clean, bright setting.", + "Microscopes are unique visual cues found in biology laboratories and not in other types of scenes." + ], + "indoor bistro": [ + "An indoor bistro has cozy seating, small tables, and often a counter with food and drinks.", + "Look for cozy seating, small tables, indoor lighting, and often a cafe or restaurant setting.", + "An indoor bistro has small tables, chairs, and a cozy atmosphere with visible food or drinks.", + "An indoor bistro scene has tables, chairs, and often a counter, unlike outdoor or other interior spaces." + ], + "boardwalk": [ + "A boardwalk scene has distinct wooden walkways, coastal views, and recreational elements like vendors and rides.", + "A boardwalk scene has wooden planks, coastal views, and recreational elements like benches or beach access.", + "A boardwalk scene has wooden walkways near water, unlike other scenes which lack this specific feature.", + "A boardwalk scene uniquely features a wooden walkway along a shoreline or body of water." + ], + "boat deck": [ + "Look for large open spaces with wooden or metal flooring, often with railings and nearby water.", + "A boat deck scene has distinct features like water, boats, and open space, different from land or indoor scenes.", + "A boat deck scene has water and boats, unlike other scenes which show land or buildings.", + "A boat deck scene shows a wooden or metal platform on water with people or boats nearby." + ], + "boathouse": [ + "A boathouse scene has boats stored on land near water with a distinct structure for storage.", + "A boathouse scene has water and boats, while other scenes may lack these elements.", + "A boathouse scene has distinct features like boats, docks, and water, setting it apart from other scenes.", + "A boathouse scene uniquely features boats stored on land, typically near water with a dedicated structure." + ], + "bookstore": [ + "Bookstores have shelves filled with books, which are not present in other types of scenes.", + "Bookstores have distinct features like bookshelves, reading areas, and checkout counters that set them apart from other scenes.", + "A bookstore scene has shelves filled with books, often with people browsing or reading.", + "A bookstore scene has shelves of books, while other scenes have different objects and layouts." + ], + "indoor booth": [ + "An indoor booth scene is a small, enclosed space often found in fairs or exhibitions.", + "Indoor booths have enclosed spaces with specific setups, unlike open or natural scenes with varied environments.", + "Look for enclosed spaces with artificial lighting, limited exits, and often specific functional purposes.", + "Indoor booths have distinct enclosed spaces with specific lighting, displays, and often a commercial or trade show setting." + ], + "botanical garden": [ + "Botanical gardens have distinct features like diverse plant life, structured pathways, and open green spaces.", + "Botanical gardens have organized, labeled plant displays that are not found in other natural or urban scenes.", + "Look for lush green plants, diverse flowers, and structured pathways in an open, natural setting.", + "Botanical gardens have more plants and greenery than other scenes, with organized layouts and fewer people." + ], + "indoor bow window": [ + "Look for large, curved windows inside a building that let in lots of light and offer a view outside.", + "A bow window has a curved, multi-panel design that protrudes outward, creating a distinctive indoor architectural feature.", + "A curved glass structure that protrudes outward from the interior wall of a building.", + "An indoor bow window has curved glass panels, while other scenes lack this distinctive rounded architectural feature." + ], + "outdoor bow window": [ + "Outdoor bow windows have curved, multi-paned fronts, unlike flat or rectangular windows in other scenes.", + "Outdoor bow windows have a curved, multi-panel glass design that bulges outward from the building.", + "Outdoor bow windows have curved, multi-pane glass sections extending outward from the building.", + "An outdoor bow window scene is a curved window that extends outward from a building, offering a panoramic view." + ], + "bowling alley": [ + "A bowling alley has distinct lanes, pins, and balls, set in an indoor, brightly lit, recreational environment.", + "A bowling alley has long, narrow lanes with pins at one end and a ball return at the other.", + "A bowling alley has lanes and pins, while other scenes lack these specific sports equipment features.", + "Look for lanes, pins, balls, and seating areas with a distinct indoor setting and specific lighting." + ], + "boxing ring": [ + "A boxing ring scene is a squared-off area with ropes and fighters, often in a gym or arena.", + "A boxing ring scene has ropes, a square floor, and fighters, distinguishing it from other sports or indoor scenes.", + "A boxing ring scene has ropes and turnbuckles surrounding the central fighting area.", + "Look for a squared-off area with ropes, corner pads, and often a raised platform." + ], + "indoor brewery": [ + "Look for large tanks, brewing equipment, and industrial elements inside a building with a functional layout.", + "Indoor brewery scenes have brewing equipment and barrels, unlike other scenes which lack these specific industrial elements.", + "An indoor brewery scene features brewing equipment, tanks, and brewing processes inside a factory or workshop.", + "Large brewing equipment like fermenters and vats is unique to indoor brewery scenes." + ], + "bridge": [ + "Bridges have unique structures crossing gaps, often with supports, spans, and connections to land or water.", + "Bridge scenes have structures crossing over water or gaps, unlike other scenes that lack such distinct architectural elements.", + "Look for structures with spans over water or gaps, often with supports and connecting paths.", + "A bridge scene shows a structure spanning water or a gap, often with surrounding natural or urban elements." + ], + "building facade": [ + "Building facades have flat, structured surfaces with windows and doors, unlike natural or interior scenes with varied textures.", + "Look for flat, structured surfaces with repeating patterns and symmetrical designs typical of architectural facades.", + "Building facades have distinct geometric patterns, uniform textures, and architectural elements like windows and doors.", + "The presence of structured, repeating architectural elements like windows and doors is unique to building facades." + ], + "bullring": [ + "Look for a circular arena with tiered seating and often a central area for bullfighting events.", + "A bullring scene is a circular arena with seating around it for watching bullfights.", + "A bullring scene has a distinctive circular arena with seating and often a central fighting area.", + "A bullring scene has a circular arena and seating, unlike other scenes which vary in structure and setting." + ], + "burial chamber": [ + "Look for enclosed spaces with stone walls, artifacts, and a dark, solemn atmosphere.", + "A burial chamber scene has ancient, enclosed structures with symbolic art, unlike open or modern scenes.", + "A burial chamber scene is a dark, enclosed space with stone walls, often containing ancient artifacts.", + "Burial chambers have unique stone structures, dark interiors, and ancient artifacts, distinguishing them from other scenes." + ], + "bus interior": [ + "A bus interior scene has seats and windows, unlike outdoor or other indoor scenes.", + "Look for seats, windows, and a ceiling with lights inside a vehicle.", + "A bus interior has distinct rows of seats, windows, and a steering wheel, unlike other scenes.", + "A bus interior scene uniquely features multiple rows of seats with a central aisle running down the middle." + ], + "butchers shop": [ + "A butchers shop has distinct features like meat displays, cutting boards, and tools for cutting and preparing meat.", + "A butchers shop has meat, knives, and red surfaces, unlike other scenes with different objects and colors.", + "A butchers shop has visible meat products like hanging cuts or displayed sausages on counters.", + "A butchers shop scene features meat, tools, and display counters in a commercial setting." + ], + "butte": [ + "A butte scene has a tall, isolated rock formation, unlike other scenes with flat or varied terrain.", + "A butte scene is recognized by its isolated, tall rock formation rising from a flat landscape.", + "A butte scene is uniquely characterized by a single, isolated, flat-topped rock formation rising prominently from the ground.", + "A butte scene has a tall, isolated rock formation with a flat top and steep sides in a natural setting." + ], + "outdoor cabin": [ + "Outdoor cabins have distinct features like wooden structures, rustic elements, and natural surroundings like trees and mountains.", + "Outdoor cabins have rustic wood structures and natural surroundings, unlike urban or indoor scenes with man-made elements.", + "An outdoor cabin scene is a rustic wooden house in a natural setting like a forest or mountains.", + "Look for small wooden houses with roofs, surrounded by nature, often near water or in forests." + ], + "cafeteria": [ + "A cafeteria scene is a place where people eat and socialize, often with food counters and tables.", + "A cafeteria scene has distinct features like food counters, tables, chairs, and a kitchen area.", + "Look for open spaces with food counters, tables, and chairs, often in institutional or commercial settings.", + "A cafeteria scene has food, tables, and people eating, unlike other scenes that show different settings and activities." + ], + "campsite": [ + "A campsite has tents and outdoor gear, unlike other scenes which lack these specific elements.", + "Look for tents, fire pits, sleeping bags, and outdoor furniture in natural settings like forests or mountains.", + "A campsite scene has tents, fire pits, and outdoor furniture in a natural setting.", + "A campsite scene has tents, fire pits, and outdoor furniture in a natural setting." + ], + "campus": [ + "Campus scenes have distinct features like academic buildings, green spaces, and pathways, setting them apart from other scenes.", + "A campus scene is an outdoor area with buildings, walkways, and green spaces, often showing educational facilities.", + "A campus scene has buildings, green areas, and paths, unlike urban or natural scenes which lack these features.", + "Look for buildings, pathways, green areas, and educational structures grouped together in an organized layout." + ], + "natural canal": [ + "Look for water channels with natural surroundings like plants or rocks, not man-made structures.", + "Natural canals have flowing water and green banks, unlike urban canals with concrete and city structures.", + "Natural canals have winding waterways bordered by green vegetation, unlike man-made canals or other water bodies.", + "A natural canal scene is a waterway with banks, often surrounded by greenery and boats." + ], + "urban canal": [ + "Look for narrow water channels with buildings or roads nearby in a city setting.", + "Urban canals have distinct flowing water, man-made structures, boats, and city elements unlike natural water scenes.", + "An urban canal scene is a city waterway with buildings, boats, and bridges along its banks.", + "Urban canals have water channels with buildings nearby, unlike other scenes which lack these specific water and urban features." + ], + "candy store": [ + "Candy stores have bright colors, sweet displays, and unique packaging, setting them apart from other retail scenes.", + "Look for bright colors, displays of sweets, and signs indicating a place selling candies.", + "A candy store scene has bright colors and sweet displays, unlike other scenes with natural or neutral elements.", + "Candy stores uniquely display colorful, sweet treats and confectionery items prominently in their displays." + ], + "canyon": [ + "Look for deep valleys with steep rock walls and a narrow opening between them.", + "Canyon scenes have deep valleys and rock formations, unlike flat landscapes or urban areas with buildings.", + "A canyon scene is a deep, narrow valley with steep sides, often with a river at the bottom.", + "Canyons have deep, narrow valleys with steep walls and rugged terrain, often with distinct rock formations and natural erosion." + ], + "backseat car interior": [ + "A backseat car interior has seats, windows, and dashboard, often seen in vehicles or parking areas.", + "A backseat car interior has seats and windows, unlike outdoor or living room scenes with furniture and natural elements.", + "Look for a car interior with a visible backseat, often showing seats, windows, and sometimes passengers.", + "A backseat car interior has visible headrests and seatbelts not found in other scenes." + ], + "frontseat car interior": [ + "A frontseat car interior has dashboard and steering wheel, unlike outdoor or other indoor scenes.", + "Look for a driver's seat, steering wheel, dashboard, and windows inside a vehicle.", + "The front seat car interior has distinct dashboard, steering wheel, and gear shift features not found in other scenes.", + "The steering wheel is the unique visual cue in a frontseat car interior scene." + ], + "carrousel": [ + "Look for a rotating platform with seats and a central pole, often with decorative elements.", + "A carrousel scene has a rotating ride with seats, unlike other scenes that lack this specific structure.", + "A carrousel scene features a rotating merry-go-round with seats, often in a park or fair setting.", + "A carrousel scene uniquely features a rotating, circular ride with seats or figures around a central axis." + ], + "indoor casino": [ + "Indoor casinos have bright lights, gambling tables, slot machines, and crowds, distinguishing them from other scenes.", + "Indoor casinos have bright lights, gambling tables, and crowds, unlike most other indoor scenes.", + "Look for bright lights, gambling tables, slot machines, and a crowded atmosphere with a specific decor.", + "The presence of gambling tables and slot machines is unique to indoor casino scenes." + ], + "castle": [ + "Castles have tall, fortified structures with towers and battlements, unlike other buildings or natural scenes.", + "Castles have tall, stone structures with towers and battlements, unlike other scenes which lack these distinctive features.", + "Look for tall structures with towers, battlements, and stone walls, often surrounded by water or moat.", + "Castles have tall towers, stone walls, and often a moat, distinguishing them from other buildings and structures." + ], + "catacomb": [ + "Look for underground chambers with arched ceilings, stone walls, and rows of tombs or niches.", + "Catacomb scenes are recognized by dark, underground environments with stone structures and ancient, often religious, carvings.", + "A catacomb scene is an underground, ancient, and often eerie space with stone walls and passageways.", + "Catacomb scenes have dark, underground, stone-lined environments, unlike other scenes which vary in light and surface materials." + ], + "indoor cathedral": [ + "Indoor cathedrals have tall ceilings and religious decor, unlike other scenes which vary in size and design.", + "Indoor cathedrals have tall ceilings, stained glass, and religious decor, distinguishing them from other indoor scenes.", + "Look for large, tall structures with stained glass windows and religious decorations inside a spacious building.", + "The towering, vaulted ceilings with intricate stone or wooden arches are unique to indoor cathedral scenes." + ], + "outdoor cathedral": [ + "Outdoor cathedrals have large religious buildings with tall structures, unlike other scenes which lack such prominent architecture.", + "Look for large stone buildings with tall spires and stained glass windows in open outdoor settings.", + "Outdoor cathedrals have tall, structured buildings with pointed arches and large windows, often surrounded by open spaces.", + "A tall, pointed structure with a cross on top is unique to outdoor cathedral scenes." + ], + "indoor cavern": [ + "Indoor cavern scenes have rough rock textures and dim lighting, unlike other scenes with smoother surfaces and brighter light.", + "An indoor cavern scene is a dark, rocky underground space with unique formations and limited natural light.", + "Indoor cavern scenes have rough rock textures, dim lighting, and enclosed spaces with unique geological formations.", + "Large, irregular rock formations are unique to indoor cavern scenes compared to other types of scenes." + ], + "cemetery": [ + "A cemetery scene is a quiet outdoor area with graves, monuments, and often trees or grass.", + "Look for tombstones, graves, and a somber atmosphere in an open area with grass or pathways.", + "Cemetery scenes have distinct features like tombstones, graves, and a somber atmosphere compared to other outdoor scenes.", + "Graves and tombstones are the unique visual cues found in cemetery scenes." + ], + "chalet": [ + "A chalet scene has a wooden cabin with a sloped roof, often in snowy or mountainous areas.", + "A chalet scene has wooden structures, sloped roofs, and is often set in snowy or mountainous areas.", + "A chalet scene has wooden cabins in snowy mountains, unlike other scenes with different buildings or environments.", + "A chalet scene uniquely features a wooden, sloped-roof house in a mountainous or snowy landscape." + ], + "cheese factory": [ + "A cheese factory scene has distinct features like machinery, large vats, and dairy products for recognition.", + "Look for large vats, machinery, and workers processing milk or cheese in a structured industrial setting.", + "A cheese factory scene has industrial equipment and dairy products, unlike natural or residential scenes.", + "Large vats or tanks filled with cheese curds are unique to cheese factory scenes." + ], + "chemistry lab": [ + "A chemistry lab has lab equipment and chemicals, unlike other scenes which lack these specific items.", + "Look for lab equipment, chemical bottles, and white coats to distinguish a chemistry lab from other scenes.", + "A chemistry lab has distinct lab equipment, chemicals, and safety gear not found in other scenes.", + "A chemistry lab scene features lab equipment, chemicals, and experiments, distinct from other indoor or outdoor settings." + ], + "indoor chicken coop": [ + "An indoor chicken coop scene is a small, enclosed space with chickens, feeders, and nesting areas.", + "Look for enclosed spaces with nesting boxes, feeders, and chickens, often with wood or wire structures.", + "An indoor chicken coop has distinct features like wooden structures, nesting boxes, and chickens, unlike other scenes.", + "An indoor chicken coop has wooden structures and chickens, unlike other scenes which lack these specific elements." + ], + "outdoor chicken coop": [ + "Outdoor chicken coops have distinct features like wooden structures, nesting boxes, and visible chickens, setting them apart from other scenes.", + "Look for wooden structures with nesting boxes and feeding areas in natural outdoor settings.", + "An outdoor chicken coop scene has visible chicken coops and often chickens, unlike other scenes.", + "An outdoor chicken coop scene shows a small structure with chickens, often in a rural or farm setting." + ], + "childs room": [ + "A child's room has toys and colorful decorations not found in other types of rooms.", + "Look for toys, colorful decor, and small furniture to spot a child's room among other scenes.", + "A child's room is recognizable by toys, colorful decor, and smaller furniture compared to other rooms.", + "A child's room has more toys, bright colors, and playful decorations than other types of scenes." + ], + "indoor church": [ + "Indoor church scenes have religious decor and architecture, unlike other scenes which vary widely in purpose and design.", + "Indoor church scenes have tall ceilings, religious decorations, and pews, distinguishing them from other indoor spaces.", + "Look for stained glass windows, pews, and religious symbols inside a large, often ornate building.", + "Stained glass windows are a unique visual cue found in indoor church scenes." + ], + "outdoor church": [ + "Outdoor church scenes have distinct religious structures and architecture, unlike other scenes with different buildings or natural settings.", + "An outdoor church scene is a religious building with architecture, often surrounded by nature or a small yard.", + "Look for a building with a steeple, cross, or religious symbols in a natural outdoor setting.", + "Outdoor church scenes have distinct features like steeples, crosses, and religious architecture visible against natural backgrounds." + ], + "classroom": [ + "Look for desks, chairs, whiteboards, and educational materials arranged in a structured, indoor setting.", + "Classrooms have distinct features like desks, chairs, whiteboards, and students, which set them apart from other scenes.", + "A classroom scene is a room with desks, chairs, and educational materials, often filled with students.", + "Classrooms have desks and chairs, while other scenes have different furniture or natural elements." + ], + "clean room": [ + "Look for bright, organized spaces with minimal clutter and visible cleaning tools.", + "A clean room has distinct, highly organized surfaces with minimal clutter and uniform, sterile appearance.", + "A clean room has minimal clutter and bright, uniform surfaces, unlike other scenes that are often more varied and cluttered.", + "A clean room scene is tidy, organized, and free of clutter, with visible furniture and clear surfaces." + ], + "cliff": [ + "Cliff scenes have steep rock formations and rugged terrain, unlike flat landscapes or urban environments.", + "Cliffs have steep, vertical rock faces that rise sharply from the ground.", + "Look for steep rock faces with a sharp drop-off, often near water or surrounded by rugged terrain.", + "Cliff scenes have steep rock formations near water or edges, distinguishing them from other natural or urban landscapes." + ], + "indoor cloister": [ + "A indoor cloister scene has arches and columns, unlike other scenes which lack these architectural features.", + "Look for arched walkways, religious decor, and enclosed spaces typical of monastic or church courtyards.", + "An indoor cloister scene is a covered walkway with arches and columns, often found in religious buildings.", + "A indoor cloister scene has distinct arches, columns, and religious or monastic architectural elements." + ], + "closet": [ + "A closet scene is recognized by its enclosed space, hanging clothes, and storage shelves or rods.", + "A closet scene is a small, enclosed space with shelves, hangers, and clothes, often inside a room.", + "Closets are uniquely identified by the presence of hanging clothes and storage shelves or racks.", + "Look for enclosed spaces with hanging clothes, shelves, or doors, often in residential or storage settings." + ], + "clothing store": [ + "Look for displays of clothes, mannequins, and shopping carts in a well-lit indoor setting.", + "Clothing stores have racks and mannequins, while other scenes lack these specific retail elements.", + "Clothing stores have racks of clothes, mannequins, mirrors, and bright lighting, unlike other retail or indoor scenes.", + "Clothing stores have mannequins or clothing racks displaying apparel, which is not found in other scenes." + ], + "coast": [ + "Coast scenes have water and sandy shores, while other scenes lack these distinct natural elements.", + "Look for sandy beaches, water bodies, and distant horizons with natural elements like rocks or cliffs.", + "Coast scenes have distinct features like water bodies, sandy shores, and distant horizons with natural elements.", + "A coast scene is a shoreline area with water, sand, and often rocks or cliffs nearby." + ], + "cockpit": [ + "Look for a specific layout with controls, screens, and seating arranged for flying an aircraft.", + "A cockpit scene is an enclosed area with controls, screens, and seating for pilots in an aircraft.", + "A cockpit scene has distinct features like control panels, steering wheels, and instrument displays not found in other scenes.", + "A cockpit scene has controls and instruments, while other scenes show natural or urban environments without them." + ], + "coffee shop": [ + "Look for indoor spaces with tables, chairs, and coffee-related items like cups or machines.", + "Coffee shops have distinct features like tables, chairs, coffee machines, and indoor settings with a cozy atmosphere.", + "A coffee shop scene has indoor seating and drink counters, unlike outdoor or home scenes.", + "A coffee shop scene is a cozy indoor setting with tables, chairs, and coffee-making equipment." + ], + "computer room": [ + "A computer room has many machines and wires, unlike other scenes that show people or nature.", + "A computer room has multiple visible computers and networking equipment.", + "A computer room has many electronic devices, wires, and monitors, unlike most other indoor scenes.", + "Look for multiple computers, servers, and organized cables in a room with a technical or industrial feel." + ], + "conference center": [ + "Look for large, modern buildings with meeting rooms, halls, and often outdoor spaces for events.", + "Conference centers have large, open spaces with meeting rooms, tables, chairs, and often glass walls or windows.", + "A conference center scene is a large indoor space with meeting rooms, tables, chairs, and often a stage.", + "A conference center has large rooms with seating and tables, unlike most other scenes." + ], + "conference room": [ + "Look for a room with tables, chairs, and often a projector or screen for presentations.", + "A conference room is a formal space with tables, chairs, and often screens for presentations.", + "Conference rooms have distinct features like tables, chairs, whiteboards, and often a projector screen.", + "Conference rooms have tables and chairs for meetings, unlike other scenes which lack these specific furniture arrangements." + ], + "construction site": [ + "Look for large equipment, building materials, and incomplete structures in a messy, outdoor environment.", + "Construction sites have visible building materials and equipment, unlike other scenes which lack these industrial elements.", + "Construction sites have large machinery, unfinished structures, and piles of materials, unlike typical outdoor or indoor scenes.", + "Heavy machinery and building materials are unique to construction sites among all scene types." + ], + "control room": [ + "Control rooms have distinct features like multiple screens, monitoring equipment, and organized workstations.", + "A control room scene is a room with monitors, panels, and equipment for monitoring and managing operations.", + "A control room has monitors and equipment, unlike other scenes which lack these specific technological elements.", + "Control rooms have multiple screens and monitors displaying information, which is not common in other scene types." + ], + "outdoor control tower": [ + "Outdoor control towers have tall structures and airport surroundings, unlike other scenes with different features and settings.", + "Look for tall structures with observation decks and antennas, often near airports or industrial sites.", + "An outdoor control tower scene is a tall structure with windows, often near runways or industrial areas.", + "A tall, freestanding structure with a control room at the top is unique to outdoor control towers." + ], + "corn field": [ + "Look for tall, green rows of plants with visible ears and a vast, open agricultural setting.", + "The presence of tall, yellow-green rows of grain crops is unique to a corn field scene.", + "A corn field has tall, green stalks in rows, unlike other scenes with different plants or structures.", + "Corn fields have tall, uniform green stalks with yellow ears, often in rural, open landscapes." + ], + "corral": [ + "A corral scene is recognized by its fenced-in area with wooden posts and often contains livestock like horses.", + "A corral scene has fenced-in animal enclosures, unlike other scenes which lack this specific structure.", + "A corral scene is an outdoor area with wooden or stone enclosures, often for livestock.", + "A corral scene has wooden fences and enclosed areas for animals, often with a rustic or rural setting." + ], + "corridor": [ + "Look for long, narrow spaces with walls on both sides and often a straight path forward.", + "Corridors have long, straight paths with walls on both sides, often featuring doors or windows.", + "A corridor scene is a long, narrow passage with walls on both sides, often leading to other rooms.", + "A corridor scene has a long, narrow pathway with walls on both sides, unlike other open or varied spaces." + ], + "cottage garden": [ + "Cottage gardens have colorful flowers, winding paths, and a cozy, informal layout with natural elements.", + "A cottage garden scene has colorful flowers, winding paths, and a cozy, informal layout.", + "A cottage garden scene has a cluttered, colorful, and wild floral arrangement unlike other neat or structured scenes.", + "A cottage garden has a unique mix of colorful flowers, winding paths, and rustic structures." + ], + "courthouse": [ + "Courthouses have formal architecture and legal symbols, unlike other scenes which vary widely in structure and purpose.", + "Courthouses have distinct features like formal architecture, large steps, and official signage, setting them apart from other scenes.", + "Look for formal architecture, large columns, and a prominent central building with a courthouse sign.", + "A courthouse scene uniquely features a formal building with a prominent entrance and often a dome or columns." + ], + "courtroom": [ + "A courtroom scene has formal furniture and legal elements, unlike casual or natural settings.", + "A courtroom scene is a formal indoor setting with judges, lawyers, and defendants in a structured legal environment.", + "A courtroom scene has distinct features like judge's bench, witness stand, and legal seating arrangement.", + "Look for formal seating, judge's bench, witness stand, and legal decor typical of judicial settings." + ], + "courtyard": [ + "Courtyards have open, paved or grassy areas surrounded by walls or buildings on multiple sides.", + "Look for open spaces surrounded by walls or buildings with paths or patios.", + "Courtyard scenes have open spaces with patios or gardens, unlike enclosed or natural outdoor environments.", + "Courtyards have open spaces with walkways, often surrounded by walls or buildings, and may include plants or fountains." + ], + "exterior covered bridge": [ + "Look for wooden structures with a roof covering the walkway, typically over water or a valley.", + "Exterior covered bridges have unique wooden structures with roofs, unlike other scenes which lack this specific feature.", + "A covered bridge has a unique roof structure that completely encloses its wooden or stone frame.", + "Covered bridges have unique wooden structures with roofs, often over water, distinguishing them from other outdoor scenes." + ], + "creek": [ + "A creek scene has flowing water and banks, unlike other scenes which may lack these features.", + "A creek scene is a small stream of water surrounded by natural elements like rocks and plants.", + "Look for flowing water with banks, rocks, and vegetation, often in a natural outdoor setting.", + "A creek scene has flowing water bordered by rocks or sand, unlike other natural or urban landscapes." + ], + "crevasse": [ + "A crevasse scene features a large crack or fissure in ice or rock, often in a mountainous area.", + "A crevasse scene has deep cracks in ice or rock, unlike other scenes which lack such distinct fissures.", + "A crevasse scene is recognized by deep cracks in ice or snow, often in mountainous or polar regions.", + "Look for deep, dark cracks in ice or rock, often with a contrasting background." + ], + "crosswalk": [ + "A crosswalk scene is a street area with marked lines for pedestrians to safely cross.", + "Look for distinct white or yellow stripes on the ground, often with road markings or traffic signs.", + "Crosswalk scenes have distinct white stripes on pavement, unlike other scenes which lack this specific road marking.", + "Crosswalks have distinct white or yellow stripes painted on the road for pedestrians to walk across safely." + ], + "office cubicle": [ + "Office cubicles have distinct partition walls separating individual workspaces, which are not found in other scenes.", + "An office cubicle scene has partitions and workstations, unlike open spaces or natural environments.", + "Office cubicles have distinct features like desks, computers, and partitions, setting them apart from other scenes.", + "Look for small, partitioned workspaces with desks, computers, and walls separating individual work areas." + ], + "dam": [ + "Look for large water bodies with concrete structures holding back water.", + "Dams are recognized by large water bodies, man-made structures, and often surrounding natural or industrial landscapes.", + "A dam scene has large, man-made structures near water, unlike natural or urban scenes with different features.", + "A dam scene features a large water barrier structure, often with water flowing or a surrounding landscape." + ], + "delicatessen": [ + "A delicatessen scene has counters with food, deli meats, cheeses, and often a butcher or cashier.", + "A delicatessen scene is recognized by its display of gourmet foods, deli meats, cheeses, and specialty items.", + "A delicatessen scene has food displays and counters, unlike other scenes with different objects or settings.", + "A delicatessen scene features food displays, counters, and shelves with various meats, cheeses, and packaged goods." + ], + "dentists office": [ + "A dentist office has distinct dental equipment, medical tools, and a clean, clinical environment.", + "A dentist office has medical tools, dental chairs, and a clean, clinical setting with specific equipment.", + "A dentist office has medical equipment, chairs, tools, and a clean environment for patient care.", + "A dentist office has medical equipment and a clinical look, unlike other scenes with different settings and objects." + ], + "sand desert": [ + "Sand deserts have vast, dry, sandy landscapes, unlike other scenes with more vegetation, water, or buildings.", + "Look for vast, flat areas with golden or tan sand and minimal vegetation or water.", + "Sand deserts have vast, flat areas of golden sand with minimal vegetation and sparse dunes.", + "A sand desert scene is a vast, dry area covered with sand dunes and little vegetation." + ], + "vegetation desert": [ + "Look for sparse, dry plants with little green and a barren, rocky or sandy ground.", + "Vegetation deserts have sparse, hardy plants, sandy soil, and arid conditions unlike lush forests or wetlands.", + "Vegetation deserts have sparse plants and dry land, unlike lush forests or wetlands with abundant greenery and water.", + "A vegetation desert scene has sparse plants and dry land in a barren, arid environment." + ], + "indoor diner": [ + "Look for a room with tables, chairs, food, and a counter inside a building.", + "Indoor diner scenes have visible tables, chairs, and food, unlike outdoor or commercial scenes with different layouts.", + "Indoor diner scenes have distinct features like tables, chairs, food, and a counter in a cozy, often dimly lit setting.", + "A visible counter with stools is unique to indoor diner scenes." + ], + "outdoor diner": [ + "Look for outdoor seating, food, and a casual setting with visible building structures.", + "Outdoor diners have visible food service counters with seating areas under a covered roof.", + "Outdoor diners have distinct features like outdoor seating, food displays, and specific architectural elements like awnings.", + "Outdoor diners have visible food and tables outside, while other scenes lack these specific dining elements." + ], + "home dinette": [ + "Look for small dining areas with tables, chairs, and often a window or wall nearby.", + "A home dinette has a small, casual dining table with chairs, often in a compact space.", + "A home dinette is a small dining area with a table and chairs, often in a kitchen or living space.", + "A home dinette has small tables, chairs, and often a casual setting, unlike larger dining rooms." + ], + "vehicle dinette": [ + "A vehicle dinette scene is a small dining area inside a vehicle, often in an RV or camper.", + "A vehicle dinette has a small, fold-out table and seating inside a vehicle.", + "Look for a small dining area inside a vehicle, often with fold-down tables and limited space.", + "A vehicle dinette scene has movable furniture inside a vehicle, unlike fixed furniture in other indoor scenes." + ], + "dining car": [ + "A dining car scene has tables and food, unlike other scenes which lack these specific elements.", + "A dining car scene is a restaurant inside a train with tables, chairs, and food.", + "Look for a train car with tables, chairs, and food service items.", + "A dining car scene has distinct features like tables, chairs, food, and a train setting." + ], + "dining room": [ + "Look for a room with a table, chairs, and often a dining setting like plates or food.", + "A dining room scene is a room with a table, chairs, and often food, meant for eating.", + "A dining room has tables and chairs for eating, unlike other rooms that serve different functions.", + "A dining room has a table with chairs, often near a window, and includes dining-related items." + ], + "discotheque": [ + "A discotheque scene is a vibrant, crowded indoor space with flashing lights and music playing.", + "A discotheque scene is identified by bright lights, crowded dance floor, and loud music equipment.", + "A discotheque scene has bright lights and crowded dance floors unlike other scenes with natural lighting and open spaces.", + "A discotheque scene is recognizable by bright, colorful lights, crowded dance floors, and loud music." + ], + "dock": [ + "Look for structures with boats, water, and platforms where people load or unload items.", + "A dock scene has water, boats, and industrial elements, unlike natural or urban scenes without water or boats.", + "A dock scene uniquely features a wooden or metal platform extending over water for boats.", + "A dock scene has distinct features like water, boats, and wooden planks, which set it apart from other scenes." + ], + "outdoor doorway": [ + "Look for elements like door frames, steps, and outdoor surroundings near building entries.", + "Outdoor doorways have distinct features like door frames, thresholds, and surrounding outdoor elements like walls or steps.", + "An outdoor doorway scene has a visible transition between indoor and outdoor environments.", + "An outdoor doorway scene is a transition space between inside and outside with a visible entryway." + ], + "dorm room": [ + "A dorm room is a small bedroom with basic furniture, usually in a college or university setting.", + "A dorm room has small, personal furniture and study items, unlike larger, more public spaces.", + "A dorm room has distinct features like bunk beds, small desks, and shared living spaces.", + "Look for small rooms with beds, desks, and personal items, often in a simple, functional layout." + ], + "driveway": [ + "A driveway scene is a paved path leading to a house or garage, often with vehicles nearby.", + "A driveway scene has a paved path for vehicles, unlike other scenes which may lack this feature.", + "Look for paved pathways leading to buildings or roads, often with vehicles or tools nearby.", + "A driveway scene is recognized by a paved path leading to a house or garage with vehicles nearby." + ], + "outdoor driving range": [ + "Outdoor driving ranges have open grassy areas with golf balls, clubs, and hitting nets for practice.", + "Outdoor driving ranges have open grassy areas with golf balls and clubs, unlike other scenes.", + "Look for wide open spaces with artificial turf, golf balls, and distant targets, often with a driving mat.", + "An outdoor driving range has grass, targets, and golf balls, often with people hitting from a designated area." + ], + "drugstore": [ + "Drugstores have distinct features like medicine aisles, checkout counters, and health products, different from other retail or indoor scenes.", + "A drugstore scene is a retail space with aisles of medicine, cosmetics, and everyday items.", + "Look for bright lighting, aisles with shelves, and displays of medicine and personal care products.", + "Drugstore scenes have aisles with shelves of products, unlike other scenes that show different settings or objects." + ], + "electrical substation": [ + "An electrical substation has distinct high-voltage equipment and power lines, unlike most other scenes.", + "Electrical substations have visible transformers and power lines, unlike most scenes which lack these electrical infrastructure elements.", + "An electrical substation scene has large metal structures, wires, and transformers for power distribution.", + "Look for large transformers, high-voltage equipment, and extensive wiring structures in an outdoor or industrial setting." + ], + "door elevator": [ + "A door elevator scene has vertical doors and a confined space, unlike open or outdoor scenes.", + "A door elevator scene is a small, enclosed space with doors and buttons inside a building.", + "Look for a vertical metal box with buttons inside a building, often near stairs or hallways.", + "A door elevator scene is recognized by its vertical shaft, control panel, and enclosed space for vertical transport." + ], + "interior elevator": [ + "Look for enclosed spaces with walls, doors, and often a control panel inside a building.", + "An interior elevator scene is a small, enclosed space with walls, a door, and often buttons.", + "Interior elevators have metal walls and buttons, unlike other scenes which show varied outdoor or room settings.", + "Interior elevators have distinct metal walls, buttons, doors, and often a small space with a specific lighting setup." + ], + "elevator shaft": [ + "Look for a tall, narrow opening with visible floors and often a door, usually in a building.", + "An elevator shaft has vertical walls and a lift, unlike other scenes which lack these specific features.", + "An elevator shaft scene is a narrow vertical space with walls and a lift mechanism inside.", + "An elevator shaft has a distinct vertical opening with visible cables and machinery." + ], + "engine room": [ + "An engine room has large machinery, pipes, and controls, unlike most other indoor or outdoor scenes.", + "Look for large machinery, pipes, and industrial equipment in a dimly lit, enclosed space.", + "An engine room has machinery and pipes, unlike other scenes which may show nature or interiors without heavy equipment.", + "An engine room scene is a mechanical space with machinery, pipes, and equipment for powering a vehicle or ship." + ], + "indoor escalator": [ + "Indoor escalators have moving stairs and railings, unlike static scenes with stairs or other structures.", + "An indoor escalator scene has distinct moving stairs, often with people, in a controlled indoor environment.", + "Look for a long, moving staircase inside a building with a distinct upward or downward flow.", + "A continuous moving staircase with handrails is the unique visual cue for an indoor escalator scene." + ], + "excavation": [ + "Excavation scenes have large machinery and exposed earth, unlike other scenes which lack these features.", + "Excavation scenes have large machinery, earth-moving activity, and exposed ground, distinguishing them from other outdoor scenes.", + "Large machinery digging or moving earth is unique to excavation scenes.", + "An excavation scene is a construction site with digging equipment and workers uncovering or building something." + ], + "indoor factory": [ + "Large, complex machinery and industrial equipment are unique to indoor factory scenes.", + "Indoor factory scenes have distinct features like machinery, pipes, and industrial equipment in a structured environment.", + "Indoor factory scenes have structured layouts with machinery, while other scenes vary widely in layout and content.", + "Look for large, open spaces with machinery, pipes, and industrial equipment inside a building." + ], + "fairway": [ + "Look for a large, open grassy area with a golf ball or tee, often with a flag in the distance.", + "A fairway scene is a golf course area with a smooth, grassy surface for playing.", + "A fairway scene has a long, open grassy area for golf, unlike other scenes with varied landscapes.", + "A fairway scene uniquely features a long, manicured grassy area with golf balls or clubs." + ], + "fastfood restaurant": [ + "Look for bright lighting, food displays, and counter service areas typical of fast-food establishments.", + "Fastfood restaurants have distinct features like counters, food displays, and indoor seating areas compared to other scenes.", + "Fastfood restaurants have bright lighting, food displays, and counter service, unlike other scenes with varied settings and activities.", + "A fastfood restaurant scene is a busy indoor setting with food counters, tables, and customers." + ], + "cultivated field": [ + "Cultivated fields have organized rows of crops, which are not present in other natural or urban scenes.", + "Cultivated fields are characterized by organized rows of crops, open land, and often a rural or agricultural setting.", + "Cultivated fields have organized rows of crops, unlike natural or urban scenes with varied or structured elements.", + "A cultivated field scene is an open area with rows of crops, often seen in rural settings." + ], + "wild field": [ + "Wild field scenes have open, natural landscapes with scattered vegetation, few structures, and a sense of untamed space.", + "Wild field scenes have scattered, untamed plants and grasses without clear human-made structures or organization.", + "Look for natural, open areas with grass, plants, and lack of man-made structures.", + "A wild field scene is a natural, open area with grass, plants, and no man-made structures." + ], + "fire escape": [ + "A fire escape scene has outdoor stairs and safety features, unlike indoor or natural settings.", + "Fire escape scenes have distinct features like outdoor stairs, railings, and emergency exits, often near buildings.", + "Look for outdoor structures with stairs, railings, and platforms, often near buildings, designed for emergency exits.", + "A fire escape scene shows outdoor stairs or ladders attached to buildings for emergency exits." + ], + "fire station": [ + "Look for large buildings with fire trucks, ladders, and emergency equipment near the entrance.", + "Fire stations have distinct red structures, fire trucks, and emergency equipment, setting them apart from other scenes.", + "A fire truck is the unique visual cue found in fire station scenes compared to other scenes.", + "A fire station scene has large red buildings with vehicles, unlike other scenes which vary widely in appearance." + ], + "indoor firing range": [ + "An indoor firing range has distinct gun ranges and safety gear, unlike most other scenes.", + "Look for a room with firing lanes, targets, and safety equipment like ear protection.", + "An indoor firing range has walls with bullet traps, targets, and people shooting guns in a controlled space.", + "Indoor firing ranges have distinct features like bullet traps, shooting lanes, and safety signs, setting them apart from other scenes." + ], + "fishpond": [ + "A fishpond scene has water with fish, while other scenes lack this specific aquatic feature.", + "Look for water with visible fish, plants around the edges, and a calm, natural setting.", + "A fishpond scene is a body of water with fish, often surrounded by greenery and rocks.", + "A fishpond scene has clear water, visible fish, and often includes surrounding greenery or rocks." + ], + "indoor florist shop": [ + "Look for bright lighting, flower displays, and indoor settings with counters and possibly customers.", + "Indoor florist shops have bright, colorful displays of flowers, unlike other scenes with different objects and settings.", + "An indoor florist shop has flowers, plants, and decorative items displayed inside a building.", + "An indoor florist shop has bright flowers, green plants, and often a counter with arrangements." + ], + "food court": [ + "Look for multiple food stalls, seating areas, and a busy, indoor environment with diverse food options.", + "A food court scene is an indoor area with multiple food stalls and seating for customers.", + "A food court scene has many food stalls and tables, unlike other scenes that lack these features.", + "A food court scene has distinct features like food stalls, seating areas, and a busy, indoor environment." + ], + "broadleaf forest": [ + "Broadleaf forests are recognized by dense, deciduous trees with large leaves and a lush, green canopy.", + "Broadleaf forests have dense green leaves, unlike other scenes with different vegetation or no trees.", + "Look for dense trees with large leaves and a mix of green colors in the image.", + "Broadleaf forests have distinct large, flat leaves visible on trees, unlike other forest types." + ], + "needleleaf forest": [ + "Look for tall, slender trees with pointed leaves, often in a dense, dark green canopy.", + "Needleleaf forests are recognized by their tall, slender trees with needle-like leaves and sparse ground cover.", + "Needleleaf forests have distinct coniferous trees with needle-like leaves, unlike broadleaf or mixed forests.", + "Needleleaf forests have tall, thin trees with needle-like leaves, unlike other scenes with different vegetation or structures." + ], + "forest path": [ + "A forest path scene is a narrow trail through trees with natural surroundings on both sides.", + "A forest path has trees and ground, unlike open fields or urban areas with buildings and roads.", + "A forest path has distinct winding trails, trees on both sides, and natural ground textures.", + "A forest path scene has a winding trail bordered by trees and natural vegetation." + ], + "forest road": [ + "A forest road scene is a path through trees with natural surroundings on both sides.", + "Look for winding paths bordered by trees and vegetation in a natural outdoor setting.", + "A forest road scene has trees and a path, unlike urban or desert scenes with buildings or sand.", + "A forest road scene has a winding path surrounded by dense trees and natural vegetation." + ], + "formal garden": [ + "Formal gardens have structured layouts, symmetrical designs, and manicured plants, unlike natural or informal garden scenes.", + "Formal gardens have structured layouts with geometric shapes, while other scenes often lack this organized design.", + "Look for neatly arranged plants, pathways, and structures with a symmetrical or geometric design.", + "Symmetrical layouts with manicured hedges and geometric plant arrangements are unique to formal garden scenes." + ], + "fountain": [ + "Fountain scenes have water features and often people, unlike other scenes which lack these elements.", + "Fountain scenes have distinct water jets, decorative structures, and often people interacting near the water.", + "Look for water jets, decorative structures, and often people or animals near the water feature.", + "A fountain scene features water jets, often in a park or plaza, with people or decorative elements around it." + ], + "galley": [ + "A galley scene is recognized by its kitchen appliances, cooking tools, and food preparation areas.", + "A galley scene is a kitchen area with cooking appliances and food preparation surfaces.", + "Look for long, narrow spaces with parallel lines and often a kitchen setup or cooking area.", + "A galley scene shows a kitchen or cooking area, unlike other scenes that depict different environments." + ], + "game room": [ + "Look for cues like game tables, arcade machines, or sports equipment in a room setting.", + "A game room has distinct features like game tables, arcade machines, and colorful decorations not found in other rooms.", + "A game room has unique visual cues like game tables, arcade machines, and various recreational equipment.", + "A game room has more colorful decorations and recreational equipment than other typical indoor scenes." + ], + "indoor garage": [ + "Indoor garages have concrete floors and parked vehicles, unlike outdoor scenes with natural elements and open spaces.", + "Look for enclosed spaces with concrete floors, vehicles, and overhead lighting typical of parking areas.", + "An indoor garage scene is a covered space with vehicles, tools, and often concrete floors.", + "Indoor garages have distinct features like parked vehicles, concrete floors, and overhead lighting, different from other scenes." + ], + "garbage dump": [ + "Look for scattered waste, discarded items, and an overall messy, neglected environment.", + "A garbage dump scene is a messy area filled with waste and discarded items.", + "A garbage dump scene has scattered waste and debris, unlike other scenes that show organized or natural elements.", + "A garbage dump scene has scattered waste, large piles, and often industrial equipment in an open area." + ], + "gas station": [ + "Gas stations have fuel pumps and signs, while other scenes lack these specific commercial and service-related features.", + "Look for fuel pumps, convenience stores, and signs with brand logos near roads.", + "A gas station scene has visible fuel pumps, which are not found in other types of scenes.", + "Gas stations have distinct fuel pumps, signage, and often parking areas, setting them apart from other scenes." + ], + "exterior gazebo": [ + "An exterior gazebo scene is a small, open-sided structure often found in gardens or parks.", + "Look for a freestanding, roofed structure with open sides in an outdoor setting.", + "A gazebo scene has a distinct open-roof structure with pillars, often in gardens or parks.", + "An exterior gazebo scene has a distinctive roofed structure, unlike other scenes which lack this specific feature." + ], + "indoor general store": [ + "Look for shelves with various items, indoor lighting, and a commercial setting without specific product focus.", + "An indoor general store has shelves with diverse items, a checkout counter, and a welcoming retail atmosphere.", + "Indoor general stores have shelves with diverse items, unlike other scenes that lack this organized retail setup.", + "An indoor general store scene has shelves filled with various goods in a retail setting." + ], + "outdoor general store": [ + "An outdoor general store scene has a rustic, commercial look, unlike natural or residential scenes.", + "Look for a small shop with basic goods outside, often with simple signs and a rustic feel.", + "An outdoor general store scene is a rustic shop with basic goods and a simple, rural setting.", + "Outdoor general stores have visible merchandise, rustic structures, and a rural setting with clear signage." + ], + "gift shop": [ + "A gift shop scene has more merchandise displays and tourist items than other types of scenes.", + "A gift shop scene is a retail space filled with various items for sale as gifts.", + "A gift shop scene can be identified by displays of souvenirs, trinkets, and tourist-oriented merchandise.", + "Gift shops have distinct displays of wrapped presents, cards, and festive decorations not seen in other scenes." + ], + "golf course": [ + "Golf courses have manicured fairways, sand bunkers, and water hazards, distinct from other outdoor recreational areas.", + "Look for manicured fairways, greens, sand traps, and distant clubhouses with open green spaces.", + "A golf course has wide open green spaces with fairways and greens, unlike other scenes with varied structures.", + "A golf course scene is a large open area with manicured grass, fairways, and greens for playing golf." + ], + "indoor greenhouse": [ + "Indoor greenhouses have visible artificial lighting and controlled climate systems not found in other scenes.", + "Indoor greenhouses have distinct features like potted plants, grow lights, and controlled environments not seen in other scenes.", + "Look for bright, artificial lighting, plants, and glass structures inside a building.", + "Indoor greenhouses have plants inside, while other scenes show outdoor nature, urban areas, or different indoor settings." + ], + "outdoor greenhouse": [ + "An outdoor greenhouse scene is a glass structure with plants, often in a garden or farm setting.", + "Glass walls and roof structures enclosing plants are unique to outdoor greenhouse scenes.", + "Outdoor greenhouses have large glass structures with plants inside, set against natural backgrounds like gardens or fields.", + "Look for large glass structures with plants inside, often showing natural light and controlled indoor environments." + ], + "indoor gymnasium": [ + "Indoor gymnasiums have large open spaces with sports equipment, unlike other scenes which vary widely in objects and settings.", + "An indoor gymnasium has large open spaces, sports equipment, and often a wooden or polished floor.", + "An indoor gymnasium has sports equipment, a large open space, and often a wooden or polished floor.", + "Look for large open spaces with sports equipment, often featuring wooden floors and high ceilings." + ], + "indoor hangar": [ + "Look for large, open indoor spaces with high ceilings and often aircraft or vehicles inside.", + "A large, open indoor space with visible structural supports and often aircraft or vehicles.", + "Indoor hangars have large open spaces, metal structures, and often contain aircraft or vehicles.", + "Indoor hangars have large open spaces with metal structures, unlike other scenes that vary in size and materials." + ], + "outdoor hangar": [ + "Look for large, open structures with metal or concrete walls and a roof, often near airports or industrial areas.", + "Outdoor hangars have large, open structures with planes, while other scenes lack these specific industrial and aviation features.", + "An outdoor hangar scene is a large, open structure used for storing aircraft, often with vehicles nearby.", + "Outdoor hangars have large, open structures with metal frames and flat roofs, often near airports or industrial areas." + ], + "harbor": [ + "Look for large bodies of water with boats, docks, and industrial structures near the shore.", + "A harbor scene has water, boats, and docks, unlike other scenes which lack these maritime elements.", + "Harbor scenes have distinct features like water, boats, docks, and industrial structures near the waterfront.", + "Harbor scenes uniquely feature large bodies of water with ships and docks, often near urban areas." + ], + "hayfield": [ + "Look for tall, golden grass or crops, often with a rural setting and possibly farm equipment nearby.", + "A hayfield scene is a rural landscape with harvested grass or hay spread out in open fields.", + "Hayfields are characterized by tall, golden grass, rural settings, and often flat, open landscapes.", + "A hayfield scene has tall, dried grass, while other scenes have different plants or structures." + ], + "heliport": [ + "A heliport scene has landing pads and helicopters, unlike other scenes that lack these specific features.", + "A heliport scene is a small landing area for helicopters, often with markings and nearby buildings.", + "Look for small buildings with helipads, often near water or urban areas, with distinct landing zones.", + "A heliport scene is recognized by its landing pad, helicopters, and often nearby buildings or vehicles." + ], + "herb garden": [ + "A herb garden scene is a small, cultivated area with various herb plants growing together.", + "A herb garden scene has distinct features like potted plants, fresh herbs, and a natural, cultivated setting.", + "A herb garden scene is identified by visible plants, herbs, and possibly gardening tools in a natural setting.", + "A herb garden scene has green plants and herbs, unlike other scenes that may show buildings, water, or people." + ], + "highway": [ + "Highways have long roads with vehicles, while other scenes have varied features like buildings, nature, or water.", + "A highway scene is a long road with many lanes and vehicles traveling in different directions.", + "Highways have long, straight, paved roads with multiple lanes and often parallel lines.", + "Highways have long, straight roads with multiple lanes, vehicles, and distant horizons, unlike other scenes." + ], + "hill": [ + "A hill scene is a landscape with rolling or sloping land, often with vegetation and a natural setting.", + "Hills have rolling, elevated terrain with distinct slopes, unlike flat or steep landscapes.", + "Hill scenes have rolling slopes and natural vegetation, unlike flat urban or water-dominated landscapes.", + "Hill scenes have rolling slopes, green vegetation, and open landscapes, distinguishing them from flat or urban areas." + ], + "home office": [ + "Look for a room with a desk, chair, computer, and personal items, often in a residential setting.", + "A home office scene is a room with a desk, chair, and computer, used for working.", + "A home office has distinct furniture like desks and computers, often with books and papers, in a private setting.", + "A home office scene has desks and computers, unlike other scenes that show outdoor or living spaces." + ], + "hospital": [ + "A hospital scene is a clinical indoor setting with medical equipment, beds, and healthcare professionals.", + "Look for medical equipment, white walls, and signs like \"emergency\" or \"hospital\" to spot a hospital scene.", + "A hospital scene has medical equipment and sterile environments, unlike other scenes with natural or commercial elements.", + "A hospital scene has distinct medical equipment, white walls, and organized spaces for patient care and treatment." + ], + "hospital room": [ + "A hospital room has medical equipment and beds, which are not found in other types of rooms.", + "A hospital room has beds, medical equipment, and a clean, sterile environment for patient care.", + "Look for medical equipment, beds, white walls, and a clean, organized environment typical of healthcare settings.", + "Hospital rooms have distinct medical equipment, beds, and sterile white walls not seen in other scenes." + ], + "hot spring": [ + "Hot springs have distinct bubbling water, geothermal heat, and natural mineral-rich pools in outdoor settings.", + "Hot springs have visible steam or bubbling water, which is not found in other natural or man-made scenes.", + "Hot springs have warm water and steam, unlike other scenes which lack these specific thermal features.", + "Look for steamy water, natural rocky surroundings, and a warm, inviting atmosphere in the image." + ], + "outdoor hot tub": [ + "Outdoor hot tub scenes have water and seating, unlike indoor or dry outdoor scenes.", + "Look for a round or square tub filled with water, often with jets, in a garden or patio area.", + "A hot tub scene has visible water with bubbles or jets, unlike other outdoor scenes.", + "Outdoor hot tub scenes have distinct water, steam, and surrounding natural elements like plants and sky." + ], + "outdoor hotel": [ + "An outdoor hotel scene is a building with rooms, often near a pool or garden, for guests.", + "Look for open-air areas with guest accommodations, like patios or pools near buildings.", + "Outdoor hotel scenes have man-made structures and clear human presence, unlike natural or indoor scenes.", + "Outdoor hotel scenes have clear architectural structures, manicured lawns, and visible amenities like pools or pathways." + ], + "hotel room": [ + "Look for a bedroom with a bed, furniture, and often a bathroom or corridor nearby.", + "A hotel room has a bed, furniture, and decor, often seen in clean, indoor settings.", + "Hotel rooms have distinct features like beds, desks, and TVs, which set them apart from other scenes.", + "Hotel rooms have beds and furniture, while other scenes have different objects and layouts." + ], + "house": [ + "House scenes have distinct architectural structures and interiors, unlike natural or urban scenes with open spaces or buildings.", + "Look for elements like roofs, windows, doors, and walls arranged in a residential structure.", + "A house scene is recognized by distinct features like roofs, windows, and doors in a residential setting.", + "A house scene is a domestic setting with rooms, furniture, and personal items inside a building." + ], + "outdoor hunting lodge": [ + "Look for rustic wood structures, hunting gear, and natural surroundings like forests or mountains.", + "Outdoor hunting lodges have rustic wood structures, surrounded by nature, with hunting gear and a cozy, secluded atmosphere.", + "An outdoor hunting lodge scene has rustic wood structures and nature elements, unlike urban or indoor settings.", + "An outdoor hunting lodge scene features rustic cabins, woodsy elements, and a natural, secluded environment." + ], + "ice cream parlor": [ + "Look for bright, clean interiors with counters, colorful treats, and often small tables for customers.", + "Ice cream parlors have distinct features like colorful displays, ice cream scoops, and often a vintage or cozy atmosphere.", + "Ice cream parlor scenes have bright colors and food displays, unlike other scenes that vary widely in appearance.", + "An ice cream parlor scene features colorful treats, tables, and often a bright, cheerful indoor setting." + ], + "ice floe": [ + "Ice floe scenes are characterized by floating ice chunks in water with a cold, snowy environment.", + "Look for floating ice chunks on water with a cold, often snowy, environment.", + "Ice floe scenes have distinct white, icy textures and frozen water features not seen in other natural or urban scenes.", + "An ice floe scene shows floating ice pieces on water, often with a cold, snowy environment." + ], + "ice shelf": [ + "Look for large, flat, white ice surfaces often with cracks or water nearby.", + "Ice shelf scenes have vast, white, icy expanses, unlike other scenes with varied terrain and less ice.", + "Ice shelves are flat, white surfaces with cracks and crevasses, often surrounded by water or icebergs.", + "An ice shelf scene is a vast, white, icy landscape with floating ice and sometimes water." + ], + "indoor ice skating rink": [ + "Indoor ice skating rinks have smooth ice, skaters, and specific lighting, unlike most other scenes.", + "An indoor ice skating rink is a cold, indoor area with ice, skaters, and often spectators.", + "Look for smooth ice surfaces, skaters, and indoor structures like walls or roofs in the image.", + "The presence of ice, skaters, and specialized rink structures distinguishes an indoor ice skating rink." + ], + "outdoor ice skating rink": [ + "Outdoor ice skating rinks have smooth, reflective ice surfaces, unlike most other scenes with varied textures.", + "Look for a frozen surface with skaters, often with a festive setting and surrounding buildings.", + "An outdoor ice skating rink has a frozen surface with skaters, often surrounded by winter scenery.", + "An outdoor ice skating rink scene is a winter setting with people skating on ice surrounded by cold weather." + ], + "iceberg": [ + "Look for large, white, jagged formations in a cold, blue water environment.", + "An iceberg scene has distinct features like sharp, jagged ice formations and a cold, blue water background.", + "An iceberg scene has white, jagged ice formations in a cold, blue water setting.", + "An iceberg scene features large, white ice formations floating in a dark, cold body of water." + ], + "igloo": [ + "An igloo scene is a snowy, dome-shaped structure typically found in cold, arctic environments.", + "An igloo scene has a distinct dome-shaped structure made of snow in a cold, snowy environment.", + "An igloo scene has a distinct snow dome structure, unlike other scenes with different architectural or natural features.", + "An igloo scene has a distinct round, dome-shaped structure made of snow in a cold, snowy environment." + ], + "industrial area": [ + "Industrial areas have large buildings, machinery, and storage units with a gritty, functional appearance.", + "Industrial areas have more buildings, machinery, and infrastructure compared to natural or residential scenes.", + "Look for large buildings, factories, machinery, and infrastructure with a functional, utilitarian design.", + "Industrial areas have large, uniform structures with smokestacks or machinery, unlike other scene types." + ], + "outdoor inn": [ + "An outdoor inn scene is a cozy establishment with a covered porch and natural surroundings.", + "An outdoor inn scene has a building with a porch or entrance, unlike natural or indoor scenes.", + "Outdoor inns have distinct features like wooden structures, open porches, and natural surroundings like trees and pathways.", + "Look for natural elements like trees and mountains combined with man-made structures like cabins or lodges." + ], + "islet": [ + "Look for small, isolated land areas surrounded by water with minimal structures or human activity.", + "An islet scene is a small, isolated land area surrounded by water, often with vegetation.", + "Islet scenes have distinct features like small land areas surrounded by water, often with vegetation and minimal structures.", + "An islet scene is smaller and more isolated with water surroundings compared to other types of scenes." + ], + "indoor jacuzzi": [ + "An indoor jacuzzi scene is a warm, bubbly pool inside a building, often in a spa or hotel.", + "A indoor jacuzzi scene has a small pool with bubbles, often in a bathroom or spa setting.", + "Look for a small, indoor pool with jets, often in a bathroom or spa, with water bubbles.", + "An indoor jacuzzi scene has a small, warm pool with bubbles, unlike outdoor or dry indoor scenes." + ], + "indoor jail": [ + "Indoor jail scenes have distinct features like barred windows, metal detectors, and institutional furniture.", + "An indoor jail scene is a confined space with bare walls, metal bars, and minimal furniture.", + "Indoor jail scenes have bare walls and metal bars, unlike other scenes with more varied decor and fewer restrictions.", + "Look for barred windows, concrete walls, and institutional furniture in a confined, dimly lit space." + ], + "jail cell": [ + "A jail cell scene is a small, confined space with bars, a bed, and minimal furniture.", + "Jail cells have barred windows and doors, and often feature bunk beds and institutional furniture.", + "Look for barred windows, small rooms, and institutional furniture typical of correctional facilities.", + "A jail cell scene has bars and institutional features unlike most other scenes." + ], + "jewelry shop": [ + "Look for displays of shiny items, glass cases, and counters with expensive-looking objects in the image.", + "Jewelry shops are recognizable by their display cases, shiny items, and often dim, focused lighting.", + "A jewelry shop has bright displays and reflective surfaces, unlike most other scenes.", + "Jewelry shops uniquely display glittering, valuable items like rings, necklaces, and watches under bright lighting." + ], + "kasbah": [ + "Look for fortified buildings with distinct walls and towers in arid or desert environments.", + "A kasbah scene is a fortified medieval building complex, often seen in North African towns.", + "A kasbah scene is recognized by its fortified walls, arched doorways, and traditional North African architectural elements.", + "A kasbah scene has distinctive ancient fort structures, while other scenes lack these unique architectural features." + ], + "indoor kennel": [ + "Look for small, enclosed spaces with bedding and often multiple compartments for animals.", + "An indoor kennel scene has enclosed animal housing, unlike outdoor or human-centric scenes with open spaces.", + "An indoor kennel has distinct features like cages, bedding, and animal-related items in a confined space.", + "An indoor kennel scene is a sheltered area with animal enclosures inside a building." + ], + "outdoor kennel": [ + "Outdoor kennels have visible dog houses or enclosures with outdoor flooring.", + "Look for outdoor structures with pens or enclosures designed to house animals, typically dogs.", + "Outdoor kennels have distinct fenced enclosures with multiple dog houses and open grassy areas.", + "Outdoor kennels have visible animal enclosures and fences, unlike other scenes which lack these specific structures." + ], + "kindergarden classroom": [ + "Kindergarten classrooms have bright colors, educational posters, toys, and small furniture, unlike other scenes.", + "Look for small tables, colorful decorations, educational posters, and children's artwork in the room.", + "Kindergarten classrooms have colorful educational posters and toys specifically designed for young children's learning.", + "A kindergarten classroom has colorful walls, toys, and small desks with young children learning." + ], + "kitchen": [ + "Look for common kitchen items like stoves, sinks, and countertops in the image.", + "A kitchen scene is a room with cooking appliances, counters, and often a sink or dining area.", + "A kitchen scene has distinct features like appliances, countertops, sinks, and cooking tools not found in other scenes.", + "Kitchen scenes have more appliances and food items compared to other scenes." + ], + "kitchenette": [ + "A kitchenette scene is smaller and has fewer appliances than a full kitchen or dining area.", + "A kitchenette scene is a small, compact area with basic cooking appliances and minimal space.", + "A kitchenette has compact, combined cooking and storage areas in a small, often auxiliary space.", + "Look for small cooking areas with minimal appliances and compact furniture, often found in limited spaces." + ], + "outdoor labyrinth": [ + "Outdoor labyrinths have winding paths and walls, unlike open or simple structured scenes.", + "Outdoor labyrinths have winding paths, high walls, and natural surroundings, unlike most other outdoor scenes.", + "Look for winding paths, high walls, and natural surroundings to spot an outdoor labyrinth scene.", + "An outdoor labyrinth scene is a maze-like structure with paths and walls, often in a garden or park." + ], + "natural lake": [ + "Natural lakes have calm water and natural surroundings, unlike urban or man-made scenes with buildings or structures.", + "A natural lake scene is a body of water surrounded by land, often with trees and clear water.", + "Look for calm water surrounded by natural land, with trees or mountains, not man-made structures.", + "A natural lake scene has calm water, surrounding land, and natural elements like trees or mountains." + ], + "landfill": [ + "Landfills have piles of waste and garbage, unlike natural or clean scenes with greenery or clear spaces.", + "Landfills are characterized by large piles of waste, machinery, and a chaotic, industrial appearance.", + "Look for large piles of waste, garbage trucks, and open areas with scattered debris.", + "A landfill scene is a messy area with lots of trash and waste piled up outdoors." + ], + "landing deck": [ + "A landing deck scene is a flat, open area designed for aircraft to take off and land.", + "A landing deck scene has runways and aircraft, unlike other scenes which lack these specific features.", + "Look for large, open flat surfaces with aircraft, often near water or structures, and minimal vegetation.", + "A landing deck scene has distinct features like aircraft, runways, and control towers, setting it apart from other scenes." + ], + "laundromat": [ + "A laundromat has washing machines and dryers, while other scenes lack these specific appliances.", + "A laundromat has distinct washing machines, dryers, and laundry-related items in a clean, functional indoor setting.", + "Look for coin-operated washing machines and dryers in a public setting with a clean, functional environment.", + "A laundromat scene shows washing machines and dryers in a public place where people clean clothes." + ], + "lecture room": [ + "Look for a room with desks, chairs, a podium, and often a screen or whiteboard.", + "A lecture room has a visible podium or lectern at the front for presenting.", + "A lecture room scene is a classroom with students, a teacher, and educational materials for learning.", + "Lecture rooms have desks and chairs arranged for students, while other scenes lack this specific educational setup." + ], + "indoor library": [ + "Indoor libraries have distinct features like bookshelves, reading desks, and quiet spaces with soft lighting.", + "Look for shelves filled with books, reading tables, and a quiet atmosphere with natural or artificial lighting.", + "An indoor library has shelves of books, reading tables, and a quiet atmosphere.", + "An indoor library has shelves of books and quiet spaces, unlike other scenes with different objects and activities." + ], + "outdoor library": [ + "Outdoor libraries have books and reading areas outside, while other scenes lack these specific educational elements.", + "Outdoor libraries have distinct features like open-air settings, bookshelves, and reading areas visible from the outside.", + "Look for outdoor settings with bookshelves, reading areas, and architectural elements typical of libraries.", + "An outdoor library scene is a building with books and reading areas outside, often in a park." + ], + "outdoor lido deck": [ + "An outdoor lido deck has a pool, sun loungers, and a bright, open area near water.", + "Look for bright, open spaces with water, sun loungers, and a pool, often on a boat or ship.", + "An outdoor lido deck scene is a sunny, open area on a ship with chairs and a pool.", + "An outdoor lido deck scene has a pool, sun loungers, and a nautical feel, unlike other scenes." + ], + "lift bridge": [ + "A lift bridge has a central section that can be raised to let boats pass underneath.", + "Look for a movable bridge with counterweights or hydraulics that raises to let boats pass.", + "A lift bridge scene has a movable structure over water, unlike other scenes with fixed structures or no bridges.", + "A lift bridge scene is recognized by its movable span mechanism and waterway crossing structure." + ], + "lighthouse": [ + "Look for a tall, cylindrical structure with a light on top near water.", + "A lighthouse scene is recognized by a tall, coastal tower with a light, often near water.", + "A lighthouse scene has a tall, unique structure by water, unlike other scenes with natural or urban elements.", + "A tall, cylindrical structure with a bright light at the top is unique to lighthouse scenes." + ], + "limousine interior": [ + "A limousine interior has plush seating and luxury details unlike most other vehicle or indoor scenes.", + "A limousine interior scene is a luxurious, spacious car interior with plush seating and high-end features.", + "A limousine interior has plush seating, dark tinted windows, and a luxurious, spacious design.", + "Look for a spacious, luxurious car interior with plush seating and a divider between the front and back." + ], + "living room": [ + "A living room has distinct furniture like sofas and tables arranged for relaxation and social interaction.", + "A living room has distinct furniture like sofas and chairs arranged for relaxation and socializing.", + "Look for furniture like sofas and chairs arranged for relaxation, often with a TV or fireplace.", + "A living room scene is a cozy indoor space with furniture, often including a sofa and a TV." + ], + "lobby": [ + "Look for large open spaces with furniture, lighting, and often a reception desk or waiting area.", + "A lobby scene has a formal, welcoming interior with furniture and decor, unlike outdoor or casual indoor spaces.", + "A lobby scene is a spacious area with furniture, often in a building, for people to wait.", + "A lobby scene has distinct features like reception desks, waiting areas, and modern decor compared to other scenes." + ], + "lock chamber": [ + "A lock chamber has water-filled compartments with gates and machinery for raising or lowering boats.", + "A lock chamber scene has water and gates, unlike other scenes which lack these specific elements.", + "Look for a narrow, enclosed waterway with gates and machinery used for raising or lowering boats.", + "A lock chamber scene has distinct water gates and moving water, unlike most other outdoor scenes." + ], + "locker room": [ + "A locker room scene is a small, enclosed space with lockers and often sports equipment.", + "A locker room has lockers and sports equipment, unlike other scenes which lack these specific features.", + "Look for tiled floors, lockers, and personal belongings to spot a locker room scene.", + "Locker rooms have distinct features like lockers, benches, and often wet floors, setting them apart from other scenes." + ], + "mansion": [ + "Mansions have large, ornate architectural features like grand columns and elaborate facades not found in other scenes.", + "A mansion scene is a large, luxurious house with many rooms and often a big yard.", + "A mansion scene can be identified by large, grand houses with multiple stories and ornate architectural details.", + "Mansions have large, ornate structures, expansive lawns, and multiple stories, distinguishing them from other residential or commercial buildings." + ], + "manufactured home": [ + "Look for small, prefabricated homes with simple designs, often in residential areas or parks.", + "Manufactured home scenes have prefabricated structures and simpler designs compared to natural or traditional residential areas.", + "A manufactured home scene shows prefabricated housing often in rural or suburban areas with simple designs.", + "Manufactured homes have distinct modular structures, uniform layouts, and often smaller footprints compared to traditional residential scenes." + ], + "indoor market": [ + "Indoor markets have stalls, produce displays, and crowds, distinguishing them from other indoor and outdoor scenes.", + "Indoor markets have stalls and produce, while other scenes lack these commercial and food-focused elements.", + "Look for stalls with produce, people shopping, and indoor lighting in a commercial setting.", + "Indoor markets have stalls with fresh produce and goods displayed for sale under a roof." + ], + "outdoor market": [ + "Outdoor markets have distinct features like stalls, produce, and crowds, setting them apart from other scenes.", + "Outdoor markets have crowded stalls with diverse goods, unlike other scenes that lack such commercial and varied items.", + "Look for crowded stalls with fresh produce, varied goods, and people shopping in an open-air setting.", + "An outdoor market scene features stalls with goods, people shopping, and a bustling atmosphere under open skies." + ], + "marsh": [ + "Marsh scenes have distinct water bodies, dense vegetation, and open spaces with soft, natural light.", + "A marsh scene is a wetland area with water, grasses, and sometimes trees.", + "A marsh scene has water, grassy areas, and often birds, with a natural, wetland environment.", + "Marsh scenes have standing water with emergent vegetation, unlike other wetland or water-based environments." + ], + "martial arts gym": [ + "A martial arts gym has mats, training equipment, and sparring areas, unlike typical indoor or outdoor scenes.", + "Look for mats, training equipment, and people in specific attire practicing martial arts moves.", + "A martial arts gym has mats, training equipment, and combat-focused activities, setting it apart from other scenes.", + "Martial arts gyms have unique visual cues like training mats, punching bags, and specific martial arts equipment." + ], + "mausoleum": [ + "A mausoleum scene has a distinct appearance with large, stone-built tombs or monuments, often in a formal setting.", + "A mausoleum scene has a distinct tomb-like structure, unlike other scenes which lack such architectural features.", + "Mausoleums are recognizable by their large, stone structures with distinct architectural designs meant for burial purposes.", + "A mausoleum scene is uniquely identified by its large, standalone tomb-like structure." + ], + "medina": [ + "Look for narrow, winding streets, traditional architecture, and dense urban layouts typical of old city centers.", + "A medina scene has narrow winding streets and traditional architecture, unlike open or modern urban areas.", + "A medina scene is an old, narrow, winding street in a North African city with traditional buildings.", + "A medina scene is recognized by narrow winding streets, white-washed buildings, and traditional North African architecture." + ], + "water moat": [ + "Look for a wide body of water surrounding a structure or area, often with distinct banks.", + "A water moat scene has a distinct body of water surrounding a structure, unlike other scenes.", + "A water moat scene has a distinct feature of a wide, deep body of water surrounding a structure.", + "A water moat scene features a body of water surrounding a structure, often a castle or fort." + ], + "outdoor monastery": [ + "Outdoor monastery scenes have distinct religious structures and natural surroundings, unlike urban or natural-only landscapes.", + "An outdoor monastery scene is a religious building complex, often with gardens, in a natural setting.", + "Outdoor monastery scenes have distinct religious structures, prayer flags, and monastic architecture set in natural surroundings.", + "Look for stone structures, prayer flags, and natural surroundings in a peaceful, elevated setting." + ], + "indoor mosque": [ + "Indoor mosques have distinct arches, domes, and prayer rugs, setting them apart from other indoor scenes.", + "Look for prayer rugs, arches, and a mihrab niche to distinguish an indoor mosque from other scenes.", + "The unique visual cue is the presence of intricate geometric patterns and arabesque designs on walls and domes.", + "Indoor mosque scenes have unique architectural elements like domes and prayer mats, unlike other indoor or outdoor spaces." + ], + "outdoor mosque": [ + "Outdoor mosques have distinct features like minarets, domes, and prayer halls visible in open surroundings.", + "Look for a large, arched structure with a dome and minarets, often surrounded by open outdoor space.", + "Outdoor mosque scenes have distinct architectural elements like domes and minarets, unlike other scenes.", + "The unique visual cue is a large, domed structure with a minaret." + ], + "motel": [ + "A motel scene is a simple building with rooms, often near a road, with a parking area.", + "Motels have distinct features like parking lots, outdoor signs, and simple architecture compared to other scenes.", + "Look for small, roadside buildings with simple designs, often with \"motel\" or \"inn\" signs and parking spaces.", + "A motel scene has distinct signs like neon lights and parking areas, unlike other natural or indoor scenes." + ], + "mountain": [ + "Mountains have high, rugged terrain with peaks and slopes that are not found in other natural or urban scenes.", + "Mountain scenes have high elevations with rocky terrain and peaks, unlike flat or urban landscapes.", + "Mountains have tall peaks, rocky terrain, and often snow, distinguishing them from other natural or urban scenes.", + "Look for tall, natural landforms with peaks, often surrounded by trees or sky in the image." + ], + "mountain snowy": [ + "Mountain snowy scenes have distinct white, textured peaks and cold, clear atmospheres not seen in other scenes.", + "Mountain snowy scenes have white, cold landscapes with peaks, while other scenes show warmer, varied terrain and colors.", + "Snow covering peaks and slopes is unique to mountain snowy scenes.", + "Look for large, white, jagged peaks with snow and ice against a clear or cloudy sky." + ], + "indoor movie theater": [ + "Indoor movie theaters have large screens, dark interiors, and rows of seats, distinguishing them from other scenes.", + "Indoor movie theaters have dark rooms with large screens and seats, unlike most other scenes with natural light.", + "An indoor movie theater has dark seating, a large screen, and people watching a film.", + "Look for a large screen, dark surroundings, rows of seats, and possibly people watching a movie." + ], + "indoor museum": [ + "Indoor museum scenes have distinct features like large open spaces, high ceilings, and displayed artifacts.", + "Indoor museums have structured layouts with exhibits and lighting, unlike outdoor or residential scenes with natural elements.", + "Look for large, open spaces with exhibits, often dimly lit, and featuring architecture or artifacts.", + "Museum scenes uniquely feature large, open indoor spaces with displays and exhibits." + ], + "music store": [ + "A music store has instruments, sheet music, and sound equipment, unlike other retail or entertainment venues.", + "Look for displays of instruments, sheet music, and listening stations in a retail setting.", + "A music store has instruments and related gear, unlike other scenes with different objects and settings.", + "Music stores have displays of instruments like guitars and drums, which are not found in other scenes." + ], + "music studio": [ + "A music studio has distinct recording equipment, soundproofing materials, and often a controlled, minimalist environment.", + "Look for instruments, recording equipment, and soundproofing materials in a room designed for music production.", + "A music studio scene has instruments, recording equipment, and soundproof walls in a dedicated space.", + "A music studio scene has recording equipment and instruments, unlike other scenes with different objects and settings." + ], + "outdoor nuclear power plant": [ + "Outdoor nuclear power plants have large cooling towers and reactor buildings, unlike other industrial or natural scenes.", + "Outdoor nuclear power plants have distinctive cooling towers and reactor buildings, unlike other scenes.", + "Look for large cooling towers, reactor buildings, and industrial structures in an outdoor setting.", + "Large cooling towers with distinctive hyperbolic shapes are unique to outdoor nuclear power plant scenes." + ], + "nursery": [ + "Look for bright colors, toys, cribs, and child-friendly furniture in a cozy, playful setting.", + "A nursery scene is recognized by soft colors, toys, cribs, and child-friendly decor.", + "A nursery scene is a cozy room with furniture, toys, and decorations for babies or young children.", + "A nursery scene uniquely features baby furniture and decor designed for infants." + ], + "oast house": [ + "A oast house scene is a rural building used for drying hops, often with conical roofs.", + "Look for tall, cylindrical buildings with conical roofs, often near farms, used for drying hops.", + "An oast house scene has a distinctive conical roof structure, unlike other scenes with flat or gabled roofs.", + "A oast house scene is recognized by its distinctive conical drying kilns used for processing hops." + ], + "outdoor observatory": [ + "An outdoor observatory has large domes and telescopes, unlike other scenes which lack these specific features.", + "An outdoor observatory has large domes, telescopes, and often dark surroundings with scientific equipment.", + "Look for large domes, telescopes, and dark skies in open areas with minimal buildings.", + "Large domes with telescopes are unique to outdoor observatory scenes." + ], + "ocean": [ + "Look for large bodies of water with waves, blue hues, and possibly sandy shores or boats.", + "Ocean scenes have large bodies of water and horizons, unlike other scenes with different natural or urban elements.", + "An ocean scene is a wide view of water with waves, often showing sky and maybe a beach.", + "Ocean scenes have large bodies of water with waves, often blue skies, and distant horizons." + ], + "office": [ + "Look for desks, chairs, computers, and organized spaces with a professional or work-related setting.", + "Offices have distinct desks, computers, chairs, and indoor lighting setups not found in other scenes.", + "Desks with computers and office supplies are unique to office scenes.", + "An office scene has desks and computers, while other scenes have different furniture and activities." + ], + "office building": [ + "Office buildings have structured facades and windows, unlike natural or residential scenes that lack such uniformity.", + "Look for tall structures with windows and offices, often in urban areas with other buildings nearby.", + "Office buildings have distinct rectangular shapes, large windows, and structured facades compared to other scenes.", + "An office building scene looks like a structured, multi-story structure with windows and often a professional environment." + ], + "outdoor oil refinery": [ + "Outdoor oil refineries have large industrial structures and equipment, unlike natural or urban scenes with buildings or landscapes.", + "Outdoor oil refineries have large industrial structures, storage tanks, and pipelines, unlike natural or urban scenes.", + "Look for large industrial structures, tanks, pipes, and processing equipment in an outdoor setting.", + "Large industrial structures with interconnected pipelines and storage tanks are unique to outdoor oil refinery scenes." + ], + "oilrig": [ + "Look for large offshore structures with drilling equipment, pipes, and platforms in a water environment.", + "Oilrig scenes have industrial structures on water, unlike natural or urban scenes with buildings or landscapes.", + "An oilrig scene has distinct features like large offshore structures, industrial equipment, and water surrounding it.", + "An oilrig scene is a man-made structure at sea used for drilling oil, often with machinery and platforms." + ], + "operating room": [ + "An operating room has distinct medical equipment, sterile environment, and bright lighting for surgical procedures.", + "Operating rooms have visible medical equipment like surgical tools and monitors not found in other scenes.", + "An operating room has medical equipment and sterile environment, unlike other scenes with varied objects and settings.", + "Look for bright, sterile lighting, medical equipment, and a clean, organized environment typical of surgical settings." + ], + "orchard": [ + "Orchards have rows of fruit trees, which are not found in other types of scenes.", + "Look for rows of trees with fruit, often with open spaces and natural surroundings.", + "Orchards have distinct rows of fruit trees and open green spaces, unlike other natural or urban scenes.", + "An orchard scene has trees with fruits, while other scenes lack this specific agricultural feature." + ], + "outdoor outhouse": [ + "Look for small, standalone buildings with simple designs, often near natural areas and lacking modern amenities.", + "An outdoor outhouse scene has a small, rustic toilet building, unlike other scenes with different structures or settings.", + "An outdoor outhouse scene features a simple, standalone toilet structure in a natural or rural setting.", + "A small, standalone wooden structure with a roof and a door, typically found in rural or camping areas." + ], + "pagoda": [ + "Pagodas have tiered, multi-roofed structures with distinctive eaves and often appear in religious or cultural settings.", + "Look for tiered, multi-roofed structures with upward-pointing eaves, often surrounded by gardens or temples.", + "A pagoda scene is a traditional Asian temple with multiple tiered roofs and often surrounded by nature.", + "A pagoda scene has a distinctive multi-tiered roof structure, unlike other scenes with flat or simple roofs." + ], + "palace": [ + "Palaces have grand, ornate architecture with multiple stories, large windows, and often surrounded by formal gardens.", + "Palaces have large, ornate structures with distinct architectural details like domes and grand facades.", + "Look for grand, ornate architecture with large rooms, multiple stories, and decorative elements like columns or statues.", + "Palace scenes have grand structures and ornate details, unlike simpler scenes with basic buildings or natural elements." + ], + "pantry": [ + "A pantry scene is recognized by shelves with food items, storage containers, and kitchen supplies.", + "A pantry scene is identified by shelves, food containers, and kitchen supplies in a storage area.", + "A pantry scene is a storage room with shelves filled with food items and kitchen supplies.", + "A pantry scene has shelves with food items, unlike other scenes that show different objects or settings." + ], + "park": [ + "A park scene has distinct features like green grass, trees, open spaces, and recreational areas.", + "Look for open green spaces with trees, paths, and recreational areas in the image.", + "A park scene has more greenery and open spaces compared to other scenes.", + "A park scene is a green outdoor area with trees, grass, and often people or paths." + ], + "indoor parking garage": [ + "Indoor parking garages have concrete structures and cars, unlike outdoor scenes with nature or buildings.", + "Look for large, open spaces with concrete structures, cars, and often directional signs inside a building.", + "The presence of multiple levels with ramps and designated parking spots is unique to indoor parking garages.", + "Indoor parking garages have distinct rows of parked cars, concrete structures, and overhead lighting." + ], + "outdoor parking garage": [ + "An outdoor parking garage scene is a large structure with multiple levels for parking vehicles outside.", + "Look for large, open areas with multiple levels, cars parked closely, and structural supports.", + "Outdoor parking garages have distinct multi-level structures with visible cars, ramps, and often urban surroundings.", + "Outdoor parking garages have structured, multi-level designs with cars, while other scenes lack this organized, vehicle-focused layout." + ], + "parking lot": [ + "Parking lots have distinct rows of parked vehicles and clear, open spaces with defined boundaries.", + "Look for large, paved areas with multiple parked vehicles and clear lines or markings.", + "Parking lots have many cars and flat surfaces, unlike other scenes which show more nature or buildings.", + "A parking lot scene is an open area with many vehicles parked in organized spaces." + ], + "parlor": [ + "Look for a room with elegant furniture, often used for entertaining, and decorated with refined details.", + "A parlor scene is recognized by its indoor setting, furniture, and often a fireplace or decorative elements.", + "A parlor scene is a room used for social gatherings, often with furniture and decorations.", + "A parlor scene uniquely features elegant furniture and decorative elements arranged for formal or social gatherings." + ], + "pasture": [ + "Look for open grassy areas with scattered trees and possibly livestock, often with a rural setting.", + "A pasture scene is a grassy field with livestock, often surrounded by trees and fences.", + "A pasture scene has green grass and often livestock, unlike urban or desert scenes with buildings or sand.", + "A pasture scene has open grassy areas with scattered trees and livestock, distinguishing it from other natural or urban scenes." + ], + "patio": [ + "A patio scene is an outdoor area with a paved floor, often near a house, used for relaxation.", + "Look for outdoor spaces with paved flooring, furniture, and often adjacent to buildings or gardens.", + "A patio scene has outdoor paved areas for relaxation, unlike indoor or natural scenes with different features.", + "A patio scene has distinct features like outdoor furniture, paved flooring, and open space surrounded by walls." + ], + "pavilion": [ + "A pavilion scene is an open-air structure, often with a roof, in a public or garden setting.", + "Look for open structures with roofs and open sides, often in gardens or parks.", + "A pavilion scene has a distinct open-roof structure, unlike enclosed buildings or natural outdoor settings.", + "A pavilion scene is uniquely identified by its open-roofed structure with pillars or columns." + ], + "pharmacy": [ + "A pharmacy has distinct features like medicine shelves, counters, and healthcare items not found in other scenes.", + "A pharmacy scene has medical supplies and organized shelves, unlike other scenes which vary widely in content.", + "Pharmacy scenes uniquely feature medicine cabinets or shelves with labeled bottles and medical supplies.", + "A pharmacy scene features medicine shelves, counters, and healthcare items in a clean, organized retail setting." + ], + "phone booth": [ + "A phone booth scene is recognized by its distinct glass enclosure and public telephone inside.", + "Look for a small, enclosed structure with a phone inside, often found on streets or in public areas.", + "A phone booth scene has a distinct, enclosed structure with a phone inside, unlike other scenes.", + "A phone booth scene features a standalone booth with a phone, often in urban settings." + ], + "physics laboratory": [ + "Physics labs have scientific equipment and tools, unlike other scenes that lack these specific items.", + "Look for equipment like lab tables, scientific instruments, and white coats to spot a physics laboratory scene.", + "A physics laboratory scene features scientific equipment, experiments, and educational tools for studying physical phenomena.", + "A physics lab has unique equipment like lab benches, scientific instruments, and often white coats, distinguishing it from other scenes." + ], + "picnic area": [ + "A picnic area has tables and open space, unlike other scenes which vary in structure and purpose.", + "Look for open grassy areas with tables, benches, and people, often near nature or recreational spots.", + "A picnic area has open grass, tables, benches, and people, often near trees or water.", + "A picnic area scene is an open space with tables, benches, and grass for outdoor dining and relaxation." + ], + "indoor pilothouse": [ + "An indoor pilothouse scene has controls and windows, unlike outdoor or other indoor scenes.", + "Look for enclosed spaces with windows, control panels, and often a nautical or vehicle setting.", + "Indoor pilothouse scenes have distinct control panels, steering wheels, and windows facing outward for recognition.", + "An indoor pilothouse scene is a room with controls, windows, and equipment used to operate a ship." + ], + "outdoor planetarium": [ + "Outdoor planetarium scenes have large domes with star patterns, unlike other outdoor or indoor scenes.", + "Look for a large, dark dome with stars or projections, often with people sitting inside.", + "Outdoor planetarium scenes have large domes and dark skies, unlike other scenes with natural or urban elements.", + "An outdoor planetarium scene is a large dome building with a sky-like projection inside, often in a park." + ], + "playground": [ + "A playground scene is an outdoor area with play equipment like swings and slides for children.", + "Look for swings, slides, and open spaces with children's play equipment in the image.", + "Playground scenes have play equipment and children, while other scenes lack these specific features.", + "Playgrounds have distinct features like swings, slides, and play structures, often in open outdoor areas." + ], + "playroom": [ + "A playroom has toys and children's furniture, which are not found in other types of rooms.", + "Look for toys, colorful decorations, and a space designed for children's activities.", + "A playroom has colorful toys, furniture for kids, and a playful atmosphere not seen in other rooms.", + "A playroom has more toys and bright colors compared to other scenes." + ], + "plaza": [ + "Look for open, paved areas with surrounding buildings and often people, benches, or fountains.", + "Plaza scenes have open, paved areas with people and buildings, unlike natural or indoor scenes.", + "A plaza scene is an open public area with paved ground, often surrounded by buildings and people.", + "Plazas have open, paved areas with surrounding buildings, often featuring fountains or statues." + ], + "indoor podium": [ + "Indoor podium scenes have structured, man-made elements, unlike natural or outdoor scenes with more organic features.", + "A podium scene has a raised platform with steps, often used for awards or speeches.", + "An indoor podium scene is a stage-like platform inside a building used for speeches or presentations.", + "A podium scene has a raised platform, often with a microphone, in an indoor setting." + ], + "outdoor podium": [ + "An outdoor podium scene is a raised platform used for speeches or awards in open-air settings.", + "Look for a raised platform outside with people or objects, often used for speeches or awards.", + "Outdoor podium scenes have distinct raised platforms with speakers or awards, often in open areas.", + "Outdoor podium scenes have elevated platforms with speakers, unlike other scenes which lack this specific structure." + ], + "pond": [ + "A pond scene is a body of still water surrounded by land, often with vegetation and wildlife.", + "Look for calm water with vegetation, reflections, and natural surroundings like trees or rocks.", + "A pond scene has calm, still water with reflections, unlike other water bodies like rivers or oceans.", + "A pond scene has calm water and natural elements, unlike urban or mountain scenes with different features." + ], + "establishment poolroom": [ + "Look for billiard tables, cues, and a dimly lit room with a focus on gaming activities.", + "A poolroom scene has billiard tables and cues, unlike other scenes which lack these specific sports elements.", + "A poolroom has billiard tables, cues, balls, and often a dimly lit, social atmosphere with players.", + "A pool table is the unique visual cue in a poolroom scene compared to other scenes." + ], + "home poolroom": [ + "Look for a room with a pool table, often with cues and balls, in a residential setting.", + "A home poolroom has a billiard table with pockets, which is not found in other scenes.", + "A home poolroom has a billiard table, cues, balls, and often a casual indoor setting.", + "A home poolroom scene has billiard tables and cues, unlike other scenes which lack these specific gaming elements." + ], + "outdoor power plant": [ + "Outdoor power plants have large machinery and structures, unlike natural or urban scenes with fewer industrial elements.", + "Look for large machinery, industrial structures, and energy-related equipment in an outdoor setting.", + "Outdoor power plants have large machinery, tall structures, and industrial equipment visible in open settings.", + "Large industrial equipment and machinery are unique to outdoor power plant scenes." + ], + "promenade deck": [ + "Look for a large, open deck area with railings, often on a ship, and possibly with people walking.", + "A promenade deck scene is an outdoor area on a ship with a walkway and often railings.", + "A promenade deck scene has a ship's outdoor walkway, unlike other scenes with different structures or settings.", + "A promenade deck scene has distinct features like open spaces, railings, and boats, setting it apart from other scenes." + ], + "indoor pub": [ + "Look for dim lighting, wooden furniture, beer mugs, and a crowded atmosphere typical of pubs.", + "An indoor pub scene is a cozy, dimly lit room with wooden tables, bar counter, and people.", + "An indoor pub scene has wooden furniture and dim lighting, unlike bright, open spaces or modern interiors.", + "An indoor pub scene has wooden tables, bar counters, and dim lighting, setting it apart from other scenes." + ], + "pulpit": [ + "A pulpit scene includes a raised platform for speaking, unlike other scenes which lack this specific feature.", + "Look for elevated platforms with religious figures speaking, often in churches or places of worship.", + "A pulpit scene uniquely features a raised platform or podium used for religious speeches or sermons.", + "A pulpit scene has a raised platform with religious figures, often in a church or chapel setting." + ], + "putting green": [ + "A putting green scene is a flat, grassy area with holes and markers for playing golf.", + "A putting green scene has distinct features like short grass, a hole, and a golf club.", + "Look for smooth, flat, closely mowed grass with a hole and a golf club or ball nearby.", + "A putting green scene has short, uniform grass and a flat surface, unlike varied landscapes or rough terrain." + ], + "racecourse": [ + "Look for a long, straight track with starting gates and often spectators or horses nearby.", + "A racecourse has a distinct oval or circular track designed for horse or car racing.", + "A racecourse scene is an open area with tracks and spectators, often showing horses or cars.", + "A racecourse has distinct features like tracks, starting gates, and spectators, differentiating it from other outdoor scenes." + ], + "raceway": [ + "A raceway scene is a track for racing vehicles, often with spectators and fast-moving cars.", + "A raceway scene has a unique visual cue of a long, winding track designed for racing vehicles.", + "A raceway scene has tracks and vehicles, while other scenes lack these specific elements.", + "A raceway scene has distinct features like tracks, vehicles, and spectators, setting it apart from other scenes." + ], + "raft": [ + "A raft scene is a water-based setting with a small boat-like vessel floating on a body of water.", + "A raft scene has water and a floating vessel, unlike other scenes which may lack these elements.", + "Look for flat, buoyant objects on water with people or equipment nearby.", + "A raft scene is recognized by water, floating objects, and often outdoor settings with natural elements." + ], + "railroad track": [ + "Look for parallel lines, metal rails, ties, and often a rural or industrial setting.", + "A railroad track scene features tracks, trains, and often industrial or outdoor settings.", + "Railroad tracks have straight lines and metal rails, unlike natural scenes with curves and organic elements.", + "Railroad tracks have long parallel lines, metal ties, and often a rural or industrial setting." + ], + "rainforest": [ + "Rainforests have dense, tall trees, lush greenery, and diverse plant life, often with mist or water features.", + "Rainforests have dense green vegetation and tall trees, unlike other scenes which may have fewer plants or different structures.", + "Look for dense, tall trees, lush greenery, and a thick canopy covering the ground.", + "A rainforest scene is a lush, dense area with tall trees, green plants, and lots of moisture." + ], + "reception": [ + "Look for a room with a desk, chairs, and people, often in a professional or waiting area.", + "Reception scenes have distinct features like waiting areas, front desks, and organized layouts for guest interaction.", + "A reception scene is a welcoming area where people gather, often with a desk or counter.", + "Reception scenes have more people and tables, while other scenes vary in objects and fewer people." + ], + "recreation room": [ + "A recreation room has games, furniture, and entertainment items for leisure activities.", + "A recreation room has sports equipment and game areas, unlike other rooms that focus on living or working.", + "A recreation room has game equipment like pool tables or arcade machines not found in other rooms.", + "A recreation room has distinct features like game equipment, sofas, and recreational items not found in other scenes." + ], + "residential neighborhood": [ + "Residential neighborhoods have distinct features like houses, streets, and yards that separate them from other scene types.", + "Residential neighborhoods have houses and streets, unlike natural scenes with mountains or forests and urban scenes with tall buildings.", + "Look for houses, streets, and yards together to spot a residential neighborhood scene.", + "Residential neighborhoods have houses with lawns, unlike other scenes that lack these domestic structures." + ], + "restaurant": [ + "Look for tables, chairs, food, and a dining area to spot a restaurant scene.", + "Restaurants have visible food displays, which are not commonly found in other types of scenes.", + "Restaurants have distinct features like tables, chairs, food, and indoor settings compared to other scenes.", + "A restaurant scene is an indoor setting with tables, chairs, and food, often showing people dining." + ], + "restaurant kitchen": [ + "Look for cooking equipment, food preparation, and staff in a functional, often busy indoor space.", + "A restaurant kitchen scene has distinct features like cooking appliances, food preparation, and chefs working in a functional space.", + "A restaurant kitchen has visible cooking appliances and food preparation surfaces not found in other scenes.", + "A restaurant kitchen scene has cooking equipment and food prep areas, unlike other scenes with different objects and settings." + ], + "restaurant patio": [ + "Look for outdoor seating areas with tables, chairs, and sometimes plants near buildings or streets.", + "A restaurant patio scene has outdoor seating and food elements, unlike other scenes which lack these features.", + "A restaurant patio has outdoor seating, food tables, and a relaxed atmosphere near a building.", + "A restaurant patio scene is an outdoor dining area with tables, chairs, and often plants or umbrellas." + ], + "rice paddy": [ + "Rice paddies have flooded fields with green crops, distinct from other agricultural or natural scenes.", + "Rice paddies have flooded fields with green plants, unlike dry land or urban scenes with buildings and roads.", + "Look for flooded fields with green plants and straight lines, often with surrounding rural landscapes.", + "A rice paddy scene shows flooded fields with growing rice plants, often in rural agricultural areas." + ], + "riding arena": [ + "A riding arena has distinct features like horse jumps, sand floors, and fenced boundaries not seen in other scenes.", + "A riding arena scene is an enclosed area with jumps and horses, used for equestrian activities.", + "Look for enclosed spaces with marked lanes, often with sand or dirt, and riding equipment nearby.", + "A riding arena has a flat, enclosed area with fences, unlike other scenes which vary in terrain and openness." + ], + "river": [ + "Rivers have flowing water, natural banks, and often surrounding greenery, distinguishing them from other water or land scenes.", + "Look for flowing water with banks, trees, and possibly a bridge or boats in the image.", + "A river scene has flowing water and often greenery, unlike other scenes which may lack these elements.", + "A river scene features flowing water bordered by land, often with trees or rocks nearby." + ], + "rock arch": [ + "Rock arch scenes have unique curved rock formations, unlike other scenes with flat or varied terrain features.", + "Look for a natural stone arch structure with an open passage through it in the landscape.", + "Rock arch scenes have unique curved openings in cliffs, distinguishing them from other natural and man-made structures.", + "A rock arch scene is uniquely identified by a natural stone archway formed by erosion." + ], + "rope bridge": [ + "Look for a bridge with ropes supporting it, often over water or a gap in nature.", + "A rope bridge scene shows a suspended bridge made of ropes over a gap or water.", + "A rope bridge scene has a unique hanging bridge structure over water or a gap.", + "A rope bridge scene has hanging ropes and a bridge structure, unlike other scenes with flat surfaces." + ], + "ruin": [ + "Ruin scenes have weathered structures and decay, unlike other scenes that are often intact or natural.", + "Ruins have visible signs of decay and destruction that are not present in other scene types.", + "Look for weathered structures, broken elements, and signs of decay in the image.", + "Ruin scenes have distinct features like decaying structures, broken walls, and overgrown vegetation compared to other scenes." + ], + "runway": [ + "A runway scene has a long, flat, paved surface for aircraft, unlike other scenes with varied terrain or structures.", + "A runway scene is a long, paved path where planes take off and land, often with airport buildings nearby.", + "Runway scenes have distinct long, straight paths with parallel lines and often feature aircraft or vehicles.", + "Look for long, flat, paved surfaces with markings, often surrounded by grass or tarmac near airports." + ], + "sandbar": [ + "Look for flat, sandy areas in water with clear boundaries and no buildings or dense vegetation.", + "A sandbar scene is a flat area of sand in water, often near a river or ocean.", + "Sandbar scenes have distinct features like exposed sandy areas near water with minimal vegetation and flat terrain.", + "Sandbar scenes have exposed sandy areas near water, unlike other scenes which may lack this distinct feature." + ], + "sandbox": [ + "A sandbox scene has loose, fine sand, often with toys or imprints, unlike natural sandy areas.", + "Look for a small area with fine sand, often with toys or children, and simple structures.", + "A sandbox scene is recognized by its small, loose, granular material and often includes toys or digging tools.", + "A sandbox scene is a small area with sand where children play, often found in outdoor playgrounds." + ], + "sauna": [ + "Look for wooden walls, steam, and people relaxing in a hot, enclosed room with simple decor.", + "A sauna scene is a small, steamy room with wooden benches and people relaxing.", + "A sauna scene has wooden walls and steam, unlike other scenes which lack these specific features.", + "A sauna scene has distinct features like wooden walls, steam, and people relaxing in a hot, humid environment." + ], + "schoolhouse": [ + "Schoolhouses have distinct buildings with classrooms, while other scenes lack these educational structures.", + "A schoolhouse scene has distinct features like classrooms, desks, and educational signs that set it apart from other scenes.", + "A schoolhouse scene has classrooms, desks, and educational signs, distinguishing it from other indoor or outdoor settings.", + "A schoolhouse scene uniquely features classrooms with desks, whiteboards, and educational materials." + ], + "sea cliff": [ + "Sea cliffs have steep rock faces near water, distinguishing them from other coastal or mountain scenes.", + "A sea cliff scene has a vertical rock face meeting the ocean water.", + "A sea cliff scene has steep rock faces near water, unlike other scenes with flatter or different terrain.", + "A sea cliff scene has steep rock faces near the ocean with waves crashing at the bottom." + ], + "server room": [ + "A server room has many computers and equipment racks in a clean, organized indoor space.", + "A server room has many computers and wires, unlike other scenes that show different objects and settings.", + "Look for organized racks, cables, and equipment in a controlled environment with uniform lighting.", + "A server room has racks of computers and networking equipment, which are not found in other scenes." + ], + "shed": [ + "Look for small, simple structures with basic materials like wood or metal, often in outdoor settings.", + "A shed scene is recognized by its small, rustic structure with a roof, often in a backyard or garden.", + "A shed scene is a small outdoor structure with tools and supplies, often in a backyard or garden.", + "A shed scene is smaller and more rustic than other scenes, often with simple wooden structures." + ], + "shoe shop": [ + "Look for displays of shoes, racks, and counters in a retail setting with a focus on footwear.", + "Shoe shops have displays of footwear, shelves, and often mirrors, distinguishing them from other retail or home scenes.", + "Shoe shops uniquely display a variety of footwear prominently on shelves or racks.", + "A shoe shop scene has displays of shoes, while other scenes show different objects or environments." + ], + "shopfront": [ + "Look for a storefront with a visible entrance, display windows, and often a sign or awning.", + "A shopfront scene is a storefront with windows, signs, and displays, often on a busy street.", + "Shopfront scenes have distinct features like storefront signs, windows, and commercial displays that set them apart from other scenes.", + "Shopfront scenes have visible storefronts with windows and signs, unlike other scenes that lack commercial building fronts." + ], + "indoor shopping mall": [ + "Indoor shopping malls have many stores and people, unlike outdoor scenes which are more natural.", + "Indoor shopping malls have distinct features like multiple stores, large walkways, and bright lighting.", + "Look for large open spaces with multiple stores, high ceilings, and often a central atrium or food court.", + "An indoor shopping mall has stores, walkways, and people inside a large, enclosed building." + ], + "shower": [ + "A shower scene is recognized by water, steam, wet surfaces, and a distinct enclosed bathing area.", + "Look for wet surfaces, steam, shower curtains, and bathing fixtures to spot a shower scene.", + "A shower scene has wet surfaces and steam, unlike other scenes which lack these moisture-related visual cues.", + "A shower scene shows a bathroom area with water running and a person under a showerhead." + ], + "skatepark": [ + "Look for ramps, rails, and smooth surfaces typical of skateboarding areas.", + "Skateparks have ramps and rails designed for skateboarding, which are not found in other scenes.", + "Skateparks have ramps, rails, and smooth surfaces for skateboarding, distinguishing them from other outdoor recreational areas.", + "A skatepark scene has ramps and rails, while other scenes lack these specific structures." + ], + "ski lodge": [ + "Look for wooden structures, ski equipment, and snowy surroundings to spot a ski lodge scene.", + "A ski lodge scene has wooden structures and snow, unlike other scenes which lack these features.", + "A ski lodge scene has distinct features like wooden structures, fireplaces, and snowy surroundings.", + "A ski lodge scene is a cozy indoor place with wooden walls and fireplaces, often near snowy mountains." + ], + "ski resort": [ + "A ski resort has snowy slopes and ski lifts, unlike other scenes which lack these features.", + "Ski resorts have man-made slopes and lifts for skiing, which are not found in other types of scenes.", + "Look for snowy slopes, ski lifts, and buildings designed for winter sports in the image.", + "A ski resort has snowy slopes, ski lifts, and winter structures like lodges set in mountainous areas." + ], + "ski slope": [ + "Ski slopes have steep, snow-covered inclines with skiers or snowboarders, often set in mountainous, winter environments.", + "Look for steep, snow-covered paths with skiers or ski equipment, often set in mountainous areas.", + "A ski slope scene is a snowy, sloped area with skiers or snowboarding equipment.", + "Ski slopes have snow and ski equipment, while other scenes lack these elements and vary in terrain and objects." + ], + "sky": [ + "A sky scene is recognized by its open, vast, and often blue upper portion with few obstructions.", + "Look for wide, open areas with visible blue or white areas above, often with clouds or a gradient.", + "The sky scene has a vast, open expanse of clouds or blue sky visible in the image.", + "A sky scene features clouds, blue hues, and open space, often seen in outdoor and natural settings." + ], + "skyscraper": [ + "Skyscrapers have tall buildings and urban elements, unlike natural or residential scenes with fewer structures.", + "Skyscrapers have tall, glass buildings with multiple floors and a modern urban setting.", + "Look for tall, rectangular buildings with many windows and a distinct vertical structure in the image.", + "Skyscrapers have tall, rectangular buildings with many windows, often reaching high into the sky." + ], + "slum": [ + "Look for crowded, makeshift structures with poor conditions and lack of organization in the scene.", + "Overcrowded, makeshift shelters with visible waste and lack of infrastructure distinguish slum scenes.", + "Slum scenes have crowded, makeshift structures with visible poverty and lack of proper infrastructure.", + "Slum scenes have crowded, makeshift structures and poor conditions, unlike cleaner, organized scenes in other categories." + ], + "snowfield": [ + "Look for large, white, flat areas with no vegetation, often with mountains or blue skies nearby.", + "A snowfield scene is a vast, white, open area covered in snow, often with mountains or trees.", + "Snowfields have vast white, flat areas with sparse vegetation and distinct cold, bright lighting conditions.", + "A snowfield scene has a white, flat, and uniform appearance, unlike other scenes with varied colors and textures." + ], + "squash court": [ + "Look for a rectangular court with specific markings, often with a wall and a small ball present.", + "A squash court scene is a small indoor area with walls, a high ceiling, and a court for playing squash.", + "A squash court has a high ceiling, glass walls, and a specific playing area with distinct markings.", + "The unique visual cue is the specific layout of the court with back and side walls." + ], + "stable": [ + "Stable scenes have a clear, unobstructed view of the ground or floor, unlike other scenes.", + "Look for consistent lighting, color, and texture patterns across different images of the same scene type.", + "A stable scene is one that remains consistent and unchanging over time, with minimal movement or variation.", + "Stable scenes have consistent lighting and structure, while other scenes vary more in appearance and elements." + ], + "baseball stadium": [ + "A baseball stadium has open fields and seating areas, unlike closed indoor or natural outdoor scenes.", + "A baseball stadium has a large field, bleachers, and a scoreboard, distinguishing it from other sports venues.", + "Look for a large grass field with a diamond, bases, and a grandstand seating area.", + "A baseball stadium scene is an open-air sports venue with seating, field, and often spectators." + ], + "football stadium": [ + "A football stadium scene has large open spaces and seating areas, unlike most other enclosed or natural scenes.", + "Look for large open fields with goalposts, tiered seating, and often a running track around the field.", + "A football stadium scene is a large outdoor venue with seating, a field, and often spectators.", + "A football stadium has large open fields, seating structures, and often a crowd, distinguishing it from other scenes." + ], + "indoor stage": [ + "Look for large open spaces with seating, a performance area, and often a backstage or audience section.", + "An indoor stage scene is a room with a raised platform used for performances or events.", + "An indoor stage scene has a structured setting with lighting and props, unlike natural or everyday environments.", + "A large, open performance area with a back wall and often a ceiling is unique to indoor stages." + ], + "staircase": [ + "Staircases have distinct steps or flights of stairs that are not present in other scene types.", + "A staircase scene is a setting with steps leading up or down, often indoors or outdoors.", + "Look for multiple steps arranged in a series, often with railings and leading up or down.", + "Staircases have distinct steps and vertical structures, unlike flat or uniform surfaces in other scenes." + ], + "street": [ + "Street scenes have distinct features like roads, sidewalks, and human activity, which set them apart from other scenes.", + "Look for roads, sidewalks, buildings, and human activity to spot a street scene.", + "Pavement and roadways are the unique visual cues found in street scenes.", + "A street scene has buildings and roads, while other scenes may feature nature, interiors, or different structures." + ], + "subway interior": [ + "A subway interior scene is a confined space with seats, tracks, and often many people inside.", + "A subway interior has metal, tiled walls, seats, and tracks, unlike most other scenes.", + "Subway interiors have distinctive metal railings and turnstiles not found in other indoor or transportation scenes.", + "Look for dark, narrow spaces with metal railings, seats, and often dim lighting typical of underground transit systems." + ], + "platform subway station": [ + "Platform subway stations have tracks and trains, unlike other scenes which lack these transportation elements.", + "A platform subway station is an indoor transit area with tracks, trains, and waiting passengers.", + "A platform subway station has distinct tracks, waiting areas, and urban structures for easy recognition.", + "Look for underground transit areas with platforms, tracks, and often tiled walls or signage." + ], + "supermarket": [ + "Supermarkets have aisles with shelves, checkout counters, and displays of packaged goods, unlike other scenes.", + "Supermarkets have distinct aisles with shelves, products, shopping carts, and checkout counters, unlike other indoor or outdoor scenes.", + "Supermarkets have aisles with shelves and products, unlike other scenes that lack organized retail displays.", + "A supermarket scene is a brightly lit indoor space filled with aisles of food and products." + ], + "sushi bar": [ + "A sushi bar scene is recognized by its distinct counter, fresh seafood, and traditional Japanese decor elements.", + "Look for a counter with sushi, chefs, and customers, often in a modern or Japanese-style setting.", + "A sushi bar scene has food and Japanese elements, unlike other scenes with different themes and objects.", + "Sushi bars uniquely feature counters with sushi chefs preparing and serving fresh sushi dishes." + ], + "swamp": [ + "A swamp scene is a wet, marshy area with water, plants, and sometimes trees in a low-lying region.", + "Swamps have water, vegetation, and murky tones, unlike dry landscapes or urban scenes with buildings and roads.", + "Swamps have distinct murky water, dense vegetation, and unique wildlife, setting them apart from other natural scenes.", + "Swamps have standing water with partially submerged vegetation, unlike other wetland or water-based scenes." + ], + "indoor swimming pool": [ + "Look for a large, rectangular body of water with tiles and often people or diving boards nearby.", + "An indoor swimming pool scene is a man-made space with water, often in a building, for swimming.", + "Indoor swimming pools have water, tiles, and often glass walls, unlike most other scenes.", + "Water in a contained, indoor space with visible lanes and a surrounding deck or edge." + ], + "outdoor swimming pool": [ + "Outdoor swimming pools have clear blue water, sun loungers, and often a surrounding deck or grassy area.", + "Outdoor swimming pools have water, tiles, and often people, unlike other scenes which lack these specific elements.", + "Clear, blue water with a distinct rectangular shape and surrounding deck or tiles.", + "Look for clear water, blue tiles, and surrounding deck areas in the image." + ], + "indoor synagogue": [ + "Look for prayer items, religious symbols, and interior architectural features typical of Jewish worship spaces.", + "A synagogue has religious symbols and seating, unlike other indoor scenes which lack these specific features.", + "A synagogue has distinct religious symbols, prayer items, and seating arrangements not found in other indoor scenes.", + "A Star of David symbol is unique to indoor synagogue scenes among all types of scenes." + ], + "outdoor synagogue": [ + "Outdoor synagogue scenes have religious architecture and religious symbols, unlike most other outdoor scenes.", + "Look for a building with distinct religious architecture, often with a Star of David, in an outdoor setting.", + "A large, distinct Star of David symbol is unique to outdoor synagogue scenes.", + "Outdoor synagogues have distinct architectural elements like domes and star symbols, set against natural backgrounds." + ], + "television studio": [ + "A television studio scene is a controlled indoor setting with cameras, lights, and often a set for broadcasting.", + "Look for bright, artificial lighting, large cameras, and a set with a backdrop or studio markings.", + "A television studio scene has bright, controlled lighting and specific equipment, unlike natural or everyday environments.", + "A television studio scene has a large, bright, evenly lit backdrop with visible stage lighting equipment." + ], + "east asia temple": [ + "East Asia temples have distinct traditional architecture and spiritual elements not seen in most other scenes.", + "East Asia temples have distinctive pagoda roofs, intricate carvings, and traditional architectural elements.", + "Look for traditional architecture with curved roofs, intricate details, and often surrounded by natural elements.", + "East Asia temples often feature traditional pagoda-style roofs with multiple tiers and upward-curving eaves." + ], + "south asia temple": [ + "South Asia temple scenes have distinct religious architecture and cultural elements not seen in other types of scenes.", + "Look for intricate carvings, domes, and spires typical of South Asian religious architecture.", + "South Asia temples have distinct features like intricate carvings, domes, and specific architectural styles not seen elsewhere.", + "South Asia temples often feature intricate, ornate carvings and distinct, multi-tiered roof structures." + ], + "indoor tennis court": [ + "Indoor tennis courts have a smooth, uniform surface with a net, unlike outdoor courts or other indoor sports areas.", + "Look for a large indoor space with a marked court, net, and often spectators or players.", + "An indoor tennis court has a large, smooth floor with a net and boundary lines inside a building.", + "An indoor tennis court has a unique combination of a hard court surface and high walls with a ceiling." + ], + "outdoor tennis court": [ + "Look for a rectangular surface with white lines, often with a net and surrounding grass or pavement.", + "An outdoor tennis court scene is a flat, rectangular area with a net, surrounded by fences or stands.", + "Outdoor tennis courts have distinct net lines and court markings, unlike most other scenes.", + "Outdoor tennis courts have distinct rectangular courts with white lines, nets, and often surrounding fences or seating." + ], + "outdoor tent": [ + "An outdoor tent scene is a temporary shelter setup in a natural environment like a campsite.", + "Outdoor tents have fabric structures and camping gear, unlike other scenes which lack these specific elements.", + "Look for a portable shelter with fabric walls and a roof, often in natural settings.", + "A outdoor tent scene has a portable, temporary shelter structure made of fabric or similar material." + ], + "indoor procenium theater": [ + "Look for a large stage with an archway at the front in a room.", + "A procenium theater has a stage with curtains, while other scenes lack this specific architectural feature.", + "A proscenium theater has a distinct stage with curtains and audience seating facing it.", + "An indoor proscenium theater scene features a stage with curtains and seating, often with decorative elements." + ], + "indoor seats theater": [ + "Look for rows of seats facing a stage with dim lighting and possibly a proscenium arch.", + "Indoor theater scenes have rows of seats and a stage, unlike other scenes with different layouts and features.", + "Indoor seats theater scenes feature rows of chairs facing a stage in a structured, enclosed performance space.", + "The unique visual cue is rows of seats facing a central stage or screen." + ], + "thriftshop": [ + "Look for cluttered spaces with mixed items, worn clothing, and low lighting typical of secondhand stores.", + "A thriftshop scene is a cluttered indoor space filled with used clothing, furniture, and various secondhand items.", + "Thrift shops have cluttered, varied items and worn textures, unlike clean, uniform scenes in other settings.", + "Thriftshop scenes are characterized by crowded racks of clothes, mixed items, and a cluttered, organized retail environment." + ], + "throne room": [ + "A throne room scene is a grand, formal space with a throne, often in a palace or castle.", + "A throne room has a large, ornate chair or seat set apart as a central focal point.", + "A throne room has grand furniture and royal decor, unlike other scenes with simpler or everyday settings.", + "Look for grand, decorated seating areas with high status symbols like thrones in formal settings." + ], + "ticket booth": [ + "A ticket booth has a small, enclosed structure with a window or counter for ticket sales.", + "A ticket booth scene has a small enclosed structure for selling tickets, unlike other open or large spaces.", + "A ticket booth scene is a small structure where people buy tickets for events or transportation.", + "A ticket booth scene has distinct features like ticket windows, counters, and often people waiting in lines." + ], + "toll plaza": [ + "Look for multiple toll booths, payment lanes, and vehicles in a structured, often roadside setting.", + "Toll plazas have distinct rows of booths, payment counters, and often heavy traffic, unlike other scenes.", + "A toll plaza scene is a road area with payment booths where drivers stop to pay fees.", + "A toll plaza has distinct toll booths and lanes, unlike other scenes that lack these specific structures." + ], + "topiary garden": [ + "Topiary gardens have distinct trimmed plant shapes and formal designs unlike natural or wild garden scenes.", + "Topiary gardens have sculpted plants, while other scenes lack these trimmed, artistic plant shapes.", + "Look for neatly trimmed, sculpted plants forming shapes, often with paths or open spaces around them.", + "Topiary gardens are uniquely characterized by sculpted, trimmed plants shaped into specific forms or figures." + ], + "tower": [ + "Towers have tall, distinct structures with unique architectural elements that stand out in any scene.", + "Look for tall, slender structures with multiple levels, often reaching high into the sky.", + "A tower scene is a tall, prominent structure standing alone or in a city, often with a view.", + "Tall, slender structures with multiple levels reaching high above the surrounding environment." + ], + "toyshop": [ + "A toyshop scene is filled with colorful toys and displays, making it look playful and child-friendly.", + "A toyshop scene is recognizable by its abundance of colorful toys, shelves, and playful decorations.", + "A toyshop scene has bright colors, many toys, and shelves filled with playthings.", + "A toyshop has bright colors and many small objects, unlike other scenes that vary in items and lighting." + ], + "outdoor track": [ + "An outdoor track scene is a sports field with lanes for running, often surrounded by grass or seating.", + "Outdoor track scenes have running lanes and start/finish lines, unlike other scenes which lack these features.", + "Outdoor track scenes have distinct running tracks, starting blocks, and often a surrounding grassy area.", + "Look for long, straight, parallel lines with a running surface and often a grassy border." + ], + "train railway": [ + "Look for long, straight tracks, trains, and stations to distinguish train railway scenes from others.", + "A train railway scene has tracks and trains, while other scenes lack these specific transportation elements.", + "A train railway scene has distinct tracks, trains, and often industrial or rural settings for recognition.", + "A train railway scene features tracks, trains, and stations, often with people or vehicles nearby." + ], + "platform train station": [ + "Platform train stations have visible train tracks and platforms where passengers board or exit trains.", + "Platform train stations have tracks and waiting areas, unlike other scenes which lack these specific elements.", + "A platform train station scene is an indoor or outdoor area with trains, platforms, and waiting passengers.", + "Platform train stations have distinct tracks, platforms, and waiting areas with unique architectural elements." + ], + "tree farm": [ + "A tree farm scene is a large area with many evenly spaced trees, often for commercial use.", + "Tree farms have evenly spaced, young trees in rows, often with bare ground, distinguishing them from natural forests.", + "Look for rows of evenly spaced trees, often with uniform height, in a cultivated, open landscape.", + "Tree farm scenes have orderly rows of young trees, unlike natural forests with varied, mature trees." + ], + "tree house": [ + "Tree houses have elevated wooden structures with natural surroundings, distinguishing them from ground-level or urban scenes.", + "A tree house scene is an elevated wooden structure built among trees, often for recreational use.", + "A tree house scene has elevated wooden structures in trees, unlike ground-level or indoor scenes.", + "Look for elevated wooden structures in natural settings with surrounding foliage and ground-level views." + ], + "trench": [ + "Look for long, narrow depressions in the ground, often with soldiers or equipment nearby.", + "Trench scenes have distinct muddy, dug-out paths with military equipment, unlike other natural or urban environments.", + "A trench scene is a narrow, dug-out path often seen in war zones or construction sites.", + "A trench scene has muddy, dug-out areas, while other scenes have natural or built surfaces without such features." + ], + "coral reef underwater": [ + "Coral reefs have colorful, diverse marine life and rock formations, unlike most other scenes.", + "Look for vibrant colors, diverse marine life, and rocky formations under water.", + "Coral reefs have colorful, diverse marine life and unique rock formations not found in other underwater scenes.", + "A coral reef underwater scene is a colorful, vibrant environment with diverse marine life and coral formations." + ], + "utility room": [ + "A utility room is a small space with washing machines and laundry supplies, often near a home's entrance.", + "Utility rooms have distinct features like washing machines, dryers, and utility sinks, setting them apart from other scenes.", + "A utility room has washing machines and laundry items, unlike other scenes which lack these specific features.", + "Utility rooms often have visible washing machines or dryers, which are not common in other scenes." + ], + "valley": [ + "A valley scene has a distinct visual cue of land enclosed by mountains or hills on both sides.", + "A valley scene is a landscape with rolling hills and a low area between them, often with a river.", + "Valleys are recognized by their deep, narrow terrain with sloping sides and often a river or stream running through.", + "A valley scene has a distinct appearance with mountains on both sides and a lower area in between." + ], + "van interior": [ + "A van interior has more seating and storage areas compared to other scenes like rooms or vehicles.", + "Look for dashboard, steering wheel, seats, and windows inside a vehicle to identify a van interior scene.", + "A van interior scene shows a vehicle's inside with seats, windows, and storage areas.", + "A van interior scene has distinct features like dashboard, steering wheel, seats, and windows compared to other scenes." + ], + "vegetable garden": [ + "A vegetable garden scene has plants and vegetables, unlike other scenes that may show buildings or nature.", + "A vegetable garden scene has distinct rows of planted vegetables and natural, earthy elements.", + "Look for rows of planted vegetables, raised beds, and gardening tools in a natural outdoor setting.", + "A vegetable garden scene shows plants and vegetables growing in rows with soil and greenery around them." + ], + "veranda": [ + "A veranda scene has an open, covered porch area, unlike indoor or fully outdoor scenes.", + "Look for open, covered porch areas attached to buildings with visible support structures and outdoor seating.", + "A veranda scene is an outdoor porch area with a roof and open sides, often near a house.", + "A veranda scene has distinct features like open porch, railing, and outdoor setting with indoor connections." + ], + "veterinarians office": [ + "A veterinarians office has medical equipment and animals, often with people caring for them in a clean setting.", + "Look for medical equipment, animal examination tables, and veterinary supplies in a clean, professional setting.", + "A veterinarians office has medical equipment and animal-related items, unlike other scenes which lack these specific features.", + "A veterinarians office has unique medical equipment and animal presence, unlike typical healthcare or home settings." + ], + "viaduct": [ + "A viaduct scene is recognized by tall arches and bridges crossing over valleys or roads.", + "Look for tall, arched structures crossing valleys or roads with multiple spans and supporting pillars.", + "A viaduct scene has tall bridges with arches, unlike other scenes that lack such prominent elevated structures.", + "A viaduct scene uniquely features multiple arches or bridges crossing over a valley or roadway." + ], + "videostore": [ + "A videostore scene is recognizable by shelves filled with movie cases and a retail environment.", + "Look for shelves filled with videos, a checkout counter, and a small retail environment.", + "A videostore scene has shelves with movie boxes, unlike other scenes that show different objects or environments.", + "A videostore scene features shelves filled with movies, often with customers browsing or employees working." + ], + "village": [ + "Look for small houses, narrow roads, greenery, and a peaceful setting with fewer buildings than a city.", + "Village scenes have small houses, winding paths, and natural surroundings like trees and fields.", + "A village scene has rural buildings and open spaces, unlike urban or natural scenes with different structures or landscapes.", + "A village scene is a small settlement with houses, roads, and greenery in a rural setting." + ], + "vineyard": [ + "Look for rows of grapevines, green leaves, and possibly trellises in an outdoor setting.", + "A vineyard scene is a green field with grapevines and often a winery or trellises.", + "Vineyards have rows of grapevines, green leaves, and often a rural setting with trellises.", + "Vineyard scenes have rows of grapevines, while other scenes lack this specific agricultural pattern." + ], + "volcano": [ + "Volcano scenes have distinct features like lava, smoke, and craters that set them apart from other natural scenes.", + "Look for a large, cone-shaped mountain with a crater and signs of eruption or lava.", + "A volcano scene has a unique visual cue of a mountain with an opening that can erupt.", + "Volcano scenes have distinct fiery or rocky formations, unlike other scenes which lack such geological features." + ], + "indoor volleyball court": [ + "Look for a large indoor space with a net, raised playing area, and often spectators or players.", + "Indoor volleyball courts have a specific net, floor, and boundary markings, unlike most other indoor or outdoor scenes.", + "An indoor volleyball court is a large room with a net, floor lines, and often spectators.", + "The presence of a raised net dividing the court into two equal halves is unique to indoor volleyball scenes." + ], + "outdoor volleyball court": [ + "Look for a sandy area with a net, two teams, and a ball, often near water.", + "An outdoor volleyball court has a net and lines on sand or grass, unlike other scenes.", + "Outdoor volleyball courts have distinct net structures, sand surfaces, and players in specific playing positions.", + "An outdoor volleyball court scene is a sandy area with a net, players, and boundary lines." + ], + "waiting room": [ + "A waiting room has distinct seating arrangements and often a reception desk for visitors.", + "A waiting room has chairs, people, and often a desk or counter in a calm, indoor setting.", + "A waiting room has chairs and people, while other scenes lack these specific elements.", + "A waiting room scene has distinct seating arrangements and often includes magazines or digital displays." + ], + "indoor warehouse": [ + "Indoor warehouses have large empty spaces and stacked goods, unlike other scenes with varied natural or urban elements.", + "An indoor warehouse scene is a large, open space with shelves, storage units, and industrial equipment.", + "Indoor warehouses have large open spaces, high ceilings, and organized storage racks with uniform lighting.", + "Look for large, open spaces with stacked goods, shelves, and industrial elements inside a building." + ], + "water tower": [ + "Look for tall, cylindrical structures with water tanks on top, often near urban or rural areas.", + "Water towers have tall, cylindrical structures with distinct tanks, often located in open areas or near buildings.", + "Water tower scenes have distinct tall structures, while other scenes lack these specific elevated tanks.", + "A water tower scene typically shows a tall, cylindrical structure used to store and supply water in various settings." + ], + "block waterfall": [ + "A block waterfall scene has a distinct cascade of water flowing in distinct, separated layers.", + "A block waterfall scene has distinct layered waterfalls, unlike other scenes with smoother water or no waterfalls.", + "Look for a tall, wide waterfall with distinct blocks or steps flowing down a rocky surface.", + "A block waterfall scene is a natural landscape featuring a waterfall with distinct, layered rock formations." + ], + "fan waterfall": [ + "A fan waterfall scene has moving water and rocks, unlike other scenes which lack these elements.", + "A fan waterfall scene has flowing water, rocks, and vegetation, distinguishing it from other natural or urban scenes.", + "A fan waterfall scene uniquely features a man-made structure combined with flowing water.", + "Look for flowing water, rocks, and vegetation, often with a steep drop and misty surroundings." + ], + "plunge waterfall": [ + "A plunge waterfall has a vertical drop where water falls straight down into a pool below.", + "Look for a tall, vertical water drop with a clear plunge pool at the bottom.", + "A plunge waterfall scene has a vertical drop with water falling straight down, unlike other scenes.", + "A plunge waterfall scene has a tall, vertical drop with water cascading straight down into a pool." + ], + "watering hole": [ + "Look for natural outdoor areas with water, animals, and vegetation, often with a dry landscape nearby.", + "A watering hole scene is a natural outdoor area where animals gather to drink water.", + "A watering hole scene has distinct features like animals gathering, water bodies, and natural savanna or forest settings.", + "A watering hole scene has animals near water, while other scenes lack this specific wildlife and water feature." + ], + "wave": [ + "Waves have distinct, undulating water patterns that rise and fall, unlike any other scene type.", + "Look for large bodies of water with visible ripples or crests moving in a rhythmic pattern.", + "Wave scenes have water with visible motion, unlike static water or land-based scenes.", + "Waves have distinct rolling patterns, dynamic motion, and foamy crests that set them apart from other water scenes." + ], + "wet bar": [ + "A wet bar scene is a place with a counter, sink, and taps, often in a kitchen or pub.", + "Look for a small counter with sink, taps, and stools, often in a home or commercial setting.", + "A wet bar scene has a counter with sink and taps, unlike other scenes which lack these features.", + "A wet bar scene has distinct features like a counter, sink, and bar stools, often in a home setting." + ], + "wheat field": [ + "Look for vast, golden-yellow fields with tall, swaying stalks and few other objects.", + "Wheat fields have uniform golden-yellow crops, while other scenes vary in colors, structures, and natural elements.", + "Wheat fields have tall, golden stalks, uniform rows, and open landscapes, distinguishing them from other agricultural or natural scenes.", + "The presence of tall, golden, swaying stalks with heads of grain is unique to a wheat field." + ], + "wind farm": [ + "Look for large, rotating turbines spread across open land or water with a consistent pattern.", + "Wind farms have large, rotating turbines on open land, often with multiple structures spread out.", + "Wind turbines are the unique visual cue that distinguishes a wind farm from other scenes.", + "Wind farms have large turbines, while other scenes lack these structures and often show different natural or urban elements." + ], + "windmill": [ + "Look for tall structures with rotating blades, often near farmland or coastal areas.", + "Windmill scenes have tall rotating blades and a tower structure, often in rural or open landscapes.", + "A windmill scene has tall rotating structures, while other scenes lack these distinctive mechanical elements.", + "A windmill scene typically shows a tall structure with rotating blades in an open landscape." + ], + "barrel storage wine cellar": [ + "A barrel storage wine cellar has wooden barrels, while other scenes lack this specific storage feature.", + "Look for wooden barrels, racks, and bottles in a dimly lit room with a cellar-like atmosphere.", + "The presence of wooden wine barrels specifically designed for aging wine is unique to this scene.", + "A barrel storage wine cellar scene has aging wooden barrels and racks in a dimly lit, cool environment." + ], + "bottle storage wine cellar": [ + "A bottle storage wine cellar scene is recognized by rows of wine bottles stored in racks.", + "A bottle storage wine cellar scene is a room filled with shelves holding many wine bottles.", + "Look for racks holding bottles, often in a cool, dimly lit room with wooden or metal structures.", + "A bottle storage wine cellar scene has rows of wine bottles, unlike other scenes with different objects or layouts." + ], + "indoor wrestling ring": [ + "An indoor wrestling ring scene is a squared-off arena with ropes and turnbuckles for wrestling matches.", + "Look for a squared-off platform with ropes and turnbuckles inside a building.", + "An indoor wrestling ring scene has a circular ring with ropes and turnbuckles, unlike other scenes.", + "An indoor wrestling ring has a raised platform with ropes and turnbuckles, distinct from other indoor scenes." + ], + "yard": [ + "Yard scenes have open spaces, grass, and often fences or houses, distinguishing them from other outdoor settings.", + "Look for open spaces with grass, pathways, and outdoor furniture near buildings or houses.", + "A yard scene has open outdoor space with grass or dirt, unlike indoor or urban scenes with buildings or streets.", + "A yard scene is an outdoor area with grass, plants, and often a house or fence nearby." + ], + "youth hostel": [ + "Look for shared rooms, bunk beds, and communal areas typical of budget accommodations for travelers.", + "Youth hostels have distinct features like bunk beds, shared living spaces, and communal areas compared to other scenes.", + "Youth hostels often have bunk beds, which are not typically found in other types of scenes.", + "A youth hostel scene often shows shared, simple rooms with bunk beds, unlike private or luxurious accommodations." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/StanfordCars.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/StanfordCars.json new file mode 100644 index 0000000..233a958 --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/StanfordCars.json @@ -0,0 +1,1178 @@ +{ + "2012 Audi TTS Coupe": [ + "The 2012 Audi TTS Coupe features sleek lines sporty design and distinctive headlights differentiating it from other cars in appearance.", + "A 2012 Audi TTS Coupe is sleek with sporty design featuring two doors and a distinctive front grille among cars.", + "The 2012 Audi TTS Coupe features sleek lines sporty design and distinctive LED headlights for easy identification among cars.", + "The 2012 Audi TTS Coupe features sleek lines sporty design and distinctive circular headlights for easy identification among cars." + ], + "2012 Acura TL Sedan": [ + "Identify a 2012 Acura TL Sedan by its sleek design sharp headlights and distinctive grille among various car types easily.", + "The 2012 Acura TL Sedan features sleek lines a prominent grille and distinctive headlights for easy identification among various car types.", + "The 2012 Acura TL Sedan features sleek lines a sporty grille and distinct headlights differing from other cars in design and style.", + "The 2012 Acura TL Sedan is sleek with a sporty design and a distinctive front grille among all car types." + ], + "2007 Dodge Dakota Club Cab": [ + "The 2007 Dodge Dakota Club Cab has a distinct boxy shape and extended cab design unlike many other car types in appearance.", + "A 2007 Dodge Dakota Club Cab is a midsize pickup with a short bed and extended cab for extra passenger space and utility.", + "Look for a two door truck with a short bed and Dodge Dakota badge for identification easily.", + "The 2007 Dodge Dakota Club Cab features a distinctive boxy shape with a short bed and unique front grille for easy identification." + ], + "2012 Hyundai Sonata Hybrid Sedan": [ + "The 2012 Hyundai Sonata Hybrid Sedan is a sleek four door vehicle with a modern design and eco friendly features for urban driving.", + "The 2012 Hyundai Sonata Hybrid Sedan has a sleek aerodynamic design and hybrid badge distinguishing it from other cars in appearance.", + "The 2012 Hyundai Sonata Hybrid Sedan features sleek aerodynamic design with distinctive grille and eco friendly hybrid technology for efficient performance.", + "Look for a sleek sedan with a distinctive front grille and eco friendly badge on a 2012 Hyundai Sonata Hybrid model." + ], + "2012 Ford F-450 Super Duty Crew Cab": [ + "The 2012 Ford F 450 Super Duty Crew Cab has a large boxy body and heavy duty design distinguishing it visually.", + "A 2012 Ford F 450 Super Duty Crew Cab is large robust with four doors and a heavy duty design for tough tasks.", + "The 2012 Ford F 450 Super Duty Crew Cab is larger with a robust build and four full size doors unlike smaller cars.", + "The 2012 Ford F450 Super Duty Crew Cab is large with four doors and a robust heavy duty truck design for utility and power." + ], + "1993 Geo Metro Convertible": [ + "The 1993 Geo Metro Convertible is small compact with a soft top and a boxy design differing from larger modern cars.", + "The Geo Metro Convertible has a compact body small wheels and a distinctive soft top roof for easy identification among cars.", + "Identify it by its small compact body convertible top and unique front grille design from the nineties era cars.", + "The 1993 Geo Metro Convertible uniquely features a compact body with a soft top and distinctive front grille design among cars." + ], + "2012 Dodge Journey SUV": [ + "A 2012 Dodge Journey SUV is a midsize family vehicle with a boxy design and practical features for everyday use and comfort.", + "A 2012 Dodge Journey SUV has a boxy design higher ground clearance and larger body compared to sedans and coupes.", + "Identify a 2012 Dodge Journey SUV by its compact size sleek design and distinctive front grille shape among various cars.", + "The 2012 Dodge Journey SUV features a distinctive grille shape and compact body style setting it apart from other car types easily." + ], + "2012 Dodge Charger Sedan": [ + "A 2012 Dodge Charger Sedan is a four door vehicle with a sleek body and distinctive front grille design among cars.", + "The 2012 Dodge Charger Sedan has a sleek body four doors and a distinctive grille differing from compact sports cars and SUVs.", + "The 2012 Dodge Charger Sedan features a sleek body design with a distinctive grille and aggressive headlights for easy identification among cars.", + "Identify a 2012 Dodge Charger Sedan by its sleek design wide grille and distinctive taillights in a four door body style." + ], + "2012 Mitsubishi Lancer Sedan": [ + "Identify it by its sleek compact body four doors and distinctive front grille design typical of Mitsubishi models from that era", + "A 2012 Mitsubishi Lancer Sedan is a compact car with a sleek design and modern features typical of its era.", + "The 2012 Mitsubishi Lancer Sedan has a compact body sleek design and distinctive front grille differing from other car types visibly.", + "The 2012 Mitsubishi Lancer Sedan features a sleek compact design with a distinctive front grille and sharp headlight contours for easy recognition." + ], + "2012 Chevrolet Traverse SUV": [ + "The 2012 Chevrolet Traverse SUV has a large boxy design with a high roofline and spacious interior unlike smaller cars.", + "The 2012 Chevrolet Traverse SUV has a distinctive large grille and sleek headlight design setting it apart from other cars.", + "A 2012 Chevrolet Traverse SUV is large with a boxy design four doors and a high roofline for ample interior space.", + "The 2012 Chevrolet Traverse SUV features a large grille prominent headlights and a robust body design for easy recognition among cars." + ], + "2012 Buick Verano Sedan": [ + "The 2012 Buick Verano Sedan is a compact four door vehicle with a sleek design and modern features for its era", + "Identify it by its sleek design compact size and distinctive Buick grille shape among various car types easily.", + "The 2012 Buick Verano Sedan features sleek body design compact size and distinctive front grille for easy recognition among cars.", + "The 2012 Buick Verano Sedan has a sleek compact design with a distinctive grille and modern headlights differing from other car types." + ], + "2012 Toyota Sequoia SUV": [ + "A 2012 Toyota Sequoia SUV is large with a robust design featuring a prominent grille and powerful stance among cars.", + "The 2012 Toyota Sequoia SUV is larger bulkier and has a distinctive front grille compared to smaller more streamlined car types", + "Identify a 2012 Toyota Sequoia SUV by its large size distinctive grille and robust build among various car types easily.", + "The 2012 Toyota Sequoia SUV has a distinct large grille and robust body shape setting it apart from other cars in the dataset." + ], + "2007 Hyundai Elantra Sedan": [ + "The 2007 Hyundai Elantra Sedan has a compact design four doors and a smooth front grille differing from sporty or luxury cars.", + "A 2007 Hyundai Elantra Sedan is compact with a sleek design four doors and a smooth front grille among various car types.", + "Look for a compact car with a sleek design four doors and a distinctive Hyundai grille from the year two thousand seven.", + "The 2007 Hyundai Elantra Sedan has a sleek compact body four doors and a distinctive front grille for easy identification among cars." + ], + "1997 Dodge Caravan Minivan": [ + "A 1997 Dodge Caravan Minivan has a boxy shape with sliding doors and a high roof for passenger comfort and cargo space.", + "The 1997 Dodge Caravan Minivan has a boxy shape sliding doors and a higher roof compared to most cars for easy access and cargo space.", + "Look for a large boxy vehicle with sliding doors and a prominent Dodge grille from the mid nineties era.", + "The 1997 Dodge Caravan Minivan features a boxy shape sliding side doors and a prominent front grille for easy identification among cars." + ], + "2012 Volvo C30 Hatchback": [ + "A 2012 Volvo C30 Hatchback is compact with a sleek design and distinctive front grille among various car types.", + "The 2012 Volvo C30 Hatchback features a compact design sleek body and distinctive front grille for easy identification among cars.", + "The 2012 Volvo C30 Hatchback uniquely features a compact body with a distinctive rear spoiler and integrated taillights design.", + "The 2012 Volvo C30 Hatchback has a compact design with a distinctive rear window spoiler and unique side mirrors differing from other cars." + ], + "1999 Plymouth Neon Coupe": [ + "A 1999 Plymouth Neon Coupe has a compact body sleek design and two doors distinguishing it from larger vehicle types in the dataset", + "Identify a 1999 Plymouth Neon Coupe by its compact size two door design and distinctive front grille shape in cars.", + "The 1999 Plymouth Neon Coupe has a compact two door design with a sleek body style differing from larger multi door vehicles.", + "The 1999 Plymouth Neon Coupe has a distinctive compact body style and sharp front grille design not common in other cars." + ], + "2007 Chevrolet Malibu Sedan": [ + "A 2007 Chevrolet Malibu Sedan is a four door vehicle with a sleek design and a distinctive front grille among cars.", + "Look for a four door sedan with a sleek body design and distinctive Chevrolet grille shape from 2007 era models only.", + "The 2007 Chevrolet Malibu Sedan features a sleek body design curved headlights and a distinctive front grille for easy identification among cars.", + "The 2007 Chevrolet Malibu Sedan uniquely features a sleek body design with a distinctive front grille and curved headlights for its era." + ], + "2012 Volkswagen Beetle Hatchback": [ + "The 2012 Volkswagen Beetle Hatchback is a compact car with a round shape and distinctive vintage inspired design elements and modern features.", + "Identify it by its rounded shape iconic design and two door layout distinguishing it from other cars easily.", + "The 2012 Volkswagen Beetle Hatchback has a rounded compact shape and two doors distinguishing it from larger four door sedans and SUVs.", + "The 2012 Volkswagen Beetle Hatchback features a rounded body shape iconic headlights and a distinctive rear spoiler for easy identification among cars." + ], + "2007 Chevrolet Corvette Ron Fellows Edition Z06": [ + "The 2007 Chevrolet Corvette Ron Fellows Edition Z06 has unique aerodynamic features and a distinctive racing stripe absent in other cars.", + "Look for a black Corvette with distinctive red racing stripes and unique Ron Fellows Edition Z06 badging on the side for identification.", + "The 2007 Chevrolet Corvette Ron Fellows Edition Z06 has unique black stripes and Fellows signature on its side panel distinguishing it visually.", + "The 2007 Chevrolet Corvette Ron Fellows Edition Z06 is a sleek red sports car with distinctive black stripes and aerodynamic design features." + ], + "2010 Chrysler 300 SRT-8": [ + "The 2010 Chrysler 300 SRT8 has distinctive aggressive styling and large air intakes not common in other cars", + "The 2010 Chrysler 300 SRT8 stands out with its aggressive styling large grille and sporty wheels compared to other cars.", + "Identify a 2010 Chrysler 300 SRT 8 by its aggressive grille bold hood scoops and distinctive taillights design easily.", + "The 2010 Chrysler 300 SRT 8 features a bold grille aggressive headlights and a sporty rear spoiler for distinct recognition." + ], + "2010 BMW M6 Convertible": [ + "A 2010 BMW M6 Convertible is sleek with a powerful engine luxury interior and distinctive sporty design among cars.", + "The 2010 BMW M6 Convertible features sleek design sporty performance and luxurious interior distinguishing it from other cars in appearance.", + "The 2010 BMW M6 Convertible features sleek lines a powerful engine and a distinctive soft top for easy recognition among cars.", + "Identify the 2010 BMW M6 Convertible by its sleek design large grille and distinctive four exhaust pipes under rear end." + ], + "2012 GMC Yukon Hybrid SUV": [ + "The 2012 GMC Yukon Hybrid SUV is larger bulkier and has distinct grille design compared to smaller more streamlined cars in the dataset", + "A 2012 GMC Yukon Hybrid SUV is large with a boxy design and features hybrid technology for efficiency and power.", + "Identify it by its large size distinctive grille and hybrid badge on the side of the vehicle body easily.", + "The 2012 GMC Yukon Hybrid SUV uniquely features a large grille and hybrid badge distinguishing it from other car types in appearance." + ], + "2012 Nissan Juke Hatchback": [ + "The 2012 Nissan Juke Hatchback is compact stylish with a unique front grille and bold curves distinguishing it from other cars.", + "The 2012 Nissan Juke Hatchback has a compact body unique front grille and bold design distinguishing it from other car types in appearance.", + "The 2012 Nissan Juke Hatchback features unique compact design bold colors and distinctive front grille for easy identification among cars.", + "The 2012 Nissan Juke Hatchback uniquely features a bold front grille and distinctive rear light design compared to other cars." + ], + "1993 Volvo 240 Sedan": [ + "A 1993 Volvo 240 Sedan is a boxy four door vehicle with a long body and a distinctive rear design among cars.", + "The 1993 Volvo 240 Sedan has a boxy design and upright grille distinguishing it from sleeker modern cars with curved edges.", + "Look for a boxy sedan with straight lines and a distinctive grille and simple headlights from the early nineties era.", + "The 1993 Volvo 240 Sedan features a boxy shape with a distinctive rear window and simple side mirrors for easy identification among cars." + ], + "2012 Suzuki SX4 Sedan": [ + "The 2012 Suzuki SX4 Sedan has a compact body four doors and a distinctive front grille unlike many larger cars with varied designs.", + "The 2012 Suzuki SX4 Sedan is compact with a sleek design and has a distinctive front grille and sporty side mirrors.", + "The 2012 Suzuki SX4 Sedan features a compact body sleek lines and a distinctive front grille for easy identification among cars.", + "The 2012 Suzuki SX4 Sedan features a distinctive front grille shape and compact body style unlike many other car types." + ], + "2010 Dodge Ram Pickup 3500 Crew Cab": [ + "A 2010 Dodge Ram Pickup 3500 Crew Cab is large robust with four doors and a powerful truck design for heavy duty tasks", + "Look for a large truck with four doors and a powerful build typical of heavy duty Ram models from 2010 era.", + "The 2010 Dodge Ram Pickup 3500 Crew Cab is larger with a boxy shape and distinctively robust compared to other cars.", + "The 2010 Dodge Ram Pickup 3500 Crew Cab has a large robust frame and distinctive front grille design setting it apart visually." + ], + "2009 Spyker C8 Coupe": [ + "The 2009 Spyker C8 Coupe has a sleek design with a low profile and distinctive front grille making it easily recognizable among cars.", + "The 2009 Spyker C8 Coupe has sleek aerodynamic design sharp angles and distinctive headlights unlike many other cars in the dataset", + "The 2009 Spyker C8 Coupe is sleek with a low profile sharp edges and a distinctive grille among all car types", + "The 2009 Spyker C8 Coupe features sleek aerodynamic body low profile and distinctive front grille for easy recognition among cars." + ], + "2012 Land Rover Range Rover SUV": [ + "A 2012 Land Rover Range Rover SUV is large luxurious with a boxy design and high ground clearance among cars.", + "The 2012 Land Rover Range Rover SUV stands out with its luxurious design high ground clearance and distinctive grille shape compared to others.", + "The 2012 Land Rover Range Rover SUV features a robust body design luxurious interior and distinctive grille for easy identification among cars.", + "The 2012 Land Rover Range Rover SUV stands out with its sleek design large grille and distinctive headlights in the crowd." + ], + "2012 Hyundai Elantra Touring Hatchback": [ + "Look for a compact car with a sleek design four doors and a distinctive rear hatchback shape typical of Hyundai models from 2012", + "The 2012 Hyundai Elantra Touring Hatchback has a compact body sleek design and distinctive rear lights for easy identification among cars.", + "The 2012 Hyundai Elantra Touring Hatchback has a compact body style rear door and liftgate distinguishing it from sedans and SUVs visually.", + "The 2012 Hyundai Elantra Touring Hatchback is compact with a sleek design and practical rear door for easy cargo access in city cars." + ], + "2010 Chevrolet Cobalt SS": [ + "A 2010 Chevrolet Cobalt SS is a compact car with sporty design and distinctive front grille among various car types.", + "The 2010 Chevrolet Cobalt SS has a sporty design with a distinctive grille and aggressive styling differing from other cars in appearance.", + "The 2010 Chevrolet Cobalt SS features a sporty design with a distinctive front grille and aggressive headlights for easy identification.", + "Look for a 2010 Chevrolet Cobalt SS with sporty design red color and black racing stripes for easy identification among cars." + ], + "2012 Hyundai Veracruz SUV": [ + "The 2012 Hyundai Veracruz SUV has a boxy design with a large grille and sleek headlights distinguishing it among cars.", + "Identify it by its large size sleek design and distinctive Hyundai grille shape among various car types easily.", + "The 2012 Hyundai Veracruz SUV has a boxy design large windows and a distinctive front grille differing from sleeker cars.", + "The 2012 Hyundai Veracruz SUV has a distinctive front grille design and body shape not seen in other car types." + ], + "2012 Ferrari 458 Italia Coupe": [ + "The Ferrari 458 Italia Coupe has sleek aerodynamic design vibrant colors and distinctive side air intakes unlike many other cars in appearance", + "Identify it by sleek red body mid engine design and distinctive circular taillights unique to Ferrari models of that era", + "The 2012 Ferrari 458 Italia Coupe features sleek aerodynamic design low profile and distinctive circular taillights for easy recognition among cars.", + "A 2012 Ferrari 458 Italia Coupe is sleek red with sharp angles and distinctive headlights among all car types" + ], + "2012 BMW Z4 Convertible": [ + "A 2012 BMW Z4 Convertible is sleek with a soft top and distinctive front grille among various car types in the dataset.", + "Identify a 2012 BMW Z4 Convertible by its sleek two door design soft top and distinctive kidney grille shape easily.", + "The 2012 BMW Z4 Convertible is recognized by its sleek two door design soft top roof and distinctive front grille shape for easy identification.", + "The 2012 BMW Z4 Convertible has a sleek two door design soft top roof and distinctive front grille differing from other cars." + ], + "2009 Dodge Charger SRT-8": [ + "The 2009 Dodge Charger SRT8 is a powerful four door sedan with a sleek design and aggressive styling features.", + "Identify a 2009 Dodge Charger SRT eight by its aggressive styling large grille and distinctive headlights design features easily.", + "The 2009 Dodge Charger SRT8 has a distinctive aggressive front grille large wheels and a powerful stance unlike many other cars.", + "The 2009 Dodge Charger SRT8 features a powerful V8 engine aggressive styling and distinctive taillights for easy recognition among cars." + ], + "2012 Fisker Karma Sedan": [ + "The 2012 Fisker Karma Sedan features sleek lines a hybrid powertrain and a distinctive luxury design setting it apart from common cars.", + "The 2012 Fisker Karma Sedan stands out with its sleek design long body and distinctive front grille among various cars.", + "The 2012 Fisker Karma Sedan uniquely features a sleek design with a distinctive front grille and elongated body shape compared to others.", + "The 2012 Fisker Karma Sedan features sleek lines a solar roof and unique hybrid technology distinguishing it from conventional cars easily." + ], + "2011 Infiniti QX56 SUV": [ + "The 2011 Infiniti QX56 SUV is large boxy with a luxurious design and prominent grille distinguishing it from other cars in the dataset", + "The 2011 Infiniti QX56 SUV is larger bulkier with a boxy shape compared to sleeker more aerodynamic cars in the dataset.", + "The 2011 Infiniti QX56 SUV has a distinctive large chrome grille and boxy shape unlike many other cars in the dataset.", + "The 2011 Infiniti QX56 SUV features a large body size distinctive grille and luxurious interior for easy identification among cars." + ], + "2012 Audi A5 Coupe": [ + "The 2012 Audi A5 Coupe has sleek curves a low profile and distinctive headlights differing from other cars in style and design elements.", + "The 2012 Audi A5 Coupe features sleek curves a sporty design and a distinctive front grille among various car types.", + "The 2012 Audi A5 Coupe features sleek lines a distinctive front grille and LED headlights for easy identification among cars.", + "The 2012 Audi A5 Coupe features sleek lines a distinctive grille and LED headlights for easy identification among cars." + ], + "1991 Volkswagen Golf Hatchback": [ + "Look for a compact car with a rounded body four doors and a rear hatch typical of nineties design trends in Volkswagen models.", + "A 1991 Volkswagen Golf Hatchback is compact with a rounded shape and a rear hatch for practicality and efficiency in city driving.", + "The 1991 Volkswagen Golf Hatchback has a compact boxy shape with a rear hatch unlike many sedans which have a separate trunk section.", + "The 1991 Volkswagen Golf Hatchback features a compact body rounded edges and a distinctive rear spoiler for easy identification among cars." + ], + "2012 GMC Savana Van": [ + "The 2012 GMC Savana Van has a boxy shape large windows and sliding doors unlike sleeker cars with aerodynamic designs and fixed windows.", + "Identify a 2012 GMC Savana Van by its large boxy shape and sliding side door distinguishing it from other car types easily.", + "The 2012 GMC Savana Van is a large boxy vehicle with a high roof and sliding side doors for easy access.", + "The 2012 GMC Savana Van features a boxy shape large sliding doors and a high roof for easy access and cargo space." + ], + "2012 Audi TT RS Coupe": [ + "The 2012 Audi TT RS Coupe has a sleek sporty design with distinctive headlights and a compact aerodynamic body unlike other cars.", + "The 2012 Audi TT RS Coupe features sleek lines sporty design and a powerful presence distinguishing it from other cars easily.", + "Look for a sleek two door car with sporty design and distinctive large front grille and sharp headlights for identification.", + "The 2012 Audi TT RS Coupe features sleek aerodynamic design sporty alloy wheels and distinctive LED headlights for easy recognition among cars." + ], + "2012 Rolls-Royce Phantom Sedan": [ + "The 2012 Rolls Royce Phantom Sedan features a luxurious design with a long body large grille and distinctive emblem unlike common cars.", + "The 2012 Rolls Royce Phantom Sedan is luxurious with a long body elegant design and iconic grille standing out among cars.", + "Identify a 2012 Rolls Royce Phantom Sedan by its large grille iconic hood ornament and luxurious design details easily.", + "The 2012 Rolls Royce Phantom Sedan features a large grille luxurious interior and iconic hood ornament for distinct recognition among cars." + ], + "2012 Porsche Panamera Sedan": [ + "The 2012 Porsche Panamera Sedan has a sleek design low profile and distinctive headlights differing from other cars in appearance.", + "The 2012 Porsche Panamera Sedan features sleek lines a luxurious interior and distinctive headlights among various car types.", + "Identify it by its sleek design four door layout and distinctive LED headlights unique to Porsche models of that era", + "The 2012 Porsche Panamera Sedan features sleek lines a distinctive front grille and four doors for easy recognition among cars." + ], + "2012 Bentley Continental GT Coupe": [ + "The 2012 Bentley Continental GT Coupe is a luxurious sleek two door car with a powerful engine and elegant design features.", + "Identify the 2012 Bentley Continental GT Coupe by its sleek design luxurious details and distinctive grille shape among cars.", + "The 2012 Bentley Continental GT Coupe has a distinctive sleek body shape and luxurious grille design setting it apart visually.", + "The 2012 Bentley Continental GT Coupe features luxurious design sleek lines and high performance elements distinguishing it from other cars." + ], + "2012 Jeep Grand Cherokee SUV": [ + "The 2012 Jeep Grand Cherokee SUV has a boxy design large grille and rugged tires unlike sleeker more streamlined cars.", + "The 2012 Jeep Grand Cherokee SUV has a distinctive seven slot grille and rugged body design setting it apart visually from others.", + "The 2012 Jeep Grand Cherokee SUV features a robust design with a boxy shape and distinctive seven slot grille front end.", + "The 2012 Jeep Grand Cherokee SUV has a distinctive front grille and large headlights making it easily recognizable among cars." + ], + "2012 Audi R8 Coupe": [ + "The 2012 Audi R8 Coupe features sleek lines sharp angles and a low profile distinguishing it from bulkier less aerodynamic cars", + "The 2012 Audi R8 Coupe stands out with its sleek design sharp headlights and distinctive side blades near the wheels.", + "The 2012 Audi R8 Coupe features sleek aerodynamic design low profile and distinctive side blades for easy identification among cars.", + "The 2012 Audi R8 Coupe is sleek with a low profile sharp headlights and a distinctive front grille among various car types." + ], + "2007 Cadillac Escalade EXT Crew Cab": [ + "The 2007 Cadillac Escalade EXT Crew Cab is larger bulkier with a distinct grille and chrome details compared to most other cars.", + "The 2007 Cadillac Escalade EXT Crew Cab is a large luxury SUV with a long body and distinctive chrome grille design for opulence.", + "The 2007 Cadillac Escalade EXT Crew Cab is large with a distinctive chrome grille and four doors for easy passenger access and comfort.", + "The 2007 Cadillac Escalade EXT Crew Cab uniquely features a long extended cab design with a distinctive large chrome grille and vertical tail lights." + ], + "2007 Bentley Continental Flying Spur Sedan": [ + "A 2007 Bentley Continental Flying Spur Sedan is a luxurious large four door vehicle with a sleek design and powerful presence on roads.", + "The 2007 Bentley Continental Flying Spur Sedan features luxurious design elegant lines and high end finishes distinguishing it from other cars.", + "Identify it by its luxurious long body four doors and distinctive Bentley grille and emblem on front grille and hood.", + "The 2007 Bentley Continental Flying Spur Sedan features a luxurious interior sleek exterior and distinctive grille for easy identification among cars." + ], + "2012 Chevrolet Avalanche Crew Cab": [ + "The 2012 Chevrolet Avalanche Crew Cab has a large boxy shape distinct from sleeker more aerodynamic car designs in appearance.", + "A 2012 Chevrolet Avalanche Crew Cab is a large SUV with four doors and a truck bed for utility and passenger comfort.", + "Identify it by its large size four door configuration and distinctive Chevrolet grille design among various car types easily.", + "The 2012 Chevrolet Avalanche Crew Cab features a large boxy shape with a distinctive front grille and robust side steps for easy access." + ], + "2010 Dodge Dakota Crew Cab": [ + "The 2010 Dodge Dakota Crew Cab features a robust body style with four doors and a short bed for utility and comfort.", + "The 2010 Dodge Dakota Crew Cab features a boxy design large cargo space and four doors distinguishing it from sleeker compact cars.", + "Identify it by its four doors large size and distinct Dodge grille design among various car types easily.", + "The 2010 Dodge Dakota Crew Cab has a distinctive boxy shape large windows and a robust front grille for easy identification." + ], + "2010 HUMMER H3T Crew Cab": [ + "The 2010 HUMMER H3T Crew Cab is larger bulkier with a boxy shape and higher ground clearance than most cars.", + "The 2010 HUMMER H3T Crew Cab is a large boxy SUV with a robust build and distinctive rugged design features among cars.", + "Identify the 2010 HUMMER H3T Crew Cab by its boxy shape large size and distinctive front grille design among cars.", + "The 2010 HUMMER H3T Crew Cab is large with a boxy shape rugged tires and a distinctive front grille for easy recognition." + ], + "2007 Ford F-150 Regular Cab": [ + "A 2007 Ford F 150 Regular Cab is a large truck with a short bed and two doors for utility and ruggedness.", + "The 2007 Ford F 150 Regular Cab has a boxy shape short bed and two doors unlike many other cars with longer bodies and four doors", + "Identify a 2007 Ford F 150 Regular Cab by its boxy shape short bed and distinctive front grille design easily among cars.", + "The 2007 Ford F 150 Regular Cab has a boxy shape short bed and distinct grille for easy recognition among cars." + ], + "2012 Volkswagen Golf Hatchback": [ + "The 2012 Volkswagen Golf Hatchback is a compact car with a boxy design and practical features for everyday use and efficiency.", + "Identify it by compact size four doors rounded edges and distinctive Volkswagen grille design among various cars.", + "The 2012 Volkswagen Golf Hatchback features a compact body sleek design and distinctive front grille for easy identification among cars.", + "The 2012 Volkswagen Golf Hatchback has a compact design with a rear hatch and distinct front grille differing from other car types appearance." + ], + "2012 Ferrari FF Coupe": [ + "Identify the 2012 Ferrari FF Coupe by its sleek design four seats and distinctive front grille shape among various cars.", + "The Ferrari FF Coupe has a sleek aerodynamic design with a distinctive front grille and aggressive headlights unlike other cars.", + "The 2012 Ferrari FF Coupe is sleek with a distinctive front grille four doors and a luxurious sporty design setting it apart from others.", + "The 2012 Ferrari FF Coupe features a sleek design powerful engine and distinctive four seats layout for luxury and performance driving experience." + ], + "2012 Toyota Camry Sedan": [ + "The 2012 Toyota Camry Sedan has a sleek design with a distinctive front grille and smooth curves unlike many other car types.", + "A 2012 Toyota Camry Sedan is a midsize car with a sleek design and four doors for comfortable family transportation.", + "Look for a sleek sedan with a distinctive front grille and sharp headlights typical of the 2012 Toyota Camry model.", + "The 2012 Toyota Camry Sedan features a sleek design with a distinctive front grille and sharp headlights for easy identification among cars." + ], + "2012 Aston Martin V8 Vantage Convertible": [ + "A 2012 Aston Martin V8 Vantage Convertible is sleek with a low profile and a luxurious open top design for elegance and speed.", + "Identify it by sleek design low profile and distinctive Aston Martin grille and taillights among various cars easily.", + "The 2012 Aston Martin V8 Vantage Convertible features a sleek design with a distinctive soft top and elegant side strakes enhancing its sporty look.", + "The 2012 Aston Martin V8 Vantage Convertible has sleek curves luxurious design and a distinctive front grille differing from other cars visibly." + ], + "1994 Audi 100 Sedan": [ + "Identify the 1994 Audi 100 Sedan by its sleek design four doors and distinctive front grille shape among various cars easily.", + "The 1994 Audi 100 Sedan features a sleek design with a long body four doors and a distinctive front grille among cars.", + "The 1994 Audi 100 Sedan features a sleek body design four doors and a distinctive front grille for easy identification among cars.", + "The 1994 Audi 100 Sedan features a sleek body design four doors and a distinctive front grille differing from other car types visibly." + ], + "2011 Ford Ranger SuperCab": [ + "A 2011 Ford Ranger SuperCab is a midsize pickup truck with a two door cab and an extended cargo bed design.", + "The 2011 Ford Ranger SuperCab has a distinctive boxy shape and double cab design unlike many sleeker modern cars in appearance.", + "Look for a two door truck with extended cab and distinctive Ford grille and headlights from 2011 model year.", + "The 2011 Ford Ranger SuperCab features a distinctive boxy shape large cargo bed and robust front grille for easy identification among cars." + ], + "2012 GMC Canyon Extended Cab": [ + "The 2012 GMC Canyon Extended Cab is a midsize pickup truck with a four door cab and a short cargo bed design.", + "The 2012 GMC Canyon Extended Cab has a longer body and dual rear doors distinguishing it from standard cab trucks and sedans.", + "Look for a 2012 GMC Canyon Extended Cab with its distinct four doors and robust truck bed design among various car types.", + "The 2012 GMC Canyon Extended Cab features a robust build large cargo space and distinctive front grille for easy recognition among cars." + ], + "2012 Acura TSX Sedan": [ + "The 2012 Acura TSX Sedan is a sleek compact car with a sporty design and modern features distinguishing it in the market.", + "The 2012 Acura TSX Sedan has a distinctive front grille design and sleek body shape not common in other cars.", + "Identify a 2012 Acura TSX Sedan by its sleek design sharp grille and distinctive headlights among various cars easily.", + "The 2012 Acura TSX Sedan has sleek lines compact size and a distinctive grille differing from other car types visually and in design." + ], + "2012 BMW 3 Series Sedan": [ + "Identify the 2012 BMW 3 Series Sedan by its sleek design four doors and distinctive front grille shape easily among cars.", + "The 2012 BMW 3 Series Sedan features a sleek compact design with distinctive headlights and a sporty grille unlike many other cars.", + "A 2012 BMW 3 Series Sedan is sleek compact with four doors and a distinctive kidney grille design among cars.", + "The 2012 BMW 3 Series Sedan features sleek body lines a distinctive kidney grille and efficient LED headlights for easy recognition." + ], + "2012 Honda Odyssey Minivan": [ + "The 2012 Honda Odyssey Minivan has a boxy shape large sliding doors and a high roof for passenger comfort unlike sports cars.", + "A 2012 Honda Odyssey Minivan is large with sliding doors and a boxy shape designed for family comfort and cargo space.", + "Identify a 2012 Honda Odyssey Minivan by its large boxy shape sliding doors and distinct front grille design among various cars.", + "The 2012 Honda Odyssey Minivan features a boxy shape sliding doors and a distinctive front grille for easy identification among cars." + ], + "2012 Dodge Durango SUV": [ + "A 2012 Dodge Durango SUV is large with a boxy shape featuring a bold grille and distinctive headlights for a robust appearance.", + "Identify a 2012 Dodge Durango SUV by its large size boxy shape and distinctive grille design among various cars.", + "The 2012 Dodge Durango SUV has a boxy design larger size and distinctive grille differing from sleeker smaller cars in appearance.", + "The 2012 Dodge Durango SUV features a robust grille wide stance and distinctive taillights for easy recognition among various car types" + ], + "2012 Toyota Corolla Sedan": [ + "The 2012 Toyota Corolla Sedan has a compact body sleek design and fuel efficient engine differing from larger more powerful cars.", + "A 2012 Toyota Corolla Sedan is compact with a sleek design four doors and a fuel efficient engine for city driving.", + "Look for a compact car with a sleek design and Toyota emblem on the front grille and rear trunk lid for identification.", + "The 2012 Toyota Corolla Sedan features a compact body sleek headlights and a distinctive front grille for easy identification among cars." + ], + "2012 Chevrolet Camaro Convertible": [ + "A 2012 Chevrolet Camaro Convertible is a sleek two door sports car with a vibrant design and a soft top roof feature.", + "Look for a sleek two door car with a soft top and distinctive Chevrolet grille and taillights from 2012 era models", + "The 2012 Chevrolet Camaro Convertible features a sleek drop top design and sporty lines distinguishing it from other car types visually.", + "The 2012 Chevrolet Camaro Convertible features sleek lines a soft top and distinctive taillights for easy recognition among cars." + ], + "2012 Ford Edge SUV": [ + "A 2012 Ford Edge SUV is a midsize crossover with a sleek body four doors and a modern design among cars.", + "Look for a midsize SUV with a sleek body design and distinctive front grille typical of Ford models from 2012 era", + "The 2012 Ford Edge SUV has a sleek body design with a distinct grille and curved roofline differing from other car types visibly.", + "The 2012 Ford Edge SUV features a sleek design with a distinctive front grille and integrated fog lights for easy identification." + ], + "2007 Bentley Continental GT Coupe": [ + "The 2007 Bentley Continental GT Coupe has a sleek luxurious design with distinctive headlights and a powerful stance unlike common cars.", + "The 2007 Bentley Continental GT Coupe is a luxurious two door car with sleek design and powerful engine performance among others.", + "The 2007 Bentley Continental GT Coupe features a sleek body low profile and distinctive four circular headlights for easy recognition.", + "Identify it by its sleek body luxurious grille and distinctive four circular headlights unique among cars." + ], + "1994 Audi 100 Wagon": [ + "The 1994 Audi 100 Wagon has a boxy design with a long body and a distinctive rear cargo area unlike many modern cars.", + "Identify the 1994 Audi 100 Wagon by its boxy shape four doors and distinctive front grille design among cars.", + "The 1994 Audi 100 Wagon has a sleek body four doors and a spacious rear cargo area distinguishing it from others.", + "The 1994 Audi 100 Wagon features a boxy design with a long roof and distinctive side mirrors for easy identification among cars." + ], + "2012 Ford E-Series Wagon Van": [ + "The 2012 Ford E Series Wagon Van is larger bulkier and has a boxier shape than most passenger cars and sports vehicles.", + "The 2012 Ford E Series Wagon Van has a distinct boxy shape and sliding side doors unlike most cars.", + "Look for a large boxy van with sliding doors and a high roof typical of Ford E Series models from 2012 era", + "The 2012 Ford E Series Wagon Van is large boxy with sliding doors and a high roof for cargo space and passenger comfort." + ], + "2012 Jeep Patriot SUV": [ + "A 2012 Jeep Patriot SUV has a boxy design compact size and is known for its offroad capabilities and rugged appearance.", + "The 2012 Jeep Patriot SUV has a boxy shape rugged design and higher ground clearance compared to many other car types", + "Identify a 2012 Jeep Patriot SUV by its boxy shape compact size and distinctive front grille design among various cars.", + "The 2012 Jeep Patriot SUV features a distinctive boxy shape with a seven slot grille and rugged off road styling cues." + ], + "2011 Audi S6 Sedan": [ + "A 2011 Audi S6 Sedan is sleek with four doors a powerful engine and distinctive headlights among various car types", + "Identify a 2011 Audi S6 Sedan by its sleek design four doors and distinctive front grille shape among various cars.", + "The 2011 Audi S6 Sedan features sleek design sporty grille and distinctive headlights aiding its recognition among various car types easily.", + "The 2011 Audi S6 Sedan features sleek lines sporty design and distinctive headlights differing from other cars in elegance and performance attributes." + ], + "2012 Mercedes-Benz S-Class Sedan": [ + "A 2012 Mercedes Benz S Class Sedan is luxurious with sleek design and advanced features distinguishing it from other cars easily.", + "The 2012 Mercedes Benz S Class Sedan features sleek lines a luxurious design and high end finishes distinguishing it from other cars.", + "Look for a luxurious large sedan with a distinctive grille and sleek headlights typical of 2012 Mercedes Benz S Class models.", + "The 2012 Mercedes Benz S Class Sedan features a sleek design luxury interior and distinctive grille for easy recognition among cars." + ], + "2012 Hyundai Sonata Sedan": [ + "A 2012 Hyundai Sonata Sedan is a midsize car with sleek design smooth lines and a modern compact body style among cars.", + "The 2012 Hyundai Sonata Sedan has a sleek design with a long body four doors and a distinctive front grille differing from other cars.", + "Identify the 2012 Hyundai Sonata Sedan by its sleek design curved headlights and distinctive grille among various car types easily.", + "The 2012 Hyundai Sonata Sedan features sleek lines a prominent grille and distinctive headlight shape for easy identification among cars." + ], + "2012 Rolls-Royce Phantom Drophead Coupe Convertible": [ + "A 2012 Rolls Royce Phantom Drophead Coupe Convertible is luxurious with a long body soft top and elegant design among cars.", + "The 2012 Rolls Royce Phantom Drophead Coupe Convertible boasts unique luxury design with long body convertible top and elegant curves unlike others.", + "Identify it by its luxurious design long body elegant curves and unique convertible top among various car types easily.", + "The 2012 Rolls Royce Phantom Drophead Coupe Convertible boasts a luxurious interior long hood and elegant convertible top for distinctive recognition." + ], + "2006 Ford GT Coupe": [ + "The 2006 Ford GT Coupe has a sleek aerodynamic design with low profile and distinctive side air intakes unlike many other cars.", + "The 2006 Ford GT Coupe features a sleek aerodynamic body low profile and distinctive side air intakes for easy identification among cars.", + "The 2006 Ford GT Coupe features a sleek aerodynamic design with a low profile and distinctive side air intakes for performance.", + "The 2006 Ford GT Coupe features a sleek low profile with a distinctive long hood and short rear deck design easily recognizable." + ], + "2012 Cadillac CTS-V Sedan": [ + "The 2012 Cadillac CTS V Sedan is a luxury vehicle with sleek design sporty performance and distinctive grille among cars.", + "The 2012 Cadillac CTS V Sedan features a sleek design aggressive grille and sporty wheels distinguishing it from other cars in appearance.", + "The 2012 Cadillac CTS V Sedan features a sleek body aggressive grille and distinctive LED headlights for easy identification among cars.", + "The 2012 Cadillac CTS V Sedan features a distinctive grille sharp headlights and a sporty design setting it apart from others easily." + ], + "2012 BMW X3 SUV": [ + "The 2012 BMW X3 SUV features a distinctive kidney grille sleek body lines and compact SUV design for easy recognition among cars.", + "The 2012 BMW X3 SUV features a sleek compact design with distinctive headlights and a robust build for versatile driving experiences.", + "Identify a 2012 BMW X3 SUV by its compact size distinctive kidney grille and sleek headlights design among various cars.", + "The 2012 BMW X3 SUV features a distinctive kidney grille compact body and luxury design setting it apart from other car types visually." + ], + "2007 Chevrolet Express Van": [ + "A 2007 Chevrolet Express Van is a large boxy vehicle with a high roof and sliding side doors for utility and passenger transport.", + "The 2007 Chevrolet Express Van has a boxy shape large windows and a high roof for easy cargo access and passenger comfort.", + "The 2007 Chevrolet Express Van has a boxy shape large windows and sliding doors distinguishing it from most other car types in design.", + "The 2007 Chevrolet Express Van features a distinct boxy shape and large sliding side door differentiating it from other cars easily." + ], + "2007 Chevrolet Impala Sedan": [ + "The 2007 Chevrolet Impala Sedan is a four door vehicle with a sleek design and a prominent front grille among cars.", + "The 2007 Chevrolet Impala Sedan features a sleek body four doors and a distinctive front grille for easy identification among cars.", + "Look for a four door sedan with a long body and chrome grille typical of 2007 Chevrolet Impala models in the dataset.", + "The 2007 Chevrolet Impala Sedan features a distinctive front grille design and body shape not seen in other car types." + ], + "2012 Chevrolet Silverado 1500 Extended Cab": [ + "The 2012 Chevrolet Silverado 1500 Extended Cab has a boxy shape larger size and distinct grille compared to many other cars in the dataset", + "A 2012 Chevrolet Silverado 1500 Extended Cab is a large truck with four doors and a short bed for utility and passenger comfort.", + "The 2012 Chevrolet Silverado 1500 Extended Cab has a robust build large grille and distinctive headlights aiding easy identification among cars.", + "Look for a large truck with four doors a chrome grille and Chevrolet logo on the front grille and hood area" + ], + "2012 Mercedes-Benz C-Class Sedan": [ + "The 2012 Mercedes Benz C Class Sedan has sleek lines a refined grille and luxurious interior distinguishing it from other cars.", + "A 2012 Mercedes Benz C Class Sedan is sleek with a luxurious design and distinctive front grille among various car types.", + "Look for a sleek four door sedan with Mercedes emblem and distinctive headlight design typical of 2012 models for identification.", + "The 2012 Mercedes Benz C Class Sedan features sleek lines a distinctive grille and luxurious interior for easy recognition among cars." + ], + "2012 Hyundai Santa Fe SUV": [ + "The 2012 Hyundai Santa Fe SUV has a boxy design with a large grille and compact body among various car types.", + "The 2012 Hyundai Santa Fe SUV has a boxy design larger size and distinct grille compared to many other car types in appearance", + "The 2012 Hyundai Santa Fe SUV features a distinct hexagonal grille and sleek headlights for easy identification among cars.", + "The 2012 Hyundai Santa Fe SUV features a distinctive front grille sleek body lines and a robust rear design for easy recognition." + ], + "2009 Dodge Sprinter Cargo Van": [ + "The 2009 Dodge Sprinter Cargo Van has a boxy shape large size and sliding doors unlike many other car types which are more compact.", + "A 2009 Dodge Sprinter Cargo Van is large boxy with a high roof and sliding side door for utility purposes.", + "The 2009 Dodge Sprinter Cargo Van features a boxy shape high roof and large side windows for easy cargo access and visibility.", + "Identify it by its large boxy shape high roof and distinct Dodge grille design among various car types easily." + ], + "2012 GMC Acadia SUV": [ + "The 2012 GMC Acadia SUV is a large family vehicle with a boxy design and a distinctive front grille among various car types.", + "The 2012 GMC Acadia SUV has a boxy design large size and specific grille shape differing from sleeker smaller cars in appearance.", + "The 2012 GMC Acadia SUV features a distinctive grille large body size and seven passenger seating for easy identification in car classification.", + "The 2012 GMC Acadia SUV has a distinctive front grille design and large side mirrors unlike other car types in the dataset." + ], + "2012 Hyundai Genesis Sedan": [ + "The 2012 Hyundai Genesis Sedan features a sleek design with a long hood short rear deck and distinctive grille among cars.", + "The 2012 Hyundai Genesis Sedan features a sleek design with a prominent grille and sharp headlights differing from other cars.", + "The 2012 Hyundai Genesis Sedan features sleek lines a distinctive grille and a refined luxury appearance setting it apart visually.", + "The 2012 Hyundai Genesis Sedan features sleek lines a prominent grille and distinctive taillights for easy identification among cars." + ], + "2012 Dodge Caliber Wagon": [ + "The 2012 Dodge Caliber Wagon is a compact car with a boxy design and four doors for practical urban driving needs.", + "Look for a compact car with a distinctive front grille and sleek side profile typical of 2012 Dodge Caliber Wagon models.", + "The 2012 Dodge Caliber Wagon has a compact body sleek headlights and a distinctive front grille for easy identification among cars.", + "The 2012 Dodge Caliber Wagon has a compact body with a unique front grille design and integrated rear spoiler unlike many other cars." + ], + "2012 Jeep Liberty SUV": [ + "The 2012 Jeep Liberty SUV has a boxy design with a raised stance and rugged features unlike sleeker more aerodynamic cars.", + "The 2012 Jeep Liberty SUV has a boxy shape with a distinctive front grille and rugged offroad design features easily recognizable.", + "A 2012 Jeep Liberty SUV is boxy with a rugged design featuring a distinctive front grille and compact body style among cars.", + "The 2012 Jeep Liberty SUV has a distinct boxy shape and seven slot grille front design not common in other cars." + ], + "1993 Mercedes-Benz 300-Class Convertible": [ + "The 1993 Mercedes Benz 300 Class Convertible features a sleek design soft top and luxurious interior distinguishing it from other cars.", + "The 1993 Mercedes Benz 300 Class Convertible features a sleek design with a soft top and luxurious interior details among cars.", + "Look for a classic convertible with a sleek design and Mercedes Benz emblem on the front grille and trunk lid area.", + "The 1993 Mercedes Benz 300 Class Convertible features a sleek body soft top and distinctive Mercedes grille for easy identification among cars." + ], + "2009 Ford Expedition EL SUV": [ + "Identify it by its large size boxy shape and distinctive front grille design common in Ford SUVs of that era", + "A 2009 Ford Expedition EL SUV is large boxy with a long body and four doors designed for family use and comfort.", + "The 2009 Ford Expedition EL SUV has a distinct large boxy shape and seven passenger seating design not common in other cars.", + "The 2009 Ford Expedition EL SUV is larger bulkier and has a distinctive front grille compared to most other car types in appearance." + ], + "2012 BMW 1 Series Coupe": [ + "The 2012 BMW 1 Series Coupe is compact sleek with a sporty design and distinctive grille among various car types.", + "Look for a compact two door car with sleek design and distinctive BMW grille and headlights from 2012 era models.", + "The 2012 BMW 1 Series Coupe has sleek curves compact size and distinctive headlights differing from other cars in design and shape.", + "The 2012 BMW 1 Series Coupe features sleek body lines compact size and distinctive front grille for easy recognition among cars." + ], + "2012 Jaguar XK XKR": [ + "The 2012 Jaguar XK XKR features sleek curves luxurious details and a sporty design distinguishing it from other cars in appearance significantly.", + "A 2012 Jaguar XK XKR car is sleek with a long hood short rear deck and distinctive grille among all types of car.", + "Identify the 2012 Jaguar XK XKR by its sleek design long hood short rear deck and distinctive oval grille shape easily.", + "The 2012 Jaguar XK XKR features sleek curves long hood short rear deck and distinctive quad exhausts for easy identification among cars." + ], + "2012 Hyundai Accent Sedan": [ + "A 2012 Hyundai Accent Sedan is compact with a sleek design and modest features distinguishing it from larger luxury cars in the dataset.", + "The 2012 Hyundai Accent Sedan has a compact size sleek design and distinct front grille differing from larger luxury cars in appearance.", + "Identify a 2012 Hyundai Accent Sedan by its compact size sleek design and distinctive front grille shape among various cars.", + "The 2012 Hyundai Accent Sedan has a distinct front grille shape and compact body style setting it apart from other cars." + ], + "2008 Isuzu Ascender SUV": [ + "The 2008 Isuzu Ascender SUV has a boxy design larger size and distinct grille compared to smaller sedans and hatchbacks in the dataset", + "Identify a 2008 Isuzu Ascender SUV by its large size boxy shape and distinctive front grille design among cars.", + "The 2008 Isuzu Ascender SUV has a robust build with a large grille and distinctive headlights among various car types.", + "The 2008 Isuzu Ascender SUV features a robust body design large windows and a distinctive front grille for easy recognition among cars." + ], + "1998 Nissan 240SX Coupe": [ + "The 1998 Nissan 240SX Coupe is a sleek two door sports car with a low profile and distinctive headlights design popular among enthusiasts.", + "The 1998 Nissan 240SX Coupe has a sleek two door design sporty curves and compact size distinguishing it from larger vehicles.", + "Identify the 1998 Nissan 240SX Coupe by its sleek two door body sporty design and distinctive rear spoiler details easily.", + "The 1998 Nissan 240SX Coupe has a sleek two door design with distinctive headlights and a sporty rear spoiler for easy identification." + ], + "2012 Scion xD Hatchback": [ + "The 2012 Scion xD Hatchback features a compact body vibrant colors and a distinctive rear spoiler for easy identification among cars.", + "The 2012 Scion xD Hatchback is compact with a boxy design and features a rear hatch for versatile cargo space.", + "The 2012 Scion xD Hatchback has a compact body unique rear door design and vibrant colors distinguishing it from other cars in appearance.", + "The 2012 Scion xD Hatchback is small with a distinctive rear spoiler and unique front grille design easily distinguishing it from other cars." + ], + "2012 Chevrolet Corvette ZR1": [ + "The 2012 Chevrolet Corvette ZR1 boasts a sleek aerodynamic design high performance features and distinctive aggressive styling compared to other cars.", + "The 2012 Chevrolet Corvette ZR1 stands out with its sleek design powerful engine and distinctive aerodynamic features among cars.", + "The 2012 Chevrolet Corvette ZR1 boasts a sleek aerodynamic body aggressive front grille and distinctive side vents for easy identification among cars.", + "The 2012 Chevrolet Corvette ZR1 stands out with its sleek black body aggressive styling and distinctive large rear spoiler enhancing performance and looks." + ], + "2009 Bentley Arnage Sedan": [ + "Identify the 2009 Bentley Arnage Sedan by its luxurious design long body and distinctive grille among various car types easily.", + "The 2009 Bentley Arnage Sedan features luxurious design elements and a grandiose size distinguishing it from more common compact cars.", + "A 2009 Bentley Arnage Sedan is luxurious with a long body elegant lines and a distinctive grille among all cars.", + "The 2009 Bentley Arnage Sedan features a luxurious design with a long hood short rear deck and distinctive grille for easy recognition." + ], + "2010 Chevrolet HHR SS": [ + "The 2010 Chevrolet HHR SS has a boxy retro design with sporty features distinguishing it from sleeker modern cars in appearance.", + "Identify it by its boxy retro design large wheels and distinctive Chevrolet badge on front grille and rear door.", + "The 2010 Chevrolet HHR SS stands out with its boxy retro design and sporty features among various car types.", + "The 2010 Chevrolet HHR SS features a boxy retro design with bold front grille and unique roofline for easy identification among cars." + ], + "2012 Land Rover LR2 SUV": [ + "A 2012 Land Rover LR2 SUV features a robust design with a boxy shape and distinctive grille among various car types", + "The 2012 Land Rover LR2 SUV features a boxy design with a high roof and distinctive grille for easy identification among cars.", + "Identify a 2012 Land Rover LR2 SUV by its boxy design compact size and distinctive front grille shape easily among cars.", + "The 2012 Land Rover LR2 SUV has a boxy design high ground clearance and distinct grille differing from other cars appearance." + ], + "2012 Hyundai Azera Sedan": [ + "The 2012 Hyundai Azera Sedan has a sleek long body four doors and a distinctive front grille unlike many compact cars.", + "The 2012 Hyundai Azera Sedan is a large comfortable car with sleek design and a spacious interior for family use.", + "The 2012 Hyundai Azera Sedan features a sleek design with a long body and distinctive front grille for easy identification among cars.", + "The 2012 Hyundai Azera Sedan features a sleek body design large grille and distinctive headlight shape for easy identification among cars." + ], + "2009 Chrysler Aspen SUV": [ + "The 2009 Chrysler Aspen SUV has a boxy design large grille and distinct headlights differing from sleeker more aerodynamic car models around then", + "A 2009 Chrysler Aspen SUV has a boxy design with a large grille and is larger than typical cars in the dataset.", + "Look for a large SUV with a boxy shape and distinctive Chrysler grille design from the front view for identification.", + "The 2009 Chrysler Aspen SUV features a robust body large grille and distinctive headlights for easy recognition among various car types." + ], + "2012 Buick Regal GS": [ + "The 2012 Buick Regal GS is a sleek sporty sedan with a distinctive grille and sharp headlights among various car types.", + "The 2012 Buick Regal GS has a sporty design with a distinctive grille and sleek headlights for easy identification among cars.", + "The 2012 Buick Regal GS features a sporty grille sleek body lines and distinctive alloy wheels for easy identification among cars.", + "The 2012 Buick Regal GS features a sleek design sporty grille and distinctive headlights differing from other cars in style and performance." + ], + "2012 BMW 3 Series Wagon": [ + "Identify the 2012 BMW 3 Series Wagon by its sleek design four doors and distinctive front grille shape among cars.", + "The 2012 BMW 3 Series Wagon has a sleek design long body and distinctive kidney grille differing from other cars in appearance.", + "The 2012 BMW 3 Series Wagon features sleek lines a spacious cargo area and a sporty yet elegant exterior design among cars.", + "The 2012 BMW 3 Series Wagon features sleek body lines distinctive kidney grille and four round headlights for easy identification among cars." + ], + "2012 Jeep Compass SUV": [ + "A 2012 Jeep Compass SUV has a compact body four doors and a boxy shape with rugged offroad features and a distinctive front grille design.", + "The 2012 Jeep Compass SUV has a boxy shape with rugged features and a distinctive front grille unlike many other cars.", + "The 2012 Jeep Compass SUV has a boxy shape with a seven slot grille and rugged offroad design for easy identification.", + "The 2012 Jeep Compass SUV has a boxy shape with a seven slot grille and rounded headlights distinguishing it from other cars." + ], + "2012 Ram C/V Cargo Van Minivan": [ + "The 2012 Ram C V Cargo Van Minivan has a boxy shape large cargo area and sliding doors unlike typical passenger cars and sedans.", + "The 2012 Ram C V Cargo Van Minivan has a distinct boxy shape with large sliding doors and high roof for cargo space.", + "A 2012 Ram C V Cargo Van Minivan is large boxy with sliding doors and a high roof for ample cargo space inside.", + "The 2012 Ram C V Cargo Van Minivan has a boxy shape large rear cargo area and distinctive front grille for easy identification" + ], + "2009 Spyker C8 Convertible": [ + "The 2009 Spyker C8 Convertible features sleek lines low profile and open top design distinguishing it from other cars in appearance.", + "The 2009 Spyker C8 Convertible is a sleek luxury sports car with a distinctive design and an open top for a premium driving experience", + "The 2009 Spyker C8 Convertible features sleek aerodynamic design low profile and distinctive side air intakes for easy identification among cars.", + "Identify the 2009 Spyker C8 Convertible by its sleek design low profile and distinctive circular headlights and rear spoiler details." + ], + "2007 Audi S4 Sedan": [ + "A 2007 Audi S4 Sedan is a sleek four door vehicle with sporty design and luxurious interior features among cars.", + "The 2007 Audi S4 Sedan features sporty design elements like a sleek body and distinctive grille differing from other cars in style and performance appeal.", + "The 2007 Audi S4 Sedan features sleek lines a powerful stance and distinctive headlights for easy identification among cars.", + "The 2007 Audi S4 Sedan features a distinctive front grille four round headlights and a sleek body design for easy identification." + ], + "2012 Rolls-Royce Ghost Sedan": [ + "The 2012 Rolls Royce Ghost Sedan boasts a luxurious design with a long hood high roof and elegant lines unlike common cars.", + "A 2012 Rolls Royce Ghost Sedan is luxurious with long body elegant lines and a prominent front grille design among cars.", + "The 2012 Rolls Royce Ghost Sedan boasts a luxurious design with a long hood short rear deck and iconic grille for easy recognition.", + "Identify a 2012 Rolls Royce Ghost Sedan by its large grille long hood and luxurious elegant design details easily." + ], + "2000 AM General Hummer SUV": [ + "Identify it by its large boxy shape massive wheels and distinctive military inspired design among cars.", + "The 2000 AM General Hummer SUV is larger bulkier and has a more rugged square shape than most other cars in appearance.", + "The 2000 AM General Hummer SUV is large boxy with a rugged design and prominent offroad features compared to other cars.", + "The 2000 AM General Hummer SUV is large boxy with flat surfaces massive wheels and a very tall stance for easy identification." + ], + "2007 Ford Freestar Minivan": [ + "The 2007 Ford Freestar Minivan has a distinctive sliding side door and boxy shape not common in other car types", + "The 2007 Ford Freestar Minivan has a boxy shape sliding doors and a higher roof compared to sedans and sports cars.", + "A 2007 Ford Freestar Minivan is large with sliding doors and a boxy shape designed for family comfort and utility.", + "Look for a large boxy minivan with sliding side doors and a distinctive front grille design typical of Ford models from that era" + ], + "2011 Bentley Mulsanne Sedan": [ + "The 2011 Bentley Mulsanne Sedan is a luxurious large car with a sleek design and distinctive grille among all types of cars.", + "Identify the 2011 Bentley Mulsanne Sedan by its long body luxurious design and distinctive front grille shape among cars.", + "The 2011 Bentley Mulsanne Sedan features a luxurious design with a long hood short rear deck and distinctive grille differing from other cars.", + "The 2011 Bentley Mulsanne Sedan features a luxurious design long hood short rear deck and distinctive grille for easy recognition among cars." + ], + "2011 Audi TT Hatchback": [ + "Look for a sleek compact car with distinctive circular headlights and a sporty design typical of Audi TT models from 2011 era", + "The 2011 Audi TT Hatchback is sleek with a compact design featuring sporty curves and a distinctive front grille among cars.", + "The 2011 Audi TT Hatchback features sleek curves a distinctive front grille and compact body style for easy identification among cars.", + "The 2011 Audi TT Hatchback has sleek curves compact size and distinctive headlights differing from other cars in the dataset." + ], + "2009 Mercedes-Benz SL-Class Coupe": [ + "A 2009 Mercedes Benz SL Class Coupe is sleek with a long hood two doors and a convertible top design among cars.", + "Identify it by its sleek convertible design long hood short rear deck and distinctive Mercedes grille shape and emblem on front.", + "The 2009 Mercedes Benz SL Class Coupe features sleek lines a convertible top and luxurious details distinguishing it from other cars.", + "The 2009 Mercedes Benz SL Class Coupe features sleek lines a convertible top and distinctive Mercedes grille for easy recognition among cars." + ], + "2012 Chevrolet Silverado 1500 Hybrid Crew Cab": [ + "The 2012 Chevrolet Silverado 1500 Hybrid Crew Cab has a larger body four doors and hybrid engine unlike many standard cars.", + "The 2012 Chevrolet Silverado 1500 Hybrid Crew Cab is a large four door pickup truck with a distinctive front grille and hybrid badge.", + "Look for a large silver truck with four doors and a hybrid badge on the side for identification easily.", + "The 2012 Chevrolet Silverado 1500 Hybrid Crew Cab has a robust design large grille and distinctive hybrid badge for easy identification." + ], + "2012 Buick Enclave SUV": [ + "Identify a 2012 Buick Enclave SUV by its large size sleek design and distinctive front grille pattern among various car types.", + "The 2012 Buick Enclave SUV has a large body curved edges and a distinctive grille differing from smaller cars and sedans in design.", + "A 2012 Buick Enclave SUV is a large luxury crossover with sleek lines and a spacious interior for comfortable family travel.", + "The 2012 Buick Enclave SUV features a distinctive front grille design and body shape setting it apart from other cars." + ], + "2009 Chevrolet TrailBlazer SS": [ + "The 2009 Chevrolet TrailBlazer SS has a robust build with a sporty design and distinctive front grille among various car types.", + "The 2009 Chevrolet TrailBlazer SS has a bold front grille large wheels and a sporty design distinguishing it from other cars in appearance.", + "The 2009 Chevrolet TrailBlazer SS has a bold front grille large wheels and sporty body design distinguishing it from other cars easily.", + "The 2009 Chevrolet TrailBlazer SS uniquely features a bold front grille and aggressive headlights setting it apart visually from other cars." + ], + "2009 HUMMER H2 SUT Crew Cab": [ + "The 2009 HUMMER H2 SUT Crew Cab is larger bulkier with a boxy design compared to sleeker more compact cars.", + "The 2009 HUMMER H2 SUT Crew Cab has a massive boxy frame and large wheels distinguishing it from other cars easily.", + "A 2009 HUMMER H2 SUT Crew Cab is large bulky with four doors and a boxy shape distinguishing it from other cars.", + "Identify it by its large boxy shape massive size and distinctive Hummer grille design among cars." + ], + "2012 McLaren MP4-12C Coupe": [ + "A 2012 McLaren MP4 12C Coupe features sleek aerodynamic design with sharp angles and a low aggressive stance distinguishing it visually among cars.", + "The 2012 McLaren MP4 12C Coupe features sleek aerodynamic design low profile and distinctive headlights unlike many other cars", + "The 2012 McLaren MP4 12C Coupe features sleek aerodynamic design sharp angles and distinctive headlights for easy recognition among cars.", + "The 2012 McLaren MP4 12C Coupe features a distinctive dihedral doors design not common among other car types" + ], + "2011 Dodge Challenger SRT8": [ + "The 2011 Dodge Challenger SRT8 is a powerful muscle car with aggressive styling and a distinctive front grille design among all types of car.", + "The 2011 Dodge Challenger SRT8 has a muscular design aggressive grille and wide stance differing from other cars in appearance and style.", + "The 2011 Dodge Challenger SRT8 has a muscular body aggressive grille and distinctive taillights making it stand out among cars.", + "The 2011 Dodge Challenger SRT8 stands out with its bold grille aggressive headlights and wide muscular body design for easy recognition." + ], + "2012 Suzuki SX4 Hatchback": [ + "The 2012 Suzuki SX4 Hatchback has a compact body style with a rear hatchback door unlike many sedans and coupes which do not have this feature.", + "Identify a 2012 Suzuki SX4 Hatchback by its compact size sporty design and distinctive front grille shape among various cars.", + "The 2012 Suzuki SX4 Hatchback is compact with a sleek design and a distinctive front grille among various car types.", + "The 2012 Suzuki SX4 Hatchback has a compact body small wheels and a distinctive front grille for easy identification among cars." + ], + "2009 Bugatti Veyron 16.4 Convertible": [ + "The 2009 Bugatti Veyron 164 Convertible is a sleek luxurious supercar with a distinctive low profile and unique design elements among cars.", + "The Bugatti Veyron 164 Convertible stands out with its sleek design luxurious details and distinctive aerodynamic shape compared to other cars.", + "Identify a 2009 Bugatti Veyron 164 Convertible by its sleek design unique shape and luxurious convertible top feature unmistakably.", + "The 2009 Bugatti Veyron 164 Convertible features a unique sleek design with a distinctive horseshoe grille and exposed engine for easy identification among cars." + ], + "2012 Toyota 4Runner SUV": [ + "A 2012 Toyota 4Runner SUV is a robust vehicle with a boxy design and elevated stance among various car types", + "Look for a rugged SUV with a boxy shape and a distinctive front grille that matches 2012 Toyota 4Runner design features", + "The 2012 Toyota 4Runner SUV has a boxy design higher ground clearance and larger wheels compared to sedans and compact cars.", + "The 2012 Toyota 4Runner SUV has a distinctive front grille design and robust body shape setting it apart from other cars." + ], + "2007 Buick Rainier SUV": [ + "The 2007 Buick Rainier SUV has a boxy design larger size and distinct grille compared to sedans and compact cars in appearance.", + "The 2007 Buick Rainier SUV is large with a boxy design and features a prominent grille and sturdy build among cars.", + "The 2007 Buick Rainier SUV features a distinctive large chrome grille and robust body shape setting it apart from other cars.", + "Identify a 2007 Buick Rainier SUV by its large size chrome grille and distinctive taillights among various car types easily." + ], + "2010 Chrysler Sebring Convertible": [ + "A 2010 Chrysler Sebring Convertible has a sleek design soft top and classic car features distinguishing it from modern vehicles easily.", + "The 2010 Chrysler Sebring Convertible features a sleek design soft top and distinctive grille for easy identification among various car types", + "The 2010 Chrysler Sebring Convertible has a soft top roof and sleek body design distinguishing it from other car types visually.", + "Look for a 2010 Chrysler Sebring Convertible with soft top fabric roof and distinct front grille design among various car types." + ], + "2001 Acura Integra Type R": [ + "The 2001 Acura Integra Type R has a sporty design with a red interior and a prominent rear spoiler distinguishing it visually from others.", + "Identify a 2001 Acura Integra Type R by its red interior sporty design and distinctive front grille shape easily.", + "The 2001 Acura Integra Type R features a sporty design with a red interior and a prominent front grille among cars.", + "The 2001 Acura Integra Type R stands out with its red interior sporty design and aggressive front grille for easy recognition." + ], + "1994 Audi V8 Sedan": [ + "A 1994 Audi V8 Sedan is a luxury vehicle with sleek lines and a classic design among various car types.", + "The 1994 Audi V8 Sedan features a sleek design with a distinctive grille and smooth lines unlike many other cars of its era", + "Look for a large four door sedan with a distinctive grille and rounded headlights typical of early nineties Audi design.", + "The 1994 Audi V8 Sedan features a sleek body design four doors and a distinctive front grille for easy identification among cars." + ], + "2008 Audi RS 4 Convertible": [ + "The 2008 Audi RS 4 Convertible features sleek design sporty performance and a luxurious interior among various car types.", + "The 2008 Audi RS 4 Convertible has a sleek design sporty features and a distinctive badge differing from other cars in style and performance.", + "The 2008 Audi RS 4 Convertible features sleek bodywork a powerful engine and distinctive alloy wheels for easy identification among cars.", + "Identify it by its sleek convertible design sporty red exterior and distinctive Audi grille shape among cars." + ], + "2012 Honda Accord Coupe": [ + "The 2012 Honda Accord Coupe has a sleek two door design distinguishing it from larger four door sedans and SUVs in the dataset.", + "A 2012 Honda Accord Coupe is a sleek two door vehicle with a modern design and efficient performance among cars.", + "Identify it by sleek two door design compact size and distinctive Honda grille emblem on front end easily noticeable.", + "The 2012 Honda Accord Coupe has sleek body design two doors and distinctive taillights for easy identification among cars." + ], + "2012 Audi S4 Sedan": [ + "The 2012 Audi S4 Sedan features sleek lines sporty design and a powerful presence distinguishing it from other cars in the dataset", + "The 2012 Audi S4 Sedan features sleek lines sporty grille and distinctive headlights for easy recognition among various car types", + "The 2012 Audi S4 Sedan has a sleek design sporty grille and distinctive headlights differing from other cars in style and elegance.", + "Look for a sleek silver or black four door car with distinctive oval grille and sporty alloy wheels from 2012 era." + ], + "2012 Aston Martin Virage Coupe": [ + "The 2012 Aston Martin Virage Coupe is sleek with a long hood two doors and a luxurious sporty design among cars.", + "Identify it by its sleek design long hood short rear deck and distinctive front grille shape among cars.", + "The 2012 Aston Martin Virage Coupe has sleek curves luxurious design and distinctive grille differing from other cars in elegance and style.", + "The 2012 Aston Martin Virage Coupe features sleek lines a luxurious interior and distinctive front grille for easy identification among cars." + ], + "2012 Chevrolet Sonic Sedan": [ + "The 2012 Chevrolet Sonic Sedan is small with a sleek design compact body and distinctive front grille making it easily recognizable among cars.", + "The 2012 Chevrolet Sonic Sedan has a distinctive front grille design and compact body shape unlike other cars.", + "The 2012 Chevrolet Sonic Sedan is compact with a sleek design and efficient body shape for urban driving environments easily recognizable.", + "The 2012 Chevrolet Sonic Sedan features a compact body sleek front grille and distinctive headlights for easy recognition among various cars." + ], + "2007 Chevrolet Monte Carlo Coupe": [ + "The 2007 Chevrolet Monte Carlo Coupe has a sleek two door design with a distinctive front grille and sporty profile compared to other cars.", + "The 2007 Chevrolet Monte Carlo Coupe is sleek with a low profile and distinctive front grille among various car types.", + "Look for a sleek two door car with a long hood and distinctive Chevrolet grille and badge on the front.", + "The 2007 Chevrolet Monte Carlo Coupe features sleek two door design with a distinctive front grille and sporty coupe silhouette for easy recognition." + ], + "2007 Volvo XC90 SUV": [ + "The 2007 Volvo XC90 SUV has a boxy shape large windows and a distinctive grille differing from sleeker cars with curved designs.", + "The 2007 Volvo XC90 SUV features a robust build large windows and a distinctive grille among various car types.", + "Look for a large SUV with Volvo grille and XC90 badging distinctive side mirrors and seven passenger seating capacity design features.", + "The 2007 Volvo XC90 SUV features a boxy design tall grille and seven passenger seating for easy identification among cars." + ], + "2007 Ford Mustang Convertible": [ + "A 2007 Ford Mustang Convertible features a sleek design with a soft top and classic muscle car aesthetics among various car types.", + "Look for a shiny red or silver two door car with a long hood and a soft top roof down in sunny weather", + "The 2007 Ford Mustang Convertible features a sleek body soft top and distinctive front grille for easy identification among cars.", + "The 2007 Ford Mustang Convertible has a unique retro design soft top and distinctively shaped headlights differentiating it visually from others." + ], + "2012 Aston Martin Virage Convertible": [ + "A 2012 Aston Martin Virage Convertible is a sleek luxury sports car with a soft top and elegant design among all cars.", + "Identify it by its sleek design long hood short rear deck and distinctive Aston Martin grille and taillights layout easily.", + "The 2012 Aston Martin Virage Convertible features a distinctive soft top roof and sleek body design not common in other cars.", + "The 2012 Aston Martin Virage Convertible has sleek curves luxurious interior and a distinctive front grille differing from other cars appearance." + ], + "2012 smart fortwo Convertible": [ + "A 2012 smart fortwo Convertible is a small compact car with a unique two door design and a soft top roof.", + "Identify a 2012 smart fortwo Convertible by its compact size two door design and distinctive roof convertible feature easily.", + "The 2012 smart fortwo Convertible is tiny with a unique two door design and a soft top roof for easy identification.", + "The 2012 smart fortwo Convertible is compact with a unique two seater design and a soft top unlike larger conventional cars." + ], + "2012 FIAT 500 Abarth": [ + "The 2012 FIAT 500 Abarth has a sporty design compact size and distinctive red accents unlike other cars in the dataset.", + "The 2012 FIAT 500 Abarth is small colorful with sporty design and distinctive round headlights among various car types.", + "The 2012 FIAT 500 Abarth stands out with its sporty design compact size and distinctive red racing stripes on body.", + "The 2012 FIAT 500 Abarth is small with a sporty design featuring a distinctive red stripe and black roof for easy identification." + ], + "2012 Infiniti G Coupe IPL": [ + "The 2012 Infiniti G Coupe IPL features sleek design sporty performance and distinctive luxury elements among various car types", + "Identify it by sleek design sporty features and distinctive front grille among various car types easily.", + "The 2012 Infiniti G Coupe IPL features sleek aerodynamic design sporty wheels and a distinctive front grille for easy identification among cars.", + "The 2012 Infiniti G Coupe IPL features sporty design aggressive front grille and distinct headlights differing from other cars in style and appeal." + ], + "2007 Dodge Caliber Wagon": [ + "Identify a 2007 Dodge Caliber Wagon by its compact size four door hatchback design and distinctive front grille shape easily.", + "The 2007 Dodge Caliber Wagon features a compact body with a sleek design and a distinctive front grille setting it apart from other cars.", + "The 2007 Dodge Caliber Wagon has a compact hatchback design with a unique front grille and integrated rear spoiler unlike other cars.", + "The 2007 Dodge Caliber Wagon has a compact body unique grille and sporty design distinguishing it from other cars in the dataset" + ], + "2012 Hyundai Tucson SUV": [ + "Identify the 2012 Hyundai Tucson SUV by its compact size sleek design and distinctive front grille shape among various car types.", + "A 2012 Hyundai Tucson SUV has a compact design with a modern front grille and sleek headlights for its era.", + "The Hyundai Tucson SUV has a compact body higher ground clearance and distinct grille compared to sedans and sports cars.", + "The 2012 Hyundai Tucson SUV features a distinctive front grille sleek body lines and compact size for easy urban navigation and parking." + ], + "2012 Acura ZDX Hatchback": [ + "Identify a 2012 Acura ZDX Hatchback by its sleek design curved roofline and distinctive rear hatch among various cars easily.", + "The 2012 Acura ZDX Hatchback features a sleek design with a unique roofline and modern styling distinguishing it from other cars.", + "The 2012 Acura ZDX Hatchback features a distinctive rear hatch design and sleek body lines not common in other car types.", + "The 2012 Acura ZDX Hatchback has a sleek compact design with a unique roofline and integrated rear spoiler differing from other cars." + ], + "2012 BMW ActiveHybrid 5 Sedan": [ + "Identify it by its sleek design four doors hybrid badge and distinctive BMW grille shape easily distinguishing it from others.", + "A 2012 BMW ActiveHybrid 5 Sedan is sleek with a distinctive grille and efficient hybrid design among various car types", + "The 2012 BMW ActiveHybrid 5 Sedan features sleek lines a distinctive grille and hybrid badges for easy identification among cars.", + "The 2012 BMW ActiveHybrid 5 Sedan features sleek lines hybrid badges and a distinctive front grille differing from other car types visibly." + ], + "2012 Ferrari California Convertible": [ + "The Ferrari California has a sleek design low profile and distinctive red color setting it apart from other cars visually.", + "The 2012 Ferrari California Convertible is sleek red with a soft top and distinctive circular taillights setting it apart from other cars.", + "Look for sleek red body retractable hardtop two door design and distinctive Ferrari badge on front grille and rear.", + "The 2012 Ferrari California Convertible features a sleek red design retractable hardtop and distinctive circular taillights for easy identification among cars." + ], + "2012 Nissan Leaf Hatchback": [ + "A 2012 Nissan Leaf Hatchback is compact electric with a smooth curved design and distinctive front grille among various car types", + "The 2012 Nissan Leaf Hatchback has a compact electric design with smooth curves and a distinctive front grille differing from conventional cars.", + "The 2012 Nissan Leaf Hatchback features a compact electric design with smooth curves and a distinctive front grille for easy identification.", + "Identify a 2012 Nissan Leaf Hatchback by its compact size electric charging port and distinctive front grille design easily." + ], + "2001 Lamborghini Diablo Coupe": [ + "The 2001 Lamborghini Diablo Coupe features a sleek low profile sharp angles and distinctive scissor doors unlike most other cars in appearance.", + "The 2001 Lamborghini Diablo Coupe is a sleek low profile sports car with sharp angles and a distinctive aggressive front grille design", + "The 2001 Lamborghini Diablo Coupe features a sleek low profile sharp angles and distinctive scissor doors for easy recognition among cars.", + "Identify it by its sleek low profile sharp angles and distinctive scissor doors unique to Lamborghini designs in that era" + ], + "2012 Audi S5 Convertible": [ + "The 2012 Audi S5 Convertible has a sleek design soft top roof and distinctive headlights differing from other cars appearance significantly.", + "A 2012 Audi S5 Convertible features sleek design sporty performance and luxurious interior distinguishing it from standard cars in elegance and style.", + "The 2012 Audi S5 Convertible features sleek body lines a soft top and distinctive circular exhaust tips for easy identification among cars.", + "The 2012 Audi S5 Convertible features a sleek design with a soft top and distinctive circular taillights for easy identification." + ], + "2007 BMW 6 Series Convertible": [ + "The 2007 BMW 6 Series Convertible has a sleek design soft top and distinctive headlights unlike many other car types on the road today", + "A 2007 BMW 6 Series Convertible has sleek lines luxurious interior and a soft top roof distinguishing it from other cars.", + "Look for sleek design soft top roof and distinctive kidney grille shape to spot a 2007 BMW 6 Series Convertible easily", + "The 2007 BMW 6 Series Convertible features sleek lines a soft top and distinctive taillights for easy identification among cars." + ], + "2012 Ferrari 458 Italia Convertible": [ + "The Ferrari 458 Italia Convertible has sleek lines a low profile and vibrant colors distinguishing it from other cars in appearance.", + "The 2012 Ferrari 458 Italia Convertible features sleek design vibrant red color and distinctive side air intakes for easy recognition among cars.", + "Look for a sleek red sports car with a convertible top and distinctive circular taillights for the 2012 Ferrari 458 Italia Convertible.", + "A 2012 Ferrari 458 Italia Convertible is sleek red with a convertible top and distinctive headlights among all cars." + ], + "2012 Chevrolet Silverado 2500HD Regular Cab": [ + "The 2012 Chevrolet Silverado 2500HD Regular Cab is larger heavier and has a distinct boxy shape compared to most passenger cars.", + "Look for a large truck with a boxy shape short bed and Chevrolet logo on the front grill and side doors only.", + "A 2012 Chevrolet Silverado 2500HD Regular Cab is a large strong truck with a short bed and boxy design for utility purposes", + "The 2012 Chevrolet Silverado 2500HD Regular Cab has a robust build large grille and distinctive headlights for easy identification among cars." + ], + "2012 Chevrolet Corvette Convertible": [ + "The 2012 Chevrolet Corvette Convertible has a sleek design with a soft top and distinctive rear lights unlike other cars.", + "Look for a sleek red or black two door sports car with a soft top and distinctive circular headlights and taillights.", + "The 2012 Chevrolet Corvette Convertible features a sleek body low profile and distinctive circular headlights for easy identification among cars.", + "A 2012 Chevrolet Corvette Convertible is sleek red with a soft top and distinctive circular headlights making it stand out in traffic easily." + ], + "2009 Bugatti Veyron 16.4 Coupe": [ + "The Bugatti Veyron 164 Coupe stands out with its sleek design low profile and distinctive horseshoe grille unlike other cars.", + "The 2009 Bugatti Veyron 164 Coupe is a sleek black car with a unique design and four circular exhausts on the back.", + "Identify it by its sleek design unique horseshoe grille and four circular rear lights unmistakable among cars.", + "The 2009 Bugatti Veyron 164 Coupe features a sleek aerodynamic body unique horseshoe grille and distinctive circular taillights for easy identification." + ], + "2012 Tesla Model S Sedan": [ + "A 2012 Tesla Model S Sedan is sleek modern with a distinctive front grille and aerodynamic body design among various car types.", + "Identify a 2012 Tesla Model S Sedan by its sleek design panoramic roof and distinctive front grille absence in electric cars.", + "The 2012 Tesla Model S Sedan features sleek design smooth lines and a distinctive front grille unlike many other cars in appearance.", + "The 2012 Tesla Model S Sedan features sleek design full electric power and a distinctive panoramic roof for easy identification among cars." + ], + "2012 FIAT 500 Convertible": [ + "The 2012 FIAT 500 Convertible has a compact retro design with a soft top roof unlike many other cars that are larger and modern.", + "A 2012 FIAT 500 Convertible is small colorful with a soft top and retro styled body among various car types.", + "The 2012 FIAT 500 Convertible features a compact body vibrant colors and a distinctive rounded shape for easy identification among cars.", + "Identify a 2012 FIAT 500 Convertible by its compact size vibrant colors and distinctive round headlights and soft top roof design." + ], + "2012 Hyundai Veloster Hatchback": [ + "The 2012 Hyundai Veloster Hatchback has a unique three door design with a sleek body and distinctive front grille for easy identification.", + "The 2012 Hyundai Veloster Hatchback has a unique three door design with a sleek roofline and distinctive front grille making it stand out.", + "The 2012 Hyundai Veloster Hatchback has a unique three door design and sporty profile distinguishing it from many other cars in appearance.", + "The 2012 Hyundai Veloster Hatchback features a sleek compact design with a unique three door layout and sporty profile among cars." + ], + "2011 Lincoln Town Car Sedan": [ + "A 2011 Lincoln Town Car Sedan is large luxurious with a long body four doors and a formal elegant design style.", + "The 2011 Lincoln Town Car Sedan features a long body formal design and luxurious details distinguishing it from other cars in appearance.", + "The 2011 Lincoln Town Car Sedan features a distinctive long body and luxurious design elements not common in other cars.", + "The 2011 Lincoln Town Car Sedan features a long body luxurious interior and distinctive grille for easy recognition among cars." + ], + "2012 Lamborghini Aventador Coupe": [ + "The 2012 Lamborghini Aventador Coupe is sleek with sharp angles and a low profile distinguishing it from other cars in its class easily.", + "The 2012 Lamborghini Aventador Coupe features sharp angles sleek bodywork and distinctive scissor doors unlike most other cars which are more rounded.", + "The 2012 Lamborghini Aventador Coupe features sharp angular lines a sleek body and distinctive scissor doors for easy identification among cars.", + "Identify it by its sleek low profile sharp angular headlights and distinctive scissor doors unique shape unmistakable design elements." + ], + "2009 Dodge Ram Pickup 3500 Quad Cab": [ + "The 2009 Dodge Ram Pickup 3500 Quad Cab is a large robust truck with four doors and a powerful build for heavy duty tasks.", + "Look for a large robust truck with four doors and a powerful stance typical of heavy duty models from that era", + "The 2009 Dodge Ram Pickup 3500 Quad Cab has a larger frame dual rear wheels and a robust design compared to most cars.", + "The 2009 Dodge Ram Pickup 3500 Quad Cab features a robust build large grille and distinctive quad cab design for easy identification." + ], + "2012 Nissan NV Passenger Van": [ + "The 2012 Nissan NV Passenger Van has a boxy shape large windows and sliding doors unlike sleeker sports cars or compact sedans", + "The 2012 Nissan NV Passenger Van has a distinct boxy shape and large sliding side door unlike other cars.", + "The 2012 Nissan NV Passenger Van has a boxy shape large windows and sliding side door for easy access and utility.", + "The 2012 Nissan NV Passenger Van is large boxy with sliding doors and a high roof for ample interior space and utility." + ], + "2007 Honda Odyssey Minivan": [ + "The 2007 Honda Odyssey Minivan is larger with sliding doors and a boxy shape unlike sleeker smaller cars and sports cars.", + "A 2007 Honda Odyssey Minivan is large with sliding doors and a boxy shape designed for family comfort and utility.", + "The 2007 Honda Odyssey Minivan uniquely features a sliding side door and a boxy shape for spacious interior convenience.", + "The 2007 Honda Odyssey Minivan features a boxy shape sliding doors and a distinctive grille for easy identification among cars." + ], + "2012 Maybach Landaulet Convertible": [ + "The 2012 Maybach Landaulet Convertible is a luxurious car with a convertible top and elegant design standing out among other vehicles.", + "The 2012 Maybach Landaulet Convertible uniquely features a luxurious open top design with a classic vintage style and elegant bodywork.", + "The 2012 Maybach Landaulet Convertible features a luxurious open roof design and elongated body distinguishing it from standard cars in elegance and style.", + "The 2012 Maybach Landaulet Convertible features a luxurious design with a unique open top rear and elegant long body for high status recognition." + ], + "2012 Chevrolet Silverado 1500 Regular Cab": [ + "The 2012 Chevrolet Silverado 1500 Regular Cab is a large truck with a boxy shape and a single row of seats.", + "The 2012 Chevrolet Silverado 1500 Regular Cab has a boxy shape with a large front grille and distinctively shaped headlights compared to other cars.", + "The 2012 Chevrolet Silverado 1500 Regular Cab has a distinctive front grille design and boxy shape setting it apart visually.", + "Look for a large truck with a short bed single cab and Chevrolet logo on the front grille and tailgate area." + ], + "2012 Suzuki Kizashi Sedan": [ + "The 2012 Suzuki Kizashi Sedan is a compact car with sleek lines and a sporty design among various car types.", + "The 2012 Suzuki Kizashi Sedan has a sleek compact body design with sharp lines distinguishing it from bulkier SUVs and larger sedans.", + "Identify the 2012 Suzuki Kizashi Sedan by its sleek body design distinct front grille and sharp headlight contours easily among cars.", + "The 2012 Suzuki Kizashi Sedan features sleek body design curved roofline and distinctive front grille for easy identification among cars." + ], + "2012 Chevrolet Tahoe Hybrid SUV": [ + "The 2012 Chevrolet Tahoe Hybrid SUV is a large boxy vehicle with a distinctive grille and robust design among all car types.", + "The 2012 Chevrolet Tahoe Hybrid SUV has a large boxy shape with a distinctive front grille and hybrid badges unlike other cars.", + "The 2012 Chevrolet Tahoe Hybrid SUV features a large body size hybrid badge and distinctive front grille for easy recognition among cars.", + "Look for a large SUV with Chevrolet badge hybrid badge and distinctive 2012 model grille design among cars." + ], + "2012 Mercedes-Benz Sprinter Van": [ + "Look for a large boxy vehicle with Mercedes Benz logo and distinct van shape from 2012 era models only.", + "A 2012 Mercedes Benz Sprinter Van is large boxy with sliding doors and a high roof for cargo space efficiency.", + "The 2012 Mercedes Benz Sprinter Van has a boxy shape large windows and a distinctive front grille for easy identification among cars.", + "The 2012 Mercedes Benz Sprinter Van is larger boxier and designed for utility compared to typical passenger cars in appearance." + ], + "2007 Suzuki Aerio Sedan": [ + "The 2007 Suzuki Aerio Sedan has a compact body style and distinct front grille differing from larger SUVs and sporty coupes in appearance.", + "The 2007 Suzuki Aerio Sedan features a compact body smooth curves and a distinctive front grille for easy identification among cars.", + "The 2007 Suzuki Aerio Sedan is a compact car with a sleek design and four doors suitable for urban driving and small families.", + "Identify the 2007 Suzuki Aerio Sedan by its compact size sleek design and unique front grille shape among various cars." + ], + "2012 Audi S5 Coupe": [ + "The 2012 Audi S5 Coupe has sleek lines sporty design and distinctive headlights differing from other cars in elegance and performance features.", + "The 2012 Audi S5 Coupe features sleek lines sporty design and a distinctive grille among various car types.", + "The 2012 Audi S5 Coupe features sleek lines distinctive grille and sporty alloy wheels for easy identification among cars.", + "The 2012 Audi S5 Coupe features sleek body lines a distinctive grille and LED headlights for easy identification among cars." + ], + "2012 Aston Martin V8 Vantage Coupe": [ + "A 2012 Aston Martin V8 Vantage Coupe has sleek curves luxurious design and a sporty appearance distinguishing it from other cars.", + "The 2012 Aston Martin V8 Vantage Coupe has sleek curves luxurious design and a sporty look distinguishing it from other cars in appearance.", + "Look for sleek body low profile and distinctive front grille with large side vents on this luxury sports car model.", + "The 2012 Aston Martin V8 Vantage Coupe features sleek curves a low profile and distinctive taillights for easy recognition among cars." + ], + "2010 Chevrolet Malibu Hybrid Sedan": [ + "A 2010 Chevrolet Malibu Hybrid Sedan is a four door vehicle with a sleek design and eco friendly features among cars.", + "Look for a four door sedan with a sleek design and Chevrolet emblem on the front grille and trunk lid.", + "The 2010 Chevrolet Malibu Hybrid Sedan has a sleek body compact size and unique hybrid features distinguishing it from other cars in appearance.", + "The 2010 Chevrolet Malibu Hybrid Sedan features sleek body design efficient hybrid engine and distinctive front grille for easy recognition among cars." + ], + "2012 Ford F-150 Regular Cab": [ + "A 2012 Ford F 150 Regular Cab is a large truck with a short bed and two doors for utility and towing tasks.", + "Look for a large truck with a single row of seats and a boxy design typical of 2012 Ford F 150 models", + "The 2012 Ford F 150 Regular Cab has a distinctive boxy shape and large grille unlike many other car types today.", + "The 2012 Ford F 150 Regular Cab has a boxy shape short bed and large grille differing from sleeker cars with longer hoods." + ], + "2012 Ford Fiesta Sedan": [ + "The 2012 Ford Fiesta Sedan is a compact car with a sleek design and efficient fuel economy popular among city drivers.", + "The 2012 Ford Fiesta Sedan has a compact body four doors and a distinctive front grille differing from other cars in style and size.", + "Identify a 2012 Ford Fiesta Sedan by its compact size sleek body and distinctive front grille design in the StanfordCars dataset.", + "The 2012 Ford Fiesta Sedan features a compact body sleek front grille and distinctive headlight design for easy identification among cars." + ], + "2007 Ford Focus Sedan": [ + "A 2007 Ford Focus Sedan is compact with a sleek design and four doors typical of small family cars in that era.", + "Identify a 2007 Ford Focus Sedan by its compact size sleek body design and distinctive front grille shape among cars.", + "The 2007 Ford Focus Sedan has a compact body four doors and a distinct front grille differing from other car types visibly.", + "The 2007 Ford Focus Sedan features a compact body four doors and a distinctive front grille for easy identification among cars." + ], + "2012 Bentley Continental Supersports Conv. Convertible": [ + "The 2012 Bentley Continental Supersports Conv has a sleek luxurious design with distinctive grille and elegant curves differing from other cars.", + "The 2012 Bentley Continental Supersports Conv Convertible stands out with its sleek design luxurious interior and powerful performance features among cars.", + "A 2012 Bentley Continental Supersports Conv Convertible is luxurious with sleek lines a convertible top and powerful performance features.", + "Identify it by its sleek design luxurious details and distinctive Bentley emblem on the front grille and hood area easily." + ], + "2007 Chevrolet Silverado 1500 Classic Extended Cab": [ + "The 2007 Chevrolet Silverado 1500 Classic has a boxy design with a long bed and extended cab unlike sleeker modern cars.", + "A 2007 Chevrolet Silverado 1500 Classic Extended Cab is a large pickup truck with a long bed and four doors for utility and passenger comfort.", + "Look for a large truck with a classic design extended cab and Chevrolet Silverado 1500 badges from 2007 era.", + "The 2007 Chevrolet Silverado 1500 Classic has a boxy design large grille and chrome accents distinguishing it from other cars easily." + ], + "2007 BMW X5 SUV": [ + "Identify a 2007 BMW X5 SUV by its large size distinctive kidney grille and sleek body design among various car types easily.", + "A 2007 BMW X5 SUV is large with sleek lines and a distinctive front grille among various car types.", + "The 2007 BMW X5 SUV features a distinctive kidney grille large wheels and a boxy shape unlike many other car types in design.", + "The 2007 BMW X5 SUV features a distinctive kidney grille large alloy wheels and a robust body design for easy identification among cars." + ], + "2012 Jeep Wrangler SUV": [ + "The 2012 Jeep Wrangler SUV has a boxy shape rugged tires and a distinctive grille unlike most other cars in appearance", + "The 2012 Jeep Wrangler SUV has a distinctive boxy shape with round headlights and a short hood unlike other cars.", + "The 2012 Jeep Wrangler SUV has a boxy shape rugged design and offroad tires distinguishing it from most cars on roads.", + "The 2012 Jeep Wrangler SUV stands out with its boxy shape round headlights and distinctive seven slot grille design easily recognizable." + ], + "2008 Acura TL Type-S": [ + "Identify a 2008 Acura TL Type S by its sporty design aggressive grille and dual exhaust pipes distinguishing it visually among cars.", + "The 2008 Acura TL Type S features sporty design aggressive front grille and sharp headlights distinguishing it from other cars.", + "The 2008 Acura TL Type S is a sleek sporty sedan with a powerful engine and aggressive styling details setting it apart visually.", + "The 2008 Acura TL Type S features a distinctive front grille design and aggressive headlights setting it apart from other cars." + ], + "2008 Chrysler Crossfire Convertible": [ + "A 2008 Chrysler Crossfire Convertible is sleek with a soft top and a sporty design distinguishing it from other cars in the dataset.", + "The 2008 Chrysler Crossfire Convertible features a sleek low profile soft top and distinctive headlights unlike many other cars in appearance.", + "The 2008 Chrysler Crossfire Convertible features a sleek two door design with a soft top and distinctive circular headlights for easy identification.", + "The 2008 Chrysler Crossfire Convertible uniquely features a sleek two door design with a soft top and sporty profile among cars." + ], + "2012 Lamborghini Gallardo LP 570-4 Superleggera": [ + "The Lamborghini Gallardo LP 570 4 Superleggera has a sleek low profile sharp angles and aggressive styling unlike other cars in appearance.", + "Identify it by its sleek low profile sharp angles and distinctive side mirrors with a sporty aggressive stance and large wheels.", + "The 2012 Lamborghini Gallardo LP 570 4 Superleggera is sleek low and wide with sharp angles and vibrant colors making it stand out.", + "The 2012 Lamborghini Gallardo LP 570 4 Superleggera features a sleek low profile sharp angles and distinctive side mirrors for easy recognition." + ], + "2012 Mercedes-Benz E-Class Sedan": [ + "The 2012 Mercedes Benz E Class Sedan has a sleek design luxury features and elegant lines distinguishing it from other cars in style and class.", + "The 2012 Mercedes Benz E Class Sedan is sleek with a luxurious design and a distinctive grille among various car types.", + "The 2012 Mercedes Benz E Class Sedan features sleek design luxury interior and distinctive front grille for easy recognition among cars.", + "Look for a sleek four door sedan with a distinctive Mercedes grille and modern headlights from 2012 era models." + ], + "2007 Chevrolet Express Cargo Van": [ + "The 2007 Chevrolet Express Cargo Van has a boxy shape large windows and sliding doors unlike many other car types which are sleeker and smaller.", + "A 2007 Chevrolet Express Cargo Van is a large boxy vehicle with sliding side doors and a high roof for utility purposes.", + "The 2007 Chevrolet Express Cargo Van has a boxy shape large rear doors and a high roof for easy loading and storage.", + "Identify it by its boxy shape large size and distinct Chevrolet grille and cargo doors on sides for utility purposes." + ], + "2012 GMC Terrain SUV": [ + "Look for a 2012 GMC Terrain SUV with its distinctive grille design and compact body shape among other cars.", + "The 2012 GMC Terrain SUV has a distinctive grille shape and body design differing from sedans and sports cars in compactness and utility features.", + "The 2012 GMC Terrain SUV features a robust design with a distinctive grille and sleek headlights for a modern look among cars.", + "The 2012 GMC Terrain SUV features a distinctive grille large wheels and a robust body design for easy identification among cars." + ], + "2008 Dodge Magnum Wagon": [ + "The 2008 Dodge Magnum Wagon has a boxy design with a long body and a distinctive front grille unlike many other cars.", + "The 2008 Dodge Magnum Wagon is a large station wagon with a boxy design and a long roofline for ample cargo space.", + "The 2008 Dodge Magnum Wagon features a boxy design with a long hood and a distinctive rear spoiler for easy identification among cars.", + "Look for a large station wagon with a boxy shape and distinctive Dodge grille and headlights from 2008 era models." + ], + "2012 Honda Accord Sedan": [ + "A 2012 Honda Accord Sedan is a midsize four door car with sleek design and efficient engine among various car types", + "Identify a 2012 Honda Accord Sedan by its sleek design four doors and distinctive front grille shape among various cars easily.", + "The 2012 Honda Accord Sedan features a sleek body design with a prominent front grille and modern alloy wheels for easy identification.", + "The 2012 Honda Accord Sedan has a sleek body four doors and a distinctive front grille differing from other car types visibly." + ], + "2008 Chrysler PT Cruiser Convertible": [ + "The 2008 Chrysler PT Cruiser Convertible has a boxy retro design with a soft top and vintage styling cues distinguishing it from other cars.", + "The Chrysler PT Cruiser Convertible has a retro boxy design and a foldable roof unlike most modern cars which are sleeker and streamlined.", + "The 2008 Chrysler PT Cruiser Convertible features a retro design boxy shape and soft top for easy identification among cars.", + "Identify it by its retro boxy shape with a soft top roof and distinctive round headlights on a compact body style." + ], + "2011 Mazda Tribute SUV": [ + "A 2011 Mazda Tribute SUV has a compact body with a sporty design and is known for its reliability and fuel efficiency among cars.", + "The 2011 Mazda Tribute SUV has a compact body curved roof and distinctive grille differing from sedans and sports cars in shape and size.", + "The 2011 Mazda Tribute SUV features a distinctive front grille design and compact body shape setting it apart from other cars.", + "The 2011 Mazda Tribute SUV features a distinctive front grille design and compact body shape for easy identification among various car types." + ], + "2012 BMW M3 Coupe": [ + "The 2012 BMW M3 Coupe features distinctive aggressive styling sleek bodywork and powerful performance elements setting it apart visually among cars.", + "A 2012 BMW M3 Coupe is sleek sporty with a distinctive front grille and aggressive styling compared to other cars.", + "The 2012 BMW M3 Coupe features sleek lines aggressive styling and distinctive headlights setting it apart from other cars visually.", + "The 2012 BMW M3 Coupe features sleek aerodynamic design aggressive front grille and distinctive quad exhaust pipes for easy identification among cars." + ], + "1998 Eagle Talon Hatchback": [ + "The 1998 Eagle Talon Hatchback is a compact car with a sporty design and a distinctive rear spoiler enhancing its aerodynamic look.", + "The 1998 Eagle Talon Hatchback has a distinctive compact body four doors and a sporty rear spoiler for easy identification among cars.", + "The 1998 Eagle Talon Hatchback features a compact body sporty design and unique rear hatch unlike many other cars in appearance", + "The 1998 Eagle Talon Hatchback features a sporty compact design with a distinctive front grille and rear spoiler for easy identification among cars." + ], + "2002 Daewoo Nubira Wagon": [ + "The 2002 Daewoo Nubira Wagon has a boxy shape compact size and distinct rear window design unlike many modern sleek cars.", + "The 2002 Daewoo Nubira Wagon is a compact family car with a boxy design and practical hatchback style for versatile use.", + "The 2002 Daewoo Nubira Wagon features a boxy shape compact size and a distinctive rear window design for easy recognition among cars.", + "Identify the 2002 Daewoo Nubira Wagon by its compact wagon body sleek headlights and distinctive front grille design among cars." + ], + "2012 BMW X6 SUV": [ + "The 2012 BMW X6 SUV features a sleek design large size and distinctive grille differing from smaller cars and sedans in appearance.", + "The 2012 BMW X6 SUV uniquely features a sleek coupe like roofline combined with a robust SUV body style design.", + "The 2012 BMW X6 SUV features a sleek design with a distinctive kidney grille and sporty profile standing out among cars.", + "Look for a sleek large SUV with distinctive BMW grille and unique coupe like roofline from 2012 era models only." + ], + "2008 Lamborghini Reventon Coupe": [ + "The 2008 Lamborghini Reventon Coupe stands out with its unique sharp angles and aggressive futuristic design unlike any other car.", + "The 2008 Lamborghini Reventon Coupe has a unique angular design sharp edges and exclusive features unlike other cars in appearance.", + "The 2008 Lamborghini Reventon Coupe features sharp angular lines aggressive styling and a unique low profile design for easy identification.", + "The 2008 Lamborghini Reventon Coupe uniquely features an angular aggressive design with sharp edges and a distinctive jet inspired rear wing." + ], + "2012 Cadillac SRX SUV": [ + "A 2012 Cadillac SRX SUV is a luxury vehicle with sleek design and distinctive grille among various car types in the dataset.", + "The 2012 Cadillac SRX SUV features a sleek design luxury interior and distinctive grille differing from other cars in elegance and style.", + "Identify a 2012 Cadillac SRX SUV by its sleek body design large grille and distinctive headlight shape among cars.", + "The 2012 Cadillac SRX SUV features a sleek design large grille and distinctive vertical tail lights for easy recognition." + ], + "2012 MINI Cooper Roadster Convertible": [ + "The 2012 MINI Cooper Roadster Convertible is small with a soft top two seats and distinctive circular headlights for easy recognition.", + "The 2012 MINI Cooper Roadster Convertible is compact with a sleek design two doors and a soft top roof for open air driving fun.", + "The 2012 MINI Cooper Roadster Convertible has a compact design soft top and unique two seater layout distinguishing it visually from others.", + "The 2012 MINI Cooper Roadster Convertible uniquely features a soft top roof and two seats for a sporty compact design appeal." + ], + "2012 Acura RL Sedan": [ + "The 2012 Acura RL Sedan is a luxury vehicle with sleek lines and a refined design distinguishing it in the car lineup.", + "The 2012 Acura RL Sedan features a sleek design with a distinctive grille and sharp headlights for easy identification among cars.", + "The 2012 Acura RL Sedan features a sleek design with a distinctive grille and sharp headlights differing from other car types visually.", + "The 2012 Acura RL Sedan features a sleek body design with a distinctive front grille and sharp headlights for easy identification." + ], + "2012 BMW 1 Series Convertible": [ + "The 2012 BMW 1 Series Convertible features sleek design soft top roof compact size and distinctive BMW grille for easy recognition.", + "The 2012 BMW 1 Series Convertible is sleek with a soft top and distinctive kidney grille design among various car types.", + "The 2012 BMW 1 Series Convertible has a sleek design soft top roof and distinctive front grille differing from other car types.", + "Look for a compact convertible with sleek lines and distinctive BMW grille and headlights from the front view for identification." + ], + "2007 Dodge Durango SUV": [ + "The 2007 Dodge Durango SUV is a large boxy vehicle with a robust design and a prominent front grille among cars.", + "Identify the 2007 Dodge Durango SUV by its large size boxy shape and distinctive front grille design among cars.", + "The 2007 Dodge Durango SUV has a boxy design larger size and distinct grille differing from sleeker smaller cars in appearance", + "The 2007 Dodge Durango SUV features a robust boxy design large grille and distinctive headlights for easy identification among cars." + ], + "2010 BMW M5 Sedan": [ + "The 2010 BMW M5 Sedan is a high performance luxury car with sleek design and powerful engine among various car types.", + "Identify a 2010 BMW M5 Sedan by its sleek design aggressive front grille and distinctive quad exhaust pipes on rear.", + "The 2010 BMW M5 Sedan features a sleek design aggressive front grille and distinctive quad exhaust pipes for easy recognition among cars.", + "The 2010 BMW M5 Sedan features sleek aerodynamic design sporty wheels and distinctive grille differing from other cars in style and performance." + ], + "2012 Chrysler Town and Country Minivan": [ + "The 2012 Chrysler Town and Country Minivan has a boxy shape large windows and sliding doors unlike most sedan or sports cars.", + "The 2012 Chrysler Town and Country Minivan is a large family vehicle with sliding doors and a boxy design for passenger comfort and utility.", + "Look for a large boxy van with sliding side doors and a distinctive Chrysler grille and logo on the front.", + "The 2012 Chrysler Town and Country Minivan features a boxy design large sliding doors and a distinctive front grille for easy recognition." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc/gpt-4.1/descriptions_top4/UCF101.json b/MSGCoOp/desc/gpt-4.1/descriptions_top4/UCF101.json new file mode 100644 index 0000000..4b3d10f --- /dev/null +++ b/MSGCoOp/desc/gpt-4.1/descriptions_top4/UCF101.json @@ -0,0 +1,608 @@ +{ + "Apply Eye Makeup": [ + "Apply Eye Makeup involves precise hand movements near the face focusing on eyes with tools and products for enhancement.", + "Apply Eye Makeup involves precise hand movements near the face unlike broader actions in other categories in UCF101 dataset", + "Identify Apply Eye Makeup by focusing on hands near face and use of makeup tools in closeup scenes of UCF101 videos", + "A person applying eye makeup uses small tools and focuses closely on their eyes for precise application in UCF101 dataset" + ], + "Apply Lipstick": [ + "Apply Lipstick shows a person holding a small object near their face unlike other actions which dont involve makeup application.", + "Identify Apply Lipstick by focusing on hand movements near the face and the presence of a small object in hand used for application.", + "Apply Lipstick involves a person holding a small object near their mouth with precise hand movements for application.", + "A person applying lipstick typically holds a small tube to their lips while looking in a mirror or at themselves closely." + ], + "Archery": [ + "Archery involves a bow and arrow with focused stance while other actions show varied movements and equipment use.", + "Archery involves a person holding a bow aiming and releasing an arrow with focus and precision in a calm stance.", + "Archery involves a person holding a bow aiming and releasing an arrow towards a target from a distance accurately.", + "A person doing Archery holds a bow aiming an arrow focusing on a distant target with great concentration and precision" + ], + "Baby Crawling": [ + "Baby crawling involves a small person moving on hands and knees with a distinct low body posture and slow motion.", + "Identify Baby Crawling by small child on hands and knees moving forward on the floor in a slow motion manner.", + "A person doing Baby Crawling moves on hands and knees like a small child exploring the floor slowly and cautiously.", + "Baby crawling shows a child on hands and knees moving forward unlike standing walking or running actions in adults or older kids." + ], + "Balance Beam": [ + "A person on a Balance Beam is identified by their narrow beam walking and balancing actions in gymnastics settings.", + "Balance Beam shows a person on a narrow beam performing gymnastics unlike other actions which lack this specific equipment and posture.", + "Balance Beam features include narrow beam walking precise balance and controlled body movements distinguishing it from other actions easily.", + "A person doing Balance Beam performs precise movements on a narrow beam requiring balance and coordination in gymnastics." + ], + "Band Marching": [ + "Band marching involves uniformed individuals playing instruments in formation unlike casual actions which lack structured group activity and attire.", + "Band marching features synchronized group movements musical instruments and uniform attire distinguishing it from other actions clearly", + "Band Marching involves people in uniform playing instruments while moving in organized formations during parades or events.", + "Band marching uniquely features people in uniform playing instruments while marching in organized formations in open spaces." + ], + "Baseball Pitch": [ + "A person doing Baseball Pitch appears with a ball in hand throwing it with a specific arm motion and body stance.", + "A person doing Baseball Pitch throws a ball overhand with a focused stance aiming for the batter in a game setting.", + "Baseball Pitch involves a person throwing a ball with specific arm and body movements unlike other actions in UCF101 dataset.", + "A person doing Baseball Pitch uniquely shows a windup motion followed by a powerful arm throw towards a target." + ], + "Basketball": [ + "Basketball involves players dribbling shooting and passing a ball while defending against opponents in a court setting efficiently.", + "Basketball players wear specific uniforms and dribble a ball while others do not in various actions within the dataset.", + "Basketball involves a person dribbling shooting and passing a round ball in a court setting uniquely among actions.", + "Look for individuals holding a ball jumping or dribbling on a court with a hoop in the background to spot basketball." + ], + "Basketball Dunk": [ + "A person doing Basketball Dunk leaps high to forcefully slam the ball through the hoop with strength and precision.", + "Basketball Dunk involves a player jumping high to score while other actions show different sports or movements on the ground.", + "A person doing Basketball Dunk leaps high holding the ball aiming to score through the hoop with force.", + "Basketball Dunk features include a person jumping high with one hand holding the ball aiming to score in the hoop efficiently." + ], + "Bench Press": [ + "Bench press involves lying on a bench lifting weights above chest with arms extending and bending at elbows repeatedly for strength training.", + "Identify bench press by spotting a person lying on a flat bench lifting weights with arms extended upwards.", + "Bench press shows a person lying down pushing weights up while other actions involve standing or different body positions movements.", + "Bench Press uniquely involves lying on a flat surface while lifting weights directly above the chest in a controlled manner." + ], + "Biking": [ + "Biking involves continuous leg movement pedaling a two wheeled vehicle with a person sitting upright steering with hands on handlebars.", + "Biking involves a person on a bicycle with two wheels while other actions show different body movements and objects.", + "Identify biking by observing individuals seated on two wheeled vehicles pedaling outdoors in various environments and attire.", + "A person biking appears seated on a bicycle pedaling with legs while holding handlebars for balance and control during movement." + ], + "Billiards": [ + "Billiards involves a person using a cue stick aiming at balls on a table with pockets for scoring points in games.", + "Billiards involves a cue ball table and focused posture unlike sports with dynamic movements or outdoor settings.", + "Identify Billiards by observing a person aiming hitting balls with a cue stick on a table in a calm environment setting.", + "Billiards uniquely involves a person using a cue stick to strike balls on a table with pockets for scoring points." + ], + "Blow Dry Hair": [ + "Identify blow dry hair by spotting a person holding a hairdryer aiming it at their head while standing still.", + "Blow Dry Hair shows a person holding a hairdryer directing airflow to their hair unlike other actions focusing on different objects.", + "Blow drying hair shows a person using a handheld device to dry hair while moving it with their other hand for styling.", + "A person holding a hairdryer close to their head while moving it is unique to Blow Dry Hair action." + ], + "Blowing Candles": [ + "Blowing candles involves a person leaning forward exhaling air towards lit candles to extinguish them visibly different from other actions.", + "Blowing candles shows a person exhaling towards lit candles unlike actions involving movement or interaction with different objects or environments.", + "Blowing Candles involves a person exhaling to extinguish lit candles on a cake in a celebratory setting with focused attention.", + "A person doing Blowing Candles appears to lean forward exhaling intensely towards lit candles on a cake in celebration settings." + ], + "Body Weight Squats": [ + "A person doing Body Weight Squats bends knees lowers body using body weight for resistance in a controlled manner.", + "A person doing Body Weight Squats bends knees lowers body while standing upright using body weight for resistance only.", + "Body weight squats involve bending knees lowering body using bodyweight unlike actions with external weights or different movements.", + "Body weight squats involve bending knees lowering body using body weight for resistance unlike other exercises needing equipment." + ], + "Bowling": [ + "Bowling is identified by a person holding a ball and swinging their arm to release it down a lane towards pins.", + "Bowling involves a person throwing a ball down a lane aiming for pins unlike other actions which dont use such equipment or settings.", + "Bowling involves a person holding a ball swinging it back and forth then releasing it down a lane towards pins for scoring.", + "A person bowling swings their arm forward releasing a ball down a lane aiming to knock down pins accurately and powerfully" + ], + "Boxing Punching Bag": [ + "Boxing Punching Bag involves repetitive arm movements targeting a stationary bag while maintaining a strong stance and focused posture.", + "Identify Boxing Punching Bag by observing a person repeatedly striking a hanging bag with forceful punches in a gym setting", + "Boxing Punching Bag shows a person repeatedly hitting a stationary bag unlike actions involving movement or different objects.", + "Boxing Punching Bag uniquely shows repetitive arm movements targeting a stationary bag unlike other actions in the dataset." + ], + "Boxing Speed Bag": [ + "Boxing speed bag features rapid hand movements close to a small bag with a person standing in a fixed position.", + "A person boxing speed bag rapidly punches a small bag while standing in a gym or training area focused on speed.", + "Boxing Speed Bag shows rapid hand movements on a small bag unlike slower actions in other sports activities in UCF101", + "Boxing speed bag uniquely involves rapid hand movements on a small bag unlike other actions in UCF101 dataset" + ], + "Breast Stroke": [ + "Breast stroke involves a person moving arms outwards then inwards while kicking legs together in a frog like motion for swimming.", + "Breast stroke shows a person moving arms outwards then inwards while kicking legs in a frog like motion unlike other strokes.", + "A person doing Breast Stroke moves both arms forward together then pulls them back while bending knees and pushing legs outwards.", + "A person doing Breast Stroke moves arms out to sides then together while kicking legs outwards and bringing them together in a circular motion." + ], + "Brushing Teeth": [ + "Brushing teeth shows a person holding a toothbrush near their mouth unlike other actions which do not involve this specific motion.", + "Brushing Teeth involves repetitive hand movements near the mouth with a toothbrush distinguishing it from other actions clearly", + "Look for a person holding a toothbrush near their mouth with repetitive up and down hand movements near face area.", + "Brushing Teeth shows a person holding a toothbrush near their mouth moving it back and forth in a cleaning motion." + ], + "Clean And Jerk": [ + "Clean and Jerk involves lifting a barbell from floor to shoulders then overhead distinguishing it from other actions by its specific lifting sequence.", + "Identify Clean And Jerk by spotting a person lifting a barbell from floor to shoulder then overhead in a single motion quickly.", + "Clean and Jerk involves lifting a barbell from floor to overhead while other actions show different body movements and equipment use.", + "A person doing Clean and Jerk lifts a barbell from floor to shoulders then overhead in one continuous motion in weightlifting." + ], + "Cliff Diving": [ + "Cliff diving involves a person jumping from high cliffs into water unlike other actions which may not include such heights or water.", + "Cliff diving is identified by a person jumping from a high cliff into water with arms spread wide in midair.", + "A person doing Cliff Diving leaps from a high cliff into water executing various aerial maneuvers during the dive.", + "Cliff diving uniquely shows a person soaring through air above water after jumping from a high natural rock formation." + ], + "Cricket Bowling": [ + "Cricket bowling is identified by a person in a bowling stance throwing a ball with a run up on a field.", + "Cricket bowling involves a person throwing a ball with one arm extended while running up to a wicket unlike other actions.", + "Cricket bowling involves a person throwing a ball with a specific arm motion and body posture different from other actions in sports.", + "Cricket bowling uniquely shows a person running up and delivering a ball with a specific arm action not seen in other sports." + ], + "Cricket Shot": [ + "Cricket Shot involves a bat swing and ball while other actions like running or jumping lack these specific elements and equipment.", + "Cricket shot involves a player swinging a bat to hit a ball with distinct body posture and hand movement for recognition.", + "A person doing Cricket Shot holds a bat swings it aiming at a ball during a game or practice session.", + "A cricket shot uniquely shows a player swinging a bat to hit a ball in motion during a game." + ], + "Cutting In Kitchen": [ + "Cutting in kitchen involves sharp tools hands moving precisely on food items distinguishing it from other actions easily and clearly.", + "Cutting in kitchen involves holding knives and chopping food unlike other actions which may not include these specific tools or activities.", + "Look for hands using knives on food items in a kitchen setting with visible kitchenware around the person.", + "A person cutting in kitchen typically uses knives on food items standing at a counter in a home environment efficiently." + ], + "Diving": [ + "Diving is identified by a person jumping into water with arms extended and body streamlined in various positions.", + "Diving involves a person jumping into water with specific body positions unlike other actions which lack this aquatic focus and posture.", + "Diving features include a person jumping from height entering water with streamlined body and minimal splash for efficient entry.", + "A person diving leaps into water with body streamlined and arms extended aiming for a splashless entry in action scenes." + ], + "Drumming": [ + "Drumming involves rapid hand movements on drums with sticks while seated or standing in a rhythmic pattern.", + "Drumming involves hands moving rhythmically on drums with sticks or fingers in a repetitive pattern distinguishing it from other actions.", + "Drumming involves rhythmic hand movements on drums while other actions show diverse body postures and object interactions instead.", + "Drumming involves a person playing drums with sticks using rhythmic hand and foot movements in various settings and attire." + ], + "Fencing": [ + "Fencing involves two people with protective gear and swords engaged in a structured combat sport requiring precise movements and strategy.", + "Fencing involves two people with protective gear and swords while other actions show varied movements and no specific equipment used.", + "Fencing involves two people in protective gear using swords with precise movements and strategic positioning for scoring points in a match.", + "Fencing involves two people using swords in a controlled duel requiring agility precision and strategic movements in a marked area" + ], + "Field Hockey Penalty": [ + "Field Hockey Penalty involves players in specific uniforms using sticks to hit a ball unlike other actions which vary widely.", + "A person doing Field Hockey Penalty appears with a stick aiming at a ball on a marked field during a game stoppage", + "A person doing Field Hockey Penalty stands ready to strike the ball during a game with focused intensity and precision.", + "A person doing Field Hockey Penalty uniquely holds a stick aiming at a ball on the ground during a specific game moment." + ], + "Floor Gymnastics": [ + "Floor gymnastics involves specific body movements on a mat unlike other actions which may not require such precise poses and balance skills", + "Identify floor gymnastics by spotting a person performing precise acrobatic movements on a mat without using any apparatus.", + "Floor gymnastics features precise body control dynamic movements and floor contact distinguishing it from other action types in sports analysis", + "Floor gymnastics involves athletes performing complex routines with flips and spins on a mat in a controlled indoor environment" + ], + "Frisbee Catch": [ + "Frisbee catch shows a person actively throwing or catching a disc unlike other actions which may not involve such specific object interaction.", + "Frisbee catch involves a person throwing and catching a flat disc with dynamic arm and hand movements in open spaces.", + "A person doing Frisbee Catch appears focused throwing or catching a flying disc in various outdoor settings with others nearby.", + "Frisbee catch uniquely involves a person extending arms to catch a spinning disc in midair with focus and precision." + ], + "Front Crawl": [ + "Front Crawl shows a swimmer moving forward with alternating arm strokes and flutter kicks unlike other swimming styles or actions.", + "A person doing Front Crawl moves arms alternately while kicking legs in water mimicking a swimming action efficiently and swiftly.", + "Front Crawl uniquely shows alternating arm strokes and flutter kicks while swimming face down in water continuously.", + "A person doing Front Crawl moves arms alternately in a circular motion while kicking legs in a flutter kick rhythm continuously." + ], + "Golf Swing": [ + "Golf swing involves a person holding a club swinging it to hit a ball with focused body posture and arm movement.", + "A person doing Golf Swing holds a club swinging it in a wide arc for hitting a ball on a course.", + "Golf Swing involves a person holding a club swinging it in a specific stance unlike other actions in UCF101 dataset", + "A person doing Golf Swing holds a club preparing to hit a ball in a stance focused on precision and power." + ], + "Haircut": [ + "Haircut involves scissors cutting hair with a person standing or sitting while another holds and trims their hair carefully precisely.", + "Identify Haircut by observing someone using scissors or clippers on another persons head focusing on hair styling actions closely.", + "Haircut involves a person cutting hair with scissors while others show varied actions like dancing or playing sports differently.", + "A person doing Haircut uniquely involves scissors or clippers cutting hair while another holds it steady in UCF101 dataset." + ], + "Hammering": [ + "Hammering involves repetitive arm movements with a tool striking an object distinguishing it from other actions in the dataset clearly.", + "Hammering involves a person holding and swinging a hammer unlike actions without tools or different motions used in various tasks", + "A person hammering appears holding a tool repeatedly striking an object distinguishing it from other actions visually", + "A person doing hammering holds a hammer striking an object repeatedly with forceful motions in various settings." + ], + "Hammer Throw": [ + "Hammer throw involves a person swinging a heavy ball while other actions show varied movements without such specific equipment use.", + "Hammer throw features a person spinning rapidly holding an object with a chain aiming to throw it far with precision and power.", + "A person doing Hammer Throw spins rapidly holding a heavy ball on a wire aiming to throw it far.", + "The unique visual cue is the person spinning with a hammer in hand preparing to throw it far." + ], + "Handstand Pushups": [ + "Handstand pushups involve a person balancing upside down on hands while bending and extending arms unlike other actions in appearance.", + "Handstand pushups uniquely show a person inverted with hands on the ground performing pushups while balancing on their hands alone.", + "A person doing Handstand Pushups appears inverted with straight legs arms extended and body perpendicular to the ground during pushups.", + "A person doing Handstand Pushups balances upside down on hands while lowering and raising body vertically in controlled motion." + ], + "Handstand Walking": [ + "Identify Handstand Walking by spotting a person upright on hands moving forward with legs extended in air balanced on hands alone.", + "Handstand walking shows a person upright on hands while others may use feet or involve different body positions for movement.", + "Handstand walking features a person walking on hands with legs extended above balancing upright in various environments efficiently.", + "Handstand walking uniquely shows a person walking on hands with legs extended in a straight line above." + ], + "Head Massage": [ + "Head massage involves hands on head while other actions show varied limb movements and postures not focused on head.", + "A person doing Head Massage typically uses hands to apply pressure and rub the scalp methodically for relaxation.", + "Head massage involves hands pressing and rubbing the scalp and neck area distinguishing it from other actions in the dataset clearly.", + "A person doing Head Massage typically shows hands on another's head applying pressure and circular motions for relaxation." + ], + "High Jump": [ + "A person doing High Jump is identified by their vertical leap over a bar with bent legs and extended arms.", + "High jump involves a person leaping over a bar using specific techniques unlike other actions which dont require such precise movements.", + "High Jump involves a person leaping over a bar using a curved run up and one foot takeoff technique for clearance.", + "A person doing High Jump leaps over a bar using a one and a half meter long pole for support in action." + ], + "Horse Race": [ + "Horse race shows people riding horses at speed while others may walk or perform unrelated activities differently.", + "Identify horse race by people riding horses competing in a race track with spectators around watching the event closely.", + "A person doing Horse Race rides a horse swiftly competing against others in a track event for speed and endurance.", + "Horse race uniquely shows people riding horses at high speeds in competitive racing events on tracks." + ], + "Horse Riding": [ + "Horse riding features a person seated on a horse holding reins and guiding it while maintaining balance and control.", + "Identify horse riding by spotting a person seated on a horse with reins in hand in an open field setting.", + "Horse riding involves a person seated on a horse using reins while other actions show different body positions and movements.", + "A person doing Horse Riding sits atop a horse guiding it with reins in various settings like fields or tracks." + ], + "Hula Hoop": [ + "Hula Hoop involves a person using a hoop around their body unlike other actions which do not use such equipment.", + "A person doing Hula Hoop spins a hoop around their body in rhythmic circular motions often with added dance steps.", + "A person doing Hula Hoop spins a hoop around their waist continuously in a rhythmic circular motion distinguishing it visually.", + "Hula Hoop involves continuous circular motion around the waist with a hoop distinguishing it from other actions in UCF101 dataset" + ], + "Ice Dancing": [ + "Ice dancing involves graceful movements with partners gliding spinning and performing synchronized steps on ice rinks.", + "Ice dancers wear skates perform graceful synchronized movements on ice distinguishing them from other action categories easily.", + "Ice dancing shows synchronized movements in elegant costumes on ice unlike other actions which vary in setting and attire.", + "Ice dancing features synchronized movements graceful poses and fluid arm gestures distinguishing it from other actions in sports." + ], + "Javelin Throw": [ + "Javelin Throw involves a person holding a long stick preparing to throw it unlike other actions which dont use such equipment.", + "Javelin throwers exhibit a powerful overhand throwing motion with a run up and a distinct follow through for recognition in action videos", + "A person doing Javelin Throw appears to be throwing a long spear using one hand with a powerful motion in an open field.", + "A person in Javelin Throw holds a long thin object above shoulder level preparing to launch it with a powerful throw." + ], + "Juggling Balls": [ + "Juggling balls involves multiple objects in motion unlike actions focusing on single object manipulation or body movements alone.", + "Identify juggling by spotting multiple balls in motion above hands in a rhythmic pattern amidst various actions around.", + "Juggling Balls involves rapid hand movements with multiple objects in air distinguishing it from other actions in UCF101 dataset", + "Juggling Balls uniquely shows multiple objects in motion above hand level unlike other actions in UCF101 dataset" + ], + "Jumping Jack": [ + "Jumping Jacks involve rapid arm and leg movements unlike slower actions such as walking or standing which have minimal motion.", + "Jumping Jacks involve arms and legs moving simultaneously outwards and inwards in a rhythmic continuous motion for exercise.", + "Jumping Jacks involve arms and legs moving outward simultaneously in a repetitive manner distinguishing them from other actions easily.", + "A person doing Jumping Jacks moves arms and legs outwards then inwards repeatedly in a rhythmic fashion for exercise." + ], + "Jump Rope": [ + "Identify jump rope by continuous arm swings and legs moving rhythmically up and down in a repetitive manner.", + "Jump rope involves continuous motion with arms swinging and legs jumping while others show varied static or dynamic movements differently.", + "A person doing Jump Rope swings a rope over their head while jumping continuously in place or moving around.", + "Jump rope involves continuous arm swings and feet hopping distinguishing it from other actions by its rhythmic repetitive motion pattern." + ], + "Kayaking": [ + "Kayaking involves a person paddling a small boat on water distinguishing it from other actions by its aquatic setting and equipment use.", + "Kayaking is identified by a person in a small boat using a paddle for movement on water distinguishing it from other actions.", + "Kayaking shows a person in a small boat with a paddle on water unlike other actions which dont involve watercraft.", + "Kayaking shows a person paddling a small boat on water distinguishing it from other water sports by the boat type and action." + ], + "Knitting": [ + "Knitting involves intricate hand movements with yarn and needles unlike other actions which may not require such fine motor skills.", + "Knitting involves hands manipulating yarn with needles creating fabric patterns distinct from other actions in UCF101 dataset", + "A person knitting typically holds yarn and needles with focused hand movements distinguishing it from other actions easily.", + "Knitting uniquely involves hands manipulating yarn with needles creating fabric loops in a repetitive pattern not seen in other actions." + ], + "Long Jump": [ + "Long jump involves a person running then leaping into a sand pit unlike other actions which dont require such specific equipment or motion.", + "Long jump features include a person running then leaping into a sand pit with extended arms and legs for distance.", + "A person doing Long Jump appears running then leaps far into a sand pit distinct from other actions in appearance.", + "A person doing Long Jump runs fast then leaps far into a sand pit demonstrating athletic skill and precision in motion." + ], + "Lunges": [ + "Lunges involve a person stepping forward with one leg while lowering their body and bending both knees distinctly.", + "Lunges involve one leg forward bent at knee while the other is extended back differing from other actions in leg positioning and balance.", + "Lunges involve one leg forward bent at knee while the other extends back with a straight posture distinguishing it from other actions.", + "A person doing Lunges steps forward with one leg bends knee lowers body and returns to starting position repeatedly." + ], + "Military Parade": [ + "Identify Military Parade by uniformed individuals marching in synchronized formation with precision and discipline in open spaces.", + "Military parade shows uniformed individuals marching in formation while other actions vary in attire and lack structured group movement.", + "A person doing Military Parade marches in formation with others wearing uniform carrying flags or weapons in a ceremonial display of strength.", + "Military parade features synchronized marching uniformed personnel carrying flags and weapons in formation for ceremonial display recognition." + ], + "Mixing": [ + "Mixing involves hands moving rhythmically in a bowl combining ingredients distinguishing it from other actions in diverse settings clearly.", + "Identify Mixing by observing hands in motion blending ingredients in a bowl with focused attention on the task.", + "Mixing shows hands blending ingredients in a bowl while other actions involve different body movements and tools not used in cooking.", + "A person mixing blends ingredients in a bowl using a spoon or whisk in a kitchen setting for cooking purposes." + ], + "Mopping Floor": [ + "Mopping involves a person pushing a mop across a floor in a back and forth motion to clean it effectively", + "Mopping floor involves a person pushing a mop across a floor unlike other actions that may not use cleaning tools or involve standing.", + "A person mopping floor uses a long handled tool to clean surfaces methodically moving it back and forth across the area.", + "A person mopping floors holds a mop and moves it back and forth while cleaning the ground surface diligently." + ], + "Nunchucks": [ + "Nunchucks involve fast dual arm movements with two connected sticks for combat training distinguishing it from other actions easily.", + "Nunchucks involve fast dual stick movements unlike slower single object actions or static poses in other UCF101 categories", + "Identify Nunchucks by two sticks connected by a chain used for swinging and striking in martial arts practice and demonstrations.", + "A person doing Nunchucks swings two connected sticks rapidly in various martial arts moves for self defense or demonstration purposes." + ], + "Parallel Bars": [ + "Parallel Bars involve a person swinging and performing tricks on two horizontal bars distinct from other gymnastics or sports actions.", + "Parallel Bars involve gymnastics with two bars while other actions show diverse movements and equipment not specific to gymnastics routines.", + "Identify Parallel Bars by two horizontal bars used for gymnastics where athletes perform swings and flips in a gym setting.", + "A person doing Parallel Bars swings and performs gymnastic routines using two bars for support and balance in a gym setting" + ], + "Pizza Tossing": [ + "Pizza tossing involves a person throwing dough in the air with hands in a circular motion creating a spinning effect for even cooking.", + "Look for someone throwing dough in the air with hands while standing in a kitchen or similar setting during food preparation.", + "Pizza tossing involves spinning dough in air while other actions show different object manipulations or body movements in varied settings.", + "A person doing Pizza Tossing flips dough high in air using hands in a kitchen setting during food preparation process." + ], + "Playing Cello": [ + "Playing Cello involves a large instrument held between legs with a bow unlike smaller hand held instruments or solo dance actions.", + "Identify a person playing cello by their large instrument posture and bowing hand movement distinct from other actions", + "Playing Cello involves a person sitting holding a large string instrument with a bow moving across strings to produce music sounds.", + "A person playing cello sits holding the instrument vertically using a bow to play strings while seated in a calm posture." + ], + "Playing Daf": [ + "Playing Daf involves hand movements on a frame drum unlike actions like running or jumping which use legs extensively.", + "Identify Playing Daf by observing a person holding and rhythmically hitting a round frame drum with their hand in various settings.", + "Playing Daf involves rhythmic hand movements on a circular frame drum distinct from other actions for clear visual recognition", + "A person playing Daf moves rhythmically hitting a round frame drum with hands in a musical performance setting." + ], + "Playing Dhol": [ + "Playing Dhol involves two sticks hitting a drum while other actions use different tools or body movements for varied activities.", + "Playing Dhol involves two sticks hitting a large drum with rhythmic movements and a person sitting while playing vigorously often in groups.", + "A person playing Dhol is identified by holding a large drum with two sticks and rhythmic hand movements near it.", + "A person playing Dhol holds a drum with both hands rhythmically hitting it while standing or sitting in a focused posture." + ], + "Playing Flute": [ + "Playing flute involves a person holding a flute to their mouth and fingers moving on holes for music production precisely.", + "Playing flute involves holding a wind instrument with fingers on keys while other actions dont require similar hand positions or instruments.", + "Identify playing flute by observing hands on flute mouthpiece and fingers moving along instrument body during performance", + "A person playing flute holds the instrument horizontally using fingers to cover holes while blowing into one end creating music sounds" + ], + "Playing Guitar": [ + "Playing guitar involves hands on strings and body posture distinct from other actions like dancing or running in appearance.", + "Playing guitar involves hands strumming strings on a guitar body with fingers pressing strings for notes recognition.", + "Playing guitar uniquely involves hands strumming strings on a guitar body while fingers press frets on the neck.", + "Look for hands on guitar strings fingers strumming and body posture typical of playing musical instruments in video frames" + ], + "Playing Piano": [ + "A person playing piano typically sits at a keyboard instrument moving fingers to press keys creating music sounds.", + "Identify playing piano by hands on keys fingers moving rhythmically body seated focused on instrument not moving much elsewhere.", + "Playing piano involves hands on keys with focused posture unlike actions with full body movement or different objects interaction", + "Playing piano involves hands on keys fingers moving rhythmically distinguishing it from other actions in diverse datasets efficiently." + ], + "Playing Sitar": [ + "Playing Sitar involves a person holding a sitar instrument and strumming strings unlike other actions which dont use musical instruments.", + "Identify a person playing sitar by their focused posture and hands skillfully moving on a long necked stringed instrument.", + "Playing Sitar involves a person sitting holding a long necked instrument with strings plucking them with fingers or a pick.", + "A person playing sitar sits or stands strumming a long necked stringed instrument with focused hand movements and posture." + ], + "Playing Tabla": [ + "Playing Tabla involves rapid hand movements on two drums with specific postures and rhythmic patterns distinguishing it from other actions.", + "Playing Tabla involves hands hitting a drum while other actions may not use musical instruments or require different body movements.", + "Identify Playing Tabla by hands rapidly striking a pair of small drums with intricate rhythmic patterns and focused posture.", + "A person playing tabla sits with hands rhythmically striking small drums in a focused and skilled manner during performance" + ], + "Playing Violin": [ + "Playing violin involves holding a violin and bow with specific hand positions unlike actions in other categories which vary widely.", + "Playing violin involves holding a violin under the chin using a bow on strings with precise hand movements and posture.", + "Playing violin uniquely involves holding a violin and bow with specific hand positions not seen in other actions", + "A person playing violin holds a violin under chin and uses a bow on strings while standing or sitting upright." + ], + "Pole Vault": [ + "Pole Vault involves a person using a pole to jump over a high bar distinguishing it from other actions easily.", + "Pole vaulters leap over high bars using poles distinctively bending and stretching their bodies for clearance in athletic competitions.", + "Pole vault involves a person using a pole to jump over a bar unlike other actions that dont require such equipment or technique.", + "Pole Vault uniquely features a person using a long pole to vault over a high bar in a single fluid motion." + ], + "Pommel Horse": [ + "Pommel horse actions involve circular leg movements around a fixed beam with hands gripping handles for balance and control during gymnastics routines", + "Pommel horse involves a person rotating around a fixed beam unlike other actions which dont use such specific equipment or techniques.", + "Look for a person performing circular movements on a low beam in a gymnastics setting to identify Pommel Horse action easily.", + "A person doing Pommel Horse spins around a bar using hands for support in a gymnastics routine requiring strength and balance" + ], + "Pull Ups": [ + "Pull ups involve a person hanging from a bar lifting their body weight upwards using arm strength and core muscles for exercise.", + "A person doing pull ups hangs from a bar and pulls themselves up repeatedly using arm strength alone in various settings.", + "Pull ups involve hanging from a bar lifting body weight while other actions may not require such specific equipment or posture.", + "Identify pull ups by observing a person hanging from a bar lifting their body upwards repeatedly using arm strength alone." + ], + "Punch": [ + "Punching involves a person extending their arm quickly towards a target with a clenched fist for impact recognition.", + "Identify a punch by observing a person extending their arm quickly towards another individual or object in a forceful manner.", + "Punching involves rapid arm movement towards a target unlike other actions which may focus on legs or full body movements instead.", + "A person doing Punch moves their arm quickly forward aiming to strike an opponent with a clenched fist in combat." + ], + "Push Ups": [ + "Push ups involve a person lowering and raising their body using arms with hands on the ground in a consistent rhythm.", + "A person doing push ups is on hands and knees lowering and raising body vertically in a controlled manner repeatedly.", + "Identify push ups by spotting a person in a plank position lowering and raising their body using arm strength alone.", + "Push ups show a person in a horizontal position with arms bending and straightening while other actions vary in posture and movement." + ], + "Rafting": [ + "Rafting involves people in life jackets on water with paddles unlike other actions which lack these specific elements and settings.", + "Rafting involves people wearing life jackets holding paddles navigating through water on inflatable rafts in groups often.", + "Rafting features people holding paddles in inflatable boats navigating water rapids distinguishing it from other water activities easily.", + "A person doing Rafting appears navigating water on an inflatable boat often with paddles amidst splashing waves and nature." + ], + "Rock Climbing Indoor": [ + "Rock climbing indoor features include gripping holds on artificial walls and climbers using safety harnesses and ropes for support and safety.", + "Rock climbing indoor shows people gripping artificial walls with safety gear unlike natural outdoor settings or other sports activities.", + "Look for individuals using ropes and harnesses scaling artificial walls in a controlled indoor environment for rock climbing.", + "Indoor rock climbing uniquely features climbers on artificial walls using hooks and ropes in controlled environments not found outdoors." + ], + "Rope Climbing": [ + "Identify Rope Climbing by spotting a person ascending a vertical rope using hands and feet in a controlled manner without safety gear.", + "Rope climbing shows a person ascending vertically using ropes while others involve different body movements and equipment in various settings.", + "Rope Climbing uniquely shows a person ascending a vertical rope using hands and feet in a controlled manner for height gain.", + "Rope climbing shows a person ascending vertically using a rope with hands and feet gripping tightly for support and movement." + ], + "Rowing": [ + "Rowing involves repetitive arm and leg movements in a seated position unlike standing actions or those with less rhythmic movements.", + "Rowing is identified by a person using oars to propel a boat through water in a rhythmic back and forth motion.", + "Rowing involves rhythmic arm and leg movements with a person seated on a boat using oars for propulsion in water.", + "Rowing uniquely involves repetitive arm movements with oars in water distinguishing it from other actions in the dataset" + ], + "Salsa Spin": [ + "Salsa Spin involves a person rotating gracefully with a partner unlike other actions that may not include such specific dance moves.", + "A person doing Salsa Spin moves rhythmically turning in circles with a partner gracefully among various actions", + "Salsa Spin features rapid body rotation arm movements and fluid footwork distinguishing it from other dance styles and actions", + "A person doing Salsa Spin appears to be moving in a circular motion with their partner in a rhythmic dance style." + ], + "Shaving Beard": [ + "A person shaving beard typically uses a razor focusing on facial hair removal in a bathroom setting carefully and precisely.", + "Shaving beard involves a person using a razor on facial hair which distinguishes it from other actions in the dataset", + "Shaving beard involves a person using a razor on facial hair unlike actions like running or jumping which involve full body movement.", + "Identify shaving beard by observing a person using a razor on their face focusing on the beard area specifically." + ], + "Shotput": [ + "Shotput involves a person holding a heavy ball preparing to throw it with a specific stance and motion for distance.", + "Shotput involves a person holding a heavy ball preparing to throw it unlike other actions which dont require such equipment or stance.", + "A person doing Shotput holds a heavy ball preparing to throw it with one hand over shoulder in a powerful stance.", + "Shotput uniquely involves a person holding a heavy metal ball preparing to throw it with one hand in a powerful stance." + ], + "Skate Boarding": [ + "Skateboarding involves a person balancing on a board performing tricks in various environments distinguishing it from other actions easily.", + "Skateboarding involves a person on a board with wheels performing tricks unlike other actions which may not use such equipment.", + "Identify skateboarders by their stance on a board performing tricks or gliding on ramps and streets in casual attire.", + "A person skateboarding shows dynamic balance on a board with feet positioned for control during tricks or rides." + ], + "Skiing": [ + "Skiing involves people sliding downhill on snow covered slopes using skis with poles for balance and speed control in varied terrains.", + "Skiing involves people wearing skis poles and winter gear gliding down snowy slopes distinguishing it from other actions easily.", + "Skiing involves individuals wearing skis and winter gear sliding down snow covered slopes unlike other actions in various environments.", + "Skiing uniquely shows people gliding on snow using skis with poles in mountainous terrains amidst winter conditions." + ], + "Skijet": [ + "Skijet shows a person on water with a jet ski unlike other actions which dont involve water or similar equipment.", + "Skijet involves a person riding a jet ski on water at high speed creating splashes and waves around them.", + "A person doing Skijet is seen riding a watercraft at high speed on water similar to surfing or jet skiing actions.", + "Skijet uniquely involves a person standing on a board propelled by water jets creating a distinct splash around them in action." + ], + "Sky Diving": [ + "Sky diving involves a person free falling from an airplane with a parachute for a thrilling aerial adventure experience.", + "Sky divers wear harnesses carry parachutes and free fall from high altitudes unlike other actions which are ground based or less extreme.", + "Skydivers wear specialized gear free fall from high altitudes distinguishing them from other action categories easily and clearly.", + "Skydivers wear parachutes freefall from high altitudes with open arms and legs spread wide for maximum air resistance during descent." + ], + "Soccer Juggling": [ + "Soccer juggling involves a person skillfully controlling a ball with body parts unlike other actions focusing on different equipment or movements.", + "Soccer juggling uniquely involves a person repeatedly kicking a ball in the air with feet and head maintaining control without it touching the ground.", + "A person doing soccer juggling uses feet to keep a ball in air showing skillful control and coordination in varied positions.", + "A person doing Soccer Juggling skillfully controls a ball with body parts keeping it airborne during play or practice." + ], + "Soccer Penalty": [ + "A person doing Soccer Penalty stands on a spot kicks the ball powerfully towards the goal during a match game.", + "A person in Soccer Penalty stands still then sprints to kick the ball aiming at the goalpost distinctly.", + "Soccer Penalty shows a player kicking a ball in a focused stance unlike casual kicks or other sports actions in appearance.", + "A person doing Soccer Penalty stands on a field aiming to kick a ball placed on the ground towards a goal." + ], + "Still Rings": [ + "Still Rings involve a person holding a static position on gymnastic rings unlike dynamic actions seen in other sports activities", + "Still Rings involve a person performing static gymnastics moves on rings focusing on strength and balance in a controlled environment", + "Still Rings uniquely shows a person hanging motionless from two suspended rings unlike other dynamic actions in UCF101 dataset", + "A person doing Still Rings maintains a fixed position on gymnastic rings performing controlled movements with minimal body sway and rotation." + ], + "Sumo Wrestling": [ + "Sumo wrestling shows large wrestlers in mawashi belts grappling while other actions involve diverse attire and movements not specific to sumo.", + "Sumo wrestlers are large heavyset individuals wearing mawashi wrestling in a ring with traditional Japanese attire.", + "Sumo wrestlers are large strong men wearing mawashi wrestling in a ring using grappling techniques to push opponents out.", + "Sumo wrestling features two large wrestlers in traditional attire grappling in a ring aiming to push each other out." + ], + "Surfing": [ + "Surfing involves a person balancing on a board riding ocean waves distinct from other actions by water interaction and posture.", + "Identify Surfing by observing a person standing on a board riding waves in water amidst splashes and foam.", + "Surfing involves a person on a board riding waves while other actions show different equipment and body positions in various settings.", + "Surfing uniquely involves balancing on a board over water waves distinct from other actions in UCF101 dataset" + ], + "Swing": [ + "Identify Swing by observing rhythmic arm movements and body swaying in a dance like manner with partners.", + "Swing involves rhythmic arm movements and a partner unlike other actions which may focus on legs or solo performance", + "Swing involves two people moving rhythmically side to side with coordinated steps and arm movements in a dance setting.", + "A person doing Swing moves rhythmically often with a partner in a dance floor setting enjoying music and social interaction." + ], + "Table Tennis Shot": [ + "Table Tennis Shot involves a racket hitting a small ball while other actions may not use similar equipment or have distinct motions.", + "A person doing Table Tennis Shot holds a paddle and hits a small ball across a net in a fast precise manner.", + "Table Tennis Shot involves rapid hand movements with a small paddle hitting a tiny ball back and forth over a net.", + "Identify Table Tennis Shot by observing rapid hand movements and a small ball near a table with two players actively engaged." + ], + "Tai Chi": [ + "Tai Chi is identified by slow deliberate movements fluid postures and calm demeanor distinguishing it from other actions easily.", + "Tai Chi involves slow graceful movements with deep breathing and balance distinguishing it from other actions in the dataset", + "Tai Chi involves slow fluid movements unlike faster more vigorous actions seen in other activities in UCF101 dataset", + "Tai Chi uniquely features slow deliberate movements with a focus on balance and fluidity distinguishing it from other actions." + ], + "Tennis Swing": [ + "Tennis swing involves a racket and ball while other actions may not require specific equipment or follow a set motion pattern.", + "Tennis swing shows a person holding a racket swinging it powerfully to hit a ball during a game or practice session.", + "A person doing Tennis Swing holds racket swings it to hit ball during a tennis match or practice session", + "A person doing Tennis Swing holds a racket swings it with force aiming at a ball during a game or practice session" + ], + "Throw Discus": [ + "Throw Discus involves a person spinning and throwing a heavy disc unlike other actions which may not include such specific equipment or motion.", + "Throwing discus involves a person spinning and releasing a heavy disc in a circular motion for distance in a field event.", + "A person throwing discus spins holding an object then releases it with force aiming for distance in a field setting", + "Identify Throw Discus by a person holding a discus preparing to throw it with a wide stance and arm extended back." + ], + "Trampoline Jumping": [ + "Trampoline jumping is identified by a person bouncing high in the air with legs extended or bent in various positions.", + "Trampoline Jumping shows a person bouncing high in air performing flips and tricks unlike other actions in UCF101 dataset", + "Trampoline jumping involves high vertical leaps with rapid bounces unique to trampolines distinguishing it from other action types easily.", + "Trampoline jumping shows a person bouncing high in air while other actions involve ground level movements and different body postures." + ], + "Typing": [ + "Typing involves hands rapidly moving on a keyboard with fingers pressing keys in a repetitive pattern for data entry tasks.", + "Typing is identified by hands on a keyboard fingers moving quickly in a repetitive motion focused on the screen area.", + "Typing involves hands on a keyboard with focused body posture unlike actions requiring full body movement or external objects interaction.", + "Typing uniquely involves fingers rapidly pressing keys on a keyboard in a repetitive motion unlike other actions." + ], + "Uneven Bars": [ + "A person doing Uneven Bars swings between two bars performing flips and tricks in gymnastics routines swiftly and gracefully.", + "Uneven Bars involve swinging gymnastics on two bars while other actions show different sports or activities without gymnastic equipment.", + "Identify Uneven Bars by gymnast performing on two parallel bars with swinging and flipping movements distinct from other actions.", + "Uneven Bars involve swinging between two bars with complex handstands and flips distinguishing it from other gymnastics routines significantly" + ], + "Volleyball Spiking": [ + "Volleyball spiking involves a player jumping high and hitting the ball with force unlike other actions which are less dynamic and varied.", + "Volleyball spiking involves a player jumping high to hit the ball over the net with force during a game.", + "Volleyball spiking involves a powerful jump with one arm extended above head hitting the ball forcefully towards the opponent court.", + "A person doing Volleyball Spiking jumps high hitting the ball forcefully over the net in a powerful motion towards opponents." + ], + "Walking With Dog": [ + "Walking with dog shows a person and a dog moving together outdoors distinguishing it from other actions easily.", + "Walking with dog shows a person and a dog moving together unlike actions involving solo individuals or different animals.", + "Identify a person walking with dog by spotting a human figure moving alongside an animal on a leash in outdoor settings.", + "A person doing Walking With Dog uniquely shows a leashed animal moving alongside them in outdoor settings consistently." + ], + "Wall Pushups": [ + "Wall pushups are identified by a person doing pushups with hands on a wall body inclined forward and legs straight back.", + "Wall pushups involve a person facing a wall hands placed on it body straight moving closer then pushing away repeatedly for exercise.", + "Wall pushups involve hands on a wall body angled differently from floor pushups and other exercises focusing on arm and core strength.", + "Wall pushups uniquely show a person facing a wall with hands on it while doing pushups in a standing position." + ], + "Writing On Board": [ + "Writing on board involves a person using a tool to write on a surface unlike actions like jumping or running which are more dynamic.", + "Writing on board involves a person standing using a marker or chalk on a board often in educational settings clearly visible.", + "Writing on board involves a person using a marker to write on a large flat surface while standing and facing the board.", + "A person writing on board appears focused holding a marker actively drawing on a large flat surface in educational settings" + ], + "Yo Yo": [ + "Identify Yo Yo by the rapid up and down hand movements and the spinning object between fingers clearly visible.", + "Yo Yo involves a stringed toy manipulation unlike other actions which may not use objects or have different motion patterns.", + "A person doing Yo Yo swings a stringed toy up and down skillfully using their hands for tricks and entertainment.", + "A person doing Yo Yo shows repetitive hand movements with a stringed object swinging up and down rhythmically in various tricks." + ] +} \ No newline at end of file diff --git a/MSGCoOp/desc_gen.py b/MSGCoOp/desc_gen.py new file mode 100644 index 0000000..70d9606 --- /dev/null +++ b/MSGCoOp/desc_gen.py @@ -0,0 +1,228 @@ +import json +import torch +import numpy as np +import argparse +from tqdm.auto import tqdm +from langchain.prompts import PromptTemplate, ChatPromptTemplate +from langchain_core.output_parsers import JsonOutputParser, StrOutputParser +from langchain_openai import ChatOpenAI +from clip import clip +from pathlib import Path + + +class DescriptionPipeline: + SYSTEM_PROMPT_TEMPLATE = "You are an expert in visual feature analysis for image classification. Analyze the given category and its similar categories from the {dataset} dataset." + + ATTRIBUTE_PROMPT_TEMPLATE = PromptTemplate.from_template(""" + You are an AI visual feature extractor. From each input description, extract ONLY the unique visual attributes as a concise phrase. + Return JUST the feature phrase WITHOUT any additional text or framing. Key requirements: + - Omit introductory clauses like "has" or "with" + - Start directly with the key visual features + - Combine multiple features with commas + - Preserve all specific details from input + - Keep purely descriptive + Description: "{description}" + """) + + DATASET_INFOS = { + "ImageNet": ["{}", "objects"], + "OxfordPets": ["a pet {}", "types of pets"], + "Caltech101": ["{}", "objects"], + "DescribableTextures": ["a {} texture", "types of texture"], + "EuroSAT": ["{}", "types of land in a centered satellite photo"], + "FGVCAircraft": ["a {} aircraft", "types of aircraft"], + "Food101": ["{}", "types of food"], + "OxfordFlowers": ["a flower {}", "types of flowers"], + "StanfordCars": ["a {} car", "types of car"], + "SUN397": ["a {} scene", "types of scenes"], + "UCF101": ["a person doing {}", "types of action"], + } + + DESCRIPTION_PROMPT_TEMPLATES = [ + PromptTemplate.from_template(f"{prompt} Respond with one plain English sentence only, 20 words max, no special characters.") + for prompt in [ + "What does {class_instance} look like among all {class_category}?", + "What are the distinct features of {class_instance} for recognition among all {class_category}?", + "How can you identify {class_instance} in appearance among all {class_category}?", + "What are the differences between {class_instance} and other {class_category} in appearance?", + "What visual cue is unique to {class_instance} among all {class_category}?", + ] + ] + + def __init__( + self, + base_url: str, + api_key: str, + model_id: str, + dataset_name: str, + model_name: str = None, + clip_model_id: str = "ViT-B/16", + ): + self.base_url = base_url + self.api_key = api_key + self.model_id = model_id + self.dataset_name = dataset_name + self.model_name = model_name if model_name else model_id + self.device = "cuda" if torch.cuda.is_available() else "cpu" + self.clip_model_id = clip_model_id + self.initialize_models() + + def initialize_models(self): + self.clip_model, self.clip_preprocess = clip.load( + self.clip_model_id, device=self.device + ) + + self.llm = ChatOpenAI( + temperature=0.3, + base_url=self.base_url, + api_key=self.api_key, + model=self.model_id, + ) + + self.json_parser = JsonOutputParser() + self.str_parser = StrOutputParser() + + self.output_dir = ( + Path("./desc/") / self.model_name + ) + + def get_class_descriptions(self): + classnames = self._load_classnames(self.dataset_name) + + result = {} + info = self.DATASET_INFOS[self.dataset_name] + chains = [ + (self._create_chain_with_system_prompt(template) | self.llm | self.str_parser) + for template in self.DESCRIPTION_PROMPT_TEMPLATES + ] + + for classname in tqdm(classnames, desc="Generating class descriptions"): + class_instance = info[0].format(classname) + class_category = info[1] + responses = [ + chain.invoke( + {"class_instance": class_instance, "class_category": class_category} + ) + for chain in chains + ] + responses = [resp.removeprefix("\n") for resp in responses] + result[classname] = responses + + self._save_json(result, f"descriptions_all/{self.dataset_name}.json") + return result + + def extract_attributes(self, descriptions: dict[str, list[str]]): + attribute_chain = self.ATTRIBUTE_PROMPT_TEMPLATE | self.llm | self.str_parser + results = {} + + for cls, desc_list in tqdm(descriptions.items(), desc="Extracting attributes"): + attributes = [] + for desc in desc_list: + try: + attr = attribute_chain.invoke({"description": desc}) + attributes.append(attr.strip('"').strip()) + except Exception as e: + print(f"Error processing {cls}: {e}") + results[cls] = attributes + + self._save_json(results, f"descriptons_extract/{self.dataset_name}.json") + return results + + def filter_top_descriptions(self, descriptions: dict[str, list[str]], k: int = 3): + results = {} + for cls, desc in tqdm(descriptions.items(), desc="Filtering top descriptions"): + similar_idx = self._get_most_similar_texts(cls, desc, k) + similar_txt = [desc[idx] for idx in similar_idx] + results[cls] = similar_txt + + self._save_json(results, f"descriptions_top{k}/{self.dataset_name}.json") + return results + + def _create_chain_with_system_prompt(self, user_template): + return ChatPromptTemplate.from_messages([ + ("system", self.SYSTEM_PROMPT_TEMPLATE.format(dataset = self.dataset_name)), + ("human", user_template.template if hasattr(user_template, 'template') else str(user_template)) + ]) + + def _get_most_similar_texts(self, cls: str, descs: list[str], k: int = 3): + descs = [f"a photo of {cls}, {desc}" for desc in descs] + inputs = clip.tokenize(descs).to(self.device) + + with torch.no_grad(): + text_features = self.clip_model.encode_text(inputs) + + sim_matrix = torch.mm(text_features, text_features.T).cpu().numpy() + + avg_scores = [] + for i in range(len(descs)): + total = sim_matrix[i].sum() - 1.0 + avg_scores.append(total / (len(descs) - 1)) + + topk_indices = np.argsort(avg_scores)[-k:][::-1] + return topk_indices + + def _compute_class_vectors(self, descriptions): + class_vectors = {} + for cls, descs in descriptions.items(): + descs = [f"a photo of {cls}, {desc}" for desc in descs] + tokens = clip.tokenize(descs).to(self.device) + + with torch.no_grad(): + features = self.clip_model.encode_text(tokens) + + class_vectors[cls] = features.mean(dim=0).cpu().numpy() + + return class_vectors + + def _load_classnames(self, dataset_name): + with open(f"./desc/classnames/{dataset_name}.txt", "r") as f: + return f.read().split("\n")[:-1] + + def _save_json(self, data, addtional_path:str|Path): + file_path = self.output_dir / addtional_path + file_path.parent.mkdir(parents=True, exist_ok=True) + with open(file_path, "w", encoding='utf-8') as f: + json.dump(data, f, indent=4, ensure_ascii=False) + + def run_pipeline(self): + print("Starting Description Genarate pipeline...") + + print("\n[Step 1/2] Generating class descriptions...") + descriptions = self.get_class_descriptions() + # with open(self.output_dir / f"descriptions_all/{self.dataset_name}.json", 'r', encoding='utf-8') as f: + # descriptions = json.load(f) + + print("\n[Step 2/2] Filtering top descriptions...") + self.filter_top_descriptions(descriptions, 4) + # with open("data/descriptions/gpt-4.1/Caltech101/descriptions_top4.json", 'r') as f: + # top_descriptions = json.load(f) + + print("\nPipeline completed successfully!") + + +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description='Description Pipeline') + parser.add_argument('--dataset', type=str, nargs='+', + help='Dataset name (e.g. Caltech101, ImageNet)') + args = parser.parse_args() + + base_url, api_key, model_id, model_name = ( + "https://api.BASEURL.com/v1", + "sk-KEY", + "gpt-4.1", + "gpt-4.1", + ) + + all_dataset_names = set(DescriptionPipeline.DATASET_INFOS.keys()) + spec_dataset_names = set(args.dataset) if args.dataset else all_dataset_names + gen_dataset_names = spec_dataset_names & all_dataset_names + if gen_dataset_names: + print(f"Specified Datasets [{", ".join(gen_dataset_names)}]...") + for gen_dataset_name in gen_dataset_names: + print(f"Generating for Dataset {gen_dataset_name}.") + pipeline = DescriptionPipeline( + base_url, api_key, model_id, gen_dataset_name, model_name + ) + pipeline.run_pipeline() + print("All Finished!") diff --git a/MSGCoOp/extract_acc.py b/MSGCoOp/extract_acc.py new file mode 100644 index 0000000..ef2f12c --- /dev/null +++ b/MSGCoOp/extract_acc.py @@ -0,0 +1,109 @@ +import os +import re +from glob import glob +from collections import defaultdict + +def extract_accuracy(log_path): + try: + with open(log_path, 'r') as f: + content = f.read() + match = re.search(r'\* accuracy: (\d+\.\d+)%', content) + if match: + return float(match.group(1)) + except: + pass + return None + +def collect_model_results(root_dir, target_model): + results = { + 'base': defaultdict(list), + 'new': defaultdict(list), + 'datasets': set() + } + base_logs = glob(os.path.join(root_dir, '**/train_base/**/log.txt'), recursive=True) + for log_path in base_logs: + parts = log_path.split(os.sep) + dataset = parts[-6] + model = parts[-4] + + if model != target_model: + continue + + accuracy = extract_accuracy(log_path) + if accuracy is not None: + results['base'][dataset].append(accuracy) + results['datasets'].add(dataset) + + new_logs = glob(os.path.join(root_dir, '**/test_new/**/log.txt'), recursive=True) + for log_path in new_logs: + parts = log_path.split(os.sep) + dataset = parts[-6] + model = parts[-4] + + if model != target_model: + continue + + accuracy = extract_accuracy(log_path) + if accuracy is not None: + results['new'][dataset].append(accuracy) + results['datasets'].add(dataset) + + return results + +def calculate_harmonic_mean(base, new): + if base == 0 or new == 0: + return 0 + return 2 * base * new / (base + new) + +def calculate_average(values): + if not values: + return None + return sum(values) / len(values) + +def print_model_results(results, model_name): + datasets = sorted(results['datasets']) + + base_sum = 0 + new_sum = 0 + valid_datasets = 0 + + print(f"\nResults for model: {model_name}") + print(f"{'Dataset':<15} {'Base':<10} {'New':<10} {'H':<10} {'Seeds':<10}") + print("-" * 60) + + for dataset in datasets: + base_accs = results['base'].get(dataset, []) + new_accs = results['new'].get(dataset, [0.0, 0.0, 0.0]) + + if base_accs and new_accs: + avg_base = calculate_average(base_accs) + avg_new = calculate_average(new_accs) + h = calculate_harmonic_mean(avg_base, avg_new) + + num_seeds = min(len(base_accs), len(new_accs)) + + print(f"{dataset:<15} {avg_base:.2f}{'':<6} {avg_new:.2f}{'':<6} {h:.2f}{'':<6} {num_seeds}") + + base_sum += avg_base + new_sum += avg_new + valid_datasets += 1 + + if valid_datasets > 0: + avg_base = base_sum / valid_datasets + avg_new = new_sum / valid_datasets + avg_h = calculate_harmonic_mean(avg_base, avg_new) + print("-" * 60) + print(f"{'Average':<15} {avg_base:.2f}{'':<6} {avg_new:.2f}{'':<6} {avg_h:.2f}") + else: + print("No complete dataset results found for this model.") + +def main(): + root_dir = 'output_xda' # 修改为你的output目录路径 + target_model = 'MSGCoOp' # 指定要分析的模型 + + results = collect_model_results(root_dir, target_model) + print_model_results(results, target_model) + +if __name__ == '__main__': + main() + diff --git a/MSGCoOp/interpret_prompt.py b/MSGCoOp/interpret_prompt.py new file mode 100644 index 0000000..74150a8 --- /dev/null +++ b/MSGCoOp/interpret_prompt.py @@ -0,0 +1,63 @@ +import os +import sys +import argparse +import torch + +from clip.simple_tokenizer import SimpleTokenizer +from clip import clip + + +def load_clip_to_cpu(backbone_name="RN50"): + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + + +parser = argparse.ArgumentParser() +parser.add_argument("fpath", type=str, help="Path to the learned prompt") +parser.add_argument("topk", type=int, help="Select top-k similar words") +args = parser.parse_args() + +fpath = args.fpath +topk = args.topk + +assert os.path.exists(fpath) + +print(f"Return the top-{topk} matched words") + +tokenizer = SimpleTokenizer() +clip_model = load_clip_to_cpu() +token_embedding = clip_model.token_embedding.weight +print(f"Size of token embedding: {token_embedding.shape}") + +prompt_learner = torch.load(fpath, map_location="cpu")["state_dict"] +ctx = prompt_learner["ctx"] +ctx = ctx.float() +print(f"Size of context: {ctx.shape}") + +if ctx.dim() == 2: + # Generic context + distance = torch.cdist(ctx, token_embedding) + print(f"Size of distance matrix: {distance.shape}") + sorted_idxs = torch.argsort(distance, dim=1) + sorted_idxs = sorted_idxs[:, :topk] + + for m, idxs in enumerate(sorted_idxs): + words = [tokenizer.decoder[idx.item()] for idx in idxs] + dist = [f"{distance[m, idx].item():.4f}" for idx in idxs] + print(f"{m+1}: {words} {dist}") + +elif ctx.dim() == 3: + # Class-specific context + raise NotImplementedError diff --git a/MSGCoOp/lpclip/README.md b/MSGCoOp/lpclip/README.md new file mode 100644 index 0000000..390d0bb --- /dev/null +++ b/MSGCoOp/lpclip/README.md @@ -0,0 +1,17 @@ +# Linear Probe CLIP + +To run linear probe baselines, make sure that your current working directory is `lpclip/`. + +Step 1: Extract Features using the CLIP Image Encoder +```bash +sh feat_extractor.sh +``` + +Step 2: Train few-shot linear probe +```bash +sh linear_probe.sh +``` + +We follow the instructions stated in the Appendix A3 (pp.38) of [the original CLIP paper](https://arxiv.org/pdf/2103.00020.pdf), with a careful hyperparameter sweep. + +Note: please pull the latest Dassl (version >= `606a2c6`). diff --git a/MSGCoOp/lpclip/feat_extractor.py b/MSGCoOp/lpclip/feat_extractor.py new file mode 100644 index 0000000..1e99911 --- /dev/null +++ b/MSGCoOp/lpclip/feat_extractor.py @@ -0,0 +1,214 @@ +import os, argparse +import numpy as np +import torch +import sys + +sys.path.append(os.path.abspath("..")) + +from datasets.oxford_pets import OxfordPets +from datasets.oxford_flowers import OxfordFlowers +from datasets.fgvc_aircraft import FGVCAircraft +from datasets.dtd import DescribableTextures +from datasets.eurosat import EuroSAT +from datasets.stanford_cars import StanfordCars +from datasets.food101 import Food101 +from datasets.sun397 import SUN397 +from datasets.caltech101 import Caltech101 +from datasets.ucf101 import UCF101 +from datasets.imagenet import ImageNet +from datasets.imagenetv2 import ImageNetV2 +from datasets.imagenet_sketch import ImageNetSketch +from datasets.imagenet_a import ImageNetA +from datasets.imagenet_r import ImageNetR + +from dassl.utils import setup_logger, set_random_seed, collect_env_info +from dassl.config import get_cfg_default +from dassl.data.transforms import build_transform +from dassl.data import DatasetWrapper + +import clip + +# import pdb; pdb.set_trace() + + +def print_args(args, cfg): + print("***************") + print("** Arguments **") + print("***************") + optkeys = list(args.__dict__.keys()) + optkeys.sort() + for key in optkeys: + print("{}: {}".format(key, args.__dict__[key])) + print("************") + print("** Config **") + print("************") + print(cfg) + + +def reset_cfg(cfg, args): + if args.root: + cfg.DATASET.ROOT = args.root + + if args.output_dir: + cfg.OUTPUT_DIR = args.output_dir + + if args.trainer: + cfg.TRAINER.NAME = args.trainer + + if args.backbone: + cfg.MODEL.BACKBONE.NAME = args.backbone + + if args.head: + cfg.MODEL.HEAD.NAME = args.head + + +def extend_cfg(cfg): + """ + Add new config variables. + + E.g. + from yacs.config import CfgNode as CN + cfg.TRAINER.MY_MODEL = CN() + cfg.TRAINER.MY_MODEL.PARAM_A = 1. + cfg.TRAINER.MY_MODEL.PARAM_B = 0.5 + cfg.TRAINER.MY_MODEL.PARAM_C = False + """ + from yacs.config import CfgNode as CN + + cfg.TRAINER.OURS = CN() + cfg.TRAINER.OURS.N_CTX = 10 # number of context vectors + cfg.TRAINER.OURS.CSC = False # class-specific context + cfg.TRAINER.OURS.CTX_INIT = "" # initialize context vectors with given words + cfg.TRAINER.OURS.WEIGHT_U = 0.1 # weight for the unsupervised loss + cfg.DATASET.SUBSAMPLE_CLASSES = "all" # all, base or new + + +def setup_cfg(args): + cfg = get_cfg_default() + extend_cfg(cfg) + + # 1. From the dataset config file + if args.dataset_config_file: + cfg.merge_from_file(args.dataset_config_file) + + # 2. From the method config file + if args.config_file: + cfg.merge_from_file(args.config_file) + + # 3. From input arguments + reset_cfg(cfg, args) + + cfg.freeze() + + return cfg + + +def main(args): + cfg = setup_cfg(args) + if cfg.SEED >= 0: + print("Setting fixed seed: {}".format(cfg.SEED)) + set_random_seed(cfg.SEED) + setup_logger(cfg.OUTPUT_DIR) + + if torch.cuda.is_available() and cfg.USE_CUDA: + torch.backends.cudnn.benchmark = True + + print_args(args, cfg) + print("Collecting env info ...") + print("** System info **\n{}\n".format(collect_env_info())) + + ###################################### + # Setup DataLoader + ###################################### + dataset = eval(cfg.DATASET.NAME)(cfg) + + if args.split == "train": + dataset_input = dataset.train_x + elif args.split == "val": + dataset_input = dataset.val + else: + dataset_input = dataset.test + + tfm_train = build_transform(cfg, is_train=False) + data_loader = torch.utils.data.DataLoader( + DatasetWrapper(cfg, dataset_input, transform=tfm_train, + is_train=False), + batch_size=cfg.DATALOADER.TRAIN_X.BATCH_SIZE, + sampler=None, + shuffle=False, + num_workers=cfg.DATALOADER.NUM_WORKERS, + drop_last=False, + pin_memory=(torch.cuda.is_available() and cfg.USE_CUDA), + ) + + ######################################## + # Setup Network + ######################################## + clip_model, _ = clip.load("RN50", "cuda", jit=False) + clip_model.eval() + ################################################################################################################### + # Start Feature Extractor + feature_list = [] + label_list = [] + train_dataiter = iter(data_loader) + for train_step in range(1, len(train_dataiter) + 1): + batch = next(train_dataiter) + data = batch["img"].cuda() + feature = clip_model.visual(data) + feature = feature.cpu() + for idx in range(len(data)): + feature_list.append(feature[idx].tolist()) + label_list.extend(batch["label"].tolist()) + save_dir = os.path.join(cfg.OUTPUT_DIR, cfg.DATASET.NAME) + os.makedirs(save_dir, exist_ok=True) + save_filename = f"{args.split}" + np.savez( + os.path.join(save_dir, save_filename), + feature_list=feature_list, + label_list=label_list, + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--root", type=str, default="", help="path to dataset") + parser.add_argument("--output-dir", + type=str, + default="", + help="output directory") + parser.add_argument("--config-file", + type=str, + default="", + help="path to config file") + parser.add_argument( + "--dataset-config-file", + type=str, + default="", + help="path to config file for dataset setup", + ) + parser.add_argument("--num-shot", + type=int, + default=1, + help="number of shots") + parser.add_argument("--split", + type=str, + choices=["train", "val", "test"], + help="which split") + parser.add_argument("--trainer", + type=str, + default="", + help="name of trainer") + parser.add_argument("--backbone", + type=str, + default="", + help="name of CNN backbone") + parser.add_argument("--head", type=str, default="", help="name of head") + parser.add_argument("--seed", + type=int, + default=-1, + help="only positive value enables a fixed seed") + parser.add_argument("--eval-only", + action="store_true", + help="evaluation only") + args = parser.parse_args() + main(args) diff --git a/MSGCoOp/lpclip/feat_extractor.sh b/MSGCoOp/lpclip/feat_extractor.sh new file mode 100644 index 0000000..068d923 --- /dev/null +++ b/MSGCoOp/lpclip/feat_extractor.sh @@ -0,0 +1,37 @@ +# sh feat_extractor.sh +DATA=/data1/CoOpData +OUTPUT='/data1/CoOpData/clip_feat/' +SEED=1 + +GPULIST=(0 1 2 3) +GPUIDX=0 + +# oxford_pets oxford_flowers fgvc_aircraft dtd eurosat stanford_cars food101 sun397 caltech101 ucf101 imagenet +# imagenet oxford_pets oxford_flowers stanford_cars food101 caltech101 +for DATASET in imagenetv2 imagenet_sketch imagenet_a imagenet_r +do + for SPLIT in train val test + do + while true + do + sleep 10 + let STATIDX=GPULIST[GPUIDX]+2 + stat=$(gpustat | awk '{print $11}' | sed -n ${STATIDX}'p') + if [ "$stat" -lt 20 ] + then + break + fi + let GPUIDX=(GPUIDX+1)%${#GPULIST[@]} + echo $GPUIDX'N' + done + CUDA_VISIBLE_DEVICES=${GPULIST[${GPUIDX}]} python feat_extractor.py \ + --split ${SPLIT} \ + --root ${DATA} \ + --seed ${SEED} \ + --dataset-config-file ../configs/datasets/${DATASET}.yaml \ + --config-file ../configs/trainers/CoOp/rn50_val.yaml \ + --output-dir ${OUTPUT} \ + --eval-only & + sleep 10 + done +done diff --git a/MSGCoOp/lpclip/linear_probe.py b/MSGCoOp/lpclip/linear_probe.py new file mode 100644 index 0000000..e349acf --- /dev/null +++ b/MSGCoOp/lpclip/linear_probe.py @@ -0,0 +1,163 @@ +import numpy as np +import os +from sklearn.linear_model import LogisticRegression +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("--dataset", type=str, default="", help="path to dataset") +parser.add_argument("--num_step", type=int, default=8, help="number of steps") +parser.add_argument("--num_run", type=int, default=10, help="number of runs") +parser.add_argument("--feature_dir", + type=str, + default="clip_feat", + help="feature dir path") +args = parser.parse_args() + +dataset = args.dataset +dataset_path = os.path.join(f"{args.feature_dir}", dataset) + +train_file = np.load(os.path.join(dataset_path, "train.npz")) +train_feature, train_label = train_file["feature_list"], train_file[ + "label_list"] +val_file = np.load(os.path.join(dataset_path, "val.npz")) +val_feature, val_label = val_file["feature_list"], val_file["label_list"] +test_file = np.load(os.path.join(dataset_path, "test.npz")) +test_feature, test_label = test_file["feature_list"], test_file["label_list"] + +os.makedirs("report", exist_ok=True) + +val_shot_list = {1: 1, 2: 2, 4: 4, 8: 4, 16: 4} + +# for num_shot in [1, 2, 4, 8, 16]: +for num_shot in [4, 16]: + test_acc_step_list = np.zeros([args.num_run, args.num_step]) + for seed in range(1, args.num_run + 1): + np.random.seed(seed) + print( + f"-- Seed: {seed} --------------------------------------------------------------" + ) + # Sampling + all_label_list = np.unique(train_label) + selected_idx_list = [] + for label in all_label_list: + label_collection = np.where(train_label == label)[0] + selected_idx = np.random.choice(label_collection, + size=num_shot, + replace=False) + selected_idx_list.extend(selected_idx) + + fewshot_train_feature = train_feature[selected_idx_list] + fewshot_train_label = train_label[selected_idx_list] + + val_num_shot = val_shot_list[num_shot] + val_selected_idx_list = [] + for label in all_label_list: + label_collection = np.where(val_label == label)[0] + selected_idx = np.random.choice(label_collection, + size=val_num_shot, + replace=False) + val_selected_idx_list.extend(selected_idx) + + fewshot_val_feature = val_feature[val_selected_idx_list] + fewshot_val_label = val_label[val_selected_idx_list] + + # search initialization + search_list = [1e6, 1e4, 1e2, 1, 1e-2, 1e-4, 1e-6] + acc_list = [] + for c_weight in search_list: + clf = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_weight).fit(fewshot_train_feature, + fewshot_train_label) + pred = clf.predict(fewshot_val_feature) + acc_val = sum(pred == fewshot_val_label) / len(fewshot_val_label) + acc_list.append(acc_val) + + print(acc_list, flush=True) + + # binary search + peak_idx = np.argmax(acc_list) + c_peak = search_list[peak_idx] + c_left, c_right = 1e-1 * c_peak, 1e1 * c_peak + + def binary_search(c_left, c_right, seed, step, test_acc_step_list): + clf_left = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_left).fit( + fewshot_train_feature, + fewshot_train_label) + pred_left = clf_left.predict(fewshot_val_feature) + acc_left = sum( + pred_left == fewshot_val_label) / len(fewshot_val_label) + print("Val accuracy (Left): {:.2f}".format(100 * acc_left), + flush=True) + + clf_right = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_right).fit( + fewshot_train_feature, + fewshot_train_label) + pred_right = clf_right.predict(fewshot_val_feature) + acc_right = sum( + pred_right == fewshot_val_label) / len(fewshot_val_label) + print("Val accuracy (Right): {:.2f}".format(100 * acc_right), + flush=True) + + # find maximum and update ranges + if acc_left < acc_right: + c_final = c_right + clf_final = clf_right + # range for the next step + c_left = 0.5 * (np.log10(c_right) + np.log10(c_left)) + c_right = np.log10(c_right) + else: + c_final = c_left + clf_final = clf_left + # range for the next step + c_right = 0.5 * (np.log10(c_right) + np.log10(c_left)) + c_left = np.log10(c_left) + + pred = clf_final.predict(test_feature) + test_acc = 100 * sum(pred == test_label) / len(pred) + print("Test Accuracy: {:.2f}".format(test_acc), flush=True) + test_acc_step_list[seed - 1, step] = test_acc + + saveline = "{}, seed {}, {} shot, weight {}, test_acc {:.2f}\n".format( + dataset, seed, num_shot, c_final, test_acc) + with open( + "./report/{}_s{}r{}_details.txt".format( + 'clip_feat', args.num_step, args.num_run), + "a+", + ) as writer: + writer.write(saveline) + return ( + np.power(10, c_left), + np.power(10, c_right), + seed, + step, + test_acc_step_list, + ) + + for step in range(args.num_step): + print( + f"{dataset}, {num_shot} Shot, Round {step}: {c_left}/{c_right}", + flush=True, + ) + c_left, c_right, seed, step, test_acc_step_list = binary_search( + c_left, c_right, seed, step, test_acc_step_list) + # save results of last step + test_acc_list = test_acc_step_list[:, -1] + acc_mean = np.mean(test_acc_list) + acc_std = np.std(test_acc_list) + save_line = "{}, {} Shot, Test acc stat: {:.2f} ({:.2f})\n".format( + dataset, num_shot, acc_mean, acc_std) + print(save_line, flush=True) + with open( + "./report/{}_s{}r{}.txt".format('clip_feat', args.num_step, + args.num_run), + "a+", + ) as writer: + writer.write(save_line) diff --git a/MSGCoOp/lpclip/linear_probe.sh b/MSGCoOp/lpclip/linear_probe.sh new file mode 100644 index 0000000..0e8b0eb --- /dev/null +++ b/MSGCoOp/lpclip/linear_probe.sh @@ -0,0 +1,10 @@ +feature_dir=/data1/CoOpData/clip_feat/ +# ImageNet OxfordPets OxfordFlowers StanfordCars Food101 Caltech101 +for DATASET in ImageNet +do + python linear_probe.py \ + --dataset ${DATASET} \ + --feature_dir ${feature_dir} \ + --num_step 8 \ + --num_run 3 +done diff --git a/MSGCoOp/lpclip/linear_probe_transfer.py b/MSGCoOp/lpclip/linear_probe_transfer.py new file mode 100644 index 0000000..5c635e0 --- /dev/null +++ b/MSGCoOp/lpclip/linear_probe_transfer.py @@ -0,0 +1,186 @@ +import numpy as np +import os +from sklearn.linear_model import LogisticRegression +import argparse + +parser = argparse.ArgumentParser() +# parser.add_argument("--train_dataset", +# type=str, +# default="", +# help="path to train dataset") +# parser.add_argument("--test_dataset", +# type=str, +# default="", +# help="path to test dataset") +parser.add_argument("--num_step", type=int, default=8, help="number of steps") +parser.add_argument("--num_run", type=int, default=10, help="number of runs") +parser.add_argument("--feature_dir", + type=str, + default="/data1/CoOpData/clip_feat/", + help="feature dir path") +args = parser.parse_args() + +train_dataset = 'ImageNet' +train_dataset_path = os.path.join(f"{args.feature_dir}", train_dataset) +test_datasets = ['ImageNetV2', 'ImageNetSketch', 'ImageNetR', 'ImageNetA'] +test_dataset_paths = [ + os.path.join(f"{args.feature_dir}", test_dataset) + for test_dataset in test_datasets +] + +train_file = np.load(os.path.join(train_dataset_path, "train.npz")) +train_feature, train_label = train_file["feature_list"], train_file[ + "label_list"] +val_file = np.load(os.path.join(train_dataset_path, "val.npz")) +val_feature, val_label = val_file["feature_list"], val_file["label_list"] + +test_files = [ + np.load(os.path.join(test_dataset_path, "test.npz")) + for test_dataset_path in test_dataset_paths +] +test_features, test_labels = [ + test_file["feature_list"] for test_file in test_files +], [test_file["label_list"] for test_file in test_files] + +os.makedirs("report", exist_ok=True) + +val_shot_list = {1: 1, 2: 2, 4: 4, 8: 4, 16: 4} + +# for num_shot in [1, 2, 4, 8, 16]: +for num_shot in [16]: + test_acc_step_list = np.zeros( + [len(test_datasets), args.num_run, args.num_step]) + for seed in range(1, args.num_run + 1): + np.random.seed(seed) + print( + f"-- Seed: {seed} --------------------------------------------------------------" + ) + # Sampling + all_label_list = np.unique(train_label) + selected_idx_list = [] + for label in all_label_list: + label_collection = np.where(train_label == label)[0] + selected_idx = np.random.choice(label_collection, + size=num_shot, + replace=False) + selected_idx_list.extend(selected_idx) + + fewshot_train_feature = train_feature[selected_idx_list] + fewshot_train_label = train_label[selected_idx_list] + + val_num_shot = val_shot_list[num_shot] + val_selected_idx_list = [] + for label in all_label_list: + label_collection = np.where(val_label == label)[0] + selected_idx = np.random.choice(label_collection, + size=val_num_shot, + replace=False) + val_selected_idx_list.extend(selected_idx) + + fewshot_val_feature = val_feature[val_selected_idx_list] + fewshot_val_label = val_label[val_selected_idx_list] + + # search initialization + search_list = [1e6, 1e4, 1e2, 1, 1e-2, 1e-4, 1e-6] + acc_list = [] + for c_weight in search_list: + clf = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_weight).fit(fewshot_train_feature, + fewshot_train_label) + pred = clf.predict(fewshot_val_feature) + acc_val = sum(pred == fewshot_val_label) / len(fewshot_val_label) + acc_list.append(acc_val) + + print(acc_list, flush=True) + + # binary search + peak_idx = np.argmax(acc_list) + c_peak = search_list[peak_idx] + c_left, c_right = 1e-1 * c_peak, 1e1 * c_peak + + def binary_search(c_left, c_right, seed, step, test_acc_step_list): + clf_left = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_left).fit( + fewshot_train_feature, + fewshot_train_label) + pred_left = clf_left.predict(fewshot_val_feature) + acc_left = sum( + pred_left == fewshot_val_label) / len(fewshot_val_label) + print("Val accuracy (Left): {:.2f}".format(100 * acc_left), + flush=True) + + clf_right = LogisticRegression(solver="lbfgs", + max_iter=1000, + penalty="l2", + C=c_right).fit( + fewshot_train_feature, + fewshot_train_label) + pred_right = clf_right.predict(fewshot_val_feature) + acc_right = sum( + pred_right == fewshot_val_label) / len(fewshot_val_label) + print("Val accuracy (Right): {:.2f}".format(100 * acc_right), + flush=True) + + # find maximum and update ranges + if acc_left < acc_right: + c_final = c_right + clf_final = clf_right + # range for the next step + c_left = 0.5 * (np.log10(c_right) + np.log10(c_left)) + c_right = np.log10(c_right) + else: + c_final = c_left + clf_final = clf_left + # range for the next step + c_right = 0.5 * (np.log10(c_right) + np.log10(c_left)) + c_left = np.log10(c_left) + + for i, (test_feature, test_label, test_dataset) in enumerate( + zip(test_features, test_labels, test_datasets)): + pred = clf_final.predict(test_feature) + test_acc = 100 * sum(pred == test_label) / len(pred) + print("Test Accuracy: {:.2f}".format(test_acc), flush=True) + test_acc_step_list[i, seed - 1, step] = test_acc + + saveline = "{}, {}, seed {}, {} shot, weight {}, test_acc {:.2f}\n".format( + train_dataset, test_dataset, seed, num_shot, c_final, + test_acc) + with open( + "./report/{}_s{}r{}_details.txt".format( + 'clip_feat', args.num_step, args.num_run), + "a+", + ) as writer: + writer.write(saveline) + return ( + np.power(10, c_left), + np.power(10, c_right), + seed, + step, + test_acc_step_list, + ) + + for step in range(args.num_step): + print( + f"{train_dataset}, {num_shot} Shot, Round {step}: {c_left}/{c_right}", + flush=True, + ) + c_left, c_right, seed, step, test_acc_step_list = binary_search( + c_left, c_right, seed, step, test_acc_step_list) + # save results of last step + test_acc_list = test_acc_step_list[:, :, -1] + acc_mean = np.mean(test_acc_list, dim=-1) + acc_std = np.std(test_acc_list, dim=-1) + for i in range(len(test_datasets)): + save_line = "{}, {}, {} Shot, Test acc stat: {:.2f} ({:.2f})\n".format( + train_dataset, test_datasets[i], num_shot, acc_mean[i], acc_std[i]) + print(save_line, flush=True) + with open( + "./report/{}_s{}r{}.txt".format('clip_feat', args.num_step, + args.num_run), + "a+", + ) as writer: + writer.write(save_line) diff --git a/MSGCoOp/parse_test_res.py b/MSGCoOp/parse_test_res.py new file mode 100644 index 0000000..04247bc --- /dev/null +++ b/MSGCoOp/parse_test_res.py @@ -0,0 +1,179 @@ +""" +Goal +--- +1. Read test results from log.txt files +2. Compute mean and std across different folders (seeds) + +Usage +--- +Assume the output files are saved under output/my_experiment, +which contains results of different seeds, e.g., + +my_experiment/ + seed1/ + log.txt + seed2/ + log.txt + seed3/ + log.txt + +Run the following command from the root directory: + +$ python tools/parse_test_res.py output/my_experiment + +Add --ci95 to the argument if you wanna get 95% confidence +interval instead of standard deviation: + +$ python tools/parse_test_res.py output/my_experiment --ci95 + +If my_experiment/ has the following structure, + +my_experiment/ + exp-1/ + seed1/ + log.txt + ... + seed2/ + log.txt + ... + seed3/ + log.txt + ... + exp-2/ + ... + exp-3/ + ... + +Run + +$ python tools/parse_test_res.py output/my_experiment --multi-exp +""" +import re +import numpy as np +import os.path as osp +import argparse +from collections import OrderedDict, defaultdict + +from dassl.utils import check_isfile, listdir_nohidden + + +def compute_ci95(res): + return 1.96 * np.std(res) / np.sqrt(len(res)) + + +def parse_function(*metrics, directory="", args=None, end_signal=None): + print(f"Parsing files in {directory}") + subdirs = listdir_nohidden(directory, sort=True) + + outputs = [] + + for subdir in subdirs: + fpath = osp.join(directory, subdir, "log.txt") + assert check_isfile(fpath) + good_to_go = False + output = OrderedDict() + + with open(fpath, "r") as f: + lines = f.readlines() + + for line in lines: + line = line.strip() + + if line == end_signal: + good_to_go = True + + for metric in metrics: + match = metric["regex"].search(line) + if match and good_to_go: + if "file" not in output: + output["file"] = fpath + num = float(match.group(1)) + name = metric["name"] + output[name] = num + + if output: + outputs.append(output) + + assert len(outputs) > 0, f"Nothing found in {directory}" + + metrics_results = defaultdict(list) + + for output in outputs: + msg = "" + for key, value in output.items(): + if isinstance(value, float): + msg += f"{key}: {value:.2f}%. " + else: + msg += f"{key}: {value}. " + if key != "file": + metrics_results[key].append(value) + print(msg) + + output_results = OrderedDict() + + print("===") + print(f"Summary of directory: {directory}") + for key, values in metrics_results.items(): + avg = np.mean(values) + std = compute_ci95(values) if args.ci95 else np.std(values) + print(f"* {key}: {avg:.2f}% +- {std:.2f}%") + output_results[key] = avg + print("===") + + return output_results + + +def main(args, end_signal): + metric = { + "name": args.keyword, + "regex": re.compile(fr"\* {args.keyword}: ([\.\deE+-]+)%"), + } + + if args.multi_exp: + final_results = defaultdict(list) + + for directory in listdir_nohidden(args.directory, sort=True): + directory = osp.join(args.directory, directory) + results = parse_function(metric, + directory=directory, + args=args, + end_signal=end_signal) + + for key, value in results.items(): + final_results[key].append(value) + + print("Average performance") + for key, values in final_results.items(): + avg = np.mean(values) + print(f"* {key}: {avg:.2f}%") + + else: + parse_function(metric, + directory=args.directory, + args=args, + end_signal=end_signal) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("directory", type=str, help="path to directory") + parser.add_argument("--ci95", + action="store_true", + help=r"compute 95\% confidence interval") + parser.add_argument("--test-log", + action="store_true", + help="parse test-only logs") + parser.add_argument("--multi-exp", + action="store_true", + help="parse multiple experiments") + parser.add_argument("--keyword", + default="accuracy", + type=str, + help="which keyword to extract") + args = parser.parse_args() + + end_signal = "Finished training" + if args.test_log: + end_signal = "=> result" + + main(args, end_signal) diff --git a/MSGCoOp/requirements.txt b/MSGCoOp/requirements.txt new file mode 100644 index 0000000..a7a7778 --- /dev/null +++ b/MSGCoOp/requirements.txt @@ -0,0 +1,3 @@ +ftfy +regex +tqdm diff --git a/MSGCoOp/scripts/base2new_all.sh b/MSGCoOp/scripts/base2new_all.sh new file mode 100644 index 0000000..6543a71 --- /dev/null +++ b/MSGCoOp/scripts/base2new_all.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +TRAINER=$1 +KG_WEIGHT=$2 +MP_WEIGHT=$3 + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} ucf101 ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} ucf101 ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} eurosat ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} eurosat ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} oxford_pets ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} oxford_pets ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} food101 ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} food101 ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} oxford_flowers ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} oxford_flowers ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} dtd ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} dtd ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} caltech101 ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} caltech101 ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} fgvc_aircraft ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} fgvc_aircraft ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} stanford_cars ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} stanford_cars ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} sun397 ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} sun397 ${KG_WEIGHT} ${MP_WEIGHT} + +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_train.sh ${TRAINER} imagenet ${KG_WEIGHT} ${MP_WEIGHT} +CUDA_VISIBLE_DEVICES=0 bash scripts/base2new_test.sh ${TRAINER} imagenet ${KG_WEIGHT} ${MP_WEIGHT} diff --git a/MSGCoOp/scripts/base2new_test.sh b/MSGCoOp/scripts/base2new_test.sh new file mode 100644 index 0000000..869f280 --- /dev/null +++ b/MSGCoOp/scripts/base2new_test.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# custom config +DATA=~/Datasets/CoOp +TRAINER=$1 +DATASET=$2 +N_PROMPTS=4 +KG_WEIGHT=$3 +MP_WEIGHT=$4 +#CFG=rn50_ep100 # config file +CFG=vit_b16_ep100_ctxv1 +CTP=end # class token position (end or middle) +NCTX=4 # number of context tokens +SHOTS=16 # number of shots (1, 2, 4, 8, 16) +CSC=False # class-specific context (False or True) + +LOADEP=100 +SUB=new + +for SEED in 1 2 3 +do + COMMON_DIR=${DATASET}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + MODEL_DIR=output/base2new/train_base/${COMMON_DIR} + DIR=output/base2new/test_${SUB}/${COMMON_DIR} + + + if [ -d "$DIR" ]; then + echo "Results are available in ${DIR}. Skip this job" + else + echo "Run this job and save the output to ${DIR}" + python train.py \ + --root ${DATA} \ + --seed ${SEED} \ + --trainer ${TRAINER} \ + --dataset-config-file configs/datasets/${DATASET}.yaml \ + --config-file configs/trainers/${TRAINER}/${CFG}.yaml \ + --output-dir ${DIR} \ + --model-dir ${MODEL_DIR} \ + --load-epoch ${LOADEP} \ + --eval-only \ + TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \ + TRAINER.COOP.N_CTX ${NCTX} \ + TRAINER.COOP.CSC ${CSC} \ + TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \ + DATASET.NUM_SHOTS ${SHOTS} \ + DATASET.SUBSAMPLE_CLASSES ${SUB} + fi +done diff --git a/MSGCoOp/scripts/base2new_train.sh b/MSGCoOp/scripts/base2new_train.sh new file mode 100644 index 0000000..94d54f0 --- /dev/null +++ b/MSGCoOp/scripts/base2new_train.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# custom config +DATA=~/Datasets/CoOp +TRAINER=$1 +DATASET=$2 +KG_WEIGHT=$3 +MP_WEIGHT=$4 +N_PROMPTS=4 +#CFG=rn50_ep100 # config file\ +CFG=vit_b16_ep100_ctxv1 +CTP=end # class token position (end or middle) +NCTX=4 # number of context tokens +SHOTS=16 # number of shots (1, 2, 4, 8, 16) +CSC=False # class-specific context (False or True) + +for SEED in 1 2 3 +do + DIR=output/base2new/train_base/${DATASET}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + if [ -d "$DIR" ]; then + echo "Results are available in ${DIR}. Skip this job" + else + echo "Run this job and save the output to ${DIR}" + python train.py \ + --root ${DATA} \ + --seed ${SEED} \ + --trainer ${TRAINER} \ + --dataset-config-file configs/datasets/${DATASET}.yaml \ + --config-file configs/trainers/${TRAINER}/${CFG}.yaml \ + --output-dir ${DIR} \ + TRAINER.COOP.N_CTX ${NCTX} \ + TRAINER.COOP.CSC ${CSC} \ + TRAINER.COOP.W ${KG_WEIGHT} \ + TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \ + DATASET.NUM_SHOTS ${SHOTS} \ + DATASET.SUBSAMPLE_CLASSES base \ + TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \ + TRAINER.COOP.DIV_WEIGHT ${MP_WEIGHT} + fi +done diff --git a/MSGCoOp/scripts/xd_train.sh b/MSGCoOp/scripts/xd_train.sh new file mode 100644 index 0000000..ec6170a --- /dev/null +++ b/MSGCoOp/scripts/xd_train.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# custom config +DATA=~/Datasets/CoOp/ +TRAINER=$1 +N_PROMPTS=3 +KG_WEIGHT=$2 +MP_WEIGHT=$3 +CFG=vit_b16_ep100_ctxv1 +CTP=end # class token position (end or middle) +NCTX=4 # number of context tokens +SHOTS=16 # number of shots +CSC=False # class-specific context (False or True) +SRC_DATASETS=imagenet +LOADEP=100 + +for DATASET in ${SRC_DATASETS} +do + for SEED in 1 2 3 + do + DIR=output_xd/base2new/train_base/${DATASET}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + if [ -d "$DIR" ]; then + echo "Results are available in ${DIR}. Skip this job" + else + echo "Run this job and save the output to ${DIR}" + CUDA_VISIBLE_DEVICES=0 python train.py \ + --root ${DATA} \ + --seed ${SEED} \ + --trainer ${TRAINER} \ + --dataset-config-file configs/datasets/${DATASET}.yaml \ + --config-file configs/trainers/${TRAINER}/${CFG}.yaml \ + --output-dir ${DIR} \ + TRAINER.COOP.N_CTX ${NCTX} \ + TRAINER.COOP.CSC ${CSC} \ + TRAINER.COOP.W ${KG_WEIGHT} \ + TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \ + DATASET.NUM_SHOTS ${SHOTS} \ + TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \ + TRAINER.COOP.DIV_WEIGHT ${MP_WEIGHT} + fi + done +done + diff --git a/MSGCoOp/scripts/xda_test.sh b/MSGCoOp/scripts/xda_test.sh new file mode 100644 index 0000000..3eb9383 --- /dev/null +++ b/MSGCoOp/scripts/xda_test.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# custom config +DATA=~/Datasets/CoOp/ +TRAINER=$1 +N_PROMPTS=3 +KG_WEIGHT=$2 +MP_WEIGHT=$3 +CFG=vit_b16_ep100_ctxv1 +CTP=end # class token position (end or middle) +NCTX=4 # number of context tokens +SHOTS=16 # number of shots +CSC=False # class-specific context (False or True) +SRC_DATASETS=imagenet +# LOADEP=5 +LOADEP=100 + +for DATASET in dtd eurosat fgvc_aircraft food101 oxford_flowers oxford_pets stanford_cars ucf101 caltech101 sun397 +do + for SEED in 1 2 3 + do + MODEL_DIR=output_xd/base2new/train_base/${SRC_DATASETS}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + DIR=output_xda/base2new/train_base/${DATASET}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + if [ -d "$DIR" ]; then + echo "Results are available in ${DIR}. Skip this job" + else + echo "Run this job and save the output to ${DIR}" + CUDA_VISIBLE_DEVICES=0 python train.py \ + --root ${DATA} \ + --seed ${SEED} \ + --trainer ${TRAINER} \ + --dataset-config-file configs/datasets/${DATASET}.yaml \ + --config-file configs/trainers/${TRAINER}/${CFG}.yaml \ + --output-dir ${DIR} \ + --model-dir ${MODEL_DIR} \ + --load-epoch ${LOADEP} \ + --eval-only \ + TRAINER.COOP.N_CTX ${NCTX} \ + TRAINER.COOP.CSC ${CSC} \ + TRAINER.COOP.W ${KG_WEIGHT} \ + TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \ + DATASET.NUM_SHOTS ${SHOTS} \ + TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \ + TRAINER.COOP.DIV_WEIGHT ${MP_WEIGHT} + fi + done +done diff --git a/MSGCoOp/scripts/xdo_test.sh b/MSGCoOp/scripts/xdo_test.sh new file mode 100644 index 0000000..c8f93e4 --- /dev/null +++ b/MSGCoOp/scripts/xdo_test.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# custom config +DATA=~/Datasets/CoOp/ +TRAINER=$1 +N_PROMPTS=3 +KG_WEIGHT=$2 +MP_WEIGHT=$3 +CFG=vit_b16_ep100_ctxv1 +CTP=end # class token position (end or middle) +NCTX=4 # number of context tokens +SHOTS=16 # number of shots +CSC=False # class-specific context (False or True) +SRC_DATASETS=imagenet +# LOADEP=5 +LOADEP=100 + +for DATASET in imagenetv2 imagenet_sketch imagenet_a imagenet_r +do + for SEED in 1 2 3 + do + MODEL_DIR=output_xd/base2new/train_base/${SRC_DATASETS}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + DIR=output_xdo/base2new/train_base/${DATASET}/shots_${SHOTS}_${KG_WEIGHT}/${TRAINER}/${CFG}/seed${SEED} + if [ -d "$DIR" ]; then + echo "Results are available in ${DIR}. Skip this job" + else + echo "Run this job and save the output to ${DIR}" + CUDA_VISIBLE_DEVICES=0 python train.py \ + --root ${DATA} \ + --seed ${SEED} \ + --trainer ${TRAINER} \ + --dataset-config-file configs/datasets/${DATASET}.yaml \ + --config-file configs/trainers/${TRAINER}/${CFG}.yaml \ + --output-dir ${DIR} \ + --model-dir ${MODEL_DIR} \ + --load-epoch ${LOADEP} \ + --eval-only \ + TRAINER.COOP.N_CTX ${NCTX} \ + TRAINER.COOP.CSC ${CSC} \ + TRAINER.COOP.W ${KG_WEIGHT} \ + TRAINER.COOP.CLASS_TOKEN_POSITION ${CTP} \ + DATASET.NUM_SHOTS ${SHOTS} \ + TRAINER.COOP.N_PROMPTS ${N_PROMPTS} \ + TRAINER.COOP.DIV_WEIGHT ${MP_WEIGHT} + fi + done +done diff --git a/MSGCoOp/train.py b/MSGCoOp/train.py new file mode 100644 index 0000000..1258a76 --- /dev/null +++ b/MSGCoOp/train.py @@ -0,0 +1,239 @@ +import argparse +import torch +import time +import os + +from dassl.utils import setup_logger, set_random_seed, collect_env_info +from dassl.config import get_cfg_default +from dassl.engine import build_trainer + +# custom +import datasets.oxford_pets +import datasets.oxford_flowers +import datasets.fgvc_aircraft +import datasets.dtd +import datasets.eurosat +import datasets.stanford_cars +import datasets.food101 +import datasets.sun397 +import datasets.caltech101 +import datasets.ucf101 +import datasets.imagenet + +import datasets.imagenet_sketch +import datasets.imagenetv2 +import datasets.imagenet_a +import datasets.imagenet_r + +import trainers.coop +import trainers.cocoop +import trainers.zsclip +import trainers.prograd +import trainers.kgcoop +import trainers.msgcoop +def print_args(args, cfg): + print("***************") + print("** Arguments **") + print("***************") + optkeys = list(args.__dict__.keys()) + optkeys.sort() + for key in optkeys: + print("{}: {}".format(key, args.__dict__[key])) + print("************") + print("** Config **") + print("************") + print(cfg) + + +def reset_cfg(cfg, args): + if args.root: + cfg.DATASET.ROOT = args.root + + if args.output_dir: + cfg.OUTPUT_DIR = args.output_dir + + if args.resume: + cfg.RESUME = args.resume + + if args.seed: + cfg.SEED = args.seed + + if args.source_domains: + cfg.DATASET.SOURCE_DOMAINS = args.source_domains + + if args.target_domains: + cfg.DATASET.TARGET_DOMAINS = args.target_domains + + if args.transforms: + cfg.INPUT.TRANSFORMS = args.transforms + + if args.trainer: + cfg.TRAINER.NAME = args.trainer + + if args.backbone: + cfg.MODEL.BACKBONE.NAME = args.backbone + + if args.head: + cfg.MODEL.HEAD.NAME = args.head + + +def extend_cfg(cfg): + """ + Add new config variables. + + E.g. + from yacs.config import CfgNode as CN + cfg.TRAINER.MY_MODEL = CN() + cfg.TRAINER.MY_MODEL.PARAM_A = 1. + cfg.TRAINER.MY_MODEL.PARAM_B = 0.5 + cfg.TRAINER.MY_MODEL.PARAM_C = False + """ + from yacs.config import CfgNode as CN + + cfg.TRAINER.COOP = CN() + cfg.TRAINER.COOP.ALPHA = 1.0 + cfg.TRAINER.COOP.N_CTX = 16 # number of context vectors + cfg.TRAINER.COOP.CSC = False # class-specific context + cfg.TRAINER.COOP.CTX_INIT = False # initialization words + cfg.TRAINER.COOP.W = 1.0 + cfg.TRAINER.COOP.PREC = "fp16" # fp16, fp32, amp + cfg.TRAINER.COOP.CLASS_TOKEN_POSITION = "end" # 'middle' or 'end' or 'front' + + cfg.TRAINER.COCOOP = CN() + cfg.TRAINER.COCOOP.N_CTX = 16 # number of context vectors + cfg.TRAINER.COCOOP.CTX_INIT = False # initialization words + cfg.TRAINER.COCOOP.PREC = "fp16" # fp16, fp32, amp + cfg.TRAINER.COOP.DIV_WEIGHT = 0.1 + cfg.TRAINER.COOP.N_PROMPTS = 3 + + cfg.DATASET.SUBSAMPLE_CLASSES = "all" # all, base or new + """ + Add new config + """ + cfg.LOSS = CN() + cfg.LOSS.GM = False + cfg.LOSS.NAME = "" + cfg.LOSS.ALPHA = 0. + cfg.LOSS.T = 1. + cfg.LOSS.LAMBDA = 1. + + +def setup_cfg(args): + cfg = get_cfg_default() + extend_cfg(cfg) + + # 1. From the dataset config file + if args.dataset_config_file: + cfg.merge_from_file(args.dataset_config_file) + + # 2. From the method config file + if args.config_file: + cfg.merge_from_file(args.config_file) + + # 3. From input arguments + reset_cfg(cfg, args) + + # 4. From optional input arguments + cfg.merge_from_list(args.opts) + + cfg.freeze() + + return cfg + + +def main(args): + cfg = setup_cfg(args) + if cfg.SEED >= 0: + print("Setting fixed seed: {}".format(cfg.SEED)) + set_random_seed(cfg.SEED) + setup_logger(cfg.OUTPUT_DIR) + + if torch.cuda.is_available() and cfg.USE_CUDA: + torch.backends.cudnn.benchmark = True + + print_args(args, cfg) + print("Collecting env info ...") + print("** System info **\n{}\n".format(collect_env_info())) + + trainer = build_trainer(cfg) + + if args.eval_only: + trainer.load_model(args.model_dir, epoch=args.load_epoch) + trainer.test() + return + + if not args.no_train: + trainer.train() + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--root", type=str, default="", help="path to dataset") + parser.add_argument("--output-dir", + type=str, + default="", + help="output directory") + parser.add_argument( + "--resume", + type=str, + default="", + help="checkpoint directory (from which the training resumes)", + ) + parser.add_argument("--seed", + type=int, + default=-1, + help="only positive value enables a fixed seed") + parser.add_argument("--source-domains", + type=str, + nargs="+", + help="source domains for DA/DG") + parser.add_argument("--target-domains", + type=str, + nargs="+", + help="target domains for DA/DG") + parser.add_argument("--transforms", + type=str, + nargs="+", + help="data augmentation methods") + parser.add_argument("--config-file", + type=str, + default="", + help="path to config file") + parser.add_argument( + "--dataset-config-file", + type=str, + default="", + help="path to config file for dataset setup", + ) + parser.add_argument("--trainer", + type=str, + default="", + help="name of trainer") + parser.add_argument("--backbone", + type=str, + default="", + help="name of CNN backbone") + parser.add_argument("--head", type=str, default="", help="name of head") + parser.add_argument("--eval-only", + action="store_true", + help="evaluation only") + parser.add_argument( + "--model-dir", + type=str, + default="", + help="load model from this directory for eval-only mode", + ) + parser.add_argument("--load-epoch", + type=int, + help="load model weights at this epoch for evaluation") + parser.add_argument("--no-train", + action="store_true", + help="do not call trainer.train()") + parser.add_argument( + "opts", + default=None, + nargs=argparse.REMAINDER, + help="modify config options using the command-line", + ) + args = parser.parse_args() + main(args) diff --git a/MSGCoOp/trainers/__init__.py b/MSGCoOp/trainers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/MSGCoOp/trainers/cocoop.py b/MSGCoOp/trainers/cocoop.py new file mode 100644 index 0000000..c1f0714 --- /dev/null +++ b/MSGCoOp/trainers/cocoop.py @@ -0,0 +1,361 @@ +import os.path as osp +from collections import OrderedDict +import math + +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.cuda.amp import GradScaler, autocast + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.utils import load_pretrained_weights, load_checkpoint +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.simple_tokenizer import SimpleTokenizer as _Tokenizer + +_tokenizer = _Tokenizer() + + +def load_clip_to_cpu(cfg): + backbone_name = cfg.MODEL.BACKBONE.NAME + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + + +class TextEncoder(nn.Module): + def __init__(self, clip_model): + super().__init__() + self.transformer = clip_model.transformer + self.positional_embedding = clip_model.positional_embedding + self.ln_final = clip_model.ln_final + self.text_projection = clip_model.text_projection + self.dtype = clip_model.dtype + + def forward(self, prompts, tokenized_prompts): + x = prompts + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), + tokenized_prompts.argmax(dim=-1)] @ self.text_projection + + return x + + +class PromptLearner(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + n_cls = len(classnames) + n_ctx = cfg.TRAINER.COCOOP.N_CTX + ctx_init = cfg.TRAINER.COCOOP.CTX_INIT + dtype = clip_model.dtype + ctx_dim = clip_model.ln_final.weight.shape[0] + vis_dim = clip_model.visual.output_dim + clip_imsize = clip_model.visual.input_resolution + cfg_imsize = cfg.INPUT.SIZE[0] + assert cfg_imsize == clip_imsize, f"cfg_imsize ({cfg_imsize}) must equal to clip_imsize ({clip_imsize})" + + if ctx_init: + ctx_init = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + ctx_init = ctx_init.replace(" {}.", "") + ctx_init = ctx_init.replace("_", " ") + prompt_n_ctx = len(ctx_init.split(" ")) + + assert n_ctx >= prompt_n_ctx, f"#tokens ({n_ctx}) should larger equal than #initial prompt tokens ({prompt_n_ctx}, {ctx_init})" + + prompt = clip.tokenize(ctx_init) + with torch.no_grad(): + embedding = clip_model.token_embedding(prompt).type(dtype) + + ctx_vectors = torch.zeros(n_ctx, ctx_dim, dtype=dtype) + + ctx_vectors[n_ctx - prompt_n_ctx:, :] = embedding[0, 1:1 + + prompt_n_ctx, :] + prompt_prefix = " ".join(["X"] * (n_ctx - prompt_n_ctx)) + prompt_prefix = f"{prompt_prefix} {ctx_init}" + else: + # random initialization + ctx_vectors = torch.empty(n_ctx, ctx_dim, dtype=dtype) + nn.init.normal_(ctx_vectors, std=0.02) + prompt_prefix = " ".join(["X"] * n_ctx) + + print(f'Initial context: "{prompt_prefix}"') + print(f"Number of context words (tokens): {n_ctx}") + + self.ctx = nn.Parameter(ctx_vectors) + + self.meta_net = nn.Sequential( + OrderedDict([("linear1", nn.Linear(vis_dim, vis_dim // 16)), + ("relu", nn.ReLU(inplace=True)), + ("linear2", nn.Linear(vis_dim // 16, ctx_dim))])) + + if cfg.TRAINER.COCOOP.PREC == "fp16": + self.meta_net.half() + + classnames = [name.replace("_", " ") for name in classnames] + name_lens = [len(_tokenizer.encode(name)) for name in classnames] + prompts = [prompt_prefix + " " + name + "." for name in classnames] + + tokenized_prompts = torch.cat([clip.tokenize(p) + for p in prompts]) # (n_cls, n_tkn) + with torch.no_grad(): + embedding = clip_model.token_embedding(tokenized_prompts).type( + dtype) + + # These token vectors will be saved when in save_model(), + # but they should be ignored in load_model() as we want to use + # those computed using the current class names + self.register_buffer("token_prefix", embedding[:, :1, :]) # SOS + self.register_buffer("token_suffix", + embedding[:, 1 + n_ctx:, :]) # CLS, EOS + + self.n_cls = n_cls + self.n_ctx = n_ctx + self.tokenized_prompts = tokenized_prompts # torch.Tensor + self.name_lens = name_lens + + def construct_prompts(self, ctx, prefix, suffix, label=None): + # dim0 is either batch_size (during training) or n_cls (during testing) + # ctx: context tokens, with shape of (dim0, n_ctx, ctx_dim) + # prefix: the sos token, with shape of (n_cls, 1, ctx_dim) + # suffix: remaining tokens, with shape of (n_cls, *, ctx_dim) + + if label is not None: + prefix = prefix[label] + suffix = suffix[label] + + prompts = torch.cat( + [ + prefix, # (dim0, 1, dim) + ctx, # (dim0, n_ctx, dim) + suffix, # (dim0, *, dim) + ], + dim=1, + ) + + return prompts + + def forward(self, im_features): + prefix = self.token_prefix + suffix = self.token_suffix + ctx = self.ctx # (n_ctx, ctx_dim) + bias = self.meta_net(im_features) # (batch, ctx_dim) + bias = bias.unsqueeze(1) # (batch, 1, ctx_dim) + ctx = ctx.unsqueeze(0) # (1, n_ctx, ctx_dim) + ctx_shifted = ctx + bias # (batch, n_ctx, ctx_dim) + + # Use instance-conditioned context tokens for all classes + prompts = [] + for ctx_shifted_i in ctx_shifted: + ctx_i = ctx_shifted_i.unsqueeze(0).expand(self.n_cls, -1, -1) + pts_i = self.construct_prompts(ctx_i, prefix, + suffix) # (n_cls, n_tkn, ctx_dim) + prompts.append(pts_i) + prompts = torch.stack(prompts) + + return prompts + + +CUSTOM_TEMPLATES = { + # "OxfordPets": "a photo of a {}, a type of pet.", + "OxfordPets": "a type of pet, a photo of a {}.", + # "OxfordFlowers": "a photo of a {}, a type of flower.", + "OxfordFlowers": "a type of flower, a photo of a {}.", + "FGVCAircraft": "a type of aircraft, a photo of a {}.", + "DescribableTextures": "a texture of {}.", + "EuroSAT": "a centered satellite photo of {}.", + "StanfordCars": "a photo of a {}.", + # "Food101": "a photo of {}, a type of food.", + "Food101": "a type of food, a photo of {}.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + +class CustomCLIP(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + self.prompt_learner = PromptLearner(cfg, classnames, clip_model) + self.tokenized_prompts = self.prompt_learner.tokenized_prompts + self.image_encoder = clip_model.visual + self.text_encoder = TextEncoder(clip_model) + self.logit_scale = clip_model.logit_scale + self.dtype = clip_model.dtype + + def forward(self, image, label=None): + tokenized_prompts = self.tokenized_prompts + logit_scale = self.logit_scale.exp() + + image_features = self.image_encoder(image.type(self.dtype)) + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + + prompts = self.prompt_learner(image_features) + + logits = [] + for pts_i, imf_i in zip(prompts, image_features): + text_features = self.text_encoder(pts_i, tokenized_prompts) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + l_i = logit_scale * imf_i @ text_features.t() + logits.append(l_i) + logits = torch.stack(logits) + + if self.prompt_learner.training: + return F.cross_entropy(logits, label) + + return logits + + +@TRAINER_REGISTRY.register() +class CoCoOp(TrainerX): + def check_cfg(self, cfg): + assert cfg.TRAINER.COCOOP.PREC in ["fp16", "fp32", "amp"] + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + + if cfg.TRAINER.COCOOP.PREC == "fp32" or cfg.TRAINER.COCOOP.PREC == "amp": + # CLIP's default precision is fp16 + clip_model.float() + + print("Building custom CLIP") + self.model = CustomCLIP(cfg, classnames, clip_model) + + print("Turning off gradients in both the image and the text encoder") + name_to_update = "prompt_learner" + + for name, param in self.model.named_parameters(): + if name_to_update not in name: + param.requires_grad_(False) + + # Double check + enabled = set() + for name, param in self.model.named_parameters(): + if param.requires_grad: + enabled.add(name) + print(f"Parameters to be updated: {enabled}") + + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model.prompt_learner, + cfg.MODEL.INIT_WEIGHTS) + + self.model.to(self.device) + # NOTE: only give prompt_learner to the optimizer + self.optim = build_optimizer(self.model.prompt_learner, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("prompt_learner", self.model.prompt_learner, + self.optim, self.sched) + + self.scaler = GradScaler( + ) if cfg.TRAINER.COCOOP.PREC == "amp" else None + + # Note that multi-gpu training could be slow because CLIP's size is + # big, which slows down the copy operation in DataParallel + device_count = torch.cuda.device_count() + if device_count > 1: + print( + f"Multiple GPUs detected (n_gpus={device_count}), use all of them!" + ) + self.model = nn.DataParallel(self.model) + + def forward_backward(self, batch): + image, label = self.parse_batch_train(batch) + + model = self.model + optim = self.optim + scaler = self.scaler + + prec = self.cfg.TRAINER.COCOOP.PREC + if prec == "amp": + with autocast(): + loss = model(image, label) + optim.zero_grad() + scaler.scale(loss).backward() + scaler.step(optim) + scaler.update() + else: + loss = model(image, label) + optim.zero_grad() + loss.backward() + optim.step() + + loss_summary = {"loss": loss.item()} + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label + + def load_model(self, directory, epoch=None): + if not directory: + print( + "Note that load_model() is skipped as no pretrained model is given" + ) + return + + names = self.get_model_names() + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError( + 'Model not found at "{}"'.format(model_path)) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + # Ignore fixed token vectors + if "token_prefix" in state_dict: + del state_dict["token_prefix"] + + if "token_suffix" in state_dict: + del state_dict["token_suffix"] + + print("Loading weights to {} " + 'from "{}" (epoch = {})'.format(name, model_path, epoch)) + # set strict=False + self._models[name].load_state_dict(state_dict, strict=False) diff --git a/MSGCoOp/trainers/coop.py b/MSGCoOp/trainers/coop.py new file mode 100644 index 0000000..d11719e --- /dev/null +++ b/MSGCoOp/trainers/coop.py @@ -0,0 +1,376 @@ +import os.path as osp + +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.cuda.amp import GradScaler, autocast + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.utils import load_pretrained_weights, load_checkpoint +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.simple_tokenizer import SimpleTokenizer as _Tokenizer + +_tokenizer = _Tokenizer() + + +def load_clip_to_cpu(cfg): + backbone_name = cfg.MODEL.BACKBONE.NAME + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + + +class TextEncoder(nn.Module): + def __init__(self, clip_model): + super().__init__() + self.transformer = clip_model.transformer + self.positional_embedding = clip_model.positional_embedding + self.ln_final = clip_model.ln_final + self.text_projection = clip_model.text_projection + self.dtype = clip_model.dtype + + def forward(self, prompts, tokenized_prompts): + x = prompts + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), + tokenized_prompts.argmax(dim=-1)] @ self.text_projection + + return x + + +class PromptLearner(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + n_cls = len(classnames) + n_ctx = cfg.TRAINER.COOP.N_CTX + ctx_init = cfg.TRAINER.COOP.CTX_INIT + dtype = clip_model.dtype + ctx_dim = clip_model.ln_final.weight.shape[0] + clip_imsize = clip_model.visual.input_resolution + cfg_imsize = cfg.INPUT.SIZE[0] + assert cfg_imsize == clip_imsize, f"cfg_imsize ({cfg_imsize}) must equal to clip_imsize ({clip_imsize})" + + # if ctx_init: + # # use given words to initialize context vectors + # ctx_init = ctx_init.replace("_", " ") + # n_ctx = len(ctx_init.split(" ")) + # prompt = clip.tokenize(ctx_init) + # with torch.no_grad(): + # embedding = clip_model.token_embedding(prompt).type(dtype) + # ctx_vectors = embedding[0, 1:1 + n_ctx, :] + # prompt_prefix = ctx_init + if ctx_init: + ctx_init = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + ctx_init = ctx_init.replace(" {}.", "") + ctx_init = ctx_init.replace("_", " ") + prompt_n_ctx = len(ctx_init.split(" ")) + + assert n_ctx >= prompt_n_ctx, f"#tokens ({n_ctx}) should larger equal than #initial prompt tokens ({prompt_n_ctx}, {ctx_init})" + + prompt = clip.tokenize(ctx_init) + with torch.no_grad(): + embedding = clip_model.token_embedding(prompt).type(dtype) + + ctx_vectors = torch.zeros(n_ctx, ctx_dim, dtype=dtype) + + ctx_vectors[n_ctx - prompt_n_ctx:, :] = embedding[0, 1:1 + + prompt_n_ctx, :] + prompt_prefix = " ".join(["X"] * (n_ctx - prompt_n_ctx)) + prompt_prefix = f"{prompt_prefix} {ctx_init}" + else: + # random initialization + if cfg.TRAINER.COOP.CSC: + print("Initializing class-specific contexts") + ctx_vectors = torch.empty(n_cls, n_ctx, ctx_dim, dtype=dtype) + else: + print("Initializing a generic context") + ctx_vectors = torch.empty(n_ctx, ctx_dim, dtype=dtype) + nn.init.normal_(ctx_vectors, std=0.02) + prompt_prefix = " ".join(["X"] * n_ctx) + + print(f'Initial context: "{prompt_prefix}"') + print(f"Number of context words (tokens): {n_ctx}") + + self.ctx = nn.Parameter(ctx_vectors) # to be optimized + + classnames = [name.replace("_", " ") for name in classnames] + name_lens = [len(_tokenizer.encode(name)) for name in classnames] + prompts = [prompt_prefix + " " + name + "." for name in classnames] + + tokenized_prompts = torch.cat([clip.tokenize(p) for p in prompts]) + with torch.no_grad(): + embedding = clip_model.token_embedding(tokenized_prompts).type( + dtype) + + # These token vectors will be saved when in save_model(), + # but they should be ignored in load_model() as we want to use + # those computed using the current class names + self.register_buffer("token_prefix", embedding[:, :1, :]) # SOS + self.register_buffer("token_suffix", + embedding[:, 1 + n_ctx:, :]) # CLS, EOS + + self.n_cls = n_cls + self.n_ctx = n_ctx + self.tokenized_prompts = tokenized_prompts # torch.Tensor + self.name_lens = name_lens + self.class_token_position = cfg.TRAINER.COOP.CLASS_TOKEN_POSITION + + def forward(self): + ctx = self.ctx + if ctx.dim() == 2: + ctx = ctx.unsqueeze(0).expand(self.n_cls, -1, -1) + + prefix = self.token_prefix + suffix = self.token_suffix + + if self.class_token_position == "end": + prompts = torch.cat( + [ + prefix, # (n_cls, 1, dim) + ctx, # (n_cls, n_ctx, dim) + suffix, # (n_cls, *, dim) + ], + dim=1, + ) + + elif self.class_token_position == "middle": + half_n_ctx = self.n_ctx // 2 + prompts = [] + for i in range(self.n_cls): + name_len = self.name_lens[i] + prefix_i = prefix[i:i + 1, :, :] + class_i = suffix[i:i + 1, :name_len, :] + suffix_i = suffix[i:i + 1, name_len:, :] + ctx_i_half1 = ctx[i:i + 1, :half_n_ctx, :] + ctx_i_half2 = ctx[i:i + 1, half_n_ctx:, :] + prompt = torch.cat( + [ + prefix_i, # (1, 1, dim) + ctx_i_half1, # (1, n_ctx//2, dim) + class_i, # (1, name_len, dim) + ctx_i_half2, # (1, n_ctx//2, dim) + suffix_i, # (1, *, dim) + ], + dim=1, + ) + prompts.append(prompt) + prompts = torch.cat(prompts, dim=0) + + elif self.class_token_position == "front": + prompts = [] + for i in range(self.n_cls): + name_len = self.name_lens[i] + prefix_i = prefix[i:i + 1, :, :] + class_i = suffix[i:i + 1, :name_len, :] + suffix_i = suffix[i:i + 1, name_len:, :] + ctx_i = ctx[i:i + 1, :, :] + prompt = torch.cat( + [ + prefix_i, # (1, 1, dim) + class_i, # (1, name_len, dim) + ctx_i, # (1, n_ctx, dim) + suffix_i, # (1, *, dim) + ], + dim=1, + ) + prompts.append(prompt) + prompts = torch.cat(prompts, dim=0) + + else: + raise ValueError + + return prompts + + +CUSTOM_TEMPLATES = { + # "OxfordPets": "a photo of a {}, a type of pet.", + "OxfordPets": "a type of pet, a photo of a {}.", + # "OxfordFlowers": "a photo of a {}, a type of flower.", + "OxfordFlowers": "a type of flower, a photo of a {}.", + "FGVCAircraft": "a type of aircraft, a photo of a {}.", + "DescribableTextures": "a texture of {}.", + "EuroSAT": "a centered satellite photo of {}.", + "StanfordCars": "a photo of a {}.", + # "Food101": "a photo of {}, a type of food.", + "Food101": "a type of food, a photo of {}.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + +class CustomCLIP(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + self.prompt_learner = PromptLearner(cfg, classnames, clip_model) + self.tokenized_prompts = self.prompt_learner.tokenized_prompts + self.image_encoder = clip_model.visual + self.text_encoder = TextEncoder(clip_model) + self.logit_scale = clip_model.logit_scale + self.dtype = clip_model.dtype + + def forward(self, image): + image_features = self.image_encoder(image.type(self.dtype)) + + prompts = self.prompt_learner() + tokenized_prompts = self.tokenized_prompts + text_features = self.text_encoder(prompts, tokenized_prompts) + + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + + logit_scale = self.logit_scale.exp() + logits = logit_scale * image_features @ text_features.t() + + return logits + + +@TRAINER_REGISTRY.register() +class CoOp(TrainerX): + """Context Optimization (CoOp). + + Learning to Prompt for Vision-Language Models + https://arxiv.org/abs/2109.01134 + """ + def check_cfg(self, cfg): + assert cfg.TRAINER.COOP.PREC in ["fp16", "fp32", "amp"] + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + + if cfg.TRAINER.COOP.PREC == "fp32" or cfg.TRAINER.COOP.PREC == "amp": + # CLIP's default precision is fp16 + clip_model.float() + + print("Building custom CLIP") + self.model = CustomCLIP(cfg, classnames, clip_model) + + print("Turning off gradients in both the image and the text encoder") + for name, param in self.model.named_parameters(): + if "prompt_learner" not in name: + param.requires_grad_(False) + + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model.prompt_learner, + cfg.MODEL.INIT_WEIGHTS) + + self.model.to(self.device) + # NOTE: only give prompt_learner to the optimizer + self.optim = build_optimizer(self.model.prompt_learner, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("prompt_learner", self.model.prompt_learner, + self.optim, self.sched) + + self.scaler = GradScaler() if cfg.TRAINER.COOP.PREC == "amp" else None + + # Note that multi-gpu training could be slow because CLIP's size is + # big, which slows down the copy operation in DataParallel + device_count = torch.cuda.device_count() + if device_count > 1: + print( + f"Multiple GPUs detected (n_gpus={device_count}), use all of them!" + ) + self.model = nn.DataParallel(self.model) + + def forward_backward(self, batch): + image, label = self.parse_batch_train(batch) + + prec = self.cfg.TRAINER.COOP.PREC + if prec == "amp": + with autocast(): + output = self.model(image) + loss = F.cross_entropy(output, label) + self.optim.zero_grad() + self.scaler.scale(loss).backward() + self.scaler.step(self.optim) + self.scaler.update() + else: + output = self.model(image) + loss = F.cross_entropy(output, label) + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label + + def load_model(self, directory, epoch=None): + if not directory: + print( + "Note that load_model() is skipped as no pretrained model is given" + ) + return + + names = self.get_model_names() + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError( + 'Model not found at "{}"'.format(model_path)) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + # Ignore fixed token vectors + if "token_prefix" in state_dict: + del state_dict["token_prefix"] + + if "token_suffix" in state_dict: + del state_dict["token_suffix"] + + print("Loading weights to {} " + 'from "{}" (epoch = {})'.format(name, model_path, epoch)) + # set strict=False + self._models[name].load_state_dict(state_dict, strict=False) diff --git a/MSGCoOp/trainers/imagenet_templates.py b/MSGCoOp/trainers/imagenet_templates.py new file mode 100644 index 0000000..560c5a5 --- /dev/null +++ b/MSGCoOp/trainers/imagenet_templates.py @@ -0,0 +1,94 @@ +# source: https://github.com/openai/CLIP/blob/main/notebooks/Prompt_Engineering_for_ImageNet.ipynb + +IMAGENET_TEMPLATES = [ + "a bad photo of a {}.", + "a photo of many {}.", + "a sculpture of a {}.", + "a photo of the hard to see {}.", + "a low resolution photo of the {}.", + "a rendering of a {}.", + "graffiti of a {}.", + "a bad photo of the {}.", + "a cropped photo of the {}.", + "a tattoo of a {}.", + "the embroidered {}.", + "a photo of a hard to see {}.", + "a bright photo of a {}.", + "a photo of a clean {}.", + "a photo of a dirty {}.", + "a dark photo of the {}.", + "a drawing of a {}.", + "a photo of my {}.", + "the plastic {}.", + "a photo of the cool {}.", + "a close-up photo of a {}.", + "a black and white photo of the {}.", + "a painting of the {}.", + "a painting of a {}.", + "a pixelated photo of the {}.", + "a sculpture of the {}.", + "a bright photo of the {}.", + "a cropped photo of a {}.", + "a plastic {}.", + "a photo of the dirty {}.", + "a jpeg corrupted photo of a {}.", + "a blurry photo of the {}.", + "a photo of the {}.", + "a good photo of the {}.", + "a rendering of the {}.", + "a {} in a video game.", + "a photo of one {}.", + "a doodle of a {}.", + "a close-up photo of the {}.", + "a photo of a {}.", + "the origami {}.", + "the {} in a video game.", + "a sketch of a {}.", + "a doodle of the {}.", + "a origami {}.", + "a low resolution photo of a {}.", + "the toy {}.", + "a rendition of the {}.", + "a photo of the clean {}.", + "a photo of a large {}.", + "a rendition of a {}.", + "a photo of a nice {}.", + "a photo of a weird {}.", + "a blurry photo of a {}.", + "a cartoon {}.", + "art of a {}.", + "a sketch of the {}.", + "a embroidered {}.", + "a pixelated photo of a {}.", + "itap of the {}.", + "a jpeg corrupted photo of the {}.", + "a good photo of a {}.", + "a plushie {}.", + "a photo of the nice {}.", + "a photo of the small {}.", + "a photo of the weird {}.", + "the cartoon {}.", + "art of the {}.", + "a drawing of the {}.", + "a photo of the large {}.", + "a black and white photo of a {}.", + "the plushie {}.", + "a dark photo of a {}.", + "itap of a {}.", + "graffiti of the {}.", + "a toy {}.", + "itap of my {}.", + "a photo of a cool {}.", + "a photo of a small {}.", + "a tattoo of the {}.", +] + +IMAGENET_TEMPLATES_SELECT = [ + "itap of a {}.", + "a bad photo of the {}.", + "a origami {}.", + "a photo of the large {}.", + "a {} in a video game.", + "art of the {}.", + "a photo of the small {}.", +] diff --git a/MSGCoOp/trainers/kgcoop.py b/MSGCoOp/trainers/kgcoop.py new file mode 100644 index 0000000..b568594 --- /dev/null +++ b/MSGCoOp/trainers/kgcoop.py @@ -0,0 +1,371 @@ +import os.path as osp + +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.cuda.amp import GradScaler, autocast +from collections import OrderedDict + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.utils import load_pretrained_weights, load_checkpoint +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.simple_tokenizer import SimpleTokenizer as _Tokenizer + +_tokenizer = _Tokenizer() + + +def load_clip_to_cpu(cfg): + backbone_name = cfg.MODEL.BACKBONE.NAME + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + +CUSTOM_TEMPLATES = { + "OxfordPets": "a photo of a {}, a type of pet.", + "OxfordFlowers": "a photo of a {}, a type of flower.", + "FGVCAircraft": "a photo of a {}, a type of aircraft.", + "DescribableTextures": "a photo of a {}, a type of texture.", + "EuroSAT": "a centered satellite photo of {}.", + #"EuroSAT": "a photo of a {}.", + "StanfordCars": "a photo of a {}.", + "Food101": "a photo of {}, a type of food.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + + + +class TextEncoder(nn.Module): + def __init__(self, clip_model): + super().__init__() + self.transformer = clip_model.transformer + self.positional_embedding = clip_model.positional_embedding + self.ln_final = clip_model.ln_final + self.text_projection = clip_model.text_projection + self.dtype = clip_model.dtype + + def forward(self, prompts, tokenized_prompts): + x = prompts + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), tokenized_prompts.argmax(dim=-1)] @ self.text_projection + + return x + + +class PromptLearner(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + n_cls = len(classnames) + n_ctx = cfg.TRAINER.COOP.N_CTX + ctx_init = cfg.TRAINER.COOP.CTX_INIT + dtype = clip_model.dtype + ctx_dim = clip_model.ln_final.weight.shape[0] + clip_imsize = clip_model.visual.input_resolution + cfg_imsize = cfg.INPUT.SIZE[0] + assert cfg_imsize == clip_imsize, f"cfg_imsize ({cfg_imsize}) must equal to clip_imsize ({clip_imsize})" + + if ctx_init: + # use given words to initialize context vectors + temp = 'a photo of a' + ctx_init = temp.replace("_", " ") + n_ctx = len(ctx_init.split(" ")) + prompt = clip.tokenize(ctx_init) + with torch.no_grad(): + embedding = clip_model.token_embedding(prompt).type(dtype) + + ctx_vectors = embedding[0, 1 : 1 + n_ctx, :] + prompt_prefix = ctx_init + + else: + # random initialization + if cfg.TRAINER.COOP.CSC: + print("Initializing class-specific contexts") + ctx_vectors = torch.empty(n_cls, n_ctx, ctx_dim, dtype=dtype) + else: + print("Initializing a generic context") + ctx_vectors = torch.empty(n_ctx, ctx_dim, dtype=dtype) + nn.init.normal_(ctx_vectors, std=0.02) + prompt_prefix = " ".join(["X"] * n_ctx) + + + print(f'Initial context: "{prompt_prefix}"') + print(f"Number of context words (tokens): {n_ctx}") + + self.ctx = nn.Parameter(ctx_vectors) # to be optimized + + bias_vectors = torch.empty(1, 512, dtype=dtype) + nn.init.normal_(bias_vectors, std=0.02) + self.bias_vectors = nn.Parameter(bias_vectors) + + classnames = [name.replace("_", " ") for name in classnames] + name_lens = [len(_tokenizer.encode(name)) for name in classnames] + prompts = [prompt_prefix + " " + name + "." for name in classnames] + + #print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model_ = load_clip_to_cpu(cfg) + clip_model_.cuda() + + #prompts_ = [prompt_prefix + " " + name + "." for name in classnames] + temp = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + prompts_ = [temp.format(c.replace("_", " ")) for c in classnames] + print(f"Prompts: {prompts_}") + prompts_ = torch.cat([clip.tokenize(p) for p in prompts_]) + prompts_ = prompts_.cuda() + + with torch.no_grad(): + text_features = clip_model_.encode_text(prompts_) + text_features = text_features / text_features.norm(dim=-1, keepdim=True) + + self.text_features = text_features + + self.meta_net = nn.Sequential(OrderedDict([ + ("linear1", nn.Linear(512, 512)), + ("relu", nn.ReLU(inplace=True)) + #("linear2", nn.Linear(128, 512)) + ])) + + + if cfg.TRAINER.COCOOP.PREC == "fp16": + self.meta_net.half() + + + tokenized_prompts = torch.cat([clip.tokenize(p) for p in prompts]) + with torch.no_grad(): + embedding = clip_model.token_embedding(tokenized_prompts).type(dtype) + # These token vectors will be saved when in save_model(), + # but they should be ignored in load_model() as we want to use + # those computed using the current class names + self.register_buffer("token_prefix", embedding[:, :1, :]) # SOS + self.register_buffer("token_suffix", embedding[:, 1 + n_ctx :, :]) # CLS, EOS + + + self.n_cls = n_cls + self.n_ctx = n_ctx + self.tokenized_prompts = tokenized_prompts # torch.Tensor + self.name_lens = name_lens + self.class_token_position = cfg.TRAINER.COOP.CLASS_TOKEN_POSITION + + def forward(self): + ctx = self.ctx + + if ctx.dim() == 2: + ctx = ctx.unsqueeze(0).expand(self.n_cls, -1, -1) + + prefix = self.token_prefix + suffix = self.token_suffix + + prompts = torch.cat( + [ + prefix, # (n_cls, 1, dim) + ctx, + suffix, # (n_cls, *, dim) + ], + dim=1, + ) + + return prompts + + +class Adapter(nn.Module): + def __init__(self, c_in, reduction=4): + super(Adapter, self).__init__() + self.fc = nn.Sequential( + nn.Linear(c_in, c_in // reduction, bias=False), + nn.ReLU(inplace=True), + nn.Linear(c_in // reduction, c_in, bias=False), + nn.ReLU(inplace=True) + ) + + def forward(self, x): + x = self.fc(x) + return x + +class CustomCLIP(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + self.prompt_learner = PromptLearner(cfg, classnames, clip_model) + self.tokenized_prompts = self.prompt_learner.tokenized_prompts + self.ori_embedding = self.prompt_learner.text_features + self.image_encoder = clip_model.visual + self.text_encoder = TextEncoder(clip_model) + self.logit_scale = clip_model.logit_scale + self.dtype = clip_model.dtype + self.meta_net = self.prompt_learner.meta_net + self.adapter = Adapter(512, 4).to(clip_model.dtype) + + def forward(self, image): + prompts = self.prompt_learner() + image_features = self.image_encoder(image.type(self.dtype)) + + tokenized_prompts = self.tokenized_prompts + text_features = self.text_encoder(prompts, tokenized_prompts) + text_features_old = self.ori_embedding + + + image_features = image_features / image_features.norm(dim=-1, keepdim=True) + text_features = text_features / text_features.norm(dim=-1, keepdim=True) + logit_scale = self.logit_scale.exp() + + logits = logit_scale * image_features @ text_features.t() + + cos = torch.nn.CosineSimilarity(dim=1,eps=1e-07) + text_features_old = text_features_old / text_features_old.norm(dim=-1, keepdim=True) + score = cos(text_features,text_features_old) + score = 1.0-torch.mean(score) + + return logits, score + + +@TRAINER_REGISTRY.register() +class KgCoOp(TrainerX): + + def check_cfg(self, cfg): + assert cfg.TRAINER.COOP.PREC in ["fp16", "fp32", "amp"] + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + + if cfg.TRAINER.COOP.PREC == "fp32" or cfg.TRAINER.COOP.PREC == "amp": + # CLIP's default precision is fp16 + clip_model.float() + + print("Building custom CLIP") + self.model = CustomCLIP(cfg, classnames, clip_model) + self.w = cfg.TRAINER.COOP.W + + print("Turning off gradients in both the image and the text encoder") + for name, param in self.model.named_parameters(): + #if "prompt_learner" not in name: # and "adapter" not in name: + if "ctx" not in name: + param.requires_grad_(False) + else: + print(name) + + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model.prompt_learner, cfg.MODEL.INIT_WEIGHTS) + + self.model.to(self.device) + # NOTE: only give prompt_learner to the optimizer + self.optim = build_optimizer(self.model.prompt_learner, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("prompt_learner", self.model.prompt_learner, self.optim, self.sched) + + #self.optim_ = build_optimizer(self.model.adapter, cfg.OPTIM) + #self.sched_ = build_lr_scheduler(self.optim, cfg.OPTIM) + #self.register_model('clip_adapter', self.model.adapter, self.optim_, self.sched_) + + self.scaler = GradScaler() if cfg.TRAINER.COOP.PREC == "amp" else None + + # Note that multi-gpu training could be slow because CLIP's size is + # big, which slows down the copy operation in DataParallel + device_count = torch.cuda.device_count() + if device_count > 1: + print(f"Multiple GPUs detected (n_gpus={device_count}), use all of them!") + self.model = nn.DataParallel(self.model) + + def forward_backward(self, batch): + image, label = self.parse_batch_train(batch) + prec = self.cfg.TRAINER.COOP.PREC + if prec == "amp": + with autocast(): + output = self.model(image) + loss = F.cross_entropy(output, label) + self.optim.zero_grad() + self.scaler.scale(loss).backward() + self.scaler.step(self.optim) + self.scaler.update() + else: + output,score = self.model(image) + loss = F.cross_entropy(output, label)+self.w*score + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + #self.update_lr() + self.sched.step() + #self.sched_.step() + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label + + def model_inference(self, input): + return self.model(input)[0] + + + def load_model(self, directory, epoch=None): + if not directory: + print("Note that load_model() is skipped as no pretrained model is given") + return + + names = self.get_model_names() + print(names) + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError('Model not found at "{}"'.format(model_path)) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + # Ignore fixed token vectors + if "token_prefix" in state_dict: + del state_dict["token_prefix"] + + if "token_suffix" in state_dict: + del state_dict["token_suffix"] + + if "token_midfix" in state_dict: + del state_dict["token_midfix"] + + print("Loading weights to {} " 'from "{}" (epoch = {})'.format(name, model_path, epoch)) + # set strict=False + self._models[name].load_state_dict(state_dict, strict=False) diff --git a/MSGCoOp/trainers/msgcoop.py b/MSGCoOp/trainers/msgcoop.py new file mode 100644 index 0000000..0047355 --- /dev/null +++ b/MSGCoOp/trainers/msgcoop.py @@ -0,0 +1,417 @@ +import os.path as osp +import json + +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.cuda.amp import GradScaler, autocast +from collections import OrderedDict + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.utils import load_pretrained_weights, load_checkpoint +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.simple_tokenizer import SimpleTokenizer as _Tokenizer + +_tokenizer = _Tokenizer() + +DESC_LLM = "gpt-4.1" +DESC_TOPK = 4 + + +def load_clip_to_cpu(cfg): + backbone_name = cfg.MODEL.BACKBONE.NAME + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + +CUSTOM_TEMPLATES = { + "OxfordPets": "a photo of a {}, a type of pet.", + "OxfordFlowers": "a photo of a {}, a type of flower.", + "FGVCAircraft": "a photo of a {}, a type of aircraft.", + "DescribableTextures": "a photo of a {}, a type of texture.", + "EuroSAT": "a centered satellite photo of {}.", + #"EuroSAT": "a photo of a {}.", + "StanfordCars": "a photo of a {}.", + "Food101": "a photo of {}, a type of food.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + + + +class TextEncoder(nn.Module): + def __init__(self, clip_model): + super().__init__() + self.transformer = clip_model.transformer + self.positional_embedding = clip_model.positional_embedding + self.ln_final = clip_model.ln_final + self.text_projection = clip_model.text_projection + self.dtype = clip_model.dtype + + def forward(self, prompts, tokenized_prompts): + x = prompts + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), tokenized_prompts.argmax(dim=-1)] @ self.text_projection + + return x + + +class PromptLearner(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + n_cls = len(classnames) + n_ctx = cfg.TRAINER.COOP.N_CTX + ctx_init = cfg.TRAINER.COOP.CTX_INIT + dtype = clip_model.dtype + ctx_dim = clip_model.ln_final.weight.shape[0] + clip_imsize = clip_model.visual.input_resolution + cfg_imsize = cfg.INPUT.SIZE[0] + n_prompts = cfg.TRAINER.COOP.N_PROMPTS + assert cfg_imsize == clip_imsize, f"cfg_imsize ({cfg_imsize}) must equal to clip_imsize ({clip_imsize})" + + if ctx_init: + # use given words to initialize context vectors + temp = 'a photo of a' + ctx_init = temp.replace("_", " ") + n_ctx = len(ctx_init.split(" ")) + prompt = clip.tokenize(ctx_init) + with torch.no_grad(): + embedding = clip_model.token_embedding(prompt).type(dtype) + prompt_embeddings = embedding[0, 1:1 + n_ctx, :] + ctx_vectors = torch.zeros(n_prompts, n_ctx, ctx_dim, dtype=dtype) + ctx_vectors[:, n_ctx - n_ctx:, :] = prompt_embeddings.expand(n_prompts, -1, -1) + # ctx_vectors = embedding[0, 1 : 1 + n_ctx, :] + prompt_prefix = ctx_init + + else: + # random initialization + if cfg.TRAINER.COOP.CSC: + print("Initializing class-specific contexts") + ctx_vectors = torch.empty(n_prompts, n_cls, n_ctx, ctx_dim, dtype=dtype) + else: + print("Initializing a generic context") + ctx_vectors = torch.empty(n_prompts, n_ctx, ctx_dim, dtype=dtype) + nn.init.normal_(ctx_vectors, std=0.02) + prompt_prefix = " ".join(["X"] * n_ctx) + + + print(f'Initial context: "{prompt_prefix}"') + print(f"Number of context words (tokens): {n_ctx}") + + self.ctx = nn.Parameter(ctx_vectors) # to be optimized + self.n_prompts = n_prompts + + bias_vectors = torch.empty(1, 512, dtype=dtype) + nn.init.normal_(bias_vectors, std=0.02) + self.bias_vectors = nn.Parameter(bias_vectors) + + classnames = [name.replace("_", " ") for name in classnames] + name_lens = [len(_tokenizer.encode(name)) for name in classnames] + prompts = [prompt_prefix + " " + name + "." for name in classnames] + + #print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model_ = load_clip_to_cpu(cfg) + clip_model_.cuda() + + #prompts_ = [prompt_prefix + " " + name + "." for name in classnames] + temp = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + prompts_ = [temp.format(c.replace("_", " ")) for c in classnames] + print(f"Prompts: {prompts_}") + prompts_ = torch.cat([clip.tokenize(p) for p in prompts_]) + prompts_ = prompts_.cuda() + + with torch.no_grad(): + text_features = clip_model_.encode_text(prompts_) + text_features = text_features / text_features.norm(dim=-1, keepdim=True) + + text_features = [] + desc_file = f"./desc/{DESC_LLM}/descriptions_top{DESC_TOPK}/{cfg.DATASET.NAME}.json" + with open(desc_file, "r") as f: + all_desc = json.load(f) + for cls in classnames: + cls_descs = [f"a photo of {cls}, {desc}" for desc in all_desc[cls]] + cls_token = torch.cat([clip.tokenize(cls_desc) for cls_desc in cls_descs]).cuda() + with torch.no_grad(): + cls_feature = clip_model_.encode_text(cls_token) + cls_feature = cls_feature / cls_feature.norm(dim=-1, keepdim=True) + text_features.append(torch.mean(cls_feature, dim=0)) + + self.text_features = torch.stack(text_features) + + self.meta_net = nn.Sequential(OrderedDict([ + ("linear1", nn.Linear(512, 512)), + ("relu", nn.ReLU(inplace=True)) + #("linear2", nn.Linear(128, 512)) + ])) + + + if cfg.TRAINER.COCOOP.PREC == "fp16": + self.meta_net.half() + + + tokenized_prompts = torch.cat([clip.tokenize(p) for p in prompts]) + with torch.no_grad(): + embedding = clip_model.token_embedding(tokenized_prompts).type(dtype) + # These token vectors will be saved when in save_model(), + # but they should be ignored in load_model() as we want to use + # those computed using the current class names + self.register_buffer("token_prefix", embedding[:, :1, :]) # SOS + self.register_buffer("token_suffix", embedding[:, 1 + n_ctx :, :]) # CLS, EOS + + + self.n_cls = n_cls + self.n_ctx = n_ctx + self.tokenized_prompts = tokenized_prompts # torch.Tensor + self.name_lens = name_lens + self.class_token_position = cfg.TRAINER.COOP.CLASS_TOKEN_POSITION + + def forward(self): + ctx = self.ctx + + if ctx.dim() == 3: + ctx = ctx.unsqueeze(1).expand(-1, self.n_cls, -1, -1) + + prefix = self.token_prefix + suffix = self.token_suffix + + prompts = torch.stack([ + torch.cat([prefix, ctx[i], suffix], dim=1) + for i in range(self.n_prompts) + ]) + + return prompts + + +class Adapter(nn.Module): + def __init__(self, c_in, reduction=4): + super(Adapter, self).__init__() + self.fc = nn.Sequential( + nn.Linear(c_in, c_in // reduction, bias=False), + nn.ReLU(inplace=True), + nn.Linear(c_in // reduction, c_in, bias=False), + nn.ReLU(inplace=True) + ) + + def forward(self, x): + x = self.fc(x) + return x + +class CustomCLIP(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + self.prompt_learner = PromptLearner(cfg, classnames, clip_model) + self.tokenized_prompts = self.prompt_learner.tokenized_prompts + self.n_prompts = self.prompt_learner.n_prompts + self.ori_embedding = self.prompt_learner.text_features + self.image_encoder = clip_model.visual + self.text_encoder = TextEncoder(clip_model) + self.logit_scale = clip_model.logit_scale + self.dtype = clip_model.dtype + self.meta_net = self.prompt_learner.meta_net + self.adapter = Adapter(512, 4).to(clip_model.dtype) + + def compute_diversity_loss(self, text_features): + if self.n_prompts == 1: + return torch.tensor(0.0, device=text_features.device) + + n_prompts = text_features.shape[0] + n_cls = text_features.shape[1] + + total_orthogonal_loss = 0.0 + + for c in range(n_cls): + class_features = text_features[:, c, :] # [n_prompts, feature_dim] + class_features = F.normalize(class_features, p=2, dim=-1) + sim_matrix = class_features @ class_features.T + triu_indices = torch.triu_indices(n_prompts, n_prompts, offset=1) + similarities = sim_matrix[triu_indices[0], triu_indices[1]] + orthogonal_loss = (similarities ** 2).mean() + total_orthogonal_loss += orthogonal_loss + + return total_orthogonal_loss / n_cls + + def forward(self, image): + prompts = self.prompt_learner() + image_features = self.image_encoder(image.type(self.dtype)) + + tokenized_prompts = self.tokenized_prompts + all_text_features = torch.stack([ + self.text_encoder(p, tokenized_prompts) + for p in prompts + ]) + diversity_loss = self.compute_diversity_loss(all_text_features) + + text_features_old = self.ori_embedding + image_features = image_features / image_features.norm(dim=-1, keepdim=True) + + mean_text_features = all_text_features.mean(dim=0) + mean_text_features_norm = mean_text_features / mean_text_features.norm(dim=-1, keepdim=True) + text_features_old = self.ori_embedding / self.ori_embedding.norm(dim=-1, keepdim=True) + cos_sim = torch.nn.CosineSimilarity(dim=1, eps=1e-07) + score = 1.0 - torch.mean(cos_sim(mean_text_features_norm, text_features_old)) + logit_scale = self.logit_scale.exp() + all_logits = [] + for i in range(self.n_prompts): + text_features_i = all_text_features[i, :, :] + text_features_i = text_features_i / text_features_i.norm(dim=-1, keepdim=True) + logits_i = logit_scale * image_features @ text_features_i.t() + all_logits.append(logits_i) + + logits = torch.stack(all_logits).mean(dim=0) + + return logits, score, diversity_loss + + +@TRAINER_REGISTRY.register() +class MSGCoOp(TrainerX): + + def check_cfg(self, cfg): + assert cfg.TRAINER.COOP.PREC in ["fp16", "fp32", "amp"] + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + + if cfg.TRAINER.COOP.PREC == "fp32" or cfg.TRAINER.COOP.PREC == "amp": + # CLIP's default precision is fp16 + clip_model.float() + + print("Building custom CLIP") + self.model = CustomCLIP(cfg, classnames, clip_model) + self.w = cfg.TRAINER.COOP.W + self.diversity_weight = cfg.TRAINER.COOP.DIV_WEIGHT + + print("Turning off gradients in both the image and the text encoder") + for name, param in self.model.named_parameters(): + if "ctx" not in name: + param.requires_grad_(False) + else: + print(name) + + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model.prompt_learner, cfg.MODEL.INIT_WEIGHTS) + + self.model.to(self.device) + # NOTE: only give prompt_learner to the optimizer + self.optim = build_optimizer(self.model.prompt_learner, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("prompt_learner", self.model.prompt_learner, self.optim, self.sched) + + #self.optim_ = build_optimizer(self.model.adapter, cfg.OPTIM) + #self.sched_ = build_lr_scheduler(self.optim, cfg.OPTIM) + #self.register_model('clip_adapter', self.model.adapter, self.optim_, self.sched_) + + self.scaler = GradScaler() if cfg.TRAINER.COOP.PREC == "amp" else None + + # Note that multi-gpu training could be slow because CLIP's size is + # big, which slows down the copy operation in DataParallel + device_count = torch.cuda.device_count() + if device_count > 1: + print(f"Multiple GPUs detected (n_gpus={device_count}), use all of them!") + self.model = nn.DataParallel(self.model) + + def forward_backward(self, batch): + image, label = self.parse_batch_train(batch) + prec = self.cfg.TRAINER.COOP.PREC + if prec == "amp": + with autocast(): + output = self.model(image) + loss = F.cross_entropy(output, label) + self.optim.zero_grad() + self.scaler.scale(loss).backward() + self.scaler.step(self.optim) + self.scaler.update() + else: + output, score, diversity_loss = self.model(image) + loss = F.cross_entropy(output, label)+self.w*score + diversity_loss * self.diversity_weight + self.model_backward_and_update(loss) + + loss_summary = { + "loss": loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + #self.update_lr() + self.sched.step() + #self.sched_.step() + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label + + def model_inference(self, input): + return self.model(input)[0] + + + def load_model(self, directory, epoch=None): + if not directory: + print("Note that load_model() is skipped as no pretrained model is given") + return + + names = self.get_model_names() + print(names) + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError('Model not found at "{}"'.format(model_path)) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + # Ignore fixed token vectors + if "token_prefix" in state_dict: + del state_dict["token_prefix"] + + if "token_suffix" in state_dict: + del state_dict["token_suffix"] + + if "token_midfix" in state_dict: + del state_dict["token_midfix"] + + print("Loading weights to {} " 'from "{}" (epoch = {})'.format(name, model_path, epoch)) + # set strict=False + self._models[name].load_state_dict(state_dict, strict=False) diff --git a/MSGCoOp/trainers/prograd.py b/MSGCoOp/trainers/prograd.py new file mode 100644 index 0000000..f24f9e1 --- /dev/null +++ b/MSGCoOp/trainers/prograd.py @@ -0,0 +1,439 @@ +import os.path as osp + +import torch +import torch.nn as nn +from torch.nn import functional as F +from torch.cuda.amp import GradScaler, autocast + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.metrics import compute_accuracy +from dassl.utils import load_pretrained_weights, load_checkpoint +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.simple_tokenizer import SimpleTokenizer as _Tokenizer + +from torch.nn.modules.loss import _Loss + +from tqdm import tqdm +import json + +_tokenizer = _Tokenizer() + + +def load_clip_to_cpu(cfg): + backbone_name = cfg.MODEL.BACKBONE.NAME + url = clip._MODELS[backbone_name] + model_path = clip._download(url) + + try: + # loading JIT archive + model = torch.jit.load(model_path, map_location="cpu").eval() + state_dict = None + + except RuntimeError: + state_dict = torch.load(model_path, map_location="cpu") + + model = clip.build_model(state_dict or model.state_dict()) + + return model + + +class TextEncoder(nn.Module): + def __init__(self, clip_model): + super().__init__() + self.transformer = clip_model.transformer + self.positional_embedding = clip_model.positional_embedding + self.ln_final = clip_model.ln_final + self.text_projection = clip_model.text_projection + self.dtype = clip_model.dtype + + def forward(self, prompts, tokenized_prompts): + x = prompts + self.positional_embedding.type(self.dtype) + x = x.permute(1, 0, 2) # NLD -> LND + x = self.transformer(x) + x = x.permute(1, 0, 2) # LND -> NLD + x = self.ln_final(x).type(self.dtype) + + # x.shape = [batch_size, n_ctx, transformer.width] + # take features from the eot embedding (eot_token is the highest number in each sequence) + x = x[torch.arange(x.shape[0]), + tokenized_prompts.argmax(dim=-1)] @ self.text_projection + + return x + + +class PromptLearner(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + n_cls = len(classnames) + n_ctx = cfg.TRAINER.COOP.N_CTX + ctx_init = cfg.TRAINER.COOP.CTX_INIT + dtype = clip_model.dtype + ctx_dim = clip_model.ln_final.weight.shape[0] + clip_imsize = clip_model.visual.input_resolution + cfg_imsize = cfg.INPUT.SIZE[0] + assert cfg_imsize == clip_imsize, f"cfg_imsize ({cfg_imsize}) must equal to clip_imsize ({clip_imsize})" + + if ctx_init: + ctx_init = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + ctx_init = ctx_init.replace(" {}.", "") + ctx_init = ctx_init.replace("_", " ") + prompt_n_ctx = len(ctx_init.split(" ")) + + assert n_ctx >= prompt_n_ctx, f"#tokens ({n_ctx}) should larger equal than #initial prompt tokens ({prompt_n_ctx}, {ctx_init})" + + prompt = clip.tokenize(ctx_init) + with torch.no_grad(): + embedding = clip_model.token_embedding(prompt).type(dtype) + + ctx_vectors = torch.zeros(n_ctx, ctx_dim, dtype=dtype) + + ctx_vectors[n_ctx - prompt_n_ctx:, :] = embedding[0, 1:1 + + prompt_n_ctx, :] + prompt_prefix = " ".join(["X"] * (n_ctx - prompt_n_ctx)) + prompt_prefix = f"{prompt_prefix} {ctx_init}" + else: + # random initialization + if cfg.TRAINER.COOP.CSC: + print("Initializing class-specific contexts") + ctx_vectors = torch.empty(n_cls, n_ctx, ctx_dim, dtype=dtype) + else: + print("Initializing a generic context") + ctx_vectors = torch.empty(n_ctx, ctx_dim, dtype=dtype) + nn.init.normal_(ctx_vectors, std=0.02) + prompt_prefix = " ".join(["X"] * n_ctx) + + print(f'Initial context: "{prompt_prefix}"') + print(f"Number of context words (tokens): {n_ctx}") + + self.ctx = nn.Parameter(ctx_vectors) # to be optimized + + classnames = [name.replace("_", " ") for name in classnames] + name_lens = [len(_tokenizer.encode(name)) for name in classnames] + prompts = [prompt_prefix + " " + name + "." for name in classnames] + + tokenized_prompts = torch.cat([clip.tokenize(p) for p in prompts]) + with torch.no_grad(): + embedding = clip_model.token_embedding(tokenized_prompts).type( + dtype) + + # These token vectors will be saved when in save_model(), + # but they should be ignored in load_model() as we want to use + # those computed using the current class names + self.register_buffer("token_prefix", embedding[:, :1, :]) # SOS + self.register_buffer("token_suffix", + embedding[:, 1 + n_ctx:, :]) # CLS, EOS + + self.n_cls = n_cls + self.n_ctx = n_ctx + self.tokenized_prompts = tokenized_prompts # torch.Tensor + self.class_token_position = cfg.TRAINER.COOP.CLASS_TOKEN_POSITION + self.name_lens = name_lens + + def forward(self): + ctx = self.ctx + if ctx.dim() == 2: + ctx = ctx.unsqueeze(0).expand(self.n_cls, -1, -1) + + prefix = self.token_prefix + suffix = self.token_suffix + + if self.class_token_position == "end": + prompts = torch.cat( + [ + prefix, # (n_cls, 1, dim) + ctx, # (n_cls, n_ctx, dim) + suffix, # (n_cls, *, dim) + ], + dim=1, + ) + + elif self.class_token_position == "middle": + half_n_ctx = n_ctx // 2 + prompts = [] + for i in range(self.n_cls): + name_len = self.name_lens[i] + prefix_i = prefix[i:i + 1, :, :] + class_i = suffix[i:i + 1, :name_len, :] + suffix_i = suffix[i:i + 1, name_len:, :] + ctx_i_half1 = ctx[i:i + 1, :half_n_ctx, :] + ctx_i_half2 = ctx[i:i + 1, half_n_ctx:, :] + prompt = torch.cat( + [ + prefix_i, # (1, 1, dim) + ctx_i_half1, # (1, n_ctx//2, dim) + class_i, # (1, name_len, dim) + ctx_i_half2, # (1, n_ctx//2, dim) + suffix_i, # (1, *, dim) + ], + dim=1, + ) + prompts.append(prompt) + prompts = torch.cat(prompts, dim=0) + + elif self.class_token_position == "front": + prompts = [] + for i in range(self.n_cls): + name_len = self.name_lens[i] + prefix_i = prefix[i:i + 1, :, :] + class_i = suffix[i:i + 1, :name_len, :] + suffix_i = suffix[i:i + 1, name_len:, :] + ctx_i = ctx[i:i + 1, :, :] + prompt = torch.cat( + [ + prefix_i, # (1, 1, dim) + class_i, # (1, name_len, dim) + ctx_i, # (1, n_ctx, dim) + suffix_i, # (1, *, dim) + ], + dim=1, + ) + prompts.append(prompt) + prompts = torch.cat(prompts, dim=0) + + else: + raise ValueError + + return prompts + + +CUSTOM_TEMPLATES = { + "OxfordPets": "a type of pet, a photo of a {}.", + "OxfordFlowers": "a type of flower, a photo of a {}.", + "FGVCAircraft": "a type of aircraft, a photo of a {}.", + "DescribableTextures": "a texture of {}.", + "EuroSAT": "a centered satellite photo of {}.", + "StanfordCars": "a photo of a {}.", + "Food101": "a type of food, a photo of {}.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + +class CLIP(nn.Module): + def __init__(self, cfg, classnames): + super().__init__() + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + clip_model.float() + + temp = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + prompts = [temp.format(c.replace("_", " ")) for c in classnames] + print(f"Prompts: {prompts}") + prompts = torch.cat([clip.tokenize(p) for p in prompts]) + + with torch.no_grad(): + text_features = clip_model.encode_text(prompts) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + + self.text_features = text_features + self.clip_model = clip_model + + def forward(self, image): + image_features = self.clip_model.encode_image(image) + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + logit_scale = self.clip_model.logit_scale.exp() + + text_features = self.text_features + text_features = text_features.to(image_features.device) + logits = logit_scale * image_features @ text_features.t() + return logits + + +class CustomCLIP(nn.Module): + def __init__(self, cfg, classnames, clip_model): + super().__init__() + self.prompt_learner = PromptLearner(cfg, classnames, clip_model) + self.tokenized_prompts = self.prompt_learner.tokenized_prompts + self.image_encoder = clip_model.visual + self.text_encoder = TextEncoder(clip_model) + self.logit_scale = clip_model.logit_scale + self.dtype = clip_model.dtype + + def forward(self, image): + image_features = self.image_encoder(image.type(self.dtype)) + + prompts = self.prompt_learner() + tokenized_prompts = self.tokenized_prompts + text_features = self.text_encoder(prompts, tokenized_prompts) + + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + + logit_scale = self.logit_scale.exp() + logits = logit_scale * image_features @ text_features.t() + + return logits + + +class ProGradLoss(_Loss): + def __init__(self, T): + super(ProGradLoss, self).__init__() + self.T = T + + def forward(self, stu_logits, tea_logits, label): + xe_loss = F.cross_entropy(stu_logits, label) + + tea_prob = F.softmax(tea_logits / self.T, dim=-1) + kl_loss = -tea_prob * F.log_softmax(stu_logits / self.T, + -1) * self.T * self.T + kl_loss = kl_loss.sum(1).mean() + + return xe_loss, kl_loss + + +@TRAINER_REGISTRY.register() +class ProGrad(TrainerX): + """Projected Gradient for few-shot CLIP + """ + def check_cfg(self, cfg): + assert cfg.TRAINER.COOP.PREC in ["fp16", "fp32", "amp"] + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + + if cfg.TRAINER.COOP.PREC == "fp32" or cfg.TRAINER.COOP.PREC == "amp": + # CLIP's default precision is fp16 + clip_model.float() + + print("Building zeroshot CLIP") + self.zs_clip = CLIP(cfg, classnames) + + print("Building custom CLIP") + self.model = CustomCLIP(cfg, classnames, clip_model) + + print("Turning off gradients in ZS Clip model") + for name, param in self.zs_clip.named_parameters(): + param.requires_grad_(False) + + print("Turning off gradients in CoOp model") + for name, param in self.model.named_parameters(): + if "prompt_learner" not in name: + param.requires_grad_(False) + + if cfg.MODEL.INIT_WEIGHTS: + load_pretrained_weights(self.model.prompt_learner, + cfg.MODEL.INIT_WEIGHTS) + + self.model.to(self.device) + self.zs_clip = self.zs_clip.cuda() + + # NOTE: only give prompt_learner to the optimizer + self.optim = build_optimizer(self.model.prompt_learner, cfg.OPTIM) + self.sched = build_lr_scheduler(self.optim, cfg.OPTIM) + self.register_model("prompt_learner", self.model.prompt_learner, + self.optim, self.sched) + + self.scaler = GradScaler() if cfg.TRAINER.COOP.PREC == "amp" else None + + # Note that multi-gpu training could be slow because CLIP's size is + # big, which slows down the copy operation in DataParallel + device_count = torch.cuda.device_count() + if device_count > 1: + print( + f"Multiple GPUs detected (n_gpus={device_count}), use all of them!" + ) + self.model = nn.DataParallel(self.model) + self.zs_clip = nn.DataParallel(self.zs_clip) + + # build criterion + if cfg.LOSS.NAME == "prograd": + self.criterion = ProGradLoss(T=cfg.LOSS.T) + else: + raise NotImplementedError + + def forward_backward(self, batch): + image, label = self.parse_batch_train(batch) + + prec = self.cfg.TRAINER.COOP.PREC + if prec == "amp": + with autocast(): + output = self.model(image) + with torch.no_grad(): + zs_clip_output = self.zs_clip(image) + loss = self.criterion(output, zs_clip_output.detach(), label) + self.optim.zero_grad() + self.scaler.scale(loss).backward() + self.scaler.step(self.optim) + self.scaler.update() + else: + output = self.model(image) + with torch.no_grad(): + zs_clip_output = self.zs_clip(image) + + xe_loss, kl_loss = self.criterion(output, + zs_clip_output.detach(), + label) + self.prograd_backward_and_update(xe_loss, kl_loss, + self.cfg.LOSS.LAMBDA) + + loss_summary = { + "xe_loss": xe_loss.item(), + "kl_loss": kl_loss.item(), + "acc": compute_accuracy(output, label)[0].item(), + } + + if (self.batch_idx + 1) == self.num_batches: + self.update_lr() + + return loss_summary + + def parse_batch_train(self, batch): + input = batch["img"] + label = batch["label"] + input = input.to(self.device) + label = label.to(self.device) + return input, label + + def load_model(self, directory, epoch=None): + if not directory: + print( + "Note that load_model() is skipped as no pretrained model is given" + ) + return + + names = self.get_model_names() + + # By default, the best model is loaded + model_file = "model-best.pth.tar" + + if epoch is not None: + model_file = "model.pth.tar-" + str(epoch) + + for name in names: + model_path = osp.join(directory, name, model_file) + + if not osp.exists(model_path): + raise FileNotFoundError( + 'Model not found at "{}"'.format(model_path)) + + checkpoint = load_checkpoint(model_path) + state_dict = checkpoint["state_dict"] + epoch = checkpoint["epoch"] + + # Ignore fixed token vectors + if "token_prefix" in state_dict: + del state_dict["token_prefix"] + + if "token_suffix" in state_dict: + del state_dict["token_suffix"] + + print("Loading weights to {} " + 'from "{}" (epoch = {})'.format(name, model_path, epoch)) + # set strict=False + self._models[name].load_state_dict(state_dict, strict=False) diff --git a/MSGCoOp/trainers/zsclip.py b/MSGCoOp/trainers/zsclip.py new file mode 100644 index 0000000..87c3aeb --- /dev/null +++ b/MSGCoOp/trainers/zsclip.py @@ -0,0 +1,107 @@ +import torch +import torch.nn as nn + +from dassl.engine import TRAINER_REGISTRY, TrainerX +from dassl.optim import build_optimizer, build_lr_scheduler + +from clip import clip +from clip.model import convert_weights + +from .coop import load_clip_to_cpu +from .imagenet_templates import IMAGENET_TEMPLATES, IMAGENET_TEMPLATES_SELECT + +CUSTOM_TEMPLATES = { + # "OxfordPets": "a photo of a {}, a type of pet.", + "OxfordPets": "a type of pet, a photo of a {}.", + # "OxfordFlowers": "a photo of a {}, a type of flower.", + "OxfordFlowers": "a type of flower, a photo of a {}.", + "FGVCAircraft": "a photo of a {}, a type of aircraft.", + "DescribableTextures": "{} texture.", + "EuroSAT": "a centered satellite photo of {}.", + "StanfordCars": "a photo of a {}.", + # "Food101": "a photo of {}, a type of food.", + "Food101": "a type of food, a photo of {}.", + "SUN397": "a photo of a {}.", + "Caltech101": "a photo of a {}.", + "UCF101": "a photo of a person doing {}.", + "ImageNet": "a photo of a {}.", + "ImageNetSketch": "a photo of a {}.", + "ImageNetV2": "a photo of a {}.", + "ImageNetA": "a photo of a {}.", + "ImageNetR": "a photo of a {}.", +} + + +@TRAINER_REGISTRY.register() +class ZeroshotCLIP(TrainerX): + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + clip_model.to(self.device) + + temp = CUSTOM_TEMPLATES[cfg.DATASET.NAME] + prompts = [temp.format(c.replace("_", " ")) for c in classnames] + print(f"Prompts: {prompts}") + prompts = torch.cat([clip.tokenize(p) for p in prompts]) + prompts = prompts.to(self.device) + + with torch.no_grad(): + text_features = clip_model.encode_text(prompts) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + + self.text_features = text_features + self.clip_model = clip_model + + def model_inference(self, image): + image_features = self.clip_model.encode_image(image) + image_features = image_features / image_features.norm(dim=-1, + keepdim=True) + logit_scale = self.clip_model.logit_scale.exp() + logits = logit_scale * image_features @ self.text_features.t() + return logits + + +@TRAINER_REGISTRY.register() +class ZeroshotCLIP2(ZeroshotCLIP): + """Prompt ensembling.""" + + # templates = IMAGENET_TEMPLATES + templates = IMAGENET_TEMPLATES_SELECT + + def build_model(self): + cfg = self.cfg + classnames = self.dm.dataset.classnames + + print(f"Loading CLIP (backbone: {cfg.MODEL.BACKBONE.NAME})") + clip_model = load_clip_to_cpu(cfg) + clip_model.to(self.device) + + for params in clip_model.parameters(): + params.requires_grad_(False) + + # add custom-made prompt + if cfg.DATASET.NAME != "ImageNet": + self.templates += [CUSTOM_TEMPLATES[cfg.DATASET.NAME]] + + num_temp = len(self.templates) + print(f"Prompt ensembling (n={num_temp})") + + mean_text_features = 0 + for i, temp in enumerate(self.templates): + prompts = [temp.format(c.replace("_", " ")) for c in classnames] + prompts = torch.cat([clip.tokenize(p) + for p in prompts]).to(self.device) + text_features = clip_model.encode_text(prompts) + text_features = text_features / text_features.norm(dim=-1, + keepdim=True) + mean_text_features = mean_text_features + text_features + mean_text_features = mean_text_features / num_temp + mean_text_features = mean_text_features / mean_text_features.norm( + dim=-1, keepdim=True) + + self.text_features = mean_text_features + self.clip_model = clip_model diff --git a/fig_main.png b/fig_main.png new file mode 100644 index 0000000..20b3116 Binary files /dev/null and b/fig_main.png differ diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ce24d7d --- /dev/null +++ b/readme.md @@ -0,0 +1,51 @@ +# MSGCoOp: Visual-Language Prompt Tuning with Knowledge-guided Context Optimization + +## Overview of MSGCoOp + +We introduce **Multi-prompt Semantic-Guided Context Optimization (MSGCoOp)**, a novel framework that advances CLIP-based prompt tuning for few-shot learning. MSGCoOp addresses the challenge of generalizing to novel classes efficiently, without heavy architectural modifications or expensive computation. + +MSGCoOp employs an ensemble of $N$ parallel learnable context vectors (where $N \geq 1$) to create multiple, diverse prompt features. This multi-prompt design increases the expressive capacity of text representations without introducing additional trainable network layers or complex inter-prompt couplings—keeping the method lightweight and efficient. + +To further enrich the prompts semantically, MSGCoOp automatically integrates class descriptions generated by large language models (LLMs). This automation reduces manual engineering effort and infuses rich, external knowledge into the prompt space. To ensure each context vector learns complementary and non-redundant features, we introduce a diversity regularization loss that encourages orthogonality among prompts. + +A schematic overview of the MSGCoOp architecture can be found below: + +![MSGCoOp Framework](fig_main.png) + +## Main Contributions + +- **Textual Multi-Prompt Learning**: Parallel context vectors with ensemble fusion provide diverse prompt representations. +- **Automatic Semantic Enrichment**: LLM-generated class descriptions empower contextual prompts for improved generalization. +- **Diversity Regularization**: Promotes complementary and orthogonal prompts to prevent redundancy in learned features. +- **Extensive Empirical Validation**: Thorough experiments across standard and cross-domain tasks demonstrate the effectiveness and efficiency. + +## Results + +MSGCoOp demonstrates strong improvements in both base-to-novel and cross-domain generalization tasks. On 11 benchmark datasets, MSGCoOp achieves: +- **+1.10% harmonic mean accuracy** over the previous strong baseline KgCoOp in base-to-novel generalization. +- **Improved cross-domain generalization** with a +0.30% gain against KgCoOp and +0.14% over multi-modal MaPLe. +- **Ablation studies** show: semantic-guided prompting (LLM-described classes) brings a +0.82% accuracy boost, and the multi-prompt design provides an additional +0.58% increase over single-prompt setups. + +These results highlight that MSGCoOp's integration of multi-prompt learning and LLM-based semantic enrichment not only simplifies prompt construction but also enhances model robustness and transferability. + +## Getting Started + +1. [Dassl.ProGrad.pytorch](Dassl.ProGrad.pytorch/) is the modified toolbox of [Dassl.pytorch](https://github.com/KaiyangZhou/Dassl.pytorch). +2. [MSGCoOp](MSGCoOp/). To get the results in our paper, follow the [README.md](MSGCoOp/README.md) under [MSGCoOp/](MSGCoOp/) to set the environment. + +## Citation + +If you use our work, please cite: +```bibtex +@inproceedings{msgcoop24, + title={Visual-Language Prompt Tuning with Knowledge-guided Context Optimization}, + author={Zhaolong Wang}, + booktitle={arxiv}, + year={2024} +} +``` + + +## Acknowledgements +Our code is based on [Co-CoOp and CoOp](https://github.com/KaiyangZhou/CoOp), [ProGrad](https://github.com/BeierZhu/Prompt-align), [KgCoOp](https://github.com/htyao89/KgCoOp) repository. We thank the authors for releasing their code. If you use our model and code, please consider citing these works as well. +