├── LICENSE ├── README.md ├── configs ├── home.yaml ├── office.yaml └── visda2017.yaml ├── core ├── __init__.py ├── active │ ├── __init__.py │ ├── active.py │ └── loss.py ├── config │ ├── __init__.py │ └── defaults.py ├── datasets │ ├── __init__.py │ ├── image_list.py │ └── transforms.py ├── models │ ├── __init__.py │ └── network.py └── utils │ ├── __init__.py │ ├── logger.py │ ├── metric_logger.py │ └── utils.py ├── data └── list │ ├── home │ ├── Art_test.txt │ ├── Art_train.txt │ ├── Clipart_test.txt │ ├── Clipart_train.txt │ ├── Product_test.txt │ ├── Product_train.txt │ ├── RealWorld_test.txt │ └── RealWorld_train.txt │ ├── office │ ├── amazon_test.txt │ ├── amazon_train.txt │ ├── dslr_test.txt │ ├── dslr_train.txt │ ├── webcam_test.txt │ └── webcam_train.txt │ └── visda2017 │ ├── real_test.txt │ ├── real_train.txt │ └── synthetic_train.txt ├── docs └── eada.png ├── main.py └── requirements.txt /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 BIT-DA 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 |
4 | 5 | # Active Learning for Domain Adaptation: An Energy-based Approach 6 | 7 | [Binhui Xie](https://binhuixie.github.io), [Longhui Yuan](https://yuanlonghui.github.io), [Shuang Li](https://shuangli.xyz), [Chi Harold Liu](https://scholar.google.com/citations?user=3IgFTEkAAAAJ&hl=en), [Xinjing Cheng](https://scholar.google.com/citations?user=8QbRVCsAAAAJ&hl=en) and [Guoren Wang](https://scholar.google.com.hk/citations?hl=en&user=UjlGD7AAAAAJ) 8 | 9 | 10 | [![Paper](http://img.shields.io/badge/paper-arxiv.2112.01406-B31B1B.svg)](https://arxiv.org/abs/2112.01406)   11 | [![Bilibili](https://img.shields.io/badge/Video-Bilibili-%2300A1D6?logo=bilibili&style=flat-square)](https://www.bilibili.com/video/BV1qa411h7Xm/?share_source=copy_web&vd_source=2536293932098e7a347341a231b3fb8b)   12 | [![Slides](https://img.shields.io/badge/Poster-Dropbox-%230061FF?logo=dropbox&style=flat-square)](https://www.dropbox.com/s/8ozwc8uw1q1tqlf/eada_slides.pdf?dl=0)   13 | 14 |
15 | 16 | 17 | Unsupervised domain adaptation (UDA) has recently emerged as an effective paradigm for generalizing deep neural networks to new target domains. However, there is still enormous potential to be tapped to reach the fully supervised performance. 18 | 19 | We start from an observation that energy-based models exhibit free energy biases when training (source) and test (target) data come from different distributions. Inspired by this inherent mechanism, we empirically reveal that a simple yet efficient energy-based sampling strategy sheds light on selecting the most valuable target samples than existing approaches requiring particular architectures or computation of the distances. 20 | 21 | Our algorithm, Energy-based Active Domain Adaptation (EADA), queries groups of target data that incorporate both domain characteristic and instance uncertainty into every selection round. Meanwhile, by aligning the free energy of target data compact around the source domain via a regularization term, domain gap can be implicitly diminished. 22 | 23 | ![UDA over time](docs/eada.png) 24 | 25 | Through extensive experiments, we show that EADA surpasses state-of-the-art methods on well-known challenging benchmarks with substantial improvements, making it a useful option in the open world. 26 | 27 | For more information on EADA, please check our **[[Paper](https://arxiv.org/pdf/2112.01406.pdf)]**. 28 | 29 | If you find this project useful in your research, please consider citing: 30 | 31 | ```bib 32 | @inproceedings{xie2022active, 33 | title={Active learning for domain adaptation: An energy-based approach}, 34 | author={Xie, Binhui and Yuan, Longhui and Li, Shuang and Liu, Chi Harold and Cheng, Xinjing and Wang, Guoren}, 35 | booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, 36 | volume={36}, 37 | number={8}, 38 | pages={8708--8716}, 39 | year={2022} 40 | } 41 | ``` 42 | 43 | 44 | ## Setup Environment 45 | 46 | For this project, we used python 3.7.5. We recommend setting up a new virtual environment: 47 | 48 | **Step-by-step installation** 49 | 50 | ```bash 51 | conda create --name activeDA -y python=3.7 52 | conda activate activeDA 53 | 54 | # this installs the right pip and dependencies for the fresh python 55 | conda install -y ipython pip 56 | 57 | pip install -r requirements.txt 58 | ``` 59 | 60 | ### Setup Datasets 61 | - Download [The Office-31 Dataset](https://faculty.cc.gatech.edu/~judy/domainadapt/) 62 | - Download [The Office-Home Dataset](http://hemanthdv.org/OfficeHome-Dataset/) 63 | - Download [The VisDA-2017 Dataset](https://github.com/VisionLearningGroup/taskcv-2017-public/tree/master/classification) 64 | 65 | The data folder should be structured as follows: 66 | ``` 67 | ├── data/ 68 | │ ├── office31/ 69 | | | ├── amazon/ 70 | | | ├── dslr/ 71 | | | ├── webcam/ 72 | │ ├── home/ 73 | | | ├── Art/ 74 | | | ├── Clipart/ 75 | | | ├── Product/ 76 | | | ├── RealWorld/ 77 | │ ├── visda2017/ 78 | | | ├── train/ 79 | | | ├── validation/ 80 | │ └── 81 | ``` 82 | 83 | Symlink the required dataset 84 | ``` 85 | ln -s /path_to_office31_dataset data/office31 86 | ln -s /path_to_home_dataset data/home 87 | ln -s /path_to_visda2017_dataset/clf/ data/visda2017 88 | ``` 89 | 90 | ## Running the code 91 | 92 | For Office-31 93 | ``` 94 | python main.py --cfg configs/office.yaml 95 | ``` 96 | 97 | For Office-Home 98 | ``` 99 | python main.py --cfg configs/home.yaml 100 | ``` 101 | 102 | For VisDA-2017 103 | ``` 104 | python main.py --cfg configs/visda2017.yaml 105 | ``` 106 | 107 | ## Acknowledgements 108 | 109 | This project is based on the following open-source projects. We thank their authors for making the source code publicly available. 110 | - [Transferable-Query-Selection](https://github.com/thuml/Transferable-Query-Selection) 111 | 112 | ## Contact 113 | 114 | If you have any problem about our code, feel free to contact 115 | 116 | - [binhuixie@bit.edu.cn](mailto:binhuixie@bit.edu.cn) 117 | 118 | or describe your problem in Issues. 119 | -------------------------------------------------------------------------------- /configs/home.yaml: -------------------------------------------------------------------------------- 1 | OUTPUT_DIR: 'results/' 2 | 3 | INPUT: 4 | SIZE: (256, 256) 5 | CROP_SIZE: (224, 224) 6 | SOURCE_TRANSFORMS: ('random_crop', 'normalize', 'colorjitter') 7 | TARGET_TRANSFORMS: ('random_crop', 'normalize') 8 | TEST_TRANSFORMS: ('center_crop', 'normalize') 9 | PIXEL_MEAN: [0.485, 0.456, 0.406] 10 | PIXEL_STD: [0.229, 0.224, 0.225] 11 | 12 | DATASET: 13 | ROOT: 'data/list/' 14 | NAME: 'home' 15 | SOURCE_DOMAINS: ['Art', 'Clipart', 'Product', 'RealWorld'] 16 | TARGET_DOMAINS: ['Art', 'Clipart', 'Product', 'RealWorld'] 17 | NUM_CLASS: 65 18 | 19 | DATALOADER: 20 | SOURCE: 21 | BATCH_SIZE: 32 22 | TARGET: 23 | BATCH_SIZE: 32 24 | TEST: 25 | BATCH_SIZE: 32 26 | OPTIM: 27 | NAME: 'Adadelta' 28 | LR: 0.1 29 | BASE_LR_MULT: 0.1 30 | 31 | TRAINER: 32 | NAME: 'EADA' 33 | MAX_EPOCHS: 40 34 | ENERGY_ALIGN_WEIGHT: 0.01 35 | ENERGY_ALIGN_TYPE: 'max' 36 | FIRST_SAMPLE_RATIO: 0.5 37 | 38 | SEED: 0 # 0,1,2,3,4 for five random experiments 39 | 40 | -------------------------------------------------------------------------------- /configs/office.yaml: -------------------------------------------------------------------------------- 1 | OUTPUT_DIR: 'results/' 2 | 3 | INPUT: 4 | SIZE: (256, 256) 5 | CROP_SIZE: (224, 224) 6 | SOURCE_TRANSFORMS: ('random_crop', 'normalize', 'colorjitter') 7 | TARGET_TRANSFORMS: ('random_crop', 'normalize') 8 | TEST_TRANSFORMS: ('center_crop', 'normalize') 9 | PIXEL_MEAN: [0.485, 0.456, 0.406] 10 | PIXEL_STD: [0.229, 0.224, 0.225] 11 | 12 | DATASET: 13 | ROOT: 'data/list/' 14 | NAME: 'office' 15 | SOURCE_DOMAINS: ['amazon', 'dslr', 'webcam'] 16 | TARGET_DOMAINS: ['amazon', 'dslr', 'webcam'] 17 | NUM_CLASS: 31 18 | 19 | DATALOADER: 20 | SOURCE: 21 | BATCH_SIZE: 32 22 | TARGET: 23 | BATCH_SIZE: 32 24 | TEST: 25 | BATCH_SIZE: 32 26 | TRAIN: 27 | PRINT_FREQ: 10 28 | 29 | OPTIM: 30 | NAME: 'Adadelta' 31 | LR: 0.1 32 | BASE_LR_MULT: 0.1 33 | 34 | TRAINER: 35 | NAME: 'EADA' 36 | MAX_EPOCHS: 50 37 | ENERGY_ALIGN_WEIGHT: 0.01 38 | ENERGY_ALIGN_TYPE: 'max' 39 | FIRST_SAMPLE_RATIO: 0.5 40 | 41 | SEED: 0 -------------------------------------------------------------------------------- /configs/visda2017.yaml: -------------------------------------------------------------------------------- 1 | OUTPUT_DIR: 'results/' 2 | 3 | MODEL: 4 | BACKBONE: 5 | NAME: 'resnet50' # resnet18 or resnet50 6 | 7 | INPUT: 8 | SIZE: (256, 256) 9 | CROP_SIZE: (224, 224) 10 | SOURCE_TRANSFORMS: ('random_crop', 'normalize', 'colorjitter') 11 | TARGET_TRANSFORMS: ('random_crop', 'normalize') 12 | TEST_TRANSFORMS: ('center_crop', 'normalize') 13 | PIXEL_MEAN: [0.485, 0.456, 0.406] 14 | PIXEL_STD: [0.229, 0.224, 0.225] 15 | 16 | DATASET: 17 | ROOT: 'data/list/' 18 | NAME: 'visda2017' 19 | SOURCE_DOMAINS: ['synthetic'] 20 | TARGET_DOMAINS: ['real'] 21 | NUM_CLASS: 12 22 | 23 | DATALOADER: 24 | SOURCE: 25 | BATCH_SIZE: 32 26 | TARGET: 27 | BATCH_SIZE: 32 28 | TEST: 29 | BATCH_SIZE: 32 30 | OPTIM: 31 | NAME: 'Adadelta' 32 | LR: 0.1 33 | BASE_LR_MULT: 0.1 34 | TRAIN: 35 | PRINT_FREQ: 100 36 | 37 | TRAINER: 38 | NAME: 'EADA' 39 | MAX_EPOCHS: 20 40 | ENERGY_ALIGN_WEIGHT: 0.0005 41 | ENERGY_ALIGN_TYPE: 'max' 42 | FIRST_SAMPLE_RATIO: 0.5 43 | 44 | SEED: 0 45 | -------------------------------------------------------------------------------- /core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BIT-DA/EADA/05040e37735bf24da7ccf2249a896d70c897f4bd/core/__init__.py -------------------------------------------------------------------------------- /core/active/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BIT-DA/EADA/05040e37735bf24da7ccf2249a896d70c897f4bd/core/active/__init__.py -------------------------------------------------------------------------------- /core/active/active.py: -------------------------------------------------------------------------------- 1 | import random 2 | import math 3 | import numpy as np 4 | import torch 5 | 6 | 7 | def RAND_active(tgt_unlabeled_ds, tgt_selected_ds, active_ratio, totality): 8 | length = len(tgt_unlabeled_ds.samples) 9 | index = random.sample(range(length), round(totality * active_ratio)) 10 | 11 | active_samples = tgt_unlabeled_ds.samples[index] 12 | 13 | tgt_selected_ds.add_item(active_samples) 14 | tgt_unlabeled_ds.remove_item(index) 15 | 16 | return active_samples 17 | 18 | 19 | def EADA_active(tgt_unlabeled_loader_full, tgt_unlabeled_ds, tgt_selected_ds, active_ratio, totality, model, cfg): 20 | model.eval() 21 | first_stat = list() 22 | with torch.no_grad(): 23 | for _, data in enumerate(tgt_unlabeled_loader_full): 24 | tgt_img, tgt_lbl = data['img'], data['label'] 25 | tgt_path, tgt_index = data['path'], data['index'] 26 | tgt_img, tgt_lbl = tgt_img.cuda(), tgt_lbl.cuda() 27 | 28 | tgt_out = model(tgt_img, return_feat=False) 29 | 30 | # MvSM of each sample 31 | # minimal energy - second minimal energy 32 | min2 = torch.topk(tgt_out, k=2, dim=1, largest=False).values 33 | mvsm_uncertainty = min2[:, 0] - min2[:, 1] 34 | 35 | # free energy of each sample 36 | output_div_t = -1.0 * tgt_out / cfg.TRAINER.ENERGY_BETA 37 | output_logsumexp = torch.logsumexp(output_div_t, dim=1, keepdim=False) 38 | free_energy = -1.0 * cfg.TRAINER.ENERGY_BETA * output_logsumexp 39 | 40 | for i in range(len(free_energy)): 41 | first_stat.append([tgt_path[i], tgt_lbl[i].item(), tgt_index[i].item(), 42 | mvsm_uncertainty[i].item(), free_energy[i].item()]) 43 | 44 | first_sample_ratio = cfg.TRAINER.FIRST_SAMPLE_RATIO 45 | first_sample_num = math.ceil(totality * first_sample_ratio) 46 | second_sample_ratio = active_ratio / cfg.TRAINER.FIRST_SAMPLE_RATIO 47 | second_sample_num = math.ceil(first_sample_num * second_sample_ratio) 48 | 49 | # the first sample using \mathca{F}, higher value, higher consideration 50 | first_stat = sorted(first_stat, key=lambda x: x[4], reverse=True) 51 | second_stat = first_stat[:first_sample_num] 52 | 53 | # the second sample using \mathca{U}, higher value, higher consideration 54 | second_stat = sorted(second_stat, key=lambda x: x[3], reverse=True) 55 | second_stat = np.array(second_stat) 56 | 57 | active_samples = second_stat[:second_sample_num, 0:2, ...] 58 | candidate_ds_index = second_stat[:second_sample_num, 2, ...] 59 | candidate_ds_index = np.array(candidate_ds_index, dtype=np.int) 60 | 61 | tgt_selected_ds.add_item(active_samples) 62 | tgt_unlabeled_ds.remove_item(candidate_ds_index) 63 | 64 | return active_samples 65 | -------------------------------------------------------------------------------- /core/active/loss.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | 4 | 5 | def bound_max_loss(energy, bound): 6 | """ 7 | return the loss value of max(0, \mathcal{F}(x) - \Delta ) 8 | """ 9 | energy_minus_bound = energy - bound 10 | energy_minus_bound = torch.unsqueeze(energy_minus_bound, dim=1) 11 | zeros = torch.zeros_like(energy_minus_bound) 12 | for_select = torch.cat((energy_minus_bound, zeros), dim=1) 13 | selected = torch.max(for_select, dim=1).values 14 | 15 | return selected.mean() 16 | 17 | 18 | class FreeEnergyAlignmentLoss(nn.Module): 19 | """ 20 | free energy alignment loss 21 | """ 22 | 23 | def __init__(self, cfg): 24 | super(FreeEnergyAlignmentLoss, self).__init__() 25 | assert cfg.TRAINER.ENERGY_BETA > 0, "beta for energy calculate must be larger than 0" 26 | self.beta = cfg.TRAINER.ENERGY_BETA 27 | 28 | self.type = cfg.TRAINER.ENERGY_ALIGN_TYPE 29 | 30 | if self.type == 'l1': 31 | self.loss = nn.L1Loss() 32 | elif self.type == 'mse': 33 | self.loss = nn.MSELoss() 34 | elif self.type == 'max': 35 | self.loss = bound_max_loss 36 | 37 | def forward(self, inputs, bound): 38 | mul_neg_beta = -1.0 * self.beta * inputs 39 | log_sum_exp = torch.logsumexp(mul_neg_beta, dim=1) 40 | free_energies = -1.0 * log_sum_exp / self.beta 41 | 42 | bound = torch.ones_like(free_energies) * bound 43 | loss = self.loss(free_energies, bound) 44 | 45 | return loss 46 | 47 | 48 | class NLLLoss(nn.Module): 49 | """ 50 | NLL loss for energy based model 51 | """ 52 | 53 | def __init__(self, cfg): 54 | super(NLLLoss, self).__init__() 55 | assert cfg.TRAINER.ENERGY_BETA > 0, "beta for energy calculate must be larger than 0" 56 | self.beta = cfg.TRAINER.ENERGY_BETA 57 | 58 | def forward(self, inputs, targets): 59 | indices = torch.unsqueeze(targets, dim=1) 60 | energy_c = torch.gather(inputs, dim=1, index=indices) 61 | 62 | all_energy = -1.0 * self.beta * inputs 63 | free_energy = -1.0 * torch.logsumexp(all_energy, dim=1, keepdim=True) / self.beta 64 | 65 | nLL = energy_c - free_energy 66 | 67 | return nLL.mean() 68 | -------------------------------------------------------------------------------- /core/config/__init__.py: -------------------------------------------------------------------------------- 1 | from .defaults import _C as cfg 2 | 3 | 4 | def get_cfg_default(): 5 | return cfg.clone() 6 | -------------------------------------------------------------------------------- /core/config/defaults.py: -------------------------------------------------------------------------------- 1 | from yacs.config import CfgNode as CN 2 | 3 | ########################### 4 | # Config definition 5 | ########################### 6 | 7 | _C = CN() 8 | 9 | _C.VERSION = 1 10 | 11 | # Directory to save the output files 12 | _C.OUTPUT_DIR = './output' 13 | # Path to a directory where the files were saved previously 14 | _C.RESUME = '' 15 | # Set seed to negative value to randomize everything 16 | # Set seed to positive value to use a fixed seed 17 | _C.SEED = -1 18 | 19 | ########################### 20 | # Input 21 | ########################### 22 | _C.INPUT = CN() 23 | _C.INPUT.SIZE = (256, 256) 24 | _C.INPUT.CROP_SIZE = (224, 224) 25 | # Mode of interpolation in resize functions 26 | _C.INPUT.INTERPOLATION = 'bilinear' 27 | # For available choices please refer to transforms.py 28 | _C.INPUT.SOURCE_TRANSFORMS = ('random_crop', 'normalize') # source training set 29 | _C.INPUT.TARGET_TRANSFORMS = ('random_crop', 'normalize') # target training set 30 | _C.INPUT.TEST_TRANSFORMS = ('center_crop', 'normalize') # target test set 31 | # Default mean and std come from ImageNet 32 | _C.INPUT.PIXEL_MEAN = [0.485, 0.456, 0.406] 33 | _C.INPUT.PIXEL_STD = [0.229, 0.224, 0.225] 34 | # Padding for random crop 35 | _C.INPUT.CROP_PADDING = None 36 | # ColorJitter (brightness, contrast, saturation, hue) 37 | _C.INPUT.COLORJITTER_SCALAR = 0.5 # 0.1, 0.3, 0.5, 0.8, 1.0 38 | 39 | ########################### 40 | # Dataset 41 | ########################### 42 | _C.DATASET = CN() 43 | # Directory where datasets are stored 44 | _C.DATASET.ROOT = '' 45 | _C.DATASET.NAME = '' 46 | # List of domains 47 | _C.DATASET.SOURCE_DOMAINS = [] 48 | _C.DATASET.TARGET_DOMAINS = [] 49 | _C.DATASET.SOURCE_TRAIN_DOMAIN = '' 50 | _C.DATASET.TARGET_TRAIN_DOMAIN = '' 51 | _C.DATASET.TARGET_VAL_DOMAIN = '' 52 | 53 | # Number of class 54 | _C.DATASET.NUM_CLASS = 12 55 | 56 | ########################### 57 | # Dataloader 58 | ########################### 59 | _C.DATALOADER = CN() 60 | _C.DATALOADER.NUM_WORKERS = 4 61 | # Setting for the source data-loader 62 | _C.DATALOADER.SOURCE = CN() 63 | _C.DATALOADER.SOURCE.BATCH_SIZE = 32 64 | # Setting for the target data-loader 65 | _C.DATALOADER.TARGET = CN() 66 | _C.DATALOADER.TARGET.BATCH_SIZE = 32 67 | # Setting for the test data-loader 68 | _C.DATALOADER.TEST = CN() 69 | _C.DATALOADER.TEST.BATCH_SIZE = 32 70 | 71 | ########################### 72 | # Model 73 | ########################### 74 | _C.MODEL = CN() 75 | # Path to model weights (for initialization) 76 | _C.MODEL.INIT_WEIGHTS = '' 77 | _C.MODEL.BACKBONE = CN() 78 | _C.MODEL.BACKBONE.NAME = 'resnet50' # resnet18 or resnet50 79 | _C.MODEL.BACKBONE.PRETRAINED = True 80 | 81 | ########################### 82 | # Optimization 83 | ########################### 84 | _C.OPTIM = CN() 85 | _C.OPTIM.NAME = 'Adadelta' 86 | _C.OPTIM.LR = 0.1 87 | _C.OPTIM.BASE_LR_MULT = 0.1 88 | 89 | # ########################### 90 | # # Train 91 | # ########################### 92 | _C.TRAIN = CN() 93 | # # How often (batch) to print training information 94 | _C.TRAIN.PRINT_FREQ = 50 95 | 96 | ########################### 97 | # Trainer specifics 98 | ########################### 99 | _C.TRAINER = CN() 100 | _C.TRAINER.NAME = 'EADA' # EADA or RAND 101 | _C.TRAINER.MAX_EPOCHS = 20 102 | _C.TRAINER.ENERGY_ALIGN_TYPE = 'max' 103 | _C.TRAINER.ENERGY_ALIGN_WEIGHT = 0.01 104 | _C.TRAINER.ACTIVE_ROUND = [10, 12, 14, 16, 18] 105 | _C.TRAINER.EPSILON = 0.05 106 | _C.TRAINER.ENERGY_BETA = 1.0 107 | _C.TRAINER.FIRST_SAMPLE_RATIO = 0.5 108 | -------------------------------------------------------------------------------- /core/datasets/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BIT-DA/EADA/05040e37735bf24da7ccf2249a896d70c897f4bd/core/datasets/__init__.py -------------------------------------------------------------------------------- /core/datasets/image_list.py: -------------------------------------------------------------------------------- 1 | from torchvision.datasets import VisionDataset 2 | import warnings 3 | import torch 4 | from PIL import Image 5 | import os 6 | import os.path 7 | import numpy as np 8 | from torchvision import transforms 9 | 10 | 11 | def pil_loader(path): 12 | # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835) 13 | with open(path, 'rb') as f: 14 | img = Image.open(f) 15 | return img.convert('RGB') 16 | 17 | 18 | class ImageList(VisionDataset): 19 | """ 20 | Args: 21 | root (string): Root directory of dataset 22 | transform (callable, optional): A function/transform that takes in an PIL image 23 | and returns a transformed version. E.g, ``transforms.RandomCrop`` 24 | target_transform (callable, optional): A function/transform that takes in the 25 | target and transforms it. 26 | """ 27 | 28 | def __init__(self, root=None, transform=None, target_transform=None, empty=False): 29 | super(ImageList, self).__init__(root, transform=transform, target_transform=target_transform) 30 | 31 | self.empty = empty 32 | if empty: 33 | self.samples = np.empty((1, 2), dtype=' 0: 10 | return logger 11 | ch = logging.StreamHandler(stream=sys.stdout) 12 | ch.setLevel(logging.DEBUG) 13 | formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s: %(message)s") 14 | ch.setFormatter(formatter) 15 | logger.addHandler(ch) 16 | 17 | if save_dir: 18 | fh = logging.FileHandler(os.path.join(save_dir, filename)) 19 | fh.setLevel(logging.DEBUG) 20 | fh.setFormatter(formatter) 21 | logger.addHandler(fh) 22 | 23 | return logger -------------------------------------------------------------------------------- /core/utils/metric_logger.py: -------------------------------------------------------------------------------- 1 | from collections import defaultdict 2 | from collections import deque 3 | 4 | import torch 5 | 6 | 7 | class SmoothedValue(object): 8 | 9 | def __init__(self, window_size=20): 10 | self.deque = deque(maxlen=window_size) 11 | self.series = [] 12 | self.total = 0.0 13 | self.count = 0 14 | 15 | def update(self, value): 16 | self.deque.append(value) 17 | self.series.append(value) 18 | self.count += 1 19 | self.total += value 20 | 21 | @property 22 | def median(self): 23 | d = torch.tensor(list(self.deque)) 24 | return d.median().item() 25 | 26 | @property 27 | def avg(self): 28 | d = torch.tensor(list(self.deque)) 29 | return d.mean().item() 30 | 31 | @property 32 | def global_avg(self): 33 | return self.total / self.count 34 | 35 | 36 | class MetricLogger(object): 37 | def __init__(self, delimiter="\t"): 38 | self.meters = defaultdict(SmoothedValue) 39 | self.delimiter = delimiter 40 | 41 | def update(self, **kwargs): 42 | for k, v in kwargs.items(): 43 | if isinstance(v, torch.Tensor): 44 | v = v.item() 45 | assert isinstance(v, (float, int)) 46 | self.meters[k].update(v) 47 | 48 | def __getattr__(self, attr): 49 | if attr in self.meters: 50 | return self.meters[attr] 51 | if attr in self.__dict__: 52 | return self.__dict__[attr] 53 | raise AttributeError("'{}' object has no attribute '{}'".format( 54 | type(self).__name__, attr)) 55 | 56 | def __str__(self): 57 | loss_str = [] 58 | for name, meter in self.meters.items(): 59 | loss_str.append( 60 | "{}: {:.4f} ({:.4f})".format(name, meter.median, meter.global_avg) 61 | ) 62 | return self.delimiter.join(loss_str) -------------------------------------------------------------------------------- /core/utils/utils.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import numpy as np 3 | import random 4 | import os 5 | import errno 6 | 7 | import logging 8 | import sys 9 | 10 | 11 | def momentum_update(ema, current): 12 | lambd = np.random.uniform() 13 | return ema * lambd + current * (1 - lambd) 14 | 15 | 16 | def mkdir(path): 17 | try: 18 | os.makedirs(path) 19 | except OSError as e: 20 | if e.errno != errno.EEXIST: 21 | raise 22 | 23 | 24 | def set_random_seed(seed): 25 | random.seed(seed) 26 | np.random.seed(seed) 27 | torch.manual_seed(seed) 28 | torch.cuda.manual_seed_all(seed) 29 | -------------------------------------------------------------------------------- /data/list/office/dslr_test.txt: -------------------------------------------------------------------------------- 1 | data/office31/dslr/calculator/frame_0001.jpg 5 2 | data/office31/dslr/calculator/frame_0002.jpg 5 3 | data/office31/dslr/calculator/frame_0003.jpg 5 4 | data/office31/dslr/calculator/frame_0004.jpg 5 5 | data/office31/dslr/calculator/frame_0005.jpg 5 6 | data/office31/dslr/calculator/frame_0006.jpg 5 7 | data/office31/dslr/calculator/frame_0007.jpg 5 8 | data/office31/dslr/calculator/frame_0008.jpg 5 9 | data/office31/dslr/calculator/frame_0009.jpg 5 10 | data/office31/dslr/calculator/frame_0010.jpg 5 11 | data/office31/dslr/calculator/frame_0011.jpg 5 12 | data/office31/dslr/calculator/frame_0012.jpg 5 13 | data/office31/dslr/ring_binder/frame_0001.jpg 24 14 | data/office31/dslr/ring_binder/frame_0002.jpg 24 15 | data/office31/dslr/ring_binder/frame_0003.jpg 24 16 | data/office31/dslr/ring_binder/frame_0004.jpg 24 17 | data/office31/dslr/ring_binder/frame_0005.jpg 24 18 | data/office31/dslr/ring_binder/frame_0006.jpg 24 19 | data/office31/dslr/ring_binder/frame_0007.jpg 24 20 | data/office31/dslr/ring_binder/frame_0008.jpg 24 21 | data/office31/dslr/ring_binder/frame_0009.jpg 24 22 | data/office31/dslr/ring_binder/frame_0010.jpg 24 23 | data/office31/dslr/printer/frame_0001.jpg 21 24 | data/office31/dslr/printer/frame_0002.jpg 21 25 | data/office31/dslr/printer/frame_0003.jpg 21 26 | data/office31/dslr/printer/frame_0004.jpg 21 27 | data/office31/dslr/printer/frame_0005.jpg 21 28 | data/office31/dslr/printer/frame_0006.jpg 21 29 | data/office31/dslr/printer/frame_0007.jpg 21 30 | data/office31/dslr/printer/frame_0008.jpg 21 31 | data/office31/dslr/printer/frame_0009.jpg 21 32 | data/office31/dslr/printer/frame_0010.jpg 21 33 | data/office31/dslr/printer/frame_0011.jpg 21 34 | data/office31/dslr/printer/frame_0012.jpg 21 35 | data/office31/dslr/printer/frame_0013.jpg 21 36 | data/office31/dslr/printer/frame_0014.jpg 21 37 | data/office31/dslr/printer/frame_0015.jpg 21 38 | data/office31/dslr/keyboard/frame_0001.jpg 11 39 | data/office31/dslr/keyboard/frame_0002.jpg 11 40 | data/office31/dslr/keyboard/frame_0003.jpg 11 41 | data/office31/dslr/keyboard/frame_0004.jpg 11 42 | data/office31/dslr/keyboard/frame_0005.jpg 11 43 | data/office31/dslr/keyboard/frame_0006.jpg 11 44 | data/office31/dslr/keyboard/frame_0007.jpg 11 45 | data/office31/dslr/keyboard/frame_0008.jpg 11 46 | data/office31/dslr/keyboard/frame_0009.jpg 11 47 | data/office31/dslr/keyboard/frame_0010.jpg 11 48 | data/office31/dslr/scissors/frame_0001.jpg 26 49 | data/office31/dslr/scissors/frame_0002.jpg 26 50 | data/office31/dslr/scissors/frame_0003.jpg 26 51 | data/office31/dslr/scissors/frame_0004.jpg 26 52 | data/office31/dslr/scissors/frame_0005.jpg 26 53 | data/office31/dslr/scissors/frame_0006.jpg 26 54 | data/office31/dslr/scissors/frame_0007.jpg 26 55 | data/office31/dslr/scissors/frame_0008.jpg 26 56 | data/office31/dslr/scissors/frame_0009.jpg 26 57 | data/office31/dslr/scissors/frame_0010.jpg 26 58 | data/office31/dslr/scissors/frame_0011.jpg 26 59 | data/office31/dslr/scissors/frame_0012.jpg 26 60 | data/office31/dslr/scissors/frame_0013.jpg 26 61 | data/office31/dslr/scissors/frame_0014.jpg 26 62 | data/office31/dslr/scissors/frame_0015.jpg 26 63 | data/office31/dslr/scissors/frame_0016.jpg 26 64 | data/office31/dslr/scissors/frame_0017.jpg 26 65 | data/office31/dslr/scissors/frame_0018.jpg 26 66 | data/office31/dslr/laptop_computer/frame_0001.jpg 12 67 | data/office31/dslr/laptop_computer/frame_0002.jpg 12 68 | data/office31/dslr/laptop_computer/frame_0003.jpg 12 69 | data/office31/dslr/laptop_computer/frame_0004.jpg 12 70 | data/office31/dslr/laptop_computer/frame_0005.jpg 12 71 | data/office31/dslr/laptop_computer/frame_0006.jpg 12 72 | data/office31/dslr/laptop_computer/frame_0007.jpg 12 73 | data/office31/dslr/laptop_computer/frame_0008.jpg 12 74 | data/office31/dslr/laptop_computer/frame_0009.jpg 12 75 | data/office31/dslr/laptop_computer/frame_0010.jpg 12 76 | data/office31/dslr/laptop_computer/frame_0011.jpg 12 77 | data/office31/dslr/laptop_computer/frame_0012.jpg 12 78 | data/office31/dslr/laptop_computer/frame_0013.jpg 12 79 | data/office31/dslr/laptop_computer/frame_0014.jpg 12 80 | data/office31/dslr/laptop_computer/frame_0015.jpg 12 81 | data/office31/dslr/laptop_computer/frame_0016.jpg 12 82 | data/office31/dslr/laptop_computer/frame_0017.jpg 12 83 | data/office31/dslr/laptop_computer/frame_0018.jpg 12 84 | data/office31/dslr/laptop_computer/frame_0019.jpg 12 85 | data/office31/dslr/laptop_computer/frame_0020.jpg 12 86 | data/office31/dslr/laptop_computer/frame_0021.jpg 12 87 | data/office31/dslr/laptop_computer/frame_0022.jpg 12 88 | data/office31/dslr/laptop_computer/frame_0023.jpg 12 89 | data/office31/dslr/laptop_computer/frame_0024.jpg 12 90 | data/office31/dslr/mouse/frame_0001.jpg 16 91 | data/office31/dslr/mouse/frame_0002.jpg 16 92 | data/office31/dslr/mouse/frame_0003.jpg 16 93 | data/office31/dslr/mouse/frame_0004.jpg 16 94 | data/office31/dslr/mouse/frame_0005.jpg 16 95 | data/office31/dslr/mouse/frame_0006.jpg 16 96 | data/office31/dslr/mouse/frame_0007.jpg 16 97 | data/office31/dslr/mouse/frame_0008.jpg 16 98 | data/office31/dslr/mouse/frame_0009.jpg 16 99 | data/office31/dslr/mouse/frame_0010.jpg 16 100 | data/office31/dslr/mouse/frame_0011.jpg 16 101 | data/office31/dslr/mouse/frame_0012.jpg 16 102 | data/office31/dslr/monitor/frame_0001.jpg 15 103 | data/office31/dslr/monitor/frame_0002.jpg 15 104 | data/office31/dslr/monitor/frame_0003.jpg 15 105 | data/office31/dslr/monitor/frame_0004.jpg 15 106 | data/office31/dslr/monitor/frame_0005.jpg 15 107 | data/office31/dslr/monitor/frame_0006.jpg 15 108 | data/office31/dslr/monitor/frame_0007.jpg 15 109 | data/office31/dslr/monitor/frame_0008.jpg 15 110 | data/office31/dslr/monitor/frame_0009.jpg 15 111 | data/office31/dslr/monitor/frame_0010.jpg 15 112 | data/office31/dslr/monitor/frame_0011.jpg 15 113 | data/office31/dslr/monitor/frame_0012.jpg 15 114 | data/office31/dslr/monitor/frame_0013.jpg 15 115 | data/office31/dslr/monitor/frame_0014.jpg 15 116 | data/office31/dslr/monitor/frame_0015.jpg 15 117 | data/office31/dslr/monitor/frame_0016.jpg 15 118 | data/office31/dslr/monitor/frame_0017.jpg 15 119 | data/office31/dslr/monitor/frame_0018.jpg 15 120 | data/office31/dslr/monitor/frame_0019.jpg 15 121 | data/office31/dslr/monitor/frame_0020.jpg 15 122 | data/office31/dslr/monitor/frame_0021.jpg 15 123 | data/office31/dslr/monitor/frame_0022.jpg 15 124 | data/office31/dslr/mug/frame_0001.jpg 17 125 | data/office31/dslr/mug/frame_0002.jpg 17 126 | data/office31/dslr/mug/frame_0003.jpg 17 127 | data/office31/dslr/mug/frame_0004.jpg 17 128 | data/office31/dslr/mug/frame_0005.jpg 17 129 | data/office31/dslr/mug/frame_0006.jpg 17 130 | data/office31/dslr/mug/frame_0007.jpg 17 131 | data/office31/dslr/mug/frame_0008.jpg 17 132 | data/office31/dslr/tape_dispenser/frame_0001.jpg 29 133 | data/office31/dslr/tape_dispenser/frame_0002.jpg 29 134 | data/office31/dslr/tape_dispenser/frame_0003.jpg 29 135 | data/office31/dslr/tape_dispenser/frame_0004.jpg 29 136 | data/office31/dslr/tape_dispenser/frame_0005.jpg 29 137 | data/office31/dslr/tape_dispenser/frame_0006.jpg 29 138 | data/office31/dslr/tape_dispenser/frame_0007.jpg 29 139 | data/office31/dslr/tape_dispenser/frame_0008.jpg 29 140 | data/office31/dslr/tape_dispenser/frame_0009.jpg 29 141 | data/office31/dslr/tape_dispenser/frame_0010.jpg 29 142 | data/office31/dslr/tape_dispenser/frame_0011.jpg 29 143 | data/office31/dslr/tape_dispenser/frame_0012.jpg 29 144 | data/office31/dslr/tape_dispenser/frame_0013.jpg 29 145 | data/office31/dslr/tape_dispenser/frame_0014.jpg 29 146 | data/office31/dslr/tape_dispenser/frame_0015.jpg 29 147 | data/office31/dslr/tape_dispenser/frame_0016.jpg 29 148 | data/office31/dslr/tape_dispenser/frame_0017.jpg 29 149 | data/office31/dslr/tape_dispenser/frame_0018.jpg 29 150 | data/office31/dslr/tape_dispenser/frame_0019.jpg 29 151 | data/office31/dslr/tape_dispenser/frame_0020.jpg 29 152 | data/office31/dslr/tape_dispenser/frame_0021.jpg 29 153 | data/office31/dslr/tape_dispenser/frame_0022.jpg 29 154 | data/office31/dslr/pen/frame_0001.jpg 19 155 | data/office31/dslr/pen/frame_0002.jpg 19 156 | data/office31/dslr/pen/frame_0003.jpg 19 157 | data/office31/dslr/pen/frame_0004.jpg 19 158 | data/office31/dslr/pen/frame_0005.jpg 19 159 | data/office31/dslr/pen/frame_0006.jpg 19 160 | data/office31/dslr/pen/frame_0007.jpg 19 161 | data/office31/dslr/pen/frame_0008.jpg 19 162 | data/office31/dslr/pen/frame_0009.jpg 19 163 | data/office31/dslr/pen/frame_0010.jpg 19 164 | data/office31/dslr/bike/frame_0001.jpg 1 165 | data/office31/dslr/bike/frame_0002.jpg 1 166 | data/office31/dslr/bike/frame_0003.jpg 1 167 | data/office31/dslr/bike/frame_0004.jpg 1 168 | data/office31/dslr/bike/frame_0005.jpg 1 169 | data/office31/dslr/bike/frame_0006.jpg 1 170 | data/office31/dslr/bike/frame_0007.jpg 1 171 | data/office31/dslr/bike/frame_0008.jpg 1 172 | data/office31/dslr/bike/frame_0009.jpg 1 173 | data/office31/dslr/bike/frame_0010.jpg 1 174 | data/office31/dslr/bike/frame_0011.jpg 1 175 | data/office31/dslr/bike/frame_0012.jpg 1 176 | data/office31/dslr/bike/frame_0013.jpg 1 177 | data/office31/dslr/bike/frame_0014.jpg 1 178 | data/office31/dslr/bike/frame_0015.jpg 1 179 | data/office31/dslr/bike/frame_0016.jpg 1 180 | data/office31/dslr/bike/frame_0017.jpg 1 181 | data/office31/dslr/bike/frame_0018.jpg 1 182 | data/office31/dslr/bike/frame_0019.jpg 1 183 | data/office31/dslr/bike/frame_0020.jpg 1 184 | data/office31/dslr/bike/frame_0021.jpg 1 185 | data/office31/dslr/punchers/frame_0001.jpg 23 186 | data/office31/dslr/punchers/frame_0002.jpg 23 187 | data/office31/dslr/punchers/frame_0003.jpg 23 188 | data/office31/dslr/punchers/frame_0004.jpg 23 189 | data/office31/dslr/punchers/frame_0005.jpg 23 190 | data/office31/dslr/punchers/frame_0006.jpg 23 191 | data/office31/dslr/punchers/frame_0007.jpg 23 192 | data/office31/dslr/punchers/frame_0008.jpg 23 193 | data/office31/dslr/punchers/frame_0009.jpg 23 194 | data/office31/dslr/punchers/frame_0010.jpg 23 195 | data/office31/dslr/punchers/frame_0011.jpg 23 196 | data/office31/dslr/punchers/frame_0012.jpg 23 197 | data/office31/dslr/punchers/frame_0013.jpg 23 198 | data/office31/dslr/punchers/frame_0014.jpg 23 199 | data/office31/dslr/punchers/frame_0015.jpg 23 200 | data/office31/dslr/punchers/frame_0016.jpg 23 201 | data/office31/dslr/punchers/frame_0017.jpg 23 202 | data/office31/dslr/punchers/frame_0018.jpg 23 203 | data/office31/dslr/back_pack/frame_0001.jpg 0 204 | data/office31/dslr/back_pack/frame_0002.jpg 0 205 | data/office31/dslr/back_pack/frame_0003.jpg 0 206 | data/office31/dslr/back_pack/frame_0004.jpg 0 207 | data/office31/dslr/back_pack/frame_0005.jpg 0 208 | data/office31/dslr/back_pack/frame_0006.jpg 0 209 | data/office31/dslr/back_pack/frame_0007.jpg 0 210 | data/office31/dslr/back_pack/frame_0008.jpg 0 211 | data/office31/dslr/back_pack/frame_0009.jpg 0 212 | data/office31/dslr/back_pack/frame_0010.jpg 0 213 | data/office31/dslr/back_pack/frame_0011.jpg 0 214 | data/office31/dslr/back_pack/frame_0012.jpg 0 215 | data/office31/dslr/desktop_computer/frame_0001.jpg 8 216 | data/office31/dslr/desktop_computer/frame_0002.jpg 8 217 | data/office31/dslr/desktop_computer/frame_0003.jpg 8 218 | data/office31/dslr/desktop_computer/frame_0004.jpg 8 219 | data/office31/dslr/desktop_computer/frame_0005.jpg 8 220 | data/office31/dslr/desktop_computer/frame_0006.jpg 8 221 | data/office31/dslr/desktop_computer/frame_0007.jpg 8 222 | data/office31/dslr/desktop_computer/frame_0008.jpg 8 223 | data/office31/dslr/desktop_computer/frame_0009.jpg 8 224 | data/office31/dslr/desktop_computer/frame_0010.jpg 8 225 | data/office31/dslr/desktop_computer/frame_0011.jpg 8 226 | data/office31/dslr/desktop_computer/frame_0012.jpg 8 227 | data/office31/dslr/desktop_computer/frame_0013.jpg 8 228 | data/office31/dslr/desktop_computer/frame_0014.jpg 8 229 | data/office31/dslr/desktop_computer/frame_0015.jpg 8 230 | data/office31/dslr/speaker/frame_0001.jpg 27 231 | data/office31/dslr/speaker/frame_0002.jpg 27 232 | data/office31/dslr/speaker/frame_0003.jpg 27 233 | data/office31/dslr/speaker/frame_0004.jpg 27 234 | data/office31/dslr/speaker/frame_0005.jpg 27 235 | data/office31/dslr/speaker/frame_0006.jpg 27 236 | data/office31/dslr/speaker/frame_0007.jpg 27 237 | data/office31/dslr/speaker/frame_0008.jpg 27 238 | data/office31/dslr/speaker/frame_0009.jpg 27 239 | data/office31/dslr/speaker/frame_0010.jpg 27 240 | data/office31/dslr/speaker/frame_0011.jpg 27 241 | data/office31/dslr/speaker/frame_0012.jpg 27 242 | data/office31/dslr/speaker/frame_0013.jpg 27 243 | data/office31/dslr/speaker/frame_0014.jpg 27 244 | data/office31/dslr/speaker/frame_0015.jpg 27 245 | data/office31/dslr/speaker/frame_0016.jpg 27 246 | data/office31/dslr/speaker/frame_0017.jpg 27 247 | data/office31/dslr/speaker/frame_0018.jpg 27 248 | data/office31/dslr/speaker/frame_0019.jpg 27 249 | data/office31/dslr/speaker/frame_0020.jpg 27 250 | data/office31/dslr/speaker/frame_0021.jpg 27 251 | data/office31/dslr/speaker/frame_0022.jpg 27 252 | data/office31/dslr/speaker/frame_0023.jpg 27 253 | data/office31/dslr/speaker/frame_0024.jpg 27 254 | data/office31/dslr/speaker/frame_0025.jpg 27 255 | data/office31/dslr/speaker/frame_0026.jpg 27 256 | data/office31/dslr/mobile_phone/frame_0001.jpg 14 257 | data/office31/dslr/mobile_phone/frame_0002.jpg 14 258 | data/office31/dslr/mobile_phone/frame_0003.jpg 14 259 | data/office31/dslr/mobile_phone/frame_0004.jpg 14 260 | data/office31/dslr/mobile_phone/frame_0005.jpg 14 261 | data/office31/dslr/mobile_phone/frame_0006.jpg 14 262 | data/office31/dslr/mobile_phone/frame_0007.jpg 14 263 | data/office31/dslr/mobile_phone/frame_0008.jpg 14 264 | data/office31/dslr/mobile_phone/frame_0009.jpg 14 265 | data/office31/dslr/mobile_phone/frame_0010.jpg 14 266 | data/office31/dslr/mobile_phone/frame_0011.jpg 14 267 | data/office31/dslr/mobile_phone/frame_0012.jpg 14 268 | data/office31/dslr/mobile_phone/frame_0013.jpg 14 269 | data/office31/dslr/mobile_phone/frame_0014.jpg 14 270 | data/office31/dslr/mobile_phone/frame_0015.jpg 14 271 | data/office31/dslr/mobile_phone/frame_0016.jpg 14 272 | data/office31/dslr/mobile_phone/frame_0017.jpg 14 273 | data/office31/dslr/mobile_phone/frame_0018.jpg 14 274 | data/office31/dslr/mobile_phone/frame_0019.jpg 14 275 | data/office31/dslr/mobile_phone/frame_0020.jpg 14 276 | data/office31/dslr/mobile_phone/frame_0021.jpg 14 277 | data/office31/dslr/mobile_phone/frame_0022.jpg 14 278 | data/office31/dslr/mobile_phone/frame_0023.jpg 14 279 | data/office31/dslr/mobile_phone/frame_0024.jpg 14 280 | data/office31/dslr/mobile_phone/frame_0025.jpg 14 281 | data/office31/dslr/mobile_phone/frame_0026.jpg 14 282 | data/office31/dslr/mobile_phone/frame_0027.jpg 14 283 | data/office31/dslr/mobile_phone/frame_0028.jpg 14 284 | data/office31/dslr/mobile_phone/frame_0029.jpg 14 285 | data/office31/dslr/mobile_phone/frame_0030.jpg 14 286 | data/office31/dslr/mobile_phone/frame_0031.jpg 14 287 | data/office31/dslr/paper_notebook/frame_0001.jpg 18 288 | data/office31/dslr/paper_notebook/frame_0002.jpg 18 289 | data/office31/dslr/paper_notebook/frame_0003.jpg 18 290 | data/office31/dslr/paper_notebook/frame_0004.jpg 18 291 | data/office31/dslr/paper_notebook/frame_0005.jpg 18 292 | data/office31/dslr/paper_notebook/frame_0006.jpg 18 293 | data/office31/dslr/paper_notebook/frame_0007.jpg 18 294 | data/office31/dslr/paper_notebook/frame_0008.jpg 18 295 | data/office31/dslr/paper_notebook/frame_0009.jpg 18 296 | data/office31/dslr/paper_notebook/frame_0010.jpg 18 297 | data/office31/dslr/ruler/frame_0001.jpg 25 298 | data/office31/dslr/ruler/frame_0002.jpg 25 299 | data/office31/dslr/ruler/frame_0003.jpg 25 300 | data/office31/dslr/ruler/frame_0004.jpg 25 301 | data/office31/dslr/ruler/frame_0005.jpg 25 302 | data/office31/dslr/ruler/frame_0006.jpg 25 303 | data/office31/dslr/ruler/frame_0007.jpg 25 304 | data/office31/dslr/letter_tray/frame_0001.jpg 13 305 | data/office31/dslr/letter_tray/frame_0002.jpg 13 306 | data/office31/dslr/letter_tray/frame_0003.jpg 13 307 | data/office31/dslr/letter_tray/frame_0004.jpg 13 308 | data/office31/dslr/letter_tray/frame_0005.jpg 13 309 | data/office31/dslr/letter_tray/frame_0006.jpg 13 310 | data/office31/dslr/letter_tray/frame_0007.jpg 13 311 | data/office31/dslr/letter_tray/frame_0008.jpg 13 312 | data/office31/dslr/letter_tray/frame_0009.jpg 13 313 | data/office31/dslr/letter_tray/frame_0010.jpg 13 314 | data/office31/dslr/letter_tray/frame_0011.jpg 13 315 | data/office31/dslr/letter_tray/frame_0012.jpg 13 316 | data/office31/dslr/letter_tray/frame_0013.jpg 13 317 | data/office31/dslr/letter_tray/frame_0014.jpg 13 318 | data/office31/dslr/letter_tray/frame_0015.jpg 13 319 | data/office31/dslr/letter_tray/frame_0016.jpg 13 320 | data/office31/dslr/file_cabinet/frame_0001.jpg 9 321 | data/office31/dslr/file_cabinet/frame_0002.jpg 9 322 | data/office31/dslr/file_cabinet/frame_0003.jpg 9 323 | data/office31/dslr/file_cabinet/frame_0004.jpg 9 324 | data/office31/dslr/file_cabinet/frame_0005.jpg 9 325 | data/office31/dslr/file_cabinet/frame_0006.jpg 9 326 | data/office31/dslr/file_cabinet/frame_0007.jpg 9 327 | data/office31/dslr/file_cabinet/frame_0008.jpg 9 328 | data/office31/dslr/file_cabinet/frame_0009.jpg 9 329 | data/office31/dslr/file_cabinet/frame_0010.jpg 9 330 | data/office31/dslr/file_cabinet/frame_0011.jpg 9 331 | data/office31/dslr/file_cabinet/frame_0012.jpg 9 332 | data/office31/dslr/file_cabinet/frame_0013.jpg 9 333 | data/office31/dslr/file_cabinet/frame_0014.jpg 9 334 | data/office31/dslr/file_cabinet/frame_0015.jpg 9 335 | data/office31/dslr/phone/frame_0001.jpg 20 336 | data/office31/dslr/phone/frame_0002.jpg 20 337 | data/office31/dslr/phone/frame_0003.jpg 20 338 | data/office31/dslr/phone/frame_0004.jpg 20 339 | data/office31/dslr/phone/frame_0005.jpg 20 340 | data/office31/dslr/phone/frame_0006.jpg 20 341 | data/office31/dslr/phone/frame_0007.jpg 20 342 | data/office31/dslr/phone/frame_0008.jpg 20 343 | data/office31/dslr/phone/frame_0009.jpg 20 344 | data/office31/dslr/phone/frame_0010.jpg 20 345 | data/office31/dslr/phone/frame_0011.jpg 20 346 | data/office31/dslr/phone/frame_0012.jpg 20 347 | data/office31/dslr/phone/frame_0013.jpg 20 348 | data/office31/dslr/bookcase/frame_0001.jpg 3 349 | data/office31/dslr/bookcase/frame_0002.jpg 3 350 | data/office31/dslr/bookcase/frame_0003.jpg 3 351 | data/office31/dslr/bookcase/frame_0004.jpg 3 352 | data/office31/dslr/bookcase/frame_0005.jpg 3 353 | data/office31/dslr/bookcase/frame_0006.jpg 3 354 | data/office31/dslr/bookcase/frame_0007.jpg 3 355 | data/office31/dslr/bookcase/frame_0008.jpg 3 356 | data/office31/dslr/bookcase/frame_0009.jpg 3 357 | data/office31/dslr/bookcase/frame_0010.jpg 3 358 | data/office31/dslr/bookcase/frame_0011.jpg 3 359 | data/office31/dslr/bookcase/frame_0012.jpg 3 360 | data/office31/dslr/projector/frame_0001.jpg 22 361 | data/office31/dslr/projector/frame_0002.jpg 22 362 | data/office31/dslr/projector/frame_0003.jpg 22 363 | data/office31/dslr/projector/frame_0004.jpg 22 364 | data/office31/dslr/projector/frame_0005.jpg 22 365 | data/office31/dslr/projector/frame_0006.jpg 22 366 | data/office31/dslr/projector/frame_0007.jpg 22 367 | data/office31/dslr/projector/frame_0008.jpg 22 368 | data/office31/dslr/projector/frame_0009.jpg 22 369 | data/office31/dslr/projector/frame_0010.jpg 22 370 | data/office31/dslr/projector/frame_0011.jpg 22 371 | data/office31/dslr/projector/frame_0012.jpg 22 372 | data/office31/dslr/projector/frame_0013.jpg 22 373 | data/office31/dslr/projector/frame_0014.jpg 22 374 | data/office31/dslr/projector/frame_0015.jpg 22 375 | data/office31/dslr/projector/frame_0016.jpg 22 376 | data/office31/dslr/projector/frame_0017.jpg 22 377 | data/office31/dslr/projector/frame_0018.jpg 22 378 | data/office31/dslr/projector/frame_0019.jpg 22 379 | data/office31/dslr/projector/frame_0020.jpg 22 380 | data/office31/dslr/projector/frame_0021.jpg 22 381 | data/office31/dslr/projector/frame_0022.jpg 22 382 | data/office31/dslr/projector/frame_0023.jpg 22 383 | data/office31/dslr/stapler/frame_0001.jpg 28 384 | data/office31/dslr/stapler/frame_0002.jpg 28 385 | data/office31/dslr/stapler/frame_0003.jpg 28 386 | data/office31/dslr/stapler/frame_0004.jpg 28 387 | data/office31/dslr/stapler/frame_0005.jpg 28 388 | data/office31/dslr/stapler/frame_0006.jpg 28 389 | data/office31/dslr/stapler/frame_0007.jpg 28 390 | data/office31/dslr/stapler/frame_0008.jpg 28 391 | data/office31/dslr/stapler/frame_0009.jpg 28 392 | data/office31/dslr/stapler/frame_0010.jpg 28 393 | data/office31/dslr/stapler/frame_0011.jpg 28 394 | data/office31/dslr/stapler/frame_0012.jpg 28 395 | data/office31/dslr/stapler/frame_0013.jpg 28 396 | data/office31/dslr/stapler/frame_0014.jpg 28 397 | data/office31/dslr/stapler/frame_0015.jpg 28 398 | data/office31/dslr/stapler/frame_0016.jpg 28 399 | data/office31/dslr/stapler/frame_0017.jpg 28 400 | data/office31/dslr/stapler/frame_0018.jpg 28 401 | data/office31/dslr/stapler/frame_0019.jpg 28 402 | data/office31/dslr/stapler/frame_0020.jpg 28 403 | data/office31/dslr/stapler/frame_0021.jpg 28 404 | data/office31/dslr/trash_can/frame_0001.jpg 30 405 | data/office31/dslr/trash_can/frame_0002.jpg 30 406 | data/office31/dslr/trash_can/frame_0003.jpg 30 407 | data/office31/dslr/trash_can/frame_0004.jpg 30 408 | data/office31/dslr/trash_can/frame_0005.jpg 30 409 | data/office31/dslr/trash_can/frame_0006.jpg 30 410 | data/office31/dslr/trash_can/frame_0007.jpg 30 411 | data/office31/dslr/trash_can/frame_0008.jpg 30 412 | data/office31/dslr/trash_can/frame_0009.jpg 30 413 | data/office31/dslr/trash_can/frame_0010.jpg 30 414 | data/office31/dslr/trash_can/frame_0011.jpg 30 415 | data/office31/dslr/trash_can/frame_0012.jpg 30 416 | data/office31/dslr/trash_can/frame_0013.jpg 30 417 | data/office31/dslr/trash_can/frame_0014.jpg 30 418 | data/office31/dslr/trash_can/frame_0015.jpg 30 419 | data/office31/dslr/bike_helmet/frame_0001.jpg 2 420 | data/office31/dslr/bike_helmet/frame_0002.jpg 2 421 | data/office31/dslr/bike_helmet/frame_0003.jpg 2 422 | data/office31/dslr/bike_helmet/frame_0004.jpg 2 423 | data/office31/dslr/bike_helmet/frame_0005.jpg 2 424 | data/office31/dslr/bike_helmet/frame_0006.jpg 2 425 | data/office31/dslr/bike_helmet/frame_0007.jpg 2 426 | data/office31/dslr/bike_helmet/frame_0008.jpg 2 427 | data/office31/dslr/bike_helmet/frame_0009.jpg 2 428 | data/office31/dslr/bike_helmet/frame_0010.jpg 2 429 | data/office31/dslr/bike_helmet/frame_0011.jpg 2 430 | data/office31/dslr/bike_helmet/frame_0012.jpg 2 431 | data/office31/dslr/bike_helmet/frame_0013.jpg 2 432 | data/office31/dslr/bike_helmet/frame_0014.jpg 2 433 | data/office31/dslr/bike_helmet/frame_0015.jpg 2 434 | data/office31/dslr/bike_helmet/frame_0016.jpg 2 435 | data/office31/dslr/bike_helmet/frame_0017.jpg 2 436 | data/office31/dslr/bike_helmet/frame_0018.jpg 2 437 | data/office31/dslr/bike_helmet/frame_0019.jpg 2 438 | data/office31/dslr/bike_helmet/frame_0020.jpg 2 439 | data/office31/dslr/bike_helmet/frame_0021.jpg 2 440 | data/office31/dslr/bike_helmet/frame_0022.jpg 2 441 | data/office31/dslr/bike_helmet/frame_0023.jpg 2 442 | data/office31/dslr/bike_helmet/frame_0024.jpg 2 443 | data/office31/dslr/headphones/frame_0001.jpg 10 444 | data/office31/dslr/headphones/frame_0002.jpg 10 445 | data/office31/dslr/headphones/frame_0003.jpg 10 446 | data/office31/dslr/headphones/frame_0004.jpg 10 447 | data/office31/dslr/headphones/frame_0005.jpg 10 448 | data/office31/dslr/headphones/frame_0006.jpg 10 449 | data/office31/dslr/headphones/frame_0007.jpg 10 450 | data/office31/dslr/headphones/frame_0008.jpg 10 451 | data/office31/dslr/headphones/frame_0009.jpg 10 452 | data/office31/dslr/headphones/frame_0010.jpg 10 453 | data/office31/dslr/headphones/frame_0011.jpg 10 454 | data/office31/dslr/headphones/frame_0012.jpg 10 455 | data/office31/dslr/headphones/frame_0013.jpg 10 456 | data/office31/dslr/desk_lamp/frame_0001.jpg 7 457 | data/office31/dslr/desk_lamp/frame_0002.jpg 7 458 | data/office31/dslr/desk_lamp/frame_0003.jpg 7 459 | data/office31/dslr/desk_lamp/frame_0004.jpg 7 460 | data/office31/dslr/desk_lamp/frame_0005.jpg 7 461 | data/office31/dslr/desk_lamp/frame_0006.jpg 7 462 | data/office31/dslr/desk_lamp/frame_0007.jpg 7 463 | data/office31/dslr/desk_lamp/frame_0008.jpg 7 464 | data/office31/dslr/desk_lamp/frame_0009.jpg 7 465 | data/office31/dslr/desk_lamp/frame_0010.jpg 7 466 | data/office31/dslr/desk_lamp/frame_0011.jpg 7 467 | data/office31/dslr/desk_lamp/frame_0012.jpg 7 468 | data/office31/dslr/desk_lamp/frame_0013.jpg 7 469 | data/office31/dslr/desk_lamp/frame_0014.jpg 7 470 | data/office31/dslr/desk_chair/frame_0001.jpg 6 471 | data/office31/dslr/desk_chair/frame_0002.jpg 6 472 | data/office31/dslr/desk_chair/frame_0003.jpg 6 473 | data/office31/dslr/desk_chair/frame_0004.jpg 6 474 | data/office31/dslr/desk_chair/frame_0005.jpg 6 475 | data/office31/dslr/desk_chair/frame_0006.jpg 6 476 | data/office31/dslr/desk_chair/frame_0007.jpg 6 477 | data/office31/dslr/desk_chair/frame_0008.jpg 6 478 | data/office31/dslr/desk_chair/frame_0009.jpg 6 479 | data/office31/dslr/desk_chair/frame_0010.jpg 6 480 | data/office31/dslr/desk_chair/frame_0011.jpg 6 481 | data/office31/dslr/desk_chair/frame_0012.jpg 6 482 | data/office31/dslr/desk_chair/frame_0013.jpg 6 483 | data/office31/dslr/bottle/frame_0001.jpg 4 484 | data/office31/dslr/bottle/frame_0002.jpg 4 485 | data/office31/dslr/bottle/frame_0003.jpg 4 486 | data/office31/dslr/bottle/frame_0004.jpg 4 487 | data/office31/dslr/bottle/frame_0005.jpg 4 488 | data/office31/dslr/bottle/frame_0006.jpg 4 489 | data/office31/dslr/bottle/frame_0007.jpg 4 490 | data/office31/dslr/bottle/frame_0008.jpg 4 491 | data/office31/dslr/bottle/frame_0009.jpg 4 492 | data/office31/dslr/bottle/frame_0010.jpg 4 493 | data/office31/dslr/bottle/frame_0011.jpg 4 494 | data/office31/dslr/bottle/frame_0012.jpg 4 495 | data/office31/dslr/bottle/frame_0013.jpg 4 496 | data/office31/dslr/bottle/frame_0014.jpg 4 497 | data/office31/dslr/bottle/frame_0015.jpg 4 498 | data/office31/dslr/bottle/frame_0016.jpg 4 499 | -------------------------------------------------------------------------------- /data/list/office/dslr_train.txt: -------------------------------------------------------------------------------- 1 | data/office31/dslr/calculator/frame_0001.jpg 5 2 | data/office31/dslr/calculator/frame_0002.jpg 5 3 | data/office31/dslr/calculator/frame_0003.jpg 5 4 | data/office31/dslr/calculator/frame_0004.jpg 5 5 | data/office31/dslr/calculator/frame_0005.jpg 5 6 | data/office31/dslr/calculator/frame_0006.jpg 5 7 | data/office31/dslr/calculator/frame_0007.jpg 5 8 | data/office31/dslr/calculator/frame_0008.jpg 5 9 | data/office31/dslr/calculator/frame_0009.jpg 5 10 | data/office31/dslr/calculator/frame_0010.jpg 5 11 | data/office31/dslr/calculator/frame_0011.jpg 5 12 | data/office31/dslr/calculator/frame_0012.jpg 5 13 | data/office31/dslr/ring_binder/frame_0001.jpg 24 14 | data/office31/dslr/ring_binder/frame_0002.jpg 24 15 | data/office31/dslr/ring_binder/frame_0003.jpg 24 16 | data/office31/dslr/ring_binder/frame_0004.jpg 24 17 | data/office31/dslr/ring_binder/frame_0005.jpg 24 18 | data/office31/dslr/ring_binder/frame_0006.jpg 24 19 | data/office31/dslr/ring_binder/frame_0007.jpg 24 20 | data/office31/dslr/ring_binder/frame_0008.jpg 24 21 | data/office31/dslr/ring_binder/frame_0009.jpg 24 22 | data/office31/dslr/ring_binder/frame_0010.jpg 24 23 | data/office31/dslr/printer/frame_0001.jpg 21 24 | data/office31/dslr/printer/frame_0002.jpg 21 25 | data/office31/dslr/printer/frame_0003.jpg 21 26 | data/office31/dslr/printer/frame_0004.jpg 21 27 | data/office31/dslr/printer/frame_0005.jpg 21 28 | data/office31/dslr/printer/frame_0006.jpg 21 29 | data/office31/dslr/printer/frame_0007.jpg 21 30 | data/office31/dslr/printer/frame_0008.jpg 21 31 | data/office31/dslr/printer/frame_0009.jpg 21 32 | data/office31/dslr/printer/frame_0010.jpg 21 33 | data/office31/dslr/printer/frame_0011.jpg 21 34 | data/office31/dslr/printer/frame_0012.jpg 21 35 | data/office31/dslr/printer/frame_0013.jpg 21 36 | data/office31/dslr/printer/frame_0014.jpg 21 37 | data/office31/dslr/printer/frame_0015.jpg 21 38 | data/office31/dslr/keyboard/frame_0001.jpg 11 39 | data/office31/dslr/keyboard/frame_0002.jpg 11 40 | data/office31/dslr/keyboard/frame_0003.jpg 11 41 | data/office31/dslr/keyboard/frame_0004.jpg 11 42 | data/office31/dslr/keyboard/frame_0005.jpg 11 43 | data/office31/dslr/keyboard/frame_0006.jpg 11 44 | data/office31/dslr/keyboard/frame_0007.jpg 11 45 | data/office31/dslr/keyboard/frame_0008.jpg 11 46 | data/office31/dslr/keyboard/frame_0009.jpg 11 47 | data/office31/dslr/keyboard/frame_0010.jpg 11 48 | data/office31/dslr/scissors/frame_0001.jpg 26 49 | data/office31/dslr/scissors/frame_0002.jpg 26 50 | data/office31/dslr/scissors/frame_0003.jpg 26 51 | data/office31/dslr/scissors/frame_0004.jpg 26 52 | data/office31/dslr/scissors/frame_0005.jpg 26 53 | data/office31/dslr/scissors/frame_0006.jpg 26 54 | data/office31/dslr/scissors/frame_0007.jpg 26 55 | data/office31/dslr/scissors/frame_0008.jpg 26 56 | data/office31/dslr/scissors/frame_0009.jpg 26 57 | data/office31/dslr/scissors/frame_0010.jpg 26 58 | data/office31/dslr/scissors/frame_0011.jpg 26 59 | data/office31/dslr/scissors/frame_0012.jpg 26 60 | data/office31/dslr/scissors/frame_0013.jpg 26 61 | data/office31/dslr/scissors/frame_0014.jpg 26 62 | data/office31/dslr/scissors/frame_0015.jpg 26 63 | data/office31/dslr/scissors/frame_0016.jpg 26 64 | data/office31/dslr/scissors/frame_0017.jpg 26 65 | data/office31/dslr/scissors/frame_0018.jpg 26 66 | data/office31/dslr/laptop_computer/frame_0001.jpg 12 67 | data/office31/dslr/laptop_computer/frame_0002.jpg 12 68 | data/office31/dslr/laptop_computer/frame_0003.jpg 12 69 | data/office31/dslr/laptop_computer/frame_0004.jpg 12 70 | data/office31/dslr/laptop_computer/frame_0005.jpg 12 71 | data/office31/dslr/laptop_computer/frame_0006.jpg 12 72 | data/office31/dslr/laptop_computer/frame_0007.jpg 12 73 | data/office31/dslr/laptop_computer/frame_0008.jpg 12 74 | data/office31/dslr/laptop_computer/frame_0009.jpg 12 75 | data/office31/dslr/laptop_computer/frame_0010.jpg 12 76 | data/office31/dslr/laptop_computer/frame_0011.jpg 12 77 | data/office31/dslr/laptop_computer/frame_0012.jpg 12 78 | data/office31/dslr/laptop_computer/frame_0013.jpg 12 79 | data/office31/dslr/laptop_computer/frame_0014.jpg 12 80 | data/office31/dslr/laptop_computer/frame_0015.jpg 12 81 | data/office31/dslr/laptop_computer/frame_0016.jpg 12 82 | data/office31/dslr/laptop_computer/frame_0017.jpg 12 83 | data/office31/dslr/laptop_computer/frame_0018.jpg 12 84 | data/office31/dslr/laptop_computer/frame_0019.jpg 12 85 | data/office31/dslr/laptop_computer/frame_0020.jpg 12 86 | data/office31/dslr/laptop_computer/frame_0021.jpg 12 87 | data/office31/dslr/laptop_computer/frame_0022.jpg 12 88 | data/office31/dslr/laptop_computer/frame_0023.jpg 12 89 | data/office31/dslr/laptop_computer/frame_0024.jpg 12 90 | data/office31/dslr/mouse/frame_0001.jpg 16 91 | data/office31/dslr/mouse/frame_0002.jpg 16 92 | data/office31/dslr/mouse/frame_0003.jpg 16 93 | data/office31/dslr/mouse/frame_0004.jpg 16 94 | data/office31/dslr/mouse/frame_0005.jpg 16 95 | data/office31/dslr/mouse/frame_0006.jpg 16 96 | data/office31/dslr/mouse/frame_0007.jpg 16 97 | data/office31/dslr/mouse/frame_0008.jpg 16 98 | data/office31/dslr/mouse/frame_0009.jpg 16 99 | data/office31/dslr/mouse/frame_0010.jpg 16 100 | data/office31/dslr/mouse/frame_0011.jpg 16 101 | data/office31/dslr/mouse/frame_0012.jpg 16 102 | data/office31/dslr/monitor/frame_0001.jpg 15 103 | data/office31/dslr/monitor/frame_0002.jpg 15 104 | data/office31/dslr/monitor/frame_0003.jpg 15 105 | data/office31/dslr/monitor/frame_0004.jpg 15 106 | data/office31/dslr/monitor/frame_0005.jpg 15 107 | data/office31/dslr/monitor/frame_0006.jpg 15 108 | data/office31/dslr/monitor/frame_0007.jpg 15 109 | data/office31/dslr/monitor/frame_0008.jpg 15 110 | data/office31/dslr/monitor/frame_0009.jpg 15 111 | data/office31/dslr/monitor/frame_0010.jpg 15 112 | data/office31/dslr/monitor/frame_0011.jpg 15 113 | data/office31/dslr/monitor/frame_0012.jpg 15 114 | data/office31/dslr/monitor/frame_0013.jpg 15 115 | data/office31/dslr/monitor/frame_0014.jpg 15 116 | data/office31/dslr/monitor/frame_0015.jpg 15 117 | data/office31/dslr/monitor/frame_0016.jpg 15 118 | data/office31/dslr/monitor/frame_0017.jpg 15 119 | data/office31/dslr/monitor/frame_0018.jpg 15 120 | data/office31/dslr/monitor/frame_0019.jpg 15 121 | data/office31/dslr/monitor/frame_0020.jpg 15 122 | data/office31/dslr/monitor/frame_0021.jpg 15 123 | data/office31/dslr/monitor/frame_0022.jpg 15 124 | data/office31/dslr/mug/frame_0001.jpg 17 125 | data/office31/dslr/mug/frame_0002.jpg 17 126 | data/office31/dslr/mug/frame_0003.jpg 17 127 | data/office31/dslr/mug/frame_0004.jpg 17 128 | data/office31/dslr/mug/frame_0005.jpg 17 129 | data/office31/dslr/mug/frame_0006.jpg 17 130 | data/office31/dslr/mug/frame_0007.jpg 17 131 | data/office31/dslr/mug/frame_0008.jpg 17 132 | data/office31/dslr/tape_dispenser/frame_0001.jpg 29 133 | data/office31/dslr/tape_dispenser/frame_0002.jpg 29 134 | data/office31/dslr/tape_dispenser/frame_0003.jpg 29 135 | data/office31/dslr/tape_dispenser/frame_0004.jpg 29 136 | data/office31/dslr/tape_dispenser/frame_0005.jpg 29 137 | data/office31/dslr/tape_dispenser/frame_0006.jpg 29 138 | data/office31/dslr/tape_dispenser/frame_0007.jpg 29 139 | data/office31/dslr/tape_dispenser/frame_0008.jpg 29 140 | data/office31/dslr/tape_dispenser/frame_0009.jpg 29 141 | data/office31/dslr/tape_dispenser/frame_0010.jpg 29 142 | data/office31/dslr/tape_dispenser/frame_0011.jpg 29 143 | data/office31/dslr/tape_dispenser/frame_0012.jpg 29 144 | data/office31/dslr/tape_dispenser/frame_0013.jpg 29 145 | data/office31/dslr/tape_dispenser/frame_0014.jpg 29 146 | data/office31/dslr/tape_dispenser/frame_0015.jpg 29 147 | data/office31/dslr/tape_dispenser/frame_0016.jpg 29 148 | data/office31/dslr/tape_dispenser/frame_0017.jpg 29 149 | data/office31/dslr/tape_dispenser/frame_0018.jpg 29 150 | data/office31/dslr/tape_dispenser/frame_0019.jpg 29 151 | data/office31/dslr/tape_dispenser/frame_0020.jpg 29 152 | data/office31/dslr/tape_dispenser/frame_0021.jpg 29 153 | data/office31/dslr/tape_dispenser/frame_0022.jpg 29 154 | data/office31/dslr/pen/frame_0001.jpg 19 155 | data/office31/dslr/pen/frame_0002.jpg 19 156 | data/office31/dslr/pen/frame_0003.jpg 19 157 | data/office31/dslr/pen/frame_0004.jpg 19 158 | data/office31/dslr/pen/frame_0005.jpg 19 159 | data/office31/dslr/pen/frame_0006.jpg 19 160 | data/office31/dslr/pen/frame_0007.jpg 19 161 | data/office31/dslr/pen/frame_0008.jpg 19 162 | data/office31/dslr/pen/frame_0009.jpg 19 163 | data/office31/dslr/pen/frame_0010.jpg 19 164 | data/office31/dslr/bike/frame_0001.jpg 1 165 | data/office31/dslr/bike/frame_0002.jpg 1 166 | data/office31/dslr/bike/frame_0003.jpg 1 167 | data/office31/dslr/bike/frame_0004.jpg 1 168 | data/office31/dslr/bike/frame_0005.jpg 1 169 | data/office31/dslr/bike/frame_0006.jpg 1 170 | data/office31/dslr/bike/frame_0007.jpg 1 171 | data/office31/dslr/bike/frame_0008.jpg 1 172 | data/office31/dslr/bike/frame_0009.jpg 1 173 | data/office31/dslr/bike/frame_0010.jpg 1 174 | data/office31/dslr/bike/frame_0011.jpg 1 175 | data/office31/dslr/bike/frame_0012.jpg 1 176 | data/office31/dslr/bike/frame_0013.jpg 1 177 | data/office31/dslr/bike/frame_0014.jpg 1 178 | data/office31/dslr/bike/frame_0015.jpg 1 179 | data/office31/dslr/bike/frame_0016.jpg 1 180 | data/office31/dslr/bike/frame_0017.jpg 1 181 | data/office31/dslr/bike/frame_0018.jpg 1 182 | data/office31/dslr/bike/frame_0019.jpg 1 183 | data/office31/dslr/bike/frame_0020.jpg 1 184 | data/office31/dslr/bike/frame_0021.jpg 1 185 | data/office31/dslr/punchers/frame_0001.jpg 23 186 | data/office31/dslr/punchers/frame_0002.jpg 23 187 | data/office31/dslr/punchers/frame_0003.jpg 23 188 | data/office31/dslr/punchers/frame_0004.jpg 23 189 | data/office31/dslr/punchers/frame_0005.jpg 23 190 | data/office31/dslr/punchers/frame_0006.jpg 23 191 | data/office31/dslr/punchers/frame_0007.jpg 23 192 | data/office31/dslr/punchers/frame_0008.jpg 23 193 | data/office31/dslr/punchers/frame_0009.jpg 23 194 | data/office31/dslr/punchers/frame_0010.jpg 23 195 | data/office31/dslr/punchers/frame_0011.jpg 23 196 | data/office31/dslr/punchers/frame_0012.jpg 23 197 | data/office31/dslr/punchers/frame_0013.jpg 23 198 | data/office31/dslr/punchers/frame_0014.jpg 23 199 | data/office31/dslr/punchers/frame_0015.jpg 23 200 | data/office31/dslr/punchers/frame_0016.jpg 23 201 | data/office31/dslr/punchers/frame_0017.jpg 23 202 | data/office31/dslr/punchers/frame_0018.jpg 23 203 | data/office31/dslr/back_pack/frame_0001.jpg 0 204 | data/office31/dslr/back_pack/frame_0002.jpg 0 205 | data/office31/dslr/back_pack/frame_0003.jpg 0 206 | data/office31/dslr/back_pack/frame_0004.jpg 0 207 | data/office31/dslr/back_pack/frame_0005.jpg 0 208 | data/office31/dslr/back_pack/frame_0006.jpg 0 209 | data/office31/dslr/back_pack/frame_0007.jpg 0 210 | data/office31/dslr/back_pack/frame_0008.jpg 0 211 | data/office31/dslr/back_pack/frame_0009.jpg 0 212 | data/office31/dslr/back_pack/frame_0010.jpg 0 213 | data/office31/dslr/back_pack/frame_0011.jpg 0 214 | data/office31/dslr/back_pack/frame_0012.jpg 0 215 | data/office31/dslr/desktop_computer/frame_0001.jpg 8 216 | data/office31/dslr/desktop_computer/frame_0002.jpg 8 217 | data/office31/dslr/desktop_computer/frame_0003.jpg 8 218 | data/office31/dslr/desktop_computer/frame_0004.jpg 8 219 | data/office31/dslr/desktop_computer/frame_0005.jpg 8 220 | data/office31/dslr/desktop_computer/frame_0006.jpg 8 221 | data/office31/dslr/desktop_computer/frame_0007.jpg 8 222 | data/office31/dslr/desktop_computer/frame_0008.jpg 8 223 | data/office31/dslr/desktop_computer/frame_0009.jpg 8 224 | data/office31/dslr/desktop_computer/frame_0010.jpg 8 225 | data/office31/dslr/desktop_computer/frame_0011.jpg 8 226 | data/office31/dslr/desktop_computer/frame_0012.jpg 8 227 | data/office31/dslr/desktop_computer/frame_0013.jpg 8 228 | data/office31/dslr/desktop_computer/frame_0014.jpg 8 229 | data/office31/dslr/desktop_computer/frame_0015.jpg 8 230 | data/office31/dslr/speaker/frame_0001.jpg 27 231 | data/office31/dslr/speaker/frame_0002.jpg 27 232 | data/office31/dslr/speaker/frame_0003.jpg 27 233 | data/office31/dslr/speaker/frame_0004.jpg 27 234 | data/office31/dslr/speaker/frame_0005.jpg 27 235 | data/office31/dslr/speaker/frame_0006.jpg 27 236 | data/office31/dslr/speaker/frame_0007.jpg 27 237 | data/office31/dslr/speaker/frame_0008.jpg 27 238 | data/office31/dslr/speaker/frame_0009.jpg 27 239 | data/office31/dslr/speaker/frame_0010.jpg 27 240 | data/office31/dslr/speaker/frame_0011.jpg 27 241 | data/office31/dslr/speaker/frame_0012.jpg 27 242 | data/office31/dslr/speaker/frame_0013.jpg 27 243 | data/office31/dslr/speaker/frame_0014.jpg 27 244 | data/office31/dslr/speaker/frame_0015.jpg 27 245 | data/office31/dslr/speaker/frame_0016.jpg 27 246 | data/office31/dslr/speaker/frame_0017.jpg 27 247 | data/office31/dslr/speaker/frame_0018.jpg 27 248 | data/office31/dslr/speaker/frame_0019.jpg 27 249 | data/office31/dslr/speaker/frame_0020.jpg 27 250 | data/office31/dslr/speaker/frame_0021.jpg 27 251 | data/office31/dslr/speaker/frame_0022.jpg 27 252 | data/office31/dslr/speaker/frame_0023.jpg 27 253 | data/office31/dslr/speaker/frame_0024.jpg 27 254 | data/office31/dslr/speaker/frame_0025.jpg 27 255 | data/office31/dslr/speaker/frame_0026.jpg 27 256 | data/office31/dslr/mobile_phone/frame_0001.jpg 14 257 | data/office31/dslr/mobile_phone/frame_0002.jpg 14 258 | data/office31/dslr/mobile_phone/frame_0003.jpg 14 259 | data/office31/dslr/mobile_phone/frame_0004.jpg 14 260 | data/office31/dslr/mobile_phone/frame_0005.jpg 14 261 | data/office31/dslr/mobile_phone/frame_0006.jpg 14 262 | data/office31/dslr/mobile_phone/frame_0007.jpg 14 263 | data/office31/dslr/mobile_phone/frame_0008.jpg 14 264 | data/office31/dslr/mobile_phone/frame_0009.jpg 14 265 | data/office31/dslr/mobile_phone/frame_0010.jpg 14 266 | data/office31/dslr/mobile_phone/frame_0011.jpg 14 267 | data/office31/dslr/mobile_phone/frame_0012.jpg 14 268 | data/office31/dslr/mobile_phone/frame_0013.jpg 14 269 | data/office31/dslr/mobile_phone/frame_0014.jpg 14 270 | data/office31/dslr/mobile_phone/frame_0015.jpg 14 271 | data/office31/dslr/mobile_phone/frame_0016.jpg 14 272 | data/office31/dslr/mobile_phone/frame_0017.jpg 14 273 | data/office31/dslr/mobile_phone/frame_0018.jpg 14 274 | data/office31/dslr/mobile_phone/frame_0019.jpg 14 275 | data/office31/dslr/mobile_phone/frame_0020.jpg 14 276 | data/office31/dslr/mobile_phone/frame_0021.jpg 14 277 | data/office31/dslr/mobile_phone/frame_0022.jpg 14 278 | data/office31/dslr/mobile_phone/frame_0023.jpg 14 279 | data/office31/dslr/mobile_phone/frame_0024.jpg 14 280 | data/office31/dslr/mobile_phone/frame_0025.jpg 14 281 | data/office31/dslr/mobile_phone/frame_0026.jpg 14 282 | data/office31/dslr/mobile_phone/frame_0027.jpg 14 283 | data/office31/dslr/mobile_phone/frame_0028.jpg 14 284 | data/office31/dslr/mobile_phone/frame_0029.jpg 14 285 | data/office31/dslr/mobile_phone/frame_0030.jpg 14 286 | data/office31/dslr/mobile_phone/frame_0031.jpg 14 287 | data/office31/dslr/paper_notebook/frame_0001.jpg 18 288 | data/office31/dslr/paper_notebook/frame_0002.jpg 18 289 | data/office31/dslr/paper_notebook/frame_0003.jpg 18 290 | data/office31/dslr/paper_notebook/frame_0004.jpg 18 291 | data/office31/dslr/paper_notebook/frame_0005.jpg 18 292 | data/office31/dslr/paper_notebook/frame_0006.jpg 18 293 | data/office31/dslr/paper_notebook/frame_0007.jpg 18 294 | data/office31/dslr/paper_notebook/frame_0008.jpg 18 295 | data/office31/dslr/paper_notebook/frame_0009.jpg 18 296 | data/office31/dslr/paper_notebook/frame_0010.jpg 18 297 | data/office31/dslr/ruler/frame_0001.jpg 25 298 | data/office31/dslr/ruler/frame_0002.jpg 25 299 | data/office31/dslr/ruler/frame_0003.jpg 25 300 | data/office31/dslr/ruler/frame_0004.jpg 25 301 | data/office31/dslr/ruler/frame_0005.jpg 25 302 | data/office31/dslr/ruler/frame_0006.jpg 25 303 | data/office31/dslr/ruler/frame_0007.jpg 25 304 | data/office31/dslr/letter_tray/frame_0001.jpg 13 305 | data/office31/dslr/letter_tray/frame_0002.jpg 13 306 | data/office31/dslr/letter_tray/frame_0003.jpg 13 307 | data/office31/dslr/letter_tray/frame_0004.jpg 13 308 | data/office31/dslr/letter_tray/frame_0005.jpg 13 309 | data/office31/dslr/letter_tray/frame_0006.jpg 13 310 | data/office31/dslr/letter_tray/frame_0007.jpg 13 311 | data/office31/dslr/letter_tray/frame_0008.jpg 13 312 | data/office31/dslr/letter_tray/frame_0009.jpg 13 313 | data/office31/dslr/letter_tray/frame_0010.jpg 13 314 | data/office31/dslr/letter_tray/frame_0011.jpg 13 315 | data/office31/dslr/letter_tray/frame_0012.jpg 13 316 | data/office31/dslr/letter_tray/frame_0013.jpg 13 317 | data/office31/dslr/letter_tray/frame_0014.jpg 13 318 | data/office31/dslr/letter_tray/frame_0015.jpg 13 319 | data/office31/dslr/letter_tray/frame_0016.jpg 13 320 | data/office31/dslr/file_cabinet/frame_0001.jpg 9 321 | data/office31/dslr/file_cabinet/frame_0002.jpg 9 322 | data/office31/dslr/file_cabinet/frame_0003.jpg 9 323 | data/office31/dslr/file_cabinet/frame_0004.jpg 9 324 | data/office31/dslr/file_cabinet/frame_0005.jpg 9 325 | data/office31/dslr/file_cabinet/frame_0006.jpg 9 326 | data/office31/dslr/file_cabinet/frame_0007.jpg 9 327 | data/office31/dslr/file_cabinet/frame_0008.jpg 9 328 | data/office31/dslr/file_cabinet/frame_0009.jpg 9 329 | data/office31/dslr/file_cabinet/frame_0010.jpg 9 330 | data/office31/dslr/file_cabinet/frame_0011.jpg 9 331 | data/office31/dslr/file_cabinet/frame_0012.jpg 9 332 | data/office31/dslr/file_cabinet/frame_0013.jpg 9 333 | data/office31/dslr/file_cabinet/frame_0014.jpg 9 334 | data/office31/dslr/file_cabinet/frame_0015.jpg 9 335 | data/office31/dslr/phone/frame_0001.jpg 20 336 | data/office31/dslr/phone/frame_0002.jpg 20 337 | data/office31/dslr/phone/frame_0003.jpg 20 338 | data/office31/dslr/phone/frame_0004.jpg 20 339 | data/office31/dslr/phone/frame_0005.jpg 20 340 | data/office31/dslr/phone/frame_0006.jpg 20 341 | data/office31/dslr/phone/frame_0007.jpg 20 342 | data/office31/dslr/phone/frame_0008.jpg 20 343 | data/office31/dslr/phone/frame_0009.jpg 20 344 | data/office31/dslr/phone/frame_0010.jpg 20 345 | data/office31/dslr/phone/frame_0011.jpg 20 346 | data/office31/dslr/phone/frame_0012.jpg 20 347 | data/office31/dslr/phone/frame_0013.jpg 20 348 | data/office31/dslr/bookcase/frame_0001.jpg 3 349 | data/office31/dslr/bookcase/frame_0002.jpg 3 350 | data/office31/dslr/bookcase/frame_0003.jpg 3 351 | data/office31/dslr/bookcase/frame_0004.jpg 3 352 | data/office31/dslr/bookcase/frame_0005.jpg 3 353 | data/office31/dslr/bookcase/frame_0006.jpg 3 354 | data/office31/dslr/bookcase/frame_0007.jpg 3 355 | data/office31/dslr/bookcase/frame_0008.jpg 3 356 | data/office31/dslr/bookcase/frame_0009.jpg 3 357 | data/office31/dslr/bookcase/frame_0010.jpg 3 358 | data/office31/dslr/bookcase/frame_0011.jpg 3 359 | data/office31/dslr/bookcase/frame_0012.jpg 3 360 | data/office31/dslr/projector/frame_0001.jpg 22 361 | data/office31/dslr/projector/frame_0002.jpg 22 362 | data/office31/dslr/projector/frame_0003.jpg 22 363 | data/office31/dslr/projector/frame_0004.jpg 22 364 | data/office31/dslr/projector/frame_0005.jpg 22 365 | data/office31/dslr/projector/frame_0006.jpg 22 366 | data/office31/dslr/projector/frame_0007.jpg 22 367 | data/office31/dslr/projector/frame_0008.jpg 22 368 | data/office31/dslr/projector/frame_0009.jpg 22 369 | data/office31/dslr/projector/frame_0010.jpg 22 370 | data/office31/dslr/projector/frame_0011.jpg 22 371 | data/office31/dslr/projector/frame_0012.jpg 22 372 | data/office31/dslr/projector/frame_0013.jpg 22 373 | data/office31/dslr/projector/frame_0014.jpg 22 374 | data/office31/dslr/projector/frame_0015.jpg 22 375 | data/office31/dslr/projector/frame_0016.jpg 22 376 | data/office31/dslr/projector/frame_0017.jpg 22 377 | data/office31/dslr/projector/frame_0018.jpg 22 378 | data/office31/dslr/projector/frame_0019.jpg 22 379 | data/office31/dslr/projector/frame_0020.jpg 22 380 | data/office31/dslr/projector/frame_0021.jpg 22 381 | data/office31/dslr/projector/frame_0022.jpg 22 382 | data/office31/dslr/projector/frame_0023.jpg 22 383 | data/office31/dslr/stapler/frame_0001.jpg 28 384 | data/office31/dslr/stapler/frame_0002.jpg 28 385 | data/office31/dslr/stapler/frame_0003.jpg 28 386 | data/office31/dslr/stapler/frame_0004.jpg 28 387 | data/office31/dslr/stapler/frame_0005.jpg 28 388 | data/office31/dslr/stapler/frame_0006.jpg 28 389 | data/office31/dslr/stapler/frame_0007.jpg 28 390 | data/office31/dslr/stapler/frame_0008.jpg 28 391 | data/office31/dslr/stapler/frame_0009.jpg 28 392 | data/office31/dslr/stapler/frame_0010.jpg 28 393 | data/office31/dslr/stapler/frame_0011.jpg 28 394 | data/office31/dslr/stapler/frame_0012.jpg 28 395 | data/office31/dslr/stapler/frame_0013.jpg 28 396 | data/office31/dslr/stapler/frame_0014.jpg 28 397 | data/office31/dslr/stapler/frame_0015.jpg 28 398 | data/office31/dslr/stapler/frame_0016.jpg 28 399 | data/office31/dslr/stapler/frame_0017.jpg 28 400 | data/office31/dslr/stapler/frame_0018.jpg 28 401 | data/office31/dslr/stapler/frame_0019.jpg 28 402 | data/office31/dslr/stapler/frame_0020.jpg 28 403 | data/office31/dslr/stapler/frame_0021.jpg 28 404 | data/office31/dslr/trash_can/frame_0001.jpg 30 405 | data/office31/dslr/trash_can/frame_0002.jpg 30 406 | data/office31/dslr/trash_can/frame_0003.jpg 30 407 | data/office31/dslr/trash_can/frame_0004.jpg 30 408 | data/office31/dslr/trash_can/frame_0005.jpg 30 409 | data/office31/dslr/trash_can/frame_0006.jpg 30 410 | data/office31/dslr/trash_can/frame_0007.jpg 30 411 | data/office31/dslr/trash_can/frame_0008.jpg 30 412 | data/office31/dslr/trash_can/frame_0009.jpg 30 413 | data/office31/dslr/trash_can/frame_0010.jpg 30 414 | data/office31/dslr/trash_can/frame_0011.jpg 30 415 | data/office31/dslr/trash_can/frame_0012.jpg 30 416 | data/office31/dslr/trash_can/frame_0013.jpg 30 417 | data/office31/dslr/trash_can/frame_0014.jpg 30 418 | data/office31/dslr/trash_can/frame_0015.jpg 30 419 | data/office31/dslr/bike_helmet/frame_0001.jpg 2 420 | data/office31/dslr/bike_helmet/frame_0002.jpg 2 421 | data/office31/dslr/bike_helmet/frame_0003.jpg 2 422 | data/office31/dslr/bike_helmet/frame_0004.jpg 2 423 | data/office31/dslr/bike_helmet/frame_0005.jpg 2 424 | data/office31/dslr/bike_helmet/frame_0006.jpg 2 425 | data/office31/dslr/bike_helmet/frame_0007.jpg 2 426 | data/office31/dslr/bike_helmet/frame_0008.jpg 2 427 | data/office31/dslr/bike_helmet/frame_0009.jpg 2 428 | data/office31/dslr/bike_helmet/frame_0010.jpg 2 429 | data/office31/dslr/bike_helmet/frame_0011.jpg 2 430 | data/office31/dslr/bike_helmet/frame_0012.jpg 2 431 | data/office31/dslr/bike_helmet/frame_0013.jpg 2 432 | data/office31/dslr/bike_helmet/frame_0014.jpg 2 433 | data/office31/dslr/bike_helmet/frame_0015.jpg 2 434 | data/office31/dslr/bike_helmet/frame_0016.jpg 2 435 | data/office31/dslr/bike_helmet/frame_0017.jpg 2 436 | data/office31/dslr/bike_helmet/frame_0018.jpg 2 437 | data/office31/dslr/bike_helmet/frame_0019.jpg 2 438 | data/office31/dslr/bike_helmet/frame_0020.jpg 2 439 | data/office31/dslr/bike_helmet/frame_0021.jpg 2 440 | data/office31/dslr/bike_helmet/frame_0022.jpg 2 441 | data/office31/dslr/bike_helmet/frame_0023.jpg 2 442 | data/office31/dslr/bike_helmet/frame_0024.jpg 2 443 | data/office31/dslr/headphones/frame_0001.jpg 10 444 | data/office31/dslr/headphones/frame_0002.jpg 10 445 | data/office31/dslr/headphones/frame_0003.jpg 10 446 | data/office31/dslr/headphones/frame_0004.jpg 10 447 | data/office31/dslr/headphones/frame_0005.jpg 10 448 | data/office31/dslr/headphones/frame_0006.jpg 10 449 | data/office31/dslr/headphones/frame_0007.jpg 10 450 | data/office31/dslr/headphones/frame_0008.jpg 10 451 | data/office31/dslr/headphones/frame_0009.jpg 10 452 | data/office31/dslr/headphones/frame_0010.jpg 10 453 | data/office31/dslr/headphones/frame_0011.jpg 10 454 | data/office31/dslr/headphones/frame_0012.jpg 10 455 | data/office31/dslr/headphones/frame_0013.jpg 10 456 | data/office31/dslr/desk_lamp/frame_0001.jpg 7 457 | data/office31/dslr/desk_lamp/frame_0002.jpg 7 458 | data/office31/dslr/desk_lamp/frame_0003.jpg 7 459 | data/office31/dslr/desk_lamp/frame_0004.jpg 7 460 | data/office31/dslr/desk_lamp/frame_0005.jpg 7 461 | data/office31/dslr/desk_lamp/frame_0006.jpg 7 462 | data/office31/dslr/desk_lamp/frame_0007.jpg 7 463 | data/office31/dslr/desk_lamp/frame_0008.jpg 7 464 | data/office31/dslr/desk_lamp/frame_0009.jpg 7 465 | data/office31/dslr/desk_lamp/frame_0010.jpg 7 466 | data/office31/dslr/desk_lamp/frame_0011.jpg 7 467 | data/office31/dslr/desk_lamp/frame_0012.jpg 7 468 | data/office31/dslr/desk_lamp/frame_0013.jpg 7 469 | data/office31/dslr/desk_lamp/frame_0014.jpg 7 470 | data/office31/dslr/desk_chair/frame_0001.jpg 6 471 | data/office31/dslr/desk_chair/frame_0002.jpg 6 472 | data/office31/dslr/desk_chair/frame_0003.jpg 6 473 | data/office31/dslr/desk_chair/frame_0004.jpg 6 474 | data/office31/dslr/desk_chair/frame_0005.jpg 6 475 | data/office31/dslr/desk_chair/frame_0006.jpg 6 476 | data/office31/dslr/desk_chair/frame_0007.jpg 6 477 | data/office31/dslr/desk_chair/frame_0008.jpg 6 478 | data/office31/dslr/desk_chair/frame_0009.jpg 6 479 | data/office31/dslr/desk_chair/frame_0010.jpg 6 480 | data/office31/dslr/desk_chair/frame_0011.jpg 6 481 | data/office31/dslr/desk_chair/frame_0012.jpg 6 482 | data/office31/dslr/desk_chair/frame_0013.jpg 6 483 | data/office31/dslr/bottle/frame_0001.jpg 4 484 | data/office31/dslr/bottle/frame_0002.jpg 4 485 | data/office31/dslr/bottle/frame_0003.jpg 4 486 | data/office31/dslr/bottle/frame_0004.jpg 4 487 | data/office31/dslr/bottle/frame_0005.jpg 4 488 | data/office31/dslr/bottle/frame_0006.jpg 4 489 | data/office31/dslr/bottle/frame_0007.jpg 4 490 | data/office31/dslr/bottle/frame_0008.jpg 4 491 | data/office31/dslr/bottle/frame_0009.jpg 4 492 | data/office31/dslr/bottle/frame_0010.jpg 4 493 | data/office31/dslr/bottle/frame_0011.jpg 4 494 | data/office31/dslr/bottle/frame_0012.jpg 4 495 | data/office31/dslr/bottle/frame_0013.jpg 4 496 | data/office31/dslr/bottle/frame_0014.jpg 4 497 | data/office31/dslr/bottle/frame_0015.jpg 4 498 | data/office31/dslr/bottle/frame_0016.jpg 4 499 | -------------------------------------------------------------------------------- /data/list/office/webcam_test.txt: -------------------------------------------------------------------------------- 1 | data/office31/webcam/back_pack/frame_0003.jpg 0 2 | data/office31/webcam/back_pack/frame_0001.jpg 0 3 | data/office31/webcam/back_pack/frame_0024.jpg 0 4 | data/office31/webcam/back_pack/frame_0017.jpg 0 5 | data/office31/webcam/back_pack/frame_0029.jpg 0 6 | data/office31/webcam/back_pack/frame_0027.jpg 0 7 | data/office31/webcam/back_pack/frame_0011.jpg 0 8 | data/office31/webcam/back_pack/frame_0004.jpg 0 9 | data/office31/webcam/back_pack/frame_0012.jpg 0 10 | data/office31/webcam/back_pack/frame_0009.jpg 0 11 | data/office31/webcam/back_pack/frame_0016.jpg 0 12 | data/office31/webcam/back_pack/frame_0021.jpg 0 13 | data/office31/webcam/back_pack/frame_0005.jpg 0 14 | data/office31/webcam/back_pack/frame_0020.jpg 0 15 | data/office31/webcam/back_pack/frame_0013.jpg 0 16 | data/office31/webcam/back_pack/frame_0026.jpg 0 17 | data/office31/webcam/back_pack/frame_0015.jpg 0 18 | data/office31/webcam/back_pack/frame_0006.jpg 0 19 | data/office31/webcam/back_pack/frame_0018.jpg 0 20 | data/office31/webcam/back_pack/frame_0008.jpg 0 21 | data/office31/webcam/back_pack/frame_0028.jpg 0 22 | data/office31/webcam/back_pack/frame_0022.jpg 0 23 | data/office31/webcam/back_pack/frame_0014.jpg 0 24 | data/office31/webcam/back_pack/frame_0025.jpg 0 25 | data/office31/webcam/back_pack/frame_0019.jpg 0 26 | data/office31/webcam/back_pack/frame_0002.jpg 0 27 | data/office31/webcam/back_pack/frame_0023.jpg 0 28 | data/office31/webcam/back_pack/frame_0007.jpg 0 29 | data/office31/webcam/back_pack/frame_0010.jpg 0 30 | data/office31/webcam/bike/frame_0009.jpg 1 31 | data/office31/webcam/bike/frame_0002.jpg 1 32 | data/office31/webcam/bike/frame_0012.jpg 1 33 | data/office31/webcam/bike/frame_0019.jpg 1 34 | data/office31/webcam/bike/frame_0010.jpg 1 35 | data/office31/webcam/bike/frame_0021.jpg 1 36 | data/office31/webcam/bike/frame_0003.jpg 1 37 | data/office31/webcam/bike/frame_0015.jpg 1 38 | data/office31/webcam/bike/frame_0011.jpg 1 39 | data/office31/webcam/bike/frame_0005.jpg 1 40 | data/office31/webcam/bike/frame_0014.jpg 1 41 | data/office31/webcam/bike/frame_0001.jpg 1 42 | data/office31/webcam/bike/frame_0017.jpg 1 43 | data/office31/webcam/bike/frame_0013.jpg 1 44 | data/office31/webcam/bike/frame_0007.jpg 1 45 | data/office31/webcam/bike/frame_0006.jpg 1 46 | data/office31/webcam/bike/frame_0004.jpg 1 47 | data/office31/webcam/bike/frame_0016.jpg 1 48 | data/office31/webcam/bike/frame_0018.jpg 1 49 | data/office31/webcam/bike/frame_0020.jpg 1 50 | data/office31/webcam/bike/frame_0008.jpg 1 51 | data/office31/webcam/calculator/frame_0013.jpg 5 52 | data/office31/webcam/calculator/frame_0001.jpg 5 53 | data/office31/webcam/calculator/frame_0009.jpg 5 54 | data/office31/webcam/calculator/frame_0018.jpg 5 55 | data/office31/webcam/calculator/frame_0014.jpg 5 56 | data/office31/webcam/calculator/frame_0005.jpg 5 57 | data/office31/webcam/calculator/frame_0004.jpg 5 58 | data/office31/webcam/calculator/frame_0012.jpg 5 59 | data/office31/webcam/calculator/frame_0025.jpg 5 60 | data/office31/webcam/calculator/frame_0019.jpg 5 61 | data/office31/webcam/calculator/frame_0023.jpg 5 62 | data/office31/webcam/calculator/frame_0031.jpg 5 63 | data/office31/webcam/calculator/frame_0020.jpg 5 64 | data/office31/webcam/calculator/frame_0027.jpg 5 65 | data/office31/webcam/calculator/frame_0016.jpg 5 66 | data/office31/webcam/calculator/frame_0015.jpg 5 67 | data/office31/webcam/calculator/frame_0030.jpg 5 68 | data/office31/webcam/calculator/frame_0022.jpg 5 69 | data/office31/webcam/calculator/frame_0029.jpg 5 70 | data/office31/webcam/calculator/frame_0024.jpg 5 71 | data/office31/webcam/calculator/frame_0008.jpg 5 72 | data/office31/webcam/calculator/frame_0002.jpg 5 73 | data/office31/webcam/calculator/frame_0021.jpg 5 74 | data/office31/webcam/calculator/frame_0010.jpg 5 75 | data/office31/webcam/calculator/frame_0017.jpg 5 76 | data/office31/webcam/calculator/frame_0007.jpg 5 77 | data/office31/webcam/calculator/frame_0006.jpg 5 78 | data/office31/webcam/calculator/frame_0011.jpg 5 79 | data/office31/webcam/calculator/frame_0028.jpg 5 80 | data/office31/webcam/calculator/frame_0026.jpg 5 81 | data/office31/webcam/calculator/frame_0003.jpg 5 82 | data/office31/webcam/headphones/frame_0009.jpg 10 83 | data/office31/webcam/headphones/frame_0006.jpg 10 84 | data/office31/webcam/headphones/frame_0001.jpg 10 85 | data/office31/webcam/headphones/frame_0027.jpg 10 86 | data/office31/webcam/headphones/frame_0017.jpg 10 87 | data/office31/webcam/headphones/frame_0026.jpg 10 88 | data/office31/webcam/headphones/frame_0020.jpg 10 89 | data/office31/webcam/headphones/frame_0015.jpg 10 90 | data/office31/webcam/headphones/frame_0016.jpg 10 91 | data/office31/webcam/headphones/frame_0019.jpg 10 92 | data/office31/webcam/headphones/frame_0013.jpg 10 93 | data/office31/webcam/headphones/frame_0002.jpg 10 94 | data/office31/webcam/headphones/frame_0023.jpg 10 95 | data/office31/webcam/headphones/frame_0003.jpg 10 96 | data/office31/webcam/headphones/frame_0010.jpg 10 97 | data/office31/webcam/headphones/frame_0012.jpg 10 98 | data/office31/webcam/headphones/frame_0011.jpg 10 99 | data/office31/webcam/headphones/frame_0007.jpg 10 100 | data/office31/webcam/headphones/frame_0005.jpg 10 101 | data/office31/webcam/headphones/frame_0004.jpg 10 102 | data/office31/webcam/headphones/frame_0022.jpg 10 103 | data/office31/webcam/headphones/frame_0024.jpg 10 104 | data/office31/webcam/headphones/frame_0018.jpg 10 105 | data/office31/webcam/headphones/frame_0025.jpg 10 106 | data/office31/webcam/headphones/frame_0021.jpg 10 107 | data/office31/webcam/headphones/frame_0008.jpg 10 108 | data/office31/webcam/headphones/frame_0014.jpg 10 109 | data/office31/webcam/keyboard/frame_0004.jpg 11 110 | data/office31/webcam/keyboard/frame_0020.jpg 11 111 | data/office31/webcam/keyboard/frame_0013.jpg 11 112 | data/office31/webcam/keyboard/frame_0003.jpg 11 113 | data/office31/webcam/keyboard/frame_0021.jpg 11 114 | data/office31/webcam/keyboard/frame_0001.jpg 11 115 | data/office31/webcam/keyboard/frame_0011.jpg 11 116 | data/office31/webcam/keyboard/frame_0022.jpg 11 117 | data/office31/webcam/keyboard/frame_0027.jpg 11 118 | data/office31/webcam/keyboard/frame_0007.jpg 11 119 | data/office31/webcam/keyboard/frame_0015.jpg 11 120 | data/office31/webcam/keyboard/frame_0005.jpg 11 121 | data/office31/webcam/keyboard/frame_0014.jpg 11 122 | data/office31/webcam/keyboard/frame_0019.jpg 11 123 | data/office31/webcam/keyboard/frame_0006.jpg 11 124 | data/office31/webcam/keyboard/frame_0010.jpg 11 125 | data/office31/webcam/keyboard/frame_0025.jpg 11 126 | data/office31/webcam/keyboard/frame_0008.jpg 11 127 | data/office31/webcam/keyboard/frame_0023.jpg 11 128 | data/office31/webcam/keyboard/frame_0026.jpg 11 129 | data/office31/webcam/keyboard/frame_0002.jpg 11 130 | data/office31/webcam/keyboard/frame_0017.jpg 11 131 | data/office31/webcam/keyboard/frame_0012.jpg 11 132 | data/office31/webcam/keyboard/frame_0016.jpg 11 133 | data/office31/webcam/keyboard/frame_0024.jpg 11 134 | data/office31/webcam/keyboard/frame_0018.jpg 11 135 | data/office31/webcam/keyboard/frame_0009.jpg 11 136 | data/office31/webcam/laptop_computer/frame_0017.jpg 12 137 | data/office31/webcam/laptop_computer/frame_0007.jpg 12 138 | data/office31/webcam/laptop_computer/frame_0010.jpg 12 139 | data/office31/webcam/laptop_computer/frame_0019.jpg 12 140 | data/office31/webcam/laptop_computer/frame_0005.jpg 12 141 | data/office31/webcam/laptop_computer/frame_0030.jpg 12 142 | data/office31/webcam/laptop_computer/frame_0012.jpg 12 143 | data/office31/webcam/laptop_computer/frame_0014.jpg 12 144 | data/office31/webcam/laptop_computer/frame_0015.jpg 12 145 | data/office31/webcam/laptop_computer/frame_0018.jpg 12 146 | data/office31/webcam/laptop_computer/frame_0003.jpg 12 147 | data/office31/webcam/laptop_computer/frame_0016.jpg 12 148 | data/office31/webcam/laptop_computer/frame_0001.jpg 12 149 | data/office31/webcam/laptop_computer/frame_0023.jpg 12 150 | data/office31/webcam/laptop_computer/frame_0020.jpg 12 151 | data/office31/webcam/laptop_computer/frame_0006.jpg 12 152 | data/office31/webcam/laptop_computer/frame_0009.jpg 12 153 | data/office31/webcam/laptop_computer/frame_0024.jpg 12 154 | data/office31/webcam/laptop_computer/frame_0025.jpg 12 155 | data/office31/webcam/laptop_computer/frame_0013.jpg 12 156 | data/office31/webcam/laptop_computer/frame_0029.jpg 12 157 | data/office31/webcam/laptop_computer/frame_0027.jpg 12 158 | data/office31/webcam/laptop_computer/frame_0026.jpg 12 159 | data/office31/webcam/laptop_computer/frame_0011.jpg 12 160 | data/office31/webcam/laptop_computer/frame_0002.jpg 12 161 | data/office31/webcam/laptop_computer/frame_0008.jpg 12 162 | data/office31/webcam/laptop_computer/frame_0028.jpg 12 163 | data/office31/webcam/laptop_computer/frame_0022.jpg 12 164 | data/office31/webcam/laptop_computer/frame_0021.jpg 12 165 | data/office31/webcam/laptop_computer/frame_0004.jpg 12 166 | data/office31/webcam/monitor/frame_0014.jpg 15 167 | data/office31/webcam/monitor/frame_0027.jpg 15 168 | data/office31/webcam/monitor/frame_0029.jpg 15 169 | data/office31/webcam/monitor/frame_0015.jpg 15 170 | data/office31/webcam/monitor/frame_0020.jpg 15 171 | data/office31/webcam/monitor/frame_0007.jpg 15 172 | data/office31/webcam/monitor/frame_0038.jpg 15 173 | data/office31/webcam/monitor/frame_0037.jpg 15 174 | data/office31/webcam/monitor/frame_0004.jpg 15 175 | data/office31/webcam/monitor/frame_0040.jpg 15 176 | data/office31/webcam/monitor/frame_0002.jpg 15 177 | data/office31/webcam/monitor/frame_0025.jpg 15 178 | data/office31/webcam/monitor/frame_0001.jpg 15 179 | data/office31/webcam/monitor/frame_0032.jpg 15 180 | data/office31/webcam/monitor/frame_0012.jpg 15 181 | data/office31/webcam/monitor/frame_0042.jpg 15 182 | data/office31/webcam/monitor/frame_0005.jpg 15 183 | data/office31/webcam/monitor/frame_0016.jpg 15 184 | data/office31/webcam/monitor/frame_0022.jpg 15 185 | data/office31/webcam/monitor/frame_0031.jpg 15 186 | data/office31/webcam/monitor/frame_0017.jpg 15 187 | data/office31/webcam/monitor/frame_0023.jpg 15 188 | data/office31/webcam/monitor/frame_0008.jpg 15 189 | data/office31/webcam/monitor/frame_0034.jpg 15 190 | data/office31/webcam/monitor/frame_0010.jpg 15 191 | data/office31/webcam/monitor/frame_0039.jpg 15 192 | data/office31/webcam/monitor/frame_0043.jpg 15 193 | data/office31/webcam/monitor/frame_0030.jpg 15 194 | data/office31/webcam/monitor/frame_0009.jpg 15 195 | data/office31/webcam/monitor/frame_0026.jpg 15 196 | data/office31/webcam/monitor/frame_0013.jpg 15 197 | data/office31/webcam/monitor/frame_0011.jpg 15 198 | data/office31/webcam/monitor/frame_0003.jpg 15 199 | data/office31/webcam/monitor/frame_0018.jpg 15 200 | data/office31/webcam/monitor/frame_0033.jpg 15 201 | data/office31/webcam/monitor/frame_0019.jpg 15 202 | data/office31/webcam/monitor/frame_0006.jpg 15 203 | data/office31/webcam/monitor/frame_0021.jpg 15 204 | data/office31/webcam/monitor/frame_0028.jpg 15 205 | data/office31/webcam/monitor/frame_0036.jpg 15 206 | data/office31/webcam/monitor/frame_0035.jpg 15 207 | data/office31/webcam/monitor/frame_0024.jpg 15 208 | data/office31/webcam/monitor/frame_0041.jpg 15 209 | data/office31/webcam/mouse/frame_0030.jpg 16 210 | data/office31/webcam/mouse/frame_0014.jpg 16 211 | data/office31/webcam/mouse/frame_0024.jpg 16 212 | data/office31/webcam/mouse/frame_0006.jpg 16 213 | data/office31/webcam/mouse/frame_0010.jpg 16 214 | data/office31/webcam/mouse/frame_0015.jpg 16 215 | data/office31/webcam/mouse/frame_0027.jpg 16 216 | data/office31/webcam/mouse/frame_0017.jpg 16 217 | data/office31/webcam/mouse/frame_0018.jpg 16 218 | data/office31/webcam/mouse/frame_0016.jpg 16 219 | data/office31/webcam/mouse/frame_0029.jpg 16 220 | data/office31/webcam/mouse/frame_0002.jpg 16 221 | data/office31/webcam/mouse/frame_0022.jpg 16 222 | data/office31/webcam/mouse/frame_0025.jpg 16 223 | data/office31/webcam/mouse/frame_0020.jpg 16 224 | data/office31/webcam/mouse/frame_0023.jpg 16 225 | data/office31/webcam/mouse/frame_0026.jpg 16 226 | data/office31/webcam/mouse/frame_0021.jpg 16 227 | data/office31/webcam/mouse/frame_0028.jpg 16 228 | data/office31/webcam/mouse/frame_0009.jpg 16 229 | data/office31/webcam/mouse/frame_0008.jpg 16 230 | data/office31/webcam/mouse/frame_0001.jpg 16 231 | data/office31/webcam/mouse/frame_0003.jpg 16 232 | data/office31/webcam/mouse/frame_0004.jpg 16 233 | data/office31/webcam/mouse/frame_0013.jpg 16 234 | data/office31/webcam/mouse/frame_0007.jpg 16 235 | data/office31/webcam/mouse/frame_0011.jpg 16 236 | data/office31/webcam/mouse/frame_0012.jpg 16 237 | data/office31/webcam/mouse/frame_0019.jpg 16 238 | data/office31/webcam/mouse/frame_0005.jpg 16 239 | data/office31/webcam/mug/frame_0024.jpg 17 240 | data/office31/webcam/mug/frame_0013.jpg 17 241 | data/office31/webcam/mug/frame_0009.jpg 17 242 | data/office31/webcam/mug/frame_0025.jpg 17 243 | data/office31/webcam/mug/frame_0017.jpg 17 244 | data/office31/webcam/mug/frame_0005.jpg 17 245 | data/office31/webcam/mug/frame_0016.jpg 17 246 | data/office31/webcam/mug/frame_0011.jpg 17 247 | data/office31/webcam/mug/frame_0022.jpg 17 248 | data/office31/webcam/mug/frame_0010.jpg 17 249 | data/office31/webcam/mug/frame_0007.jpg 17 250 | data/office31/webcam/mug/frame_0003.jpg 17 251 | data/office31/webcam/mug/frame_0023.jpg 17 252 | data/office31/webcam/mug/frame_0020.jpg 17 253 | data/office31/webcam/mug/frame_0026.jpg 17 254 | data/office31/webcam/mug/frame_0027.jpg 17 255 | data/office31/webcam/mug/frame_0012.jpg 17 256 | data/office31/webcam/mug/frame_0006.jpg 17 257 | data/office31/webcam/mug/frame_0018.jpg 17 258 | data/office31/webcam/mug/frame_0004.jpg 17 259 | data/office31/webcam/mug/frame_0008.jpg 17 260 | data/office31/webcam/mug/frame_0002.jpg 17 261 | data/office31/webcam/mug/frame_0021.jpg 17 262 | data/office31/webcam/mug/frame_0014.jpg 17 263 | data/office31/webcam/mug/frame_0019.jpg 17 264 | data/office31/webcam/mug/frame_0015.jpg 17 265 | data/office31/webcam/mug/frame_0001.jpg 17 266 | data/office31/webcam/projector/frame_0020.jpg 22 267 | data/office31/webcam/projector/frame_0015.jpg 22 268 | data/office31/webcam/projector/frame_0008.jpg 22 269 | data/office31/webcam/projector/frame_0021.jpg 22 270 | data/office31/webcam/projector/frame_0016.jpg 22 271 | data/office31/webcam/projector/frame_0006.jpg 22 272 | data/office31/webcam/projector/frame_0017.jpg 22 273 | data/office31/webcam/projector/frame_0005.jpg 22 274 | data/office31/webcam/projector/frame_0024.jpg 22 275 | data/office31/webcam/projector/frame_0001.jpg 22 276 | data/office31/webcam/projector/frame_0018.jpg 22 277 | data/office31/webcam/projector/frame_0004.jpg 22 278 | data/office31/webcam/projector/frame_0013.jpg 22 279 | data/office31/webcam/projector/frame_0029.jpg 22 280 | data/office31/webcam/projector/frame_0003.jpg 22 281 | data/office31/webcam/projector/frame_0019.jpg 22 282 | data/office31/webcam/projector/frame_0022.jpg 22 283 | data/office31/webcam/projector/frame_0030.jpg 22 284 | data/office31/webcam/projector/frame_0023.jpg 22 285 | data/office31/webcam/projector/frame_0014.jpg 22 286 | data/office31/webcam/projector/frame_0002.jpg 22 287 | data/office31/webcam/projector/frame_0007.jpg 22 288 | data/office31/webcam/projector/frame_0011.jpg 22 289 | data/office31/webcam/projector/frame_0010.jpg 22 290 | data/office31/webcam/projector/frame_0026.jpg 22 291 | data/office31/webcam/projector/frame_0027.jpg 22 292 | data/office31/webcam/projector/frame_0012.jpg 22 293 | data/office31/webcam/projector/frame_0009.jpg 22 294 | data/office31/webcam/projector/frame_0028.jpg 22 295 | data/office31/webcam/projector/frame_0025.jpg 22 296 | data/office31/webcam/speaker/frame_0001.jpg 27 297 | data/office31/webcam/speaker/frame_0002.jpg 27 298 | data/office31/webcam/speaker/frame_0003.jpg 27 299 | data/office31/webcam/speaker/frame_0004.jpg 27 300 | data/office31/webcam/speaker/frame_0005.jpg 27 301 | data/office31/webcam/speaker/frame_0006.jpg 27 302 | data/office31/webcam/speaker/frame_0007.jpg 27 303 | data/office31/webcam/speaker/frame_0008.jpg 27 304 | data/office31/webcam/speaker/frame_0009.jpg 27 305 | data/office31/webcam/speaker/frame_0010.jpg 27 306 | data/office31/webcam/speaker/frame_0011.jpg 27 307 | data/office31/webcam/speaker/frame_0012.jpg 27 308 | data/office31/webcam/speaker/frame_0013.jpg 27 309 | data/office31/webcam/speaker/frame_0014.jpg 27 310 | data/office31/webcam/speaker/frame_0015.jpg 27 311 | data/office31/webcam/speaker/frame_0016.jpg 27 312 | data/office31/webcam/speaker/frame_0017.jpg 27 313 | data/office31/webcam/speaker/frame_0018.jpg 27 314 | data/office31/webcam/speaker/frame_0019.jpg 27 315 | data/office31/webcam/speaker/frame_0020.jpg 27 316 | data/office31/webcam/speaker/frame_0021.jpg 27 317 | data/office31/webcam/speaker/frame_0022.jpg 27 318 | data/office31/webcam/speaker/frame_0023.jpg 27 319 | data/office31/webcam/speaker/frame_0024.jpg 27 320 | data/office31/webcam/speaker/frame_0025.jpg 27 321 | data/office31/webcam/speaker/frame_0026.jpg 27 322 | data/office31/webcam/speaker/frame_0027.jpg 27 323 | data/office31/webcam/speaker/frame_0028.jpg 27 324 | data/office31/webcam/speaker/frame_0029.jpg 27 325 | data/office31/webcam/speaker/frame_0030.jpg 27 326 | data/office31/webcam/desk_chair/frame_0001.jpg 6 327 | data/office31/webcam/desk_chair/frame_0002.jpg 6 328 | data/office31/webcam/desk_chair/frame_0003.jpg 6 329 | data/office31/webcam/desk_chair/frame_0004.jpg 6 330 | data/office31/webcam/desk_chair/frame_0005.jpg 6 331 | data/office31/webcam/desk_chair/frame_0006.jpg 6 332 | data/office31/webcam/desk_chair/frame_0007.jpg 6 333 | data/office31/webcam/desk_chair/frame_0008.jpg 6 334 | data/office31/webcam/desk_chair/frame_0009.jpg 6 335 | data/office31/webcam/desk_chair/frame_0010.jpg 6 336 | data/office31/webcam/desk_chair/frame_0011.jpg 6 337 | data/office31/webcam/desk_chair/frame_0012.jpg 6 338 | data/office31/webcam/desk_chair/frame_0013.jpg 6 339 | data/office31/webcam/desk_chair/frame_0014.jpg 6 340 | data/office31/webcam/desk_chair/frame_0015.jpg 6 341 | data/office31/webcam/desk_chair/frame_0016.jpg 6 342 | data/office31/webcam/desk_chair/frame_0017.jpg 6 343 | data/office31/webcam/desk_chair/frame_0018.jpg 6 344 | data/office31/webcam/desk_chair/frame_0019.jpg 6 345 | data/office31/webcam/desk_chair/frame_0020.jpg 6 346 | data/office31/webcam/desk_chair/frame_0021.jpg 6 347 | data/office31/webcam/desk_chair/frame_0022.jpg 6 348 | data/office31/webcam/desk_chair/frame_0023.jpg 6 349 | data/office31/webcam/desk_chair/frame_0024.jpg 6 350 | data/office31/webcam/desk_chair/frame_0025.jpg 6 351 | data/office31/webcam/desk_chair/frame_0026.jpg 6 352 | data/office31/webcam/desk_chair/frame_0027.jpg 6 353 | data/office31/webcam/desk_chair/frame_0028.jpg 6 354 | data/office31/webcam/desk_chair/frame_0029.jpg 6 355 | data/office31/webcam/desk_chair/frame_0030.jpg 6 356 | data/office31/webcam/desk_chair/frame_0031.jpg 6 357 | data/office31/webcam/desk_chair/frame_0032.jpg 6 358 | data/office31/webcam/desk_chair/frame_0033.jpg 6 359 | data/office31/webcam/desk_chair/frame_0034.jpg 6 360 | data/office31/webcam/desk_chair/frame_0035.jpg 6 361 | data/office31/webcam/desk_chair/frame_0036.jpg 6 362 | data/office31/webcam/desk_chair/frame_0037.jpg 6 363 | data/office31/webcam/desk_chair/frame_0038.jpg 6 364 | data/office31/webcam/desk_chair/frame_0039.jpg 6 365 | data/office31/webcam/desk_chair/frame_0040.jpg 6 366 | data/office31/webcam/desk_lamp/frame_0001.jpg 7 367 | data/office31/webcam/desk_lamp/frame_0002.jpg 7 368 | data/office31/webcam/desk_lamp/frame_0003.jpg 7 369 | data/office31/webcam/desk_lamp/frame_0004.jpg 7 370 | data/office31/webcam/desk_lamp/frame_0005.jpg 7 371 | data/office31/webcam/desk_lamp/frame_0006.jpg 7 372 | data/office31/webcam/desk_lamp/frame_0007.jpg 7 373 | data/office31/webcam/desk_lamp/frame_0008.jpg 7 374 | data/office31/webcam/desk_lamp/frame_0009.jpg 7 375 | data/office31/webcam/desk_lamp/frame_0010.jpg 7 376 | data/office31/webcam/desk_lamp/frame_0011.jpg 7 377 | data/office31/webcam/desk_lamp/frame_0012.jpg 7 378 | data/office31/webcam/desk_lamp/frame_0013.jpg 7 379 | data/office31/webcam/desk_lamp/frame_0014.jpg 7 380 | data/office31/webcam/desk_lamp/frame_0015.jpg 7 381 | data/office31/webcam/desk_lamp/frame_0016.jpg 7 382 | data/office31/webcam/desk_lamp/frame_0017.jpg 7 383 | data/office31/webcam/desk_lamp/frame_0018.jpg 7 384 | data/office31/webcam/punchers/frame_0001.jpg 23 385 | data/office31/webcam/punchers/frame_0002.jpg 23 386 | data/office31/webcam/punchers/frame_0003.jpg 23 387 | data/office31/webcam/punchers/frame_0004.jpg 23 388 | data/office31/webcam/punchers/frame_0005.jpg 23 389 | data/office31/webcam/punchers/frame_0006.jpg 23 390 | data/office31/webcam/punchers/frame_0007.jpg 23 391 | data/office31/webcam/punchers/frame_0008.jpg 23 392 | data/office31/webcam/punchers/frame_0009.jpg 23 393 | data/office31/webcam/punchers/frame_0010.jpg 23 394 | data/office31/webcam/punchers/frame_0011.jpg 23 395 | data/office31/webcam/punchers/frame_0012.jpg 23 396 | data/office31/webcam/punchers/frame_0013.jpg 23 397 | data/office31/webcam/punchers/frame_0014.jpg 23 398 | data/office31/webcam/punchers/frame_0015.jpg 23 399 | data/office31/webcam/punchers/frame_0016.jpg 23 400 | data/office31/webcam/punchers/frame_0017.jpg 23 401 | data/office31/webcam/punchers/frame_0018.jpg 23 402 | data/office31/webcam/punchers/frame_0019.jpg 23 403 | data/office31/webcam/punchers/frame_0020.jpg 23 404 | data/office31/webcam/punchers/frame_0021.jpg 23 405 | data/office31/webcam/punchers/frame_0022.jpg 23 406 | data/office31/webcam/punchers/frame_0023.jpg 23 407 | data/office31/webcam/punchers/frame_0024.jpg 23 408 | data/office31/webcam/punchers/frame_0025.jpg 23 409 | data/office31/webcam/punchers/frame_0026.jpg 23 410 | data/office31/webcam/punchers/frame_0027.jpg 23 411 | data/office31/webcam/phone/frame_0001.jpg 20 412 | data/office31/webcam/phone/frame_0002.jpg 20 413 | data/office31/webcam/phone/frame_0003.jpg 20 414 | data/office31/webcam/phone/frame_0004.jpg 20 415 | data/office31/webcam/phone/frame_0005.jpg 20 416 | data/office31/webcam/phone/frame_0006.jpg 20 417 | data/office31/webcam/phone/frame_0007.jpg 20 418 | data/office31/webcam/phone/frame_0008.jpg 20 419 | data/office31/webcam/phone/frame_0009.jpg 20 420 | data/office31/webcam/phone/frame_0010.jpg 20 421 | data/office31/webcam/phone/frame_0011.jpg 20 422 | data/office31/webcam/phone/frame_0012.jpg 20 423 | data/office31/webcam/phone/frame_0013.jpg 20 424 | data/office31/webcam/phone/frame_0014.jpg 20 425 | data/office31/webcam/phone/frame_0015.jpg 20 426 | data/office31/webcam/phone/frame_0016.jpg 20 427 | data/office31/webcam/tape_dispenser/frame_0001.jpg 29 428 | data/office31/webcam/tape_dispenser/frame_0002.jpg 29 429 | data/office31/webcam/tape_dispenser/frame_0003.jpg 29 430 | data/office31/webcam/tape_dispenser/frame_0004.jpg 29 431 | data/office31/webcam/tape_dispenser/frame_0005.jpg 29 432 | data/office31/webcam/tape_dispenser/frame_0006.jpg 29 433 | data/office31/webcam/tape_dispenser/frame_0007.jpg 29 434 | data/office31/webcam/tape_dispenser/frame_0008.jpg 29 435 | data/office31/webcam/tape_dispenser/frame_0009.jpg 29 436 | data/office31/webcam/tape_dispenser/frame_0010.jpg 29 437 | data/office31/webcam/tape_dispenser/frame_0011.jpg 29 438 | data/office31/webcam/tape_dispenser/frame_0012.jpg 29 439 | data/office31/webcam/tape_dispenser/frame_0013.jpg 29 440 | data/office31/webcam/tape_dispenser/frame_0014.jpg 29 441 | data/office31/webcam/tape_dispenser/frame_0015.jpg 29 442 | data/office31/webcam/tape_dispenser/frame_0016.jpg 29 443 | data/office31/webcam/tape_dispenser/frame_0017.jpg 29 444 | data/office31/webcam/tape_dispenser/frame_0018.jpg 29 445 | data/office31/webcam/tape_dispenser/frame_0019.jpg 29 446 | data/office31/webcam/tape_dispenser/frame_0020.jpg 29 447 | data/office31/webcam/tape_dispenser/frame_0021.jpg 29 448 | data/office31/webcam/tape_dispenser/frame_0022.jpg 29 449 | data/office31/webcam/tape_dispenser/frame_0023.jpg 29 450 | data/office31/webcam/mobile_phone/frame_0001.jpg 14 451 | data/office31/webcam/mobile_phone/frame_0002.jpg 14 452 | data/office31/webcam/mobile_phone/frame_0003.jpg 14 453 | data/office31/webcam/mobile_phone/frame_0004.jpg 14 454 | data/office31/webcam/mobile_phone/frame_0005.jpg 14 455 | data/office31/webcam/mobile_phone/frame_0006.jpg 14 456 | data/office31/webcam/mobile_phone/frame_0007.jpg 14 457 | data/office31/webcam/mobile_phone/frame_0008.jpg 14 458 | data/office31/webcam/mobile_phone/frame_0009.jpg 14 459 | data/office31/webcam/mobile_phone/frame_0010.jpg 14 460 | data/office31/webcam/mobile_phone/frame_0011.jpg 14 461 | data/office31/webcam/mobile_phone/frame_0012.jpg 14 462 | data/office31/webcam/mobile_phone/frame_0013.jpg 14 463 | data/office31/webcam/mobile_phone/frame_0014.jpg 14 464 | data/office31/webcam/mobile_phone/frame_0015.jpg 14 465 | data/office31/webcam/mobile_phone/frame_0016.jpg 14 466 | data/office31/webcam/mobile_phone/frame_0017.jpg 14 467 | data/office31/webcam/mobile_phone/frame_0018.jpg 14 468 | data/office31/webcam/mobile_phone/frame_0019.jpg 14 469 | data/office31/webcam/mobile_phone/frame_0020.jpg 14 470 | data/office31/webcam/mobile_phone/frame_0021.jpg 14 471 | data/office31/webcam/mobile_phone/frame_0022.jpg 14 472 | data/office31/webcam/mobile_phone/frame_0023.jpg 14 473 | data/office31/webcam/mobile_phone/frame_0024.jpg 14 474 | data/office31/webcam/mobile_phone/frame_0025.jpg 14 475 | data/office31/webcam/mobile_phone/frame_0026.jpg 14 476 | data/office31/webcam/mobile_phone/frame_0027.jpg 14 477 | data/office31/webcam/mobile_phone/frame_0028.jpg 14 478 | data/office31/webcam/mobile_phone/frame_0029.jpg 14 479 | data/office31/webcam/mobile_phone/frame_0030.jpg 14 480 | data/office31/webcam/desktop_computer/frame_0001.jpg 8 481 | data/office31/webcam/desktop_computer/frame_0002.jpg 8 482 | data/office31/webcam/desktop_computer/frame_0003.jpg 8 483 | data/office31/webcam/desktop_computer/frame_0004.jpg 8 484 | data/office31/webcam/desktop_computer/frame_0005.jpg 8 485 | data/office31/webcam/desktop_computer/frame_0006.jpg 8 486 | data/office31/webcam/desktop_computer/frame_0007.jpg 8 487 | data/office31/webcam/desktop_computer/frame_0008.jpg 8 488 | data/office31/webcam/desktop_computer/frame_0009.jpg 8 489 | data/office31/webcam/desktop_computer/frame_0010.jpg 8 490 | data/office31/webcam/desktop_computer/frame_0011.jpg 8 491 | data/office31/webcam/desktop_computer/frame_0012.jpg 8 492 | data/office31/webcam/desktop_computer/frame_0013.jpg 8 493 | data/office31/webcam/desktop_computer/frame_0014.jpg 8 494 | data/office31/webcam/desktop_computer/frame_0015.jpg 8 495 | data/office31/webcam/desktop_computer/frame_0016.jpg 8 496 | data/office31/webcam/desktop_computer/frame_0017.jpg 8 497 | data/office31/webcam/desktop_computer/frame_0018.jpg 8 498 | data/office31/webcam/desktop_computer/frame_0019.jpg 8 499 | data/office31/webcam/desktop_computer/frame_0020.jpg 8 500 | data/office31/webcam/desktop_computer/frame_0021.jpg 8 501 | data/office31/webcam/letter_tray/frame_0001.jpg 13 502 | data/office31/webcam/letter_tray/frame_0002.jpg 13 503 | data/office31/webcam/letter_tray/frame_0003.jpg 13 504 | data/office31/webcam/letter_tray/frame_0004.jpg 13 505 | data/office31/webcam/letter_tray/frame_0005.jpg 13 506 | data/office31/webcam/letter_tray/frame_0006.jpg 13 507 | data/office31/webcam/letter_tray/frame_0007.jpg 13 508 | data/office31/webcam/letter_tray/frame_0008.jpg 13 509 | data/office31/webcam/letter_tray/frame_0009.jpg 13 510 | data/office31/webcam/letter_tray/frame_0010.jpg 13 511 | data/office31/webcam/letter_tray/frame_0011.jpg 13 512 | data/office31/webcam/letter_tray/frame_0012.jpg 13 513 | data/office31/webcam/letter_tray/frame_0013.jpg 13 514 | data/office31/webcam/letter_tray/frame_0014.jpg 13 515 | data/office31/webcam/letter_tray/frame_0015.jpg 13 516 | data/office31/webcam/letter_tray/frame_0016.jpg 13 517 | data/office31/webcam/letter_tray/frame_0017.jpg 13 518 | data/office31/webcam/letter_tray/frame_0018.jpg 13 519 | data/office31/webcam/letter_tray/frame_0019.jpg 13 520 | data/office31/webcam/stapler/frame_0001.jpg 28 521 | data/office31/webcam/stapler/frame_0002.jpg 28 522 | data/office31/webcam/stapler/frame_0003.jpg 28 523 | data/office31/webcam/stapler/frame_0004.jpg 28 524 | data/office31/webcam/stapler/frame_0005.jpg 28 525 | data/office31/webcam/stapler/frame_0006.jpg 28 526 | data/office31/webcam/stapler/frame_0007.jpg 28 527 | data/office31/webcam/stapler/frame_0008.jpg 28 528 | data/office31/webcam/stapler/frame_0009.jpg 28 529 | data/office31/webcam/stapler/frame_0010.jpg 28 530 | data/office31/webcam/stapler/frame_0011.jpg 28 531 | data/office31/webcam/stapler/frame_0012.jpg 28 532 | data/office31/webcam/stapler/frame_0013.jpg 28 533 | data/office31/webcam/stapler/frame_0014.jpg 28 534 | data/office31/webcam/stapler/frame_0015.jpg 28 535 | data/office31/webcam/stapler/frame_0016.jpg 28 536 | data/office31/webcam/stapler/frame_0017.jpg 28 537 | data/office31/webcam/stapler/frame_0018.jpg 28 538 | data/office31/webcam/stapler/frame_0019.jpg 28 539 | data/office31/webcam/stapler/frame_0020.jpg 28 540 | data/office31/webcam/stapler/frame_0021.jpg 28 541 | data/office31/webcam/stapler/frame_0022.jpg 28 542 | data/office31/webcam/stapler/frame_0023.jpg 28 543 | data/office31/webcam/stapler/frame_0024.jpg 28 544 | data/office31/webcam/file_cabinet/frame_0001.jpg 9 545 | data/office31/webcam/file_cabinet/frame_0002.jpg 9 546 | data/office31/webcam/file_cabinet/frame_0003.jpg 9 547 | data/office31/webcam/file_cabinet/frame_0004.jpg 9 548 | data/office31/webcam/file_cabinet/frame_0005.jpg 9 549 | data/office31/webcam/file_cabinet/frame_0006.jpg 9 550 | data/office31/webcam/file_cabinet/frame_0007.jpg 9 551 | data/office31/webcam/file_cabinet/frame_0008.jpg 9 552 | data/office31/webcam/file_cabinet/frame_0009.jpg 9 553 | data/office31/webcam/file_cabinet/frame_0010.jpg 9 554 | data/office31/webcam/file_cabinet/frame_0011.jpg 9 555 | data/office31/webcam/file_cabinet/frame_0012.jpg 9 556 | data/office31/webcam/file_cabinet/frame_0013.jpg 9 557 | data/office31/webcam/file_cabinet/frame_0014.jpg 9 558 | data/office31/webcam/file_cabinet/frame_0015.jpg 9 559 | data/office31/webcam/file_cabinet/frame_0016.jpg 9 560 | data/office31/webcam/file_cabinet/frame_0017.jpg 9 561 | data/office31/webcam/file_cabinet/frame_0018.jpg 9 562 | data/office31/webcam/file_cabinet/frame_0019.jpg 9 563 | data/office31/webcam/bottle/frame_0001.jpg 4 564 | data/office31/webcam/bottle/frame_0002.jpg 4 565 | data/office31/webcam/bottle/frame_0003.jpg 4 566 | data/office31/webcam/bottle/frame_0004.jpg 4 567 | data/office31/webcam/bottle/frame_0005.jpg 4 568 | data/office31/webcam/bottle/frame_0006.jpg 4 569 | data/office31/webcam/bottle/frame_0007.jpg 4 570 | data/office31/webcam/bottle/frame_0008.jpg 4 571 | data/office31/webcam/bottle/frame_0009.jpg 4 572 | data/office31/webcam/bottle/frame_0010.jpg 4 573 | data/office31/webcam/bottle/frame_0011.jpg 4 574 | data/office31/webcam/bottle/frame_0012.jpg 4 575 | data/office31/webcam/bottle/frame_0013.jpg 4 576 | data/office31/webcam/bottle/frame_0014.jpg 4 577 | data/office31/webcam/bottle/frame_0015.jpg 4 578 | data/office31/webcam/bottle/frame_0016.jpg 4 579 | data/office31/webcam/printer/frame_0001.jpg 21 580 | data/office31/webcam/printer/frame_0002.jpg 21 581 | data/office31/webcam/printer/frame_0003.jpg 21 582 | data/office31/webcam/printer/frame_0004.jpg 21 583 | data/office31/webcam/printer/frame_0005.jpg 21 584 | data/office31/webcam/printer/frame_0006.jpg 21 585 | data/office31/webcam/printer/frame_0007.jpg 21 586 | data/office31/webcam/printer/frame_0008.jpg 21 587 | data/office31/webcam/printer/frame_0009.jpg 21 588 | data/office31/webcam/printer/frame_0010.jpg 21 589 | data/office31/webcam/printer/frame_0011.jpg 21 590 | data/office31/webcam/printer/frame_0012.jpg 21 591 | data/office31/webcam/printer/frame_0013.jpg 21 592 | data/office31/webcam/printer/frame_0014.jpg 21 593 | data/office31/webcam/printer/frame_0015.jpg 21 594 | data/office31/webcam/printer/frame_0016.jpg 21 595 | data/office31/webcam/printer/frame_0017.jpg 21 596 | data/office31/webcam/printer/frame_0018.jpg 21 597 | data/office31/webcam/printer/frame_0019.jpg 21 598 | data/office31/webcam/printer/frame_0020.jpg 21 599 | data/office31/webcam/ring_binder/frame_0001.jpg 24 600 | data/office31/webcam/ring_binder/frame_0002.jpg 24 601 | data/office31/webcam/ring_binder/frame_0003.jpg 24 602 | data/office31/webcam/ring_binder/frame_0004.jpg 24 603 | data/office31/webcam/ring_binder/frame_0005.jpg 24 604 | data/office31/webcam/ring_binder/frame_0006.jpg 24 605 | data/office31/webcam/ring_binder/frame_0007.jpg 24 606 | data/office31/webcam/ring_binder/frame_0008.jpg 24 607 | data/office31/webcam/ring_binder/frame_0009.jpg 24 608 | data/office31/webcam/ring_binder/frame_0010.jpg 24 609 | data/office31/webcam/ring_binder/frame_0011.jpg 24 610 | data/office31/webcam/ring_binder/frame_0012.jpg 24 611 | data/office31/webcam/ring_binder/frame_0013.jpg 24 612 | data/office31/webcam/ring_binder/frame_0014.jpg 24 613 | data/office31/webcam/ring_binder/frame_0015.jpg 24 614 | data/office31/webcam/ring_binder/frame_0016.jpg 24 615 | data/office31/webcam/ring_binder/frame_0017.jpg 24 616 | data/office31/webcam/ring_binder/frame_0018.jpg 24 617 | data/office31/webcam/ring_binder/frame_0019.jpg 24 618 | data/office31/webcam/ring_binder/frame_0020.jpg 24 619 | data/office31/webcam/ring_binder/frame_0021.jpg 24 620 | data/office31/webcam/ring_binder/frame_0022.jpg 24 621 | data/office31/webcam/ring_binder/frame_0023.jpg 24 622 | data/office31/webcam/ring_binder/frame_0024.jpg 24 623 | data/office31/webcam/ring_binder/frame_0025.jpg 24 624 | data/office31/webcam/ring_binder/frame_0026.jpg 24 625 | data/office31/webcam/ring_binder/frame_0027.jpg 24 626 | data/office31/webcam/ring_binder/frame_0028.jpg 24 627 | data/office31/webcam/ring_binder/frame_0029.jpg 24 628 | data/office31/webcam/ring_binder/frame_0030.jpg 24 629 | data/office31/webcam/ring_binder/frame_0031.jpg 24 630 | data/office31/webcam/ring_binder/frame_0032.jpg 24 631 | data/office31/webcam/ring_binder/frame_0033.jpg 24 632 | data/office31/webcam/ring_binder/frame_0034.jpg 24 633 | data/office31/webcam/ring_binder/frame_0035.jpg 24 634 | data/office31/webcam/ring_binder/frame_0036.jpg 24 635 | data/office31/webcam/ring_binder/frame_0037.jpg 24 636 | data/office31/webcam/ring_binder/frame_0038.jpg 24 637 | data/office31/webcam/ring_binder/frame_0039.jpg 24 638 | data/office31/webcam/ring_binder/frame_0040.jpg 24 639 | data/office31/webcam/bookcase/frame_0001.jpg 3 640 | data/office31/webcam/bookcase/frame_0002.jpg 3 641 | data/office31/webcam/bookcase/frame_0003.jpg 3 642 | data/office31/webcam/bookcase/frame_0004.jpg 3 643 | data/office31/webcam/bookcase/frame_0005.jpg 3 644 | data/office31/webcam/bookcase/frame_0006.jpg 3 645 | data/office31/webcam/bookcase/frame_0007.jpg 3 646 | data/office31/webcam/bookcase/frame_0008.jpg 3 647 | data/office31/webcam/bookcase/frame_0009.jpg 3 648 | data/office31/webcam/bookcase/frame_0010.jpg 3 649 | data/office31/webcam/bookcase/frame_0011.jpg 3 650 | data/office31/webcam/bookcase/frame_0012.jpg 3 651 | data/office31/webcam/bike_helmet/frame_0001.jpg 2 652 | data/office31/webcam/bike_helmet/frame_0002.jpg 2 653 | data/office31/webcam/bike_helmet/frame_0003.jpg 2 654 | data/office31/webcam/bike_helmet/frame_0004.jpg 2 655 | data/office31/webcam/bike_helmet/frame_0005.jpg 2 656 | data/office31/webcam/bike_helmet/frame_0006.jpg 2 657 | data/office31/webcam/bike_helmet/frame_0007.jpg 2 658 | data/office31/webcam/bike_helmet/frame_0008.jpg 2 659 | data/office31/webcam/bike_helmet/frame_0009.jpg 2 660 | data/office31/webcam/bike_helmet/frame_0010.jpg 2 661 | data/office31/webcam/bike_helmet/frame_0011.jpg 2 662 | data/office31/webcam/bike_helmet/frame_0012.jpg 2 663 | data/office31/webcam/bike_helmet/frame_0013.jpg 2 664 | data/office31/webcam/bike_helmet/frame_0014.jpg 2 665 | data/office31/webcam/bike_helmet/frame_0015.jpg 2 666 | data/office31/webcam/bike_helmet/frame_0016.jpg 2 667 | data/office31/webcam/bike_helmet/frame_0017.jpg 2 668 | data/office31/webcam/bike_helmet/frame_0018.jpg 2 669 | data/office31/webcam/bike_helmet/frame_0019.jpg 2 670 | data/office31/webcam/bike_helmet/frame_0020.jpg 2 671 | data/office31/webcam/bike_helmet/frame_0021.jpg 2 672 | data/office31/webcam/bike_helmet/frame_0022.jpg 2 673 | data/office31/webcam/bike_helmet/frame_0023.jpg 2 674 | data/office31/webcam/bike_helmet/frame_0024.jpg 2 675 | data/office31/webcam/bike_helmet/frame_0025.jpg 2 676 | data/office31/webcam/bike_helmet/frame_0026.jpg 2 677 | data/office31/webcam/bike_helmet/frame_0027.jpg 2 678 | data/office31/webcam/bike_helmet/frame_0028.jpg 2 679 | data/office31/webcam/scissors/frame_0001.jpg 26 680 | data/office31/webcam/scissors/frame_0002.jpg 26 681 | data/office31/webcam/scissors/frame_0003.jpg 26 682 | data/office31/webcam/scissors/frame_0004.jpg 26 683 | data/office31/webcam/scissors/frame_0005.jpg 26 684 | data/office31/webcam/scissors/frame_0006.jpg 26 685 | data/office31/webcam/scissors/frame_0007.jpg 26 686 | data/office31/webcam/scissors/frame_0008.jpg 26 687 | data/office31/webcam/scissors/frame_0009.jpg 26 688 | data/office31/webcam/scissors/frame_0010.jpg 26 689 | data/office31/webcam/scissors/frame_0011.jpg 26 690 | data/office31/webcam/scissors/frame_0012.jpg 26 691 | data/office31/webcam/scissors/frame_0013.jpg 26 692 | data/office31/webcam/scissors/frame_0014.jpg 26 693 | data/office31/webcam/scissors/frame_0015.jpg 26 694 | data/office31/webcam/scissors/frame_0016.jpg 26 695 | data/office31/webcam/scissors/frame_0017.jpg 26 696 | data/office31/webcam/scissors/frame_0018.jpg 26 697 | data/office31/webcam/scissors/frame_0019.jpg 26 698 | data/office31/webcam/scissors/frame_0020.jpg 26 699 | data/office31/webcam/scissors/frame_0021.jpg 26 700 | data/office31/webcam/scissors/frame_0022.jpg 26 701 | data/office31/webcam/scissors/frame_0023.jpg 26 702 | data/office31/webcam/scissors/frame_0024.jpg 26 703 | data/office31/webcam/scissors/frame_0025.jpg 26 704 | data/office31/webcam/pen/frame_0001.jpg 19 705 | data/office31/webcam/pen/frame_0002.jpg 19 706 | data/office31/webcam/pen/frame_0003.jpg 19 707 | data/office31/webcam/pen/frame_0004.jpg 19 708 | data/office31/webcam/pen/frame_0005.jpg 19 709 | data/office31/webcam/pen/frame_0006.jpg 19 710 | data/office31/webcam/pen/frame_0007.jpg 19 711 | data/office31/webcam/pen/frame_0008.jpg 19 712 | data/office31/webcam/pen/frame_0009.jpg 19 713 | data/office31/webcam/pen/frame_0010.jpg 19 714 | data/office31/webcam/pen/frame_0011.jpg 19 715 | data/office31/webcam/pen/frame_0012.jpg 19 716 | data/office31/webcam/pen/frame_0013.jpg 19 717 | data/office31/webcam/pen/frame_0014.jpg 19 718 | data/office31/webcam/pen/frame_0015.jpg 19 719 | data/office31/webcam/pen/frame_0016.jpg 19 720 | data/office31/webcam/pen/frame_0017.jpg 19 721 | data/office31/webcam/pen/frame_0018.jpg 19 722 | data/office31/webcam/pen/frame_0019.jpg 19 723 | data/office31/webcam/pen/frame_0020.jpg 19 724 | data/office31/webcam/pen/frame_0021.jpg 19 725 | data/office31/webcam/pen/frame_0022.jpg 19 726 | data/office31/webcam/pen/frame_0023.jpg 19 727 | data/office31/webcam/pen/frame_0024.jpg 19 728 | data/office31/webcam/pen/frame_0025.jpg 19 729 | data/office31/webcam/pen/frame_0026.jpg 19 730 | data/office31/webcam/pen/frame_0027.jpg 19 731 | data/office31/webcam/pen/frame_0028.jpg 19 732 | data/office31/webcam/pen/frame_0029.jpg 19 733 | data/office31/webcam/pen/frame_0030.jpg 19 734 | data/office31/webcam/pen/frame_0031.jpg 19 735 | data/office31/webcam/pen/frame_0032.jpg 19 736 | data/office31/webcam/paper_notebook/frame_0001.jpg 18 737 | data/office31/webcam/paper_notebook/frame_0002.jpg 18 738 | data/office31/webcam/paper_notebook/frame_0003.jpg 18 739 | data/office31/webcam/paper_notebook/frame_0004.jpg 18 740 | data/office31/webcam/paper_notebook/frame_0005.jpg 18 741 | data/office31/webcam/paper_notebook/frame_0006.jpg 18 742 | data/office31/webcam/paper_notebook/frame_0007.jpg 18 743 | data/office31/webcam/paper_notebook/frame_0008.jpg 18 744 | data/office31/webcam/paper_notebook/frame_0009.jpg 18 745 | data/office31/webcam/paper_notebook/frame_0010.jpg 18 746 | data/office31/webcam/paper_notebook/frame_0011.jpg 18 747 | data/office31/webcam/paper_notebook/frame_0012.jpg 18 748 | data/office31/webcam/paper_notebook/frame_0013.jpg 18 749 | data/office31/webcam/paper_notebook/frame_0014.jpg 18 750 | data/office31/webcam/paper_notebook/frame_0015.jpg 18 751 | data/office31/webcam/paper_notebook/frame_0016.jpg 18 752 | data/office31/webcam/paper_notebook/frame_0017.jpg 18 753 | data/office31/webcam/paper_notebook/frame_0018.jpg 18 754 | data/office31/webcam/paper_notebook/frame_0019.jpg 18 755 | data/office31/webcam/paper_notebook/frame_0020.jpg 18 756 | data/office31/webcam/paper_notebook/frame_0021.jpg 18 757 | data/office31/webcam/paper_notebook/frame_0022.jpg 18 758 | data/office31/webcam/paper_notebook/frame_0023.jpg 18 759 | data/office31/webcam/paper_notebook/frame_0024.jpg 18 760 | data/office31/webcam/paper_notebook/frame_0025.jpg 18 761 | data/office31/webcam/paper_notebook/frame_0026.jpg 18 762 | data/office31/webcam/paper_notebook/frame_0027.jpg 18 763 | data/office31/webcam/paper_notebook/frame_0028.jpg 18 764 | data/office31/webcam/trash_can/frame_0001.jpg 30 765 | data/office31/webcam/trash_can/frame_0002.jpg 30 766 | data/office31/webcam/trash_can/frame_0003.jpg 30 767 | data/office31/webcam/trash_can/frame_0004.jpg 30 768 | data/office31/webcam/trash_can/frame_0005.jpg 30 769 | data/office31/webcam/trash_can/frame_0006.jpg 30 770 | data/office31/webcam/trash_can/frame_0007.jpg 30 771 | data/office31/webcam/trash_can/frame_0008.jpg 30 772 | data/office31/webcam/trash_can/frame_0009.jpg 30 773 | data/office31/webcam/trash_can/frame_0010.jpg 30 774 | data/office31/webcam/trash_can/frame_0011.jpg 30 775 | data/office31/webcam/trash_can/frame_0012.jpg 30 776 | data/office31/webcam/trash_can/frame_0013.jpg 30 777 | data/office31/webcam/trash_can/frame_0014.jpg 30 778 | data/office31/webcam/trash_can/frame_0015.jpg 30 779 | data/office31/webcam/trash_can/frame_0016.jpg 30 780 | data/office31/webcam/trash_can/frame_0017.jpg 30 781 | data/office31/webcam/trash_can/frame_0018.jpg 30 782 | data/office31/webcam/trash_can/frame_0019.jpg 30 783 | data/office31/webcam/trash_can/frame_0020.jpg 30 784 | data/office31/webcam/trash_can/frame_0021.jpg 30 785 | data/office31/webcam/ruler/frame_0001.jpg 25 786 | data/office31/webcam/ruler/frame_0002.jpg 25 787 | data/office31/webcam/ruler/frame_0003.jpg 25 788 | data/office31/webcam/ruler/frame_0004.jpg 25 789 | data/office31/webcam/ruler/frame_0005.jpg 25 790 | data/office31/webcam/ruler/frame_0006.jpg 25 791 | data/office31/webcam/ruler/frame_0007.jpg 25 792 | data/office31/webcam/ruler/frame_0008.jpg 25 793 | data/office31/webcam/ruler/frame_0009.jpg 25 794 | data/office31/webcam/ruler/frame_0010.jpg 25 795 | data/office31/webcam/ruler/frame_0011.jpg 25 796 | -------------------------------------------------------------------------------- /data/list/office/webcam_train.txt: -------------------------------------------------------------------------------- 1 | data/office31/webcam/back_pack/frame_0003.jpg 0 2 | data/office31/webcam/back_pack/frame_0001.jpg 0 3 | data/office31/webcam/back_pack/frame_0024.jpg 0 4 | data/office31/webcam/back_pack/frame_0017.jpg 0 5 | data/office31/webcam/back_pack/frame_0029.jpg 0 6 | data/office31/webcam/back_pack/frame_0027.jpg 0 7 | data/office31/webcam/back_pack/frame_0011.jpg 0 8 | data/office31/webcam/back_pack/frame_0004.jpg 0 9 | data/office31/webcam/back_pack/frame_0012.jpg 0 10 | data/office31/webcam/back_pack/frame_0009.jpg 0 11 | data/office31/webcam/back_pack/frame_0016.jpg 0 12 | data/office31/webcam/back_pack/frame_0021.jpg 0 13 | data/office31/webcam/back_pack/frame_0005.jpg 0 14 | data/office31/webcam/back_pack/frame_0020.jpg 0 15 | data/office31/webcam/back_pack/frame_0013.jpg 0 16 | data/office31/webcam/back_pack/frame_0026.jpg 0 17 | data/office31/webcam/back_pack/frame_0015.jpg 0 18 | data/office31/webcam/back_pack/frame_0006.jpg 0 19 | data/office31/webcam/back_pack/frame_0018.jpg 0 20 | data/office31/webcam/back_pack/frame_0008.jpg 0 21 | data/office31/webcam/back_pack/frame_0028.jpg 0 22 | data/office31/webcam/back_pack/frame_0022.jpg 0 23 | data/office31/webcam/back_pack/frame_0014.jpg 0 24 | data/office31/webcam/back_pack/frame_0025.jpg 0 25 | data/office31/webcam/back_pack/frame_0019.jpg 0 26 | data/office31/webcam/back_pack/frame_0002.jpg 0 27 | data/office31/webcam/back_pack/frame_0023.jpg 0 28 | data/office31/webcam/back_pack/frame_0007.jpg 0 29 | data/office31/webcam/back_pack/frame_0010.jpg 0 30 | data/office31/webcam/bike/frame_0009.jpg 1 31 | data/office31/webcam/bike/frame_0002.jpg 1 32 | data/office31/webcam/bike/frame_0012.jpg 1 33 | data/office31/webcam/bike/frame_0019.jpg 1 34 | data/office31/webcam/bike/frame_0010.jpg 1 35 | data/office31/webcam/bike/frame_0021.jpg 1 36 | data/office31/webcam/bike/frame_0003.jpg 1 37 | data/office31/webcam/bike/frame_0015.jpg 1 38 | data/office31/webcam/bike/frame_0011.jpg 1 39 | data/office31/webcam/bike/frame_0005.jpg 1 40 | data/office31/webcam/bike/frame_0014.jpg 1 41 | data/office31/webcam/bike/frame_0001.jpg 1 42 | data/office31/webcam/bike/frame_0017.jpg 1 43 | data/office31/webcam/bike/frame_0013.jpg 1 44 | data/office31/webcam/bike/frame_0007.jpg 1 45 | data/office31/webcam/bike/frame_0006.jpg 1 46 | data/office31/webcam/bike/frame_0004.jpg 1 47 | data/office31/webcam/bike/frame_0016.jpg 1 48 | data/office31/webcam/bike/frame_0018.jpg 1 49 | data/office31/webcam/bike/frame_0020.jpg 1 50 | data/office31/webcam/bike/frame_0008.jpg 1 51 | data/office31/webcam/calculator/frame_0013.jpg 5 52 | data/office31/webcam/calculator/frame_0001.jpg 5 53 | data/office31/webcam/calculator/frame_0009.jpg 5 54 | data/office31/webcam/calculator/frame_0018.jpg 5 55 | data/office31/webcam/calculator/frame_0014.jpg 5 56 | data/office31/webcam/calculator/frame_0005.jpg 5 57 | data/office31/webcam/calculator/frame_0004.jpg 5 58 | data/office31/webcam/calculator/frame_0012.jpg 5 59 | data/office31/webcam/calculator/frame_0025.jpg 5 60 | data/office31/webcam/calculator/frame_0019.jpg 5 61 | data/office31/webcam/calculator/frame_0023.jpg 5 62 | data/office31/webcam/calculator/frame_0031.jpg 5 63 | data/office31/webcam/calculator/frame_0020.jpg 5 64 | data/office31/webcam/calculator/frame_0027.jpg 5 65 | data/office31/webcam/calculator/frame_0016.jpg 5 66 | data/office31/webcam/calculator/frame_0015.jpg 5 67 | data/office31/webcam/calculator/frame_0030.jpg 5 68 | data/office31/webcam/calculator/frame_0022.jpg 5 69 | data/office31/webcam/calculator/frame_0029.jpg 5 70 | data/office31/webcam/calculator/frame_0024.jpg 5 71 | data/office31/webcam/calculator/frame_0008.jpg 5 72 | data/office31/webcam/calculator/frame_0002.jpg 5 73 | data/office31/webcam/calculator/frame_0021.jpg 5 74 | data/office31/webcam/calculator/frame_0010.jpg 5 75 | data/office31/webcam/calculator/frame_0017.jpg 5 76 | data/office31/webcam/calculator/frame_0007.jpg 5 77 | data/office31/webcam/calculator/frame_0006.jpg 5 78 | data/office31/webcam/calculator/frame_0011.jpg 5 79 | data/office31/webcam/calculator/frame_0028.jpg 5 80 | data/office31/webcam/calculator/frame_0026.jpg 5 81 | data/office31/webcam/calculator/frame_0003.jpg 5 82 | data/office31/webcam/headphones/frame_0009.jpg 10 83 | data/office31/webcam/headphones/frame_0006.jpg 10 84 | data/office31/webcam/headphones/frame_0001.jpg 10 85 | data/office31/webcam/headphones/frame_0027.jpg 10 86 | data/office31/webcam/headphones/frame_0017.jpg 10 87 | data/office31/webcam/headphones/frame_0026.jpg 10 88 | data/office31/webcam/headphones/frame_0020.jpg 10 89 | data/office31/webcam/headphones/frame_0015.jpg 10 90 | data/office31/webcam/headphones/frame_0016.jpg 10 91 | data/office31/webcam/headphones/frame_0019.jpg 10 92 | data/office31/webcam/headphones/frame_0013.jpg 10 93 | data/office31/webcam/headphones/frame_0002.jpg 10 94 | data/office31/webcam/headphones/frame_0023.jpg 10 95 | data/office31/webcam/headphones/frame_0003.jpg 10 96 | data/office31/webcam/headphones/frame_0010.jpg 10 97 | data/office31/webcam/headphones/frame_0012.jpg 10 98 | data/office31/webcam/headphones/frame_0011.jpg 10 99 | data/office31/webcam/headphones/frame_0007.jpg 10 100 | data/office31/webcam/headphones/frame_0005.jpg 10 101 | data/office31/webcam/headphones/frame_0004.jpg 10 102 | data/office31/webcam/headphones/frame_0022.jpg 10 103 | data/office31/webcam/headphones/frame_0024.jpg 10 104 | data/office31/webcam/headphones/frame_0018.jpg 10 105 | data/office31/webcam/headphones/frame_0025.jpg 10 106 | data/office31/webcam/headphones/frame_0021.jpg 10 107 | data/office31/webcam/headphones/frame_0008.jpg 10 108 | data/office31/webcam/headphones/frame_0014.jpg 10 109 | data/office31/webcam/keyboard/frame_0004.jpg 11 110 | data/office31/webcam/keyboard/frame_0020.jpg 11 111 | data/office31/webcam/keyboard/frame_0013.jpg 11 112 | data/office31/webcam/keyboard/frame_0003.jpg 11 113 | data/office31/webcam/keyboard/frame_0021.jpg 11 114 | data/office31/webcam/keyboard/frame_0001.jpg 11 115 | data/office31/webcam/keyboard/frame_0011.jpg 11 116 | data/office31/webcam/keyboard/frame_0022.jpg 11 117 | data/office31/webcam/keyboard/frame_0027.jpg 11 118 | data/office31/webcam/keyboard/frame_0007.jpg 11 119 | data/office31/webcam/keyboard/frame_0015.jpg 11 120 | data/office31/webcam/keyboard/frame_0005.jpg 11 121 | data/office31/webcam/keyboard/frame_0014.jpg 11 122 | data/office31/webcam/keyboard/frame_0019.jpg 11 123 | data/office31/webcam/keyboard/frame_0006.jpg 11 124 | data/office31/webcam/keyboard/frame_0010.jpg 11 125 | data/office31/webcam/keyboard/frame_0025.jpg 11 126 | data/office31/webcam/keyboard/frame_0008.jpg 11 127 | data/office31/webcam/keyboard/frame_0023.jpg 11 128 | data/office31/webcam/keyboard/frame_0026.jpg 11 129 | data/office31/webcam/keyboard/frame_0002.jpg 11 130 | data/office31/webcam/keyboard/frame_0017.jpg 11 131 | data/office31/webcam/keyboard/frame_0012.jpg 11 132 | data/office31/webcam/keyboard/frame_0016.jpg 11 133 | data/office31/webcam/keyboard/frame_0024.jpg 11 134 | data/office31/webcam/keyboard/frame_0018.jpg 11 135 | data/office31/webcam/keyboard/frame_0009.jpg 11 136 | data/office31/webcam/laptop_computer/frame_0017.jpg 12 137 | data/office31/webcam/laptop_computer/frame_0007.jpg 12 138 | data/office31/webcam/laptop_computer/frame_0010.jpg 12 139 | data/office31/webcam/laptop_computer/frame_0019.jpg 12 140 | data/office31/webcam/laptop_computer/frame_0005.jpg 12 141 | data/office31/webcam/laptop_computer/frame_0030.jpg 12 142 | data/office31/webcam/laptop_computer/frame_0012.jpg 12 143 | data/office31/webcam/laptop_computer/frame_0014.jpg 12 144 | data/office31/webcam/laptop_computer/frame_0015.jpg 12 145 | data/office31/webcam/laptop_computer/frame_0018.jpg 12 146 | data/office31/webcam/laptop_computer/frame_0003.jpg 12 147 | data/office31/webcam/laptop_computer/frame_0016.jpg 12 148 | data/office31/webcam/laptop_computer/frame_0001.jpg 12 149 | data/office31/webcam/laptop_computer/frame_0023.jpg 12 150 | data/office31/webcam/laptop_computer/frame_0020.jpg 12 151 | data/office31/webcam/laptop_computer/frame_0006.jpg 12 152 | data/office31/webcam/laptop_computer/frame_0009.jpg 12 153 | data/office31/webcam/laptop_computer/frame_0024.jpg 12 154 | data/office31/webcam/laptop_computer/frame_0025.jpg 12 155 | data/office31/webcam/laptop_computer/frame_0013.jpg 12 156 | data/office31/webcam/laptop_computer/frame_0029.jpg 12 157 | data/office31/webcam/laptop_computer/frame_0027.jpg 12 158 | data/office31/webcam/laptop_computer/frame_0026.jpg 12 159 | data/office31/webcam/laptop_computer/frame_0011.jpg 12 160 | data/office31/webcam/laptop_computer/frame_0002.jpg 12 161 | data/office31/webcam/laptop_computer/frame_0008.jpg 12 162 | data/office31/webcam/laptop_computer/frame_0028.jpg 12 163 | data/office31/webcam/laptop_computer/frame_0022.jpg 12 164 | data/office31/webcam/laptop_computer/frame_0021.jpg 12 165 | data/office31/webcam/laptop_computer/frame_0004.jpg 12 166 | data/office31/webcam/monitor/frame_0014.jpg 15 167 | data/office31/webcam/monitor/frame_0027.jpg 15 168 | data/office31/webcam/monitor/frame_0029.jpg 15 169 | data/office31/webcam/monitor/frame_0015.jpg 15 170 | data/office31/webcam/monitor/frame_0020.jpg 15 171 | data/office31/webcam/monitor/frame_0007.jpg 15 172 | data/office31/webcam/monitor/frame_0038.jpg 15 173 | data/office31/webcam/monitor/frame_0037.jpg 15 174 | data/office31/webcam/monitor/frame_0004.jpg 15 175 | data/office31/webcam/monitor/frame_0040.jpg 15 176 | data/office31/webcam/monitor/frame_0002.jpg 15 177 | data/office31/webcam/monitor/frame_0025.jpg 15 178 | data/office31/webcam/monitor/frame_0001.jpg 15 179 | data/office31/webcam/monitor/frame_0032.jpg 15 180 | data/office31/webcam/monitor/frame_0012.jpg 15 181 | data/office31/webcam/monitor/frame_0042.jpg 15 182 | data/office31/webcam/monitor/frame_0005.jpg 15 183 | data/office31/webcam/monitor/frame_0016.jpg 15 184 | data/office31/webcam/monitor/frame_0022.jpg 15 185 | data/office31/webcam/monitor/frame_0031.jpg 15 186 | data/office31/webcam/monitor/frame_0017.jpg 15 187 | data/office31/webcam/monitor/frame_0023.jpg 15 188 | data/office31/webcam/monitor/frame_0008.jpg 15 189 | data/office31/webcam/monitor/frame_0034.jpg 15 190 | data/office31/webcam/monitor/frame_0010.jpg 15 191 | data/office31/webcam/monitor/frame_0039.jpg 15 192 | data/office31/webcam/monitor/frame_0043.jpg 15 193 | data/office31/webcam/monitor/frame_0030.jpg 15 194 | data/office31/webcam/monitor/frame_0009.jpg 15 195 | data/office31/webcam/monitor/frame_0026.jpg 15 196 | data/office31/webcam/monitor/frame_0013.jpg 15 197 | data/office31/webcam/monitor/frame_0011.jpg 15 198 | data/office31/webcam/monitor/frame_0003.jpg 15 199 | data/office31/webcam/monitor/frame_0018.jpg 15 200 | data/office31/webcam/monitor/frame_0033.jpg 15 201 | data/office31/webcam/monitor/frame_0019.jpg 15 202 | data/office31/webcam/monitor/frame_0006.jpg 15 203 | data/office31/webcam/monitor/frame_0021.jpg 15 204 | data/office31/webcam/monitor/frame_0028.jpg 15 205 | data/office31/webcam/monitor/frame_0036.jpg 15 206 | data/office31/webcam/monitor/frame_0035.jpg 15 207 | data/office31/webcam/monitor/frame_0024.jpg 15 208 | data/office31/webcam/monitor/frame_0041.jpg 15 209 | data/office31/webcam/mouse/frame_0030.jpg 16 210 | data/office31/webcam/mouse/frame_0014.jpg 16 211 | data/office31/webcam/mouse/frame_0024.jpg 16 212 | data/office31/webcam/mouse/frame_0006.jpg 16 213 | data/office31/webcam/mouse/frame_0010.jpg 16 214 | data/office31/webcam/mouse/frame_0015.jpg 16 215 | data/office31/webcam/mouse/frame_0027.jpg 16 216 | data/office31/webcam/mouse/frame_0017.jpg 16 217 | data/office31/webcam/mouse/frame_0018.jpg 16 218 | data/office31/webcam/mouse/frame_0016.jpg 16 219 | data/office31/webcam/mouse/frame_0029.jpg 16 220 | data/office31/webcam/mouse/frame_0002.jpg 16 221 | data/office31/webcam/mouse/frame_0022.jpg 16 222 | data/office31/webcam/mouse/frame_0025.jpg 16 223 | data/office31/webcam/mouse/frame_0020.jpg 16 224 | data/office31/webcam/mouse/frame_0023.jpg 16 225 | data/office31/webcam/mouse/frame_0026.jpg 16 226 | data/office31/webcam/mouse/frame_0021.jpg 16 227 | data/office31/webcam/mouse/frame_0028.jpg 16 228 | data/office31/webcam/mouse/frame_0009.jpg 16 229 | data/office31/webcam/mouse/frame_0008.jpg 16 230 | data/office31/webcam/mouse/frame_0001.jpg 16 231 | data/office31/webcam/mouse/frame_0003.jpg 16 232 | data/office31/webcam/mouse/frame_0004.jpg 16 233 | data/office31/webcam/mouse/frame_0013.jpg 16 234 | data/office31/webcam/mouse/frame_0007.jpg 16 235 | data/office31/webcam/mouse/frame_0011.jpg 16 236 | data/office31/webcam/mouse/frame_0012.jpg 16 237 | data/office31/webcam/mouse/frame_0019.jpg 16 238 | data/office31/webcam/mouse/frame_0005.jpg 16 239 | data/office31/webcam/mug/frame_0024.jpg 17 240 | data/office31/webcam/mug/frame_0013.jpg 17 241 | data/office31/webcam/mug/frame_0009.jpg 17 242 | data/office31/webcam/mug/frame_0025.jpg 17 243 | data/office31/webcam/mug/frame_0017.jpg 17 244 | data/office31/webcam/mug/frame_0005.jpg 17 245 | data/office31/webcam/mug/frame_0016.jpg 17 246 | data/office31/webcam/mug/frame_0011.jpg 17 247 | data/office31/webcam/mug/frame_0022.jpg 17 248 | data/office31/webcam/mug/frame_0010.jpg 17 249 | data/office31/webcam/mug/frame_0007.jpg 17 250 | data/office31/webcam/mug/frame_0003.jpg 17 251 | data/office31/webcam/mug/frame_0023.jpg 17 252 | data/office31/webcam/mug/frame_0020.jpg 17 253 | data/office31/webcam/mug/frame_0026.jpg 17 254 | data/office31/webcam/mug/frame_0027.jpg 17 255 | data/office31/webcam/mug/frame_0012.jpg 17 256 | data/office31/webcam/mug/frame_0006.jpg 17 257 | data/office31/webcam/mug/frame_0018.jpg 17 258 | data/office31/webcam/mug/frame_0004.jpg 17 259 | data/office31/webcam/mug/frame_0008.jpg 17 260 | data/office31/webcam/mug/frame_0002.jpg 17 261 | data/office31/webcam/mug/frame_0021.jpg 17 262 | data/office31/webcam/mug/frame_0014.jpg 17 263 | data/office31/webcam/mug/frame_0019.jpg 17 264 | data/office31/webcam/mug/frame_0015.jpg 17 265 | data/office31/webcam/mug/frame_0001.jpg 17 266 | data/office31/webcam/projector/frame_0020.jpg 22 267 | data/office31/webcam/projector/frame_0015.jpg 22 268 | data/office31/webcam/projector/frame_0008.jpg 22 269 | data/office31/webcam/projector/frame_0021.jpg 22 270 | data/office31/webcam/projector/frame_0016.jpg 22 271 | data/office31/webcam/projector/frame_0006.jpg 22 272 | data/office31/webcam/projector/frame_0017.jpg 22 273 | data/office31/webcam/projector/frame_0005.jpg 22 274 | data/office31/webcam/projector/frame_0024.jpg 22 275 | data/office31/webcam/projector/frame_0001.jpg 22 276 | data/office31/webcam/projector/frame_0018.jpg 22 277 | data/office31/webcam/projector/frame_0004.jpg 22 278 | data/office31/webcam/projector/frame_0013.jpg 22 279 | data/office31/webcam/projector/frame_0029.jpg 22 280 | data/office31/webcam/projector/frame_0003.jpg 22 281 | data/office31/webcam/projector/frame_0019.jpg 22 282 | data/office31/webcam/projector/frame_0022.jpg 22 283 | data/office31/webcam/projector/frame_0030.jpg 22 284 | data/office31/webcam/projector/frame_0023.jpg 22 285 | data/office31/webcam/projector/frame_0014.jpg 22 286 | data/office31/webcam/projector/frame_0002.jpg 22 287 | data/office31/webcam/projector/frame_0007.jpg 22 288 | data/office31/webcam/projector/frame_0011.jpg 22 289 | data/office31/webcam/projector/frame_0010.jpg 22 290 | data/office31/webcam/projector/frame_0026.jpg 22 291 | data/office31/webcam/projector/frame_0027.jpg 22 292 | data/office31/webcam/projector/frame_0012.jpg 22 293 | data/office31/webcam/projector/frame_0009.jpg 22 294 | data/office31/webcam/projector/frame_0028.jpg 22 295 | data/office31/webcam/projector/frame_0025.jpg 22 296 | data/office31/webcam/speaker/frame_0001.jpg 27 297 | data/office31/webcam/speaker/frame_0002.jpg 27 298 | data/office31/webcam/speaker/frame_0003.jpg 27 299 | data/office31/webcam/speaker/frame_0004.jpg 27 300 | data/office31/webcam/speaker/frame_0005.jpg 27 301 | data/office31/webcam/speaker/frame_0006.jpg 27 302 | data/office31/webcam/speaker/frame_0007.jpg 27 303 | data/office31/webcam/speaker/frame_0008.jpg 27 304 | data/office31/webcam/speaker/frame_0009.jpg 27 305 | data/office31/webcam/speaker/frame_0010.jpg 27 306 | data/office31/webcam/speaker/frame_0011.jpg 27 307 | data/office31/webcam/speaker/frame_0012.jpg 27 308 | data/office31/webcam/speaker/frame_0013.jpg 27 309 | data/office31/webcam/speaker/frame_0014.jpg 27 310 | data/office31/webcam/speaker/frame_0015.jpg 27 311 | data/office31/webcam/speaker/frame_0016.jpg 27 312 | data/office31/webcam/speaker/frame_0017.jpg 27 313 | data/office31/webcam/speaker/frame_0018.jpg 27 314 | data/office31/webcam/speaker/frame_0019.jpg 27 315 | data/office31/webcam/speaker/frame_0020.jpg 27 316 | data/office31/webcam/speaker/frame_0021.jpg 27 317 | data/office31/webcam/speaker/frame_0022.jpg 27 318 | data/office31/webcam/speaker/frame_0023.jpg 27 319 | data/office31/webcam/speaker/frame_0024.jpg 27 320 | data/office31/webcam/speaker/frame_0025.jpg 27 321 | data/office31/webcam/speaker/frame_0026.jpg 27 322 | data/office31/webcam/speaker/frame_0027.jpg 27 323 | data/office31/webcam/speaker/frame_0028.jpg 27 324 | data/office31/webcam/speaker/frame_0029.jpg 27 325 | data/office31/webcam/speaker/frame_0030.jpg 27 326 | data/office31/webcam/desk_chair/frame_0001.jpg 6 327 | data/office31/webcam/desk_chair/frame_0002.jpg 6 328 | data/office31/webcam/desk_chair/frame_0003.jpg 6 329 | data/office31/webcam/desk_chair/frame_0004.jpg 6 330 | data/office31/webcam/desk_chair/frame_0005.jpg 6 331 | data/office31/webcam/desk_chair/frame_0006.jpg 6 332 | data/office31/webcam/desk_chair/frame_0007.jpg 6 333 | data/office31/webcam/desk_chair/frame_0008.jpg 6 334 | data/office31/webcam/desk_chair/frame_0009.jpg 6 335 | data/office31/webcam/desk_chair/frame_0010.jpg 6 336 | data/office31/webcam/desk_chair/frame_0011.jpg 6 337 | data/office31/webcam/desk_chair/frame_0012.jpg 6 338 | data/office31/webcam/desk_chair/frame_0013.jpg 6 339 | data/office31/webcam/desk_chair/frame_0014.jpg 6 340 | data/office31/webcam/desk_chair/frame_0015.jpg 6 341 | data/office31/webcam/desk_chair/frame_0016.jpg 6 342 | data/office31/webcam/desk_chair/frame_0017.jpg 6 343 | data/office31/webcam/desk_chair/frame_0018.jpg 6 344 | data/office31/webcam/desk_chair/frame_0019.jpg 6 345 | data/office31/webcam/desk_chair/frame_0020.jpg 6 346 | data/office31/webcam/desk_chair/frame_0021.jpg 6 347 | data/office31/webcam/desk_chair/frame_0022.jpg 6 348 | data/office31/webcam/desk_chair/frame_0023.jpg 6 349 | data/office31/webcam/desk_chair/frame_0024.jpg 6 350 | data/office31/webcam/desk_chair/frame_0025.jpg 6 351 | data/office31/webcam/desk_chair/frame_0026.jpg 6 352 | data/office31/webcam/desk_chair/frame_0027.jpg 6 353 | data/office31/webcam/desk_chair/frame_0028.jpg 6 354 | data/office31/webcam/desk_chair/frame_0029.jpg 6 355 | data/office31/webcam/desk_chair/frame_0030.jpg 6 356 | data/office31/webcam/desk_chair/frame_0031.jpg 6 357 | data/office31/webcam/desk_chair/frame_0032.jpg 6 358 | data/office31/webcam/desk_chair/frame_0033.jpg 6 359 | data/office31/webcam/desk_chair/frame_0034.jpg 6 360 | data/office31/webcam/desk_chair/frame_0035.jpg 6 361 | data/office31/webcam/desk_chair/frame_0036.jpg 6 362 | data/office31/webcam/desk_chair/frame_0037.jpg 6 363 | data/office31/webcam/desk_chair/frame_0038.jpg 6 364 | data/office31/webcam/desk_chair/frame_0039.jpg 6 365 | data/office31/webcam/desk_chair/frame_0040.jpg 6 366 | data/office31/webcam/desk_lamp/frame_0001.jpg 7 367 | data/office31/webcam/desk_lamp/frame_0002.jpg 7 368 | data/office31/webcam/desk_lamp/frame_0003.jpg 7 369 | data/office31/webcam/desk_lamp/frame_0004.jpg 7 370 | data/office31/webcam/desk_lamp/frame_0005.jpg 7 371 | data/office31/webcam/desk_lamp/frame_0006.jpg 7 372 | data/office31/webcam/desk_lamp/frame_0007.jpg 7 373 | data/office31/webcam/desk_lamp/frame_0008.jpg 7 374 | data/office31/webcam/desk_lamp/frame_0009.jpg 7 375 | data/office31/webcam/desk_lamp/frame_0010.jpg 7 376 | data/office31/webcam/desk_lamp/frame_0011.jpg 7 377 | data/office31/webcam/desk_lamp/frame_0012.jpg 7 378 | data/office31/webcam/desk_lamp/frame_0013.jpg 7 379 | data/office31/webcam/desk_lamp/frame_0014.jpg 7 380 | data/office31/webcam/desk_lamp/frame_0015.jpg 7 381 | data/office31/webcam/desk_lamp/frame_0016.jpg 7 382 | data/office31/webcam/desk_lamp/frame_0017.jpg 7 383 | data/office31/webcam/desk_lamp/frame_0018.jpg 7 384 | data/office31/webcam/punchers/frame_0001.jpg 23 385 | data/office31/webcam/punchers/frame_0002.jpg 23 386 | data/office31/webcam/punchers/frame_0003.jpg 23 387 | data/office31/webcam/punchers/frame_0004.jpg 23 388 | data/office31/webcam/punchers/frame_0005.jpg 23 389 | data/office31/webcam/punchers/frame_0006.jpg 23 390 | data/office31/webcam/punchers/frame_0007.jpg 23 391 | data/office31/webcam/punchers/frame_0008.jpg 23 392 | data/office31/webcam/punchers/frame_0009.jpg 23 393 | data/office31/webcam/punchers/frame_0010.jpg 23 394 | data/office31/webcam/punchers/frame_0011.jpg 23 395 | data/office31/webcam/punchers/frame_0012.jpg 23 396 | data/office31/webcam/punchers/frame_0013.jpg 23 397 | data/office31/webcam/punchers/frame_0014.jpg 23 398 | data/office31/webcam/punchers/frame_0015.jpg 23 399 | data/office31/webcam/punchers/frame_0016.jpg 23 400 | data/office31/webcam/punchers/frame_0017.jpg 23 401 | data/office31/webcam/punchers/frame_0018.jpg 23 402 | data/office31/webcam/punchers/frame_0019.jpg 23 403 | data/office31/webcam/punchers/frame_0020.jpg 23 404 | data/office31/webcam/punchers/frame_0021.jpg 23 405 | data/office31/webcam/punchers/frame_0022.jpg 23 406 | data/office31/webcam/punchers/frame_0023.jpg 23 407 | data/office31/webcam/punchers/frame_0024.jpg 23 408 | data/office31/webcam/punchers/frame_0025.jpg 23 409 | data/office31/webcam/punchers/frame_0026.jpg 23 410 | data/office31/webcam/punchers/frame_0027.jpg 23 411 | data/office31/webcam/phone/frame_0001.jpg 20 412 | data/office31/webcam/phone/frame_0002.jpg 20 413 | data/office31/webcam/phone/frame_0003.jpg 20 414 | data/office31/webcam/phone/frame_0004.jpg 20 415 | data/office31/webcam/phone/frame_0005.jpg 20 416 | data/office31/webcam/phone/frame_0006.jpg 20 417 | data/office31/webcam/phone/frame_0007.jpg 20 418 | data/office31/webcam/phone/frame_0008.jpg 20 419 | data/office31/webcam/phone/frame_0009.jpg 20 420 | data/office31/webcam/phone/frame_0010.jpg 20 421 | data/office31/webcam/phone/frame_0011.jpg 20 422 | data/office31/webcam/phone/frame_0012.jpg 20 423 | data/office31/webcam/phone/frame_0013.jpg 20 424 | data/office31/webcam/phone/frame_0014.jpg 20 425 | data/office31/webcam/phone/frame_0015.jpg 20 426 | data/office31/webcam/phone/frame_0016.jpg 20 427 | data/office31/webcam/tape_dispenser/frame_0001.jpg 29 428 | data/office31/webcam/tape_dispenser/frame_0002.jpg 29 429 | data/office31/webcam/tape_dispenser/frame_0003.jpg 29 430 | data/office31/webcam/tape_dispenser/frame_0004.jpg 29 431 | data/office31/webcam/tape_dispenser/frame_0005.jpg 29 432 | data/office31/webcam/tape_dispenser/frame_0006.jpg 29 433 | data/office31/webcam/tape_dispenser/frame_0007.jpg 29 434 | data/office31/webcam/tape_dispenser/frame_0008.jpg 29 435 | data/office31/webcam/tape_dispenser/frame_0009.jpg 29 436 | data/office31/webcam/tape_dispenser/frame_0010.jpg 29 437 | data/office31/webcam/tape_dispenser/frame_0011.jpg 29 438 | data/office31/webcam/tape_dispenser/frame_0012.jpg 29 439 | data/office31/webcam/tape_dispenser/frame_0013.jpg 29 440 | data/office31/webcam/tape_dispenser/frame_0014.jpg 29 441 | data/office31/webcam/tape_dispenser/frame_0015.jpg 29 442 | data/office31/webcam/tape_dispenser/frame_0016.jpg 29 443 | data/office31/webcam/tape_dispenser/frame_0017.jpg 29 444 | data/office31/webcam/tape_dispenser/frame_0018.jpg 29 445 | data/office31/webcam/tape_dispenser/frame_0019.jpg 29 446 | data/office31/webcam/tape_dispenser/frame_0020.jpg 29 447 | data/office31/webcam/tape_dispenser/frame_0021.jpg 29 448 | data/office31/webcam/tape_dispenser/frame_0022.jpg 29 449 | data/office31/webcam/tape_dispenser/frame_0023.jpg 29 450 | data/office31/webcam/mobile_phone/frame_0001.jpg 14 451 | data/office31/webcam/mobile_phone/frame_0002.jpg 14 452 | data/office31/webcam/mobile_phone/frame_0003.jpg 14 453 | data/office31/webcam/mobile_phone/frame_0004.jpg 14 454 | data/office31/webcam/mobile_phone/frame_0005.jpg 14 455 | data/office31/webcam/mobile_phone/frame_0006.jpg 14 456 | data/office31/webcam/mobile_phone/frame_0007.jpg 14 457 | data/office31/webcam/mobile_phone/frame_0008.jpg 14 458 | data/office31/webcam/mobile_phone/frame_0009.jpg 14 459 | data/office31/webcam/mobile_phone/frame_0010.jpg 14 460 | data/office31/webcam/mobile_phone/frame_0011.jpg 14 461 | data/office31/webcam/mobile_phone/frame_0012.jpg 14 462 | data/office31/webcam/mobile_phone/frame_0013.jpg 14 463 | data/office31/webcam/mobile_phone/frame_0014.jpg 14 464 | data/office31/webcam/mobile_phone/frame_0015.jpg 14 465 | data/office31/webcam/mobile_phone/frame_0016.jpg 14 466 | data/office31/webcam/mobile_phone/frame_0017.jpg 14 467 | data/office31/webcam/mobile_phone/frame_0018.jpg 14 468 | data/office31/webcam/mobile_phone/frame_0019.jpg 14 469 | data/office31/webcam/mobile_phone/frame_0020.jpg 14 470 | data/office31/webcam/mobile_phone/frame_0021.jpg 14 471 | data/office31/webcam/mobile_phone/frame_0022.jpg 14 472 | data/office31/webcam/mobile_phone/frame_0023.jpg 14 473 | data/office31/webcam/mobile_phone/frame_0024.jpg 14 474 | data/office31/webcam/mobile_phone/frame_0025.jpg 14 475 | data/office31/webcam/mobile_phone/frame_0026.jpg 14 476 | data/office31/webcam/mobile_phone/frame_0027.jpg 14 477 | data/office31/webcam/mobile_phone/frame_0028.jpg 14 478 | data/office31/webcam/mobile_phone/frame_0029.jpg 14 479 | data/office31/webcam/mobile_phone/frame_0030.jpg 14 480 | data/office31/webcam/desktop_computer/frame_0001.jpg 8 481 | data/office31/webcam/desktop_computer/frame_0002.jpg 8 482 | data/office31/webcam/desktop_computer/frame_0003.jpg 8 483 | data/office31/webcam/desktop_computer/frame_0004.jpg 8 484 | data/office31/webcam/desktop_computer/frame_0005.jpg 8 485 | data/office31/webcam/desktop_computer/frame_0006.jpg 8 486 | data/office31/webcam/desktop_computer/frame_0007.jpg 8 487 | data/office31/webcam/desktop_computer/frame_0008.jpg 8 488 | data/office31/webcam/desktop_computer/frame_0009.jpg 8 489 | data/office31/webcam/desktop_computer/frame_0010.jpg 8 490 | data/office31/webcam/desktop_computer/frame_0011.jpg 8 491 | data/office31/webcam/desktop_computer/frame_0012.jpg 8 492 | data/office31/webcam/desktop_computer/frame_0013.jpg 8 493 | data/office31/webcam/desktop_computer/frame_0014.jpg 8 494 | data/office31/webcam/desktop_computer/frame_0015.jpg 8 495 | data/office31/webcam/desktop_computer/frame_0016.jpg 8 496 | data/office31/webcam/desktop_computer/frame_0017.jpg 8 497 | data/office31/webcam/desktop_computer/frame_0018.jpg 8 498 | data/office31/webcam/desktop_computer/frame_0019.jpg 8 499 | data/office31/webcam/desktop_computer/frame_0020.jpg 8 500 | data/office31/webcam/desktop_computer/frame_0021.jpg 8 501 | data/office31/webcam/letter_tray/frame_0001.jpg 13 502 | data/office31/webcam/letter_tray/frame_0002.jpg 13 503 | data/office31/webcam/letter_tray/frame_0003.jpg 13 504 | data/office31/webcam/letter_tray/frame_0004.jpg 13 505 | data/office31/webcam/letter_tray/frame_0005.jpg 13 506 | data/office31/webcam/letter_tray/frame_0006.jpg 13 507 | data/office31/webcam/letter_tray/frame_0007.jpg 13 508 | data/office31/webcam/letter_tray/frame_0008.jpg 13 509 | data/office31/webcam/letter_tray/frame_0009.jpg 13 510 | data/office31/webcam/letter_tray/frame_0010.jpg 13 511 | data/office31/webcam/letter_tray/frame_0011.jpg 13 512 | data/office31/webcam/letter_tray/frame_0012.jpg 13 513 | data/office31/webcam/letter_tray/frame_0013.jpg 13 514 | data/office31/webcam/letter_tray/frame_0014.jpg 13 515 | data/office31/webcam/letter_tray/frame_0015.jpg 13 516 | data/office31/webcam/letter_tray/frame_0016.jpg 13 517 | data/office31/webcam/letter_tray/frame_0017.jpg 13 518 | data/office31/webcam/letter_tray/frame_0018.jpg 13 519 | data/office31/webcam/letter_tray/frame_0019.jpg 13 520 | data/office31/webcam/stapler/frame_0001.jpg 28 521 | data/office31/webcam/stapler/frame_0002.jpg 28 522 | data/office31/webcam/stapler/frame_0003.jpg 28 523 | data/office31/webcam/stapler/frame_0004.jpg 28 524 | data/office31/webcam/stapler/frame_0005.jpg 28 525 | data/office31/webcam/stapler/frame_0006.jpg 28 526 | data/office31/webcam/stapler/frame_0007.jpg 28 527 | data/office31/webcam/stapler/frame_0008.jpg 28 528 | data/office31/webcam/stapler/frame_0009.jpg 28 529 | data/office31/webcam/stapler/frame_0010.jpg 28 530 | data/office31/webcam/stapler/frame_0011.jpg 28 531 | data/office31/webcam/stapler/frame_0012.jpg 28 532 | data/office31/webcam/stapler/frame_0013.jpg 28 533 | data/office31/webcam/stapler/frame_0014.jpg 28 534 | data/office31/webcam/stapler/frame_0015.jpg 28 535 | data/office31/webcam/stapler/frame_0016.jpg 28 536 | data/office31/webcam/stapler/frame_0017.jpg 28 537 | data/office31/webcam/stapler/frame_0018.jpg 28 538 | data/office31/webcam/stapler/frame_0019.jpg 28 539 | data/office31/webcam/stapler/frame_0020.jpg 28 540 | data/office31/webcam/stapler/frame_0021.jpg 28 541 | data/office31/webcam/stapler/frame_0022.jpg 28 542 | data/office31/webcam/stapler/frame_0023.jpg 28 543 | data/office31/webcam/stapler/frame_0024.jpg 28 544 | data/office31/webcam/file_cabinet/frame_0001.jpg 9 545 | data/office31/webcam/file_cabinet/frame_0002.jpg 9 546 | data/office31/webcam/file_cabinet/frame_0003.jpg 9 547 | data/office31/webcam/file_cabinet/frame_0004.jpg 9 548 | data/office31/webcam/file_cabinet/frame_0005.jpg 9 549 | data/office31/webcam/file_cabinet/frame_0006.jpg 9 550 | data/office31/webcam/file_cabinet/frame_0007.jpg 9 551 | data/office31/webcam/file_cabinet/frame_0008.jpg 9 552 | data/office31/webcam/file_cabinet/frame_0009.jpg 9 553 | data/office31/webcam/file_cabinet/frame_0010.jpg 9 554 | data/office31/webcam/file_cabinet/frame_0011.jpg 9 555 | data/office31/webcam/file_cabinet/frame_0012.jpg 9 556 | data/office31/webcam/file_cabinet/frame_0013.jpg 9 557 | data/office31/webcam/file_cabinet/frame_0014.jpg 9 558 | data/office31/webcam/file_cabinet/frame_0015.jpg 9 559 | data/office31/webcam/file_cabinet/frame_0016.jpg 9 560 | data/office31/webcam/file_cabinet/frame_0017.jpg 9 561 | data/office31/webcam/file_cabinet/frame_0018.jpg 9 562 | data/office31/webcam/file_cabinet/frame_0019.jpg 9 563 | data/office31/webcam/bottle/frame_0001.jpg 4 564 | data/office31/webcam/bottle/frame_0002.jpg 4 565 | data/office31/webcam/bottle/frame_0003.jpg 4 566 | data/office31/webcam/bottle/frame_0004.jpg 4 567 | data/office31/webcam/bottle/frame_0005.jpg 4 568 | data/office31/webcam/bottle/frame_0006.jpg 4 569 | data/office31/webcam/bottle/frame_0007.jpg 4 570 | data/office31/webcam/bottle/frame_0008.jpg 4 571 | data/office31/webcam/bottle/frame_0009.jpg 4 572 | data/office31/webcam/bottle/frame_0010.jpg 4 573 | data/office31/webcam/bottle/frame_0011.jpg 4 574 | data/office31/webcam/bottle/frame_0012.jpg 4 575 | data/office31/webcam/bottle/frame_0013.jpg 4 576 | data/office31/webcam/bottle/frame_0014.jpg 4 577 | data/office31/webcam/bottle/frame_0015.jpg 4 578 | data/office31/webcam/bottle/frame_0016.jpg 4 579 | data/office31/webcam/printer/frame_0001.jpg 21 580 | data/office31/webcam/printer/frame_0002.jpg 21 581 | data/office31/webcam/printer/frame_0003.jpg 21 582 | data/office31/webcam/printer/frame_0004.jpg 21 583 | data/office31/webcam/printer/frame_0005.jpg 21 584 | data/office31/webcam/printer/frame_0006.jpg 21 585 | data/office31/webcam/printer/frame_0007.jpg 21 586 | data/office31/webcam/printer/frame_0008.jpg 21 587 | data/office31/webcam/printer/frame_0009.jpg 21 588 | data/office31/webcam/printer/frame_0010.jpg 21 589 | data/office31/webcam/printer/frame_0011.jpg 21 590 | data/office31/webcam/printer/frame_0012.jpg 21 591 | data/office31/webcam/printer/frame_0013.jpg 21 592 | data/office31/webcam/printer/frame_0014.jpg 21 593 | data/office31/webcam/printer/frame_0015.jpg 21 594 | data/office31/webcam/printer/frame_0016.jpg 21 595 | data/office31/webcam/printer/frame_0017.jpg 21 596 | data/office31/webcam/printer/frame_0018.jpg 21 597 | data/office31/webcam/printer/frame_0019.jpg 21 598 | data/office31/webcam/printer/frame_0020.jpg 21 599 | data/office31/webcam/ring_binder/frame_0001.jpg 24 600 | data/office31/webcam/ring_binder/frame_0002.jpg 24 601 | data/office31/webcam/ring_binder/frame_0003.jpg 24 602 | data/office31/webcam/ring_binder/frame_0004.jpg 24 603 | data/office31/webcam/ring_binder/frame_0005.jpg 24 604 | data/office31/webcam/ring_binder/frame_0006.jpg 24 605 | data/office31/webcam/ring_binder/frame_0007.jpg 24 606 | data/office31/webcam/ring_binder/frame_0008.jpg 24 607 | data/office31/webcam/ring_binder/frame_0009.jpg 24 608 | data/office31/webcam/ring_binder/frame_0010.jpg 24 609 | data/office31/webcam/ring_binder/frame_0011.jpg 24 610 | data/office31/webcam/ring_binder/frame_0012.jpg 24 611 | data/office31/webcam/ring_binder/frame_0013.jpg 24 612 | data/office31/webcam/ring_binder/frame_0014.jpg 24 613 | data/office31/webcam/ring_binder/frame_0015.jpg 24 614 | data/office31/webcam/ring_binder/frame_0016.jpg 24 615 | data/office31/webcam/ring_binder/frame_0017.jpg 24 616 | data/office31/webcam/ring_binder/frame_0018.jpg 24 617 | data/office31/webcam/ring_binder/frame_0019.jpg 24 618 | data/office31/webcam/ring_binder/frame_0020.jpg 24 619 | data/office31/webcam/ring_binder/frame_0021.jpg 24 620 | data/office31/webcam/ring_binder/frame_0022.jpg 24 621 | data/office31/webcam/ring_binder/frame_0023.jpg 24 622 | data/office31/webcam/ring_binder/frame_0024.jpg 24 623 | data/office31/webcam/ring_binder/frame_0025.jpg 24 624 | data/office31/webcam/ring_binder/frame_0026.jpg 24 625 | data/office31/webcam/ring_binder/frame_0027.jpg 24 626 | data/office31/webcam/ring_binder/frame_0028.jpg 24 627 | data/office31/webcam/ring_binder/frame_0029.jpg 24 628 | data/office31/webcam/ring_binder/frame_0030.jpg 24 629 | data/office31/webcam/ring_binder/frame_0031.jpg 24 630 | data/office31/webcam/ring_binder/frame_0032.jpg 24 631 | data/office31/webcam/ring_binder/frame_0033.jpg 24 632 | data/office31/webcam/ring_binder/frame_0034.jpg 24 633 | data/office31/webcam/ring_binder/frame_0035.jpg 24 634 | data/office31/webcam/ring_binder/frame_0036.jpg 24 635 | data/office31/webcam/ring_binder/frame_0037.jpg 24 636 | data/office31/webcam/ring_binder/frame_0038.jpg 24 637 | data/office31/webcam/ring_binder/frame_0039.jpg 24 638 | data/office31/webcam/ring_binder/frame_0040.jpg 24 639 | data/office31/webcam/bookcase/frame_0001.jpg 3 640 | data/office31/webcam/bookcase/frame_0002.jpg 3 641 | data/office31/webcam/bookcase/frame_0003.jpg 3 642 | data/office31/webcam/bookcase/frame_0004.jpg 3 643 | data/office31/webcam/bookcase/frame_0005.jpg 3 644 | data/office31/webcam/bookcase/frame_0006.jpg 3 645 | data/office31/webcam/bookcase/frame_0007.jpg 3 646 | data/office31/webcam/bookcase/frame_0008.jpg 3 647 | data/office31/webcam/bookcase/frame_0009.jpg 3 648 | data/office31/webcam/bookcase/frame_0010.jpg 3 649 | data/office31/webcam/bookcase/frame_0011.jpg 3 650 | data/office31/webcam/bookcase/frame_0012.jpg 3 651 | data/office31/webcam/bike_helmet/frame_0001.jpg 2 652 | data/office31/webcam/bike_helmet/frame_0002.jpg 2 653 | data/office31/webcam/bike_helmet/frame_0003.jpg 2 654 | data/office31/webcam/bike_helmet/frame_0004.jpg 2 655 | data/office31/webcam/bike_helmet/frame_0005.jpg 2 656 | data/office31/webcam/bike_helmet/frame_0006.jpg 2 657 | data/office31/webcam/bike_helmet/frame_0007.jpg 2 658 | data/office31/webcam/bike_helmet/frame_0008.jpg 2 659 | data/office31/webcam/bike_helmet/frame_0009.jpg 2 660 | data/office31/webcam/bike_helmet/frame_0010.jpg 2 661 | data/office31/webcam/bike_helmet/frame_0011.jpg 2 662 | data/office31/webcam/bike_helmet/frame_0012.jpg 2 663 | data/office31/webcam/bike_helmet/frame_0013.jpg 2 664 | data/office31/webcam/bike_helmet/frame_0014.jpg 2 665 | data/office31/webcam/bike_helmet/frame_0015.jpg 2 666 | data/office31/webcam/bike_helmet/frame_0016.jpg 2 667 | data/office31/webcam/bike_helmet/frame_0017.jpg 2 668 | data/office31/webcam/bike_helmet/frame_0018.jpg 2 669 | data/office31/webcam/bike_helmet/frame_0019.jpg 2 670 | data/office31/webcam/bike_helmet/frame_0020.jpg 2 671 | data/office31/webcam/bike_helmet/frame_0021.jpg 2 672 | data/office31/webcam/bike_helmet/frame_0022.jpg 2 673 | data/office31/webcam/bike_helmet/frame_0023.jpg 2 674 | data/office31/webcam/bike_helmet/frame_0024.jpg 2 675 | data/office31/webcam/bike_helmet/frame_0025.jpg 2 676 | data/office31/webcam/bike_helmet/frame_0026.jpg 2 677 | data/office31/webcam/bike_helmet/frame_0027.jpg 2 678 | data/office31/webcam/bike_helmet/frame_0028.jpg 2 679 | data/office31/webcam/scissors/frame_0001.jpg 26 680 | data/office31/webcam/scissors/frame_0002.jpg 26 681 | data/office31/webcam/scissors/frame_0003.jpg 26 682 | data/office31/webcam/scissors/frame_0004.jpg 26 683 | data/office31/webcam/scissors/frame_0005.jpg 26 684 | data/office31/webcam/scissors/frame_0006.jpg 26 685 | data/office31/webcam/scissors/frame_0007.jpg 26 686 | data/office31/webcam/scissors/frame_0008.jpg 26 687 | data/office31/webcam/scissors/frame_0009.jpg 26 688 | data/office31/webcam/scissors/frame_0010.jpg 26 689 | data/office31/webcam/scissors/frame_0011.jpg 26 690 | data/office31/webcam/scissors/frame_0012.jpg 26 691 | data/office31/webcam/scissors/frame_0013.jpg 26 692 | data/office31/webcam/scissors/frame_0014.jpg 26 693 | data/office31/webcam/scissors/frame_0015.jpg 26 694 | data/office31/webcam/scissors/frame_0016.jpg 26 695 | data/office31/webcam/scissors/frame_0017.jpg 26 696 | data/office31/webcam/scissors/frame_0018.jpg 26 697 | data/office31/webcam/scissors/frame_0019.jpg 26 698 | data/office31/webcam/scissors/frame_0020.jpg 26 699 | data/office31/webcam/scissors/frame_0021.jpg 26 700 | data/office31/webcam/scissors/frame_0022.jpg 26 701 | data/office31/webcam/scissors/frame_0023.jpg 26 702 | data/office31/webcam/scissors/frame_0024.jpg 26 703 | data/office31/webcam/scissors/frame_0025.jpg 26 704 | data/office31/webcam/pen/frame_0001.jpg 19 705 | data/office31/webcam/pen/frame_0002.jpg 19 706 | data/office31/webcam/pen/frame_0003.jpg 19 707 | data/office31/webcam/pen/frame_0004.jpg 19 708 | data/office31/webcam/pen/frame_0005.jpg 19 709 | data/office31/webcam/pen/frame_0006.jpg 19 710 | data/office31/webcam/pen/frame_0007.jpg 19 711 | data/office31/webcam/pen/frame_0008.jpg 19 712 | data/office31/webcam/pen/frame_0009.jpg 19 713 | data/office31/webcam/pen/frame_0010.jpg 19 714 | data/office31/webcam/pen/frame_0011.jpg 19 715 | data/office31/webcam/pen/frame_0012.jpg 19 716 | data/office31/webcam/pen/frame_0013.jpg 19 717 | data/office31/webcam/pen/frame_0014.jpg 19 718 | data/office31/webcam/pen/frame_0015.jpg 19 719 | data/office31/webcam/pen/frame_0016.jpg 19 720 | data/office31/webcam/pen/frame_0017.jpg 19 721 | data/office31/webcam/pen/frame_0018.jpg 19 722 | data/office31/webcam/pen/frame_0019.jpg 19 723 | data/office31/webcam/pen/frame_0020.jpg 19 724 | data/office31/webcam/pen/frame_0021.jpg 19 725 | data/office31/webcam/pen/frame_0022.jpg 19 726 | data/office31/webcam/pen/frame_0023.jpg 19 727 | data/office31/webcam/pen/frame_0024.jpg 19 728 | data/office31/webcam/pen/frame_0025.jpg 19 729 | data/office31/webcam/pen/frame_0026.jpg 19 730 | data/office31/webcam/pen/frame_0027.jpg 19 731 | data/office31/webcam/pen/frame_0028.jpg 19 732 | data/office31/webcam/pen/frame_0029.jpg 19 733 | data/office31/webcam/pen/frame_0030.jpg 19 734 | data/office31/webcam/pen/frame_0031.jpg 19 735 | data/office31/webcam/pen/frame_0032.jpg 19 736 | data/office31/webcam/paper_notebook/frame_0001.jpg 18 737 | data/office31/webcam/paper_notebook/frame_0002.jpg 18 738 | data/office31/webcam/paper_notebook/frame_0003.jpg 18 739 | data/office31/webcam/paper_notebook/frame_0004.jpg 18 740 | data/office31/webcam/paper_notebook/frame_0005.jpg 18 741 | data/office31/webcam/paper_notebook/frame_0006.jpg 18 742 | data/office31/webcam/paper_notebook/frame_0007.jpg 18 743 | data/office31/webcam/paper_notebook/frame_0008.jpg 18 744 | data/office31/webcam/paper_notebook/frame_0009.jpg 18 745 | data/office31/webcam/paper_notebook/frame_0010.jpg 18 746 | data/office31/webcam/paper_notebook/frame_0011.jpg 18 747 | data/office31/webcam/paper_notebook/frame_0012.jpg 18 748 | data/office31/webcam/paper_notebook/frame_0013.jpg 18 749 | data/office31/webcam/paper_notebook/frame_0014.jpg 18 750 | data/office31/webcam/paper_notebook/frame_0015.jpg 18 751 | data/office31/webcam/paper_notebook/frame_0016.jpg 18 752 | data/office31/webcam/paper_notebook/frame_0017.jpg 18 753 | data/office31/webcam/paper_notebook/frame_0018.jpg 18 754 | data/office31/webcam/paper_notebook/frame_0019.jpg 18 755 | data/office31/webcam/paper_notebook/frame_0020.jpg 18 756 | data/office31/webcam/paper_notebook/frame_0021.jpg 18 757 | data/office31/webcam/paper_notebook/frame_0022.jpg 18 758 | data/office31/webcam/paper_notebook/frame_0023.jpg 18 759 | data/office31/webcam/paper_notebook/frame_0024.jpg 18 760 | data/office31/webcam/paper_notebook/frame_0025.jpg 18 761 | data/office31/webcam/paper_notebook/frame_0026.jpg 18 762 | data/office31/webcam/paper_notebook/frame_0027.jpg 18 763 | data/office31/webcam/paper_notebook/frame_0028.jpg 18 764 | data/office31/webcam/trash_can/frame_0001.jpg 30 765 | data/office31/webcam/trash_can/frame_0002.jpg 30 766 | data/office31/webcam/trash_can/frame_0003.jpg 30 767 | data/office31/webcam/trash_can/frame_0004.jpg 30 768 | data/office31/webcam/trash_can/frame_0005.jpg 30 769 | data/office31/webcam/trash_can/frame_0006.jpg 30 770 | data/office31/webcam/trash_can/frame_0007.jpg 30 771 | data/office31/webcam/trash_can/frame_0008.jpg 30 772 | data/office31/webcam/trash_can/frame_0009.jpg 30 773 | data/office31/webcam/trash_can/frame_0010.jpg 30 774 | data/office31/webcam/trash_can/frame_0011.jpg 30 775 | data/office31/webcam/trash_can/frame_0012.jpg 30 776 | data/office31/webcam/trash_can/frame_0013.jpg 30 777 | data/office31/webcam/trash_can/frame_0014.jpg 30 778 | data/office31/webcam/trash_can/frame_0015.jpg 30 779 | data/office31/webcam/trash_can/frame_0016.jpg 30 780 | data/office31/webcam/trash_can/frame_0017.jpg 30 781 | data/office31/webcam/trash_can/frame_0018.jpg 30 782 | data/office31/webcam/trash_can/frame_0019.jpg 30 783 | data/office31/webcam/trash_can/frame_0020.jpg 30 784 | data/office31/webcam/trash_can/frame_0021.jpg 30 785 | data/office31/webcam/ruler/frame_0001.jpg 25 786 | data/office31/webcam/ruler/frame_0002.jpg 25 787 | data/office31/webcam/ruler/frame_0003.jpg 25 788 | data/office31/webcam/ruler/frame_0004.jpg 25 789 | data/office31/webcam/ruler/frame_0005.jpg 25 790 | data/office31/webcam/ruler/frame_0006.jpg 25 791 | data/office31/webcam/ruler/frame_0007.jpg 25 792 | data/office31/webcam/ruler/frame_0008.jpg 25 793 | data/office31/webcam/ruler/frame_0009.jpg 25 794 | data/office31/webcam/ruler/frame_0010.jpg 25 795 | data/office31/webcam/ruler/frame_0011.jpg 25 796 | -------------------------------------------------------------------------------- /docs/eada.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BIT-DA/EADA/05040e37735bf24da7ccf2249a896d70c897f4bd/docs/eada.png -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import argparse 3 | import os.path 4 | import os 5 | import logging 6 | import time 7 | import datetime 8 | 9 | import torch 10 | import torch.optim as optim 11 | import numpy as np 12 | import torch.backends.cudnn as cudnn 13 | from torch.utils.data import DataLoader 14 | 15 | from core.datasets.image_list import ImageList 16 | from core.models.network import ResNetFc 17 | from core.active.active import EADA_active, RAND_active 18 | from core.utils.utils import set_random_seed, mkdir, momentum_update 19 | from core.datasets.transforms import build_transform 20 | from core.active.loss import NLLLoss, FreeEnergyAlignmentLoss 21 | from core.utils.metric_logger import MetricLogger 22 | from core.utils.logger import setup_logger 23 | from core.config import cfg 24 | 25 | 26 | def test(model, test_loader): 27 | start_test = True 28 | model.eval() 29 | with torch.no_grad(): 30 | for batch_idx, test_data in enumerate(test_loader): 31 | img, labels = test_data['img0'], test_data['label'] 32 | img = img.cuda() 33 | outputs = model(img, return_feat=False) 34 | if start_test: 35 | all_output = outputs.float().cpu() 36 | all_label = labels.float() 37 | start_test = False 38 | else: 39 | all_output = torch.cat((all_output, outputs.float().cpu()), 0) 40 | all_label = torch.cat((all_label, labels.float()), 0) 41 | 42 | _, predict = torch.min(all_output, 1) 43 | acc = torch.sum(torch.squeeze(predict).float() == all_label).item() / float(all_label.size()[0]) * 100 44 | 45 | return acc 46 | 47 | 48 | def train(cfg, task): 49 | logger = logging.getLogger("EADA.trainer") 50 | 51 | use_cuda = True if torch.cuda.is_available() else False 52 | 53 | kwargs = {'num_workers': 2, 'pin_memory': True} if use_cuda else {} 54 | 55 | # prepare data 56 | source_transform = build_transform(cfg, is_train=True, choices=cfg.INPUT.SOURCE_TRANSFORMS) 57 | target_transform = build_transform(cfg, is_train=True, choices=cfg.INPUT.TARGET_TRANSFORMS) 58 | test_transform = build_transform(cfg, is_train=False, choices=cfg.INPUT.TEST_TRANSFORMS) 59 | 60 | src_train_ds = ImageList(os.path.join(cfg.DATASET.ROOT, cfg.DATASET.NAME, cfg.DATASET.SOURCE_TRAIN_DOMAIN), 61 | transform=source_transform) 62 | src_train_loader = DataLoader(src_train_ds, batch_size=cfg.DATALOADER.SOURCE.BATCH_SIZE, shuffle=True, 63 | drop_last=True, **kwargs) 64 | 65 | tgt_unlabeled_ds = ImageList(os.path.join(cfg.DATASET.ROOT, cfg.DATASET.NAME, cfg.DATASET.TARGET_TRAIN_DOMAIN), 66 | transform=target_transform) 67 | tgt_unlabeled_loader = DataLoader(tgt_unlabeled_ds, batch_size=cfg.DATALOADER.TARGET.BATCH_SIZE, shuffle=True, 68 | drop_last=True, **kwargs) 69 | tgt_unlabeled_loader_full = DataLoader(tgt_unlabeled_ds, batch_size=cfg.DATALOADER.TARGET.BATCH_SIZE, 70 | shuffle=True, drop_last=False, **kwargs) 71 | 72 | tgt_test_ds = ImageList(os.path.join(cfg.DATASET.ROOT, cfg.DATASET.NAME, cfg.DATASET.TARGET_VAL_DOMAIN), 73 | transform=test_transform) 74 | tgt_test_loader = DataLoader(tgt_test_ds, batch_size=cfg.DATALOADER.TEST.BATCH_SIZE, shuffle=False, **kwargs) 75 | 76 | # active target dataset & loader 77 | tgt_selected_ds = ImageList(empty=True, transform=source_transform) 78 | tgt_selected_loader = DataLoader(tgt_selected_ds, batch_size=cfg.DATALOADER.SOURCE.BATCH_SIZE, 79 | shuffle=True, drop_last=False, **kwargs) 80 | 81 | # model 82 | model = ResNetFc(class_num=cfg.DATASET.NUM_CLASS, cfg=cfg).cuda() 83 | 84 | # optimizer 85 | optimizer = optim.Adadelta(model.parameters_list(cfg.OPTIM.LR), lr=cfg.OPTIM.LR) 86 | 87 | # energy loss function 88 | nll_criterion = NLLLoss(cfg) 89 | 90 | # unsupervised energy alignment bound loss 91 | uns_criterion = FreeEnergyAlignmentLoss(cfg) 92 | 93 | # total number of target samples 94 | totality = tgt_unlabeled_ds.__len__() 95 | 96 | logger.info("Start training") 97 | meters = MetricLogger(delimiter=" ") 98 | start_training_time = time.time() 99 | end = time.time() 100 | 101 | final_acc = 0. 102 | final_model = None 103 | all_epoch_result = [] 104 | all_selected_images = None 105 | for epoch in range(1, cfg.TRAINER.MAX_EPOCHS + 1): 106 | 107 | model.train() 108 | iter_per_epoch = max(len(src_train_loader), len(tgt_unlabeled_loader)) 109 | for batch_idx in range(iter_per_epoch): 110 | data_time = time.time() - end 111 | 112 | if batch_idx % len(src_train_loader) == 0: 113 | src_iter = iter(src_train_loader) 114 | if batch_idx % len(tgt_unlabeled_loader) == 0: 115 | tgt_unlabeled_iter = iter(tgt_unlabeled_loader) 116 | if not tgt_selected_ds.empty: 117 | if batch_idx % len(tgt_selected_loader) == 0: 118 | tgt_selected_iter = iter(tgt_selected_loader) 119 | 120 | src_data = src_iter.next() 121 | tgt_unlabeled_data = tgt_unlabeled_iter.next() 122 | 123 | src_img, src_lbl = src_data['img0'], src_data['label'] 124 | src_img, src_lbl = src_img.cuda(), src_lbl.cuda() 125 | 126 | tgt_unlabeled_img = tgt_unlabeled_data['img'] 127 | tgt_unlabeled_img = tgt_unlabeled_img.cuda() 128 | 129 | optimizer.zero_grad() 130 | 131 | total_loss = 0 132 | 133 | # supervised loss on label source data 134 | src_out = model(src_img, return_feat=False) 135 | nll_loss = nll_criterion(src_out, src_lbl) 136 | total_loss += nll_loss 137 | meters.update(nll_loss=nll_loss.item()) 138 | 139 | if cfg.TRAINER.ENERGY_ALIGN_WEIGHT > 0: 140 | # energy alignment loss on unlabeled target data 141 | tgt_unlabeled_out = model(tgt_unlabeled_img, return_feat=False) 142 | with torch.no_grad(): 143 | # free energy of samples 144 | output_div_t = -1.0 * cfg.TRAINER.ENERGY_BETA * src_out 145 | output_logsumexp = torch.logsumexp(output_div_t, dim=1, keepdim=False) 146 | free_energy = -1.0 * output_logsumexp / cfg.TRAINER.ENERGY_BETA 147 | 148 | src_batch_free_energy = free_energy.mean().detach() 149 | 150 | # init global mean free energy 151 | if epoch == 1 and batch_idx == 0: 152 | global_mean = src_batch_free_energy 153 | # update global mean free energy 154 | global_mean = momentum_update(global_mean, src_batch_free_energy) 155 | 156 | fea_loss = uns_criterion(inputs=tgt_unlabeled_out, bound=global_mean) 157 | 158 | total_loss += cfg.TRAINER.ENERGY_ALIGN_WEIGHT * fea_loss 159 | meters.update(fea_loss=(cfg.TRAINER.ENERGY_ALIGN_WEIGHT * fea_loss).item()) 160 | 161 | # supervised loss on selected target data 162 | if not tgt_selected_ds.empty: 163 | tgt_selected_data = tgt_selected_iter.next() 164 | tgt_selected_img, tgt_selected_lbl = tgt_selected_data['img0'], tgt_selected_data['label'] 165 | tgt_selected_img, tgt_selected_lbl = tgt_selected_img.cuda(), tgt_selected_lbl.cuda() 166 | 167 | if tgt_selected_img.size(0) == 1: 168 | # avoid bs=1, can't pass through BN layer 169 | tgt_selected_img = torch.cat((tgt_selected_img, tgt_selected_img), dim=0) 170 | tgt_selected_lbl = torch.cat((tgt_selected_lbl, tgt_selected_lbl), dim=0) 171 | 172 | tgt_selected_out = model(tgt_selected_img, return_feat=False) 173 | selected_nll_loss = nll_criterion(tgt_selected_out, tgt_selected_lbl) 174 | 175 | total_loss += selected_nll_loss 176 | meters.update(selected_nll_loss=selected_nll_loss.item()) 177 | 178 | total_loss.backward() 179 | optimizer.step() 180 | 181 | batch_time = time.time() - end 182 | end = time.time() 183 | meters.update(time=batch_time, data=data_time) 184 | eta_seconds = meters.time.global_avg * (iter_per_epoch * cfg.TRAINER.MAX_EPOCHS - batch_idx * epoch) 185 | eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) 186 | 187 | if batch_idx % cfg.TRAIN.PRINT_FREQ == 0: 188 | logger.info( 189 | meters.delimiter.join( 190 | [ 191 | "eta: {eta}", 192 | "task: {task}", 193 | "epoch: {epoch}", 194 | f"[iter: {batch_idx}/{iter_per_epoch}]", 195 | "{meters}", 196 | "max mem: {memory:.2f} GB", 197 | ] 198 | ).format( 199 | task=task, 200 | eta=eta_string, 201 | epoch=epoch, 202 | meters=str(meters), 203 | memory=torch.cuda.max_memory_allocated() / 1024.0 / 1024.0 / 1024.0, 204 | ) 205 | ) 206 | 207 | # test every 5 epoch 208 | if epoch % 5 == 0: 209 | testacc = test(model, tgt_test_loader) 210 | logger.info('Task: {} Test Epoch: {} testacc: {:.2f}'.format(task, epoch, testacc)) 211 | all_epoch_result.append({'epoch': epoch, 'acc': testacc}) 212 | if epoch == cfg.TRAINER.MAX_EPOCHS: 213 | final_model = model.state_dict() 214 | final_acc = testacc 215 | 216 | # active selection rounds 217 | if epoch in cfg.TRAINER.ACTIVE_ROUND: 218 | logger.info('Task: {} Active Epoch: {}'.format(task, epoch)) 219 | if cfg.TRAINER.NAME == 'RAND': 220 | active_samples = RAND_active(tgt_unlabeled_ds=tgt_unlabeled_ds, 221 | tgt_selected_ds=tgt_selected_ds, 222 | active_ratio=0.01, 223 | totality=totality) 224 | elif cfg.TRAINER.NAME == 'EADA': 225 | active_samples = EADA_active(tgt_unlabeled_loader_full=tgt_unlabeled_loader_full, 226 | tgt_unlabeled_ds=tgt_unlabeled_ds, 227 | tgt_selected_ds=tgt_selected_ds, 228 | active_ratio=0.01, 229 | totality=totality, 230 | model=model, 231 | cfg=cfg) 232 | 233 | # record all selected target images 234 | if all_selected_images is None: 235 | all_selected_images = active_samples 236 | else: 237 | all_selected_images = np.concatenate((all_selected_images, active_samples), axis=0) 238 | 239 | # record all selected images 240 | ckt_path = os.path.join(cfg.OUTPUT_DIR, cfg.DATASET.NAME, task) 241 | mkdir(ckt_path) 242 | torch.save(all_selected_images, os.path.join(ckt_path, "all_selected_images.pth")) 243 | torch.save(final_model, os.path.join(ckt_path, "final_model_{}.pth".format(task))) 244 | 245 | # record results for test epochs 246 | with open(os.path.join(ckt_path, 'all_epoch_result.csv'), 'w') as handle: 247 | for i, rec in enumerate(all_epoch_result): 248 | if i == 0: 249 | handle.write(','.join(list(rec.keys())) + '\n') 250 | line = [str(rec[key]) for key in rec.keys()] 251 | handle.write(','.join(line) + '\n') 252 | 253 | total_training_time = time.time() - start_training_time 254 | total_time_str = str(datetime.timedelta(seconds=total_training_time)) 255 | logger.info( 256 | "Total training time: {} ({:.4f} s / ep)".format( 257 | total_time_str, total_training_time / cfg.TRAINER.MAX_EPOCHS 258 | ) 259 | ) 260 | 261 | return task, final_acc 262 | 263 | 264 | def main(): 265 | parser = argparse.ArgumentParser(description='PyTorch Activate Domain Adaptation') 266 | parser.add_argument('--cfg', 267 | default='', 268 | metavar='FILE', 269 | help='path to config file', 270 | type=str) 271 | parser.add_argument( 272 | "opts", 273 | help="Modify config options using the command-line", 274 | default=None, 275 | nargs=argparse.REMAINDER, 276 | ) 277 | 278 | args = parser.parse_args() 279 | 280 | cfg.merge_from_file(args.cfg) 281 | cfg.merge_from_list(args.opts) 282 | 283 | output_dir = os.path.join(cfg.OUTPUT_DIR, cfg.DATASET.NAME) 284 | if output_dir: 285 | mkdir(output_dir) 286 | 287 | logger = setup_logger("EADA", output_dir, 0) 288 | logger.info("Loaded configuration file {}".format(args.cfg)) 289 | logger.info("Running with config:\n{}".format(cfg)) 290 | 291 | if cfg.SEED >= 0: 292 | print('Setting fixed seed: {}'.format(cfg.SEED)) 293 | set_random_seed(cfg.SEED) 294 | 295 | cudnn.deterministic = True 296 | 297 | all_task_result = [] 298 | for source in cfg.DATASET.SOURCE_DOMAINS: 299 | for target in cfg.DATASET.TARGET_DOMAINS: 300 | if source != target: 301 | cfg.DATASET.SOURCE_TRAIN_DOMAIN = os.path.join(source + '_train.txt') 302 | cfg.DATASET.TARGET_TRAIN_DOMAIN = os.path.join(target + '_train.txt') 303 | cfg.DATASET.TARGET_VAL_DOMAIN = os.path.join(target + '_test.txt') 304 | 305 | cfg.freeze() 306 | task, final_acc = train(cfg, task=source + '2' + target) 307 | all_task_result.append({'task': task, 'final_acc': final_acc}) 308 | cfg.defrost() 309 | 310 | # record all results for all tasks 311 | with open(os.path.join(output_dir, 'all_task_result.csv'), 'w') as handle: 312 | for i, rec in enumerate(all_task_result): 313 | if i == 0: 314 | handle.write(','.join(list(rec.keys())) + '\n') 315 | line = [str(rec[key]) for key in rec.keys()] 316 | handle.write(','.join(line) + '\n') 317 | 318 | 319 | if __name__ == '__main__': 320 | main() 321 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | torchvision==0.8.1 2 | matplotlib==3.2.0 3 | yacs==0.1.8 4 | scipy==1.5.4 5 | torch==1.7.0 6 | numpy==1.18.0 7 | advertorch==0.2.3 8 | Pillow==8.3.1 9 | scikit_learn==0.24.2 10 | tensorboardX==2.4 11 | --------------------------------------------------------------------------------