├── README.md ├── adversarial-examples ├── random_perturbations │ ├── README.md │ ├── explore_space.py │ └── models.py └── spatially_transformed │ ├── README.md │ ├── model_mnist.py │ └── stadv.py ├── code ├── active.py ├── image_list.py ├── main.py ├── network.py ├── prepocess.py └── utils.py └── data ├── README.md ├── office-home ├── Art.txt ├── Clipart.txt ├── Product.txt └── Real_World.txt ├── office ├── amazon.txt ├── dslr.txt └── webcam.txt └── visda2017 ├── train_list.txt └── validation_list.txt /README.md: -------------------------------------------------------------------------------- 1 | # Transferable-Query-Selection 2 | Code Release for "Transferable Query Selection for Active Domain Adaptation"(CVPR2021) 3 | 4 | Waiting for code update and document. 5 | 6 | The adversarial-examples refs to https://github.com/sarathknv/adversarial-examples-pytorch 7 | 8 | * **Dataset Download** 9 | 10 | Dataset download:
11 | Office-31: http://people.eecs.berkeley.edu/~jhoffman/domainadapt/
12 | Office-Home: http://hemanthdv.org/OfficeHome-Dataset/
13 | VisDA: https://github.com/VisionLearningGroup/taskcv-2017-public/tree/master/classification
14 | Download the dataset according to the instructions on the above, and update the path in each file in the 'data' folder 15 | 16 | * **Specification of dependencies** 17 | 18 | We use the following libraries: pytorch 1.7, torchvision 0.6, numpy 1.18 and matplotlib 3.2.
19 | Pre-trained models resnet-50 can be automatically downloaded from the pytorch community.
20 | 21 | * **Command** 22 | 23 | For Office-31 command:
24 | python3 main.py --gpu 0 --lr 0.1 --batch-size 32 --epochs 50 --source data/office/amazon.txt --source-val data/office/amazon.txt --target data/office/dslr.txt --target-val data/office/dslr.txt --class-num 31 | tee "A_D.log" 25 | 26 | For Office-Home command:
27 | python3 main.py --gpu 0 --lr 0.1 --epochs 40 --batch-size 32 --source data/office-home/Art.txt --target data/office-home/Clipart.txt --target-val data/office-home/Clipart.txt --class-num 65 | tee "A_C.log" 28 | 29 | For VisDA command:
30 | python3 main.py --gpu 0 --lr 0.1 --batch-size 32 --epochs 20 --source data/visda2017/train_list.txt --target data/visda2017/validation_list.txt --target-val data/visda2017/validation_list.txt --class-num 12 | tee "vis.log" 31 | 32 | -------------------------------------------------------------------------------- /adversarial-examples/random_perturbations/README.md: -------------------------------------------------------------------------------- 1 | # Random Perturbations 2 | 3 | 4 | From one of the first papers on Adversarial examples - [Explaining and Harnessing Adversarial Examples](https://arxiv.org/abs/1412.6572), 5 | > The direction of perturbation, rather than the specific point in space, matters most. Space is 6 | not full of pockets of adversarial examples that finely tile the reals like the rational numbers. 7 | 8 | This project examines this idea by testing the robustness of a DNN to randomly generated perturbations. 9 | 10 | 11 | 12 | ## Usage 13 | ```bash 14 | $ python3 explore_space.py --img images/horse.png 15 | ``` 16 | 17 | 18 | 19 | ## Demo 20 | ![fgsm.gif](images/horse_explore_demo.gif) 21 | 22 | This code adds to the input image (`img`) a randomly generated perturbation (`vec1`) which is subjected to a max norm constraint `eps`. This adversarial image lies on a hypercube centerd around the original image. To explore a region (a hypersphere) around the adversarial image (`img + vec1`), we add to it another perturbation (`vec2`) which is constrained by L2 norm `rad`. 23 | Pressing keys `e` and `r` generates new `vec1` and `vec2` respectively. 24 | 25 | 26 | 27 | 28 | ## Random Perturbations 29 | 30 | The classifier is robust to these random perturbations even though they have severely degraded the image. Perturbations are clearly noticeable and have significantly higher max norm. 31 | 32 | | ![horse_explore](images/horse_explore_single.gif) | ![automobile_explore](images/automobile_explore.gif) | ![truck_explore](images/truck_explore.gif) | 33 | |:------------------------------------------:|:-----------------------:|:-----------:| 34 | | **horse** | **automobile** |: **truck** :| 35 | 36 | In above images, there is no change in class labels and very small drops in probability. 37 | 38 | 39 | 40 | 41 | ## FGSM Perturbations 42 | A properly directed perturbation with max norm as low as 3, which is almost imperceptible, can fool the classifier. 43 | 44 | | ![horse_scaled](images/horse_scaled.png) | ![horse_adversarial](images/horse_fgsm.png) | ![perturbation](images/horse_fgsm_pert.png) | 45 | |:---------:|:--------------------:|:--------------------------:| 46 | | **horse** | predicted - **dog** | perturbation **(eps = 6)** | 47 | 48 | 49 | -------------------------------------------------------------------------------- /adversarial-examples/random_perturbations/explore_space.py: -------------------------------------------------------------------------------- 1 | """ Generate random perturbations. 2 | There are two random vectors here (tensors of shape (32, 32, 3)), 3 | vec1 - max norm, eps 4 | vec2 - L2 norm, rad 5 | 6 | vec2 lies on a unit hypersphere and vec1 on hypercube 7 | 8 | Controls: 9 | 'r' - generate new vec2 10 | 'e' - generate new vec1 11 | 12 | Basically, perturbation vec1 is added to input image to check how robust the classifier is. 13 | And to explore a small region around the current adversarial image, (you can imagine them to be 14 | vectors in 32*32*4 dimensional space) we add vec2, a random vector inside a unit hypersphere. Radius can 15 | be increased by changing rad. Press 'r' and 'e' for changing vec2 and vec1 respectively. 16 | 17 | From 'Explaining and Harnessing Adversarial Examples' - https://arxiv.org/abs/1412.6572, 18 | ''' 19 | The direction of perturbation, rather than the specific point in space, matters most. 20 | Space is not full of pockets of adversarial examples that finely tile the reals like the rational numbers. 21 | ''' 22 | This code is to test this. 23 | 24 | """ 25 | import numpy as np 26 | import cv2 27 | from torch.autograd import Variable 28 | import argparse 29 | import torch 30 | from models import BasicCNN 31 | 32 | np.random.seed(0) 33 | 34 | cifar10_class_names = {0: 'airplane', 1: 'automobile', 2: 'bird', 3: 'cat', 4: 'deer', 5: 'dog', 6: 'frog', 7: 'horse', 8: 'ship', 9: 'truck'} 35 | 36 | parser = argparse.ArgumentParser() 37 | parser.add_argument('--img', type=str, default='images/horse.png', help='path to image') 38 | 39 | args = parser.parse_args() 40 | image_path = args.img 41 | 42 | def random_vector_surface(shape=(32, 32, 3)): 43 | # generates a random vector on the surface of hypersphere 44 | mat = np.random.normal(size=shape) 45 | norm = np.linalg.norm(mat) 46 | return mat/norm 47 | 48 | def random_vector_volume(shape=(32, 32, 3)): 49 | # generates a random vector in the volume of unit hypersphere 50 | d = np.random.rand() ** (1 / np.prod(shape)) 51 | 52 | return random_vector_surface() * d 53 | 54 | 55 | window_pert = 'perturbation' 56 | cv2.namedWindow(window_pert) 57 | 58 | 59 | eps, rad = 0, 0 60 | 61 | def get_radius(x): 62 | global eps, rad 63 | eps = cv2.getTrackbarPos('eps', window_pert) 64 | rad = cv2.getTrackbarPos('radius', window_pert) 65 | 66 | 67 | cv2.createTrackbar('eps', window_pert, 1, 255, get_radius) 68 | cv2.createTrackbar('radius', window_pert, 0, 255, get_radius) 69 | orig = cv2.imread(image_path)[..., ::-1] # BGR -> RGB 70 | orig = cv2.resize(orig, (32, 32)) 71 | 72 | 73 | vec1 = random_vector_surface() 74 | vec2 = random_vector_volume() 75 | pert = np.zeros((32, 32, 3), dtype=np.float32) 76 | 77 | 78 | model = BasicCNN() 79 | saved = torch.load("cifar10_basiccnn.pth.tar", map_location='cpu') 80 | model.load_state_dict(saved['state_dict']) 81 | model.eval() 82 | 83 | img = orig.astype(np.float32)/255.0 84 | img = img.transpose(2, 0, 1) 85 | 86 | def scale(x, scale=10): 87 | return cv2.resize(x, None, fx=scale, fy=scale, interpolation=cv2.INTER_AREA) 88 | 89 | def softmax(x): 90 | e_x = np.exp(x - np.max(x)) 91 | return e_x / e_x.sum() 92 | 93 | 94 | while True: 95 | 96 | key = cv2.waitKey(50) & 0xFF 97 | if key == 27: 98 | break 99 | 100 | elif key == ord('e'): 101 | vec1 = random_vector_surface() 102 | 103 | elif key == ord('r'): 104 | vec2 = random_vector_volume() 105 | 106 | pert = (eps/255.0) * np.sign(vec1) + (rad/255.0) * vec2 107 | 108 | inp = torch.from_numpy(img).float().unsqueeze(0) 109 | 110 | prob = softmax(model(inp).data.numpy())[0] 111 | pred = np.argmax(prob) 112 | 113 | # add perturbation to image 114 | inp = torch.clamp(inp + torch.from_numpy(pert.transpose(2, 0, 1)).float().unsqueeze(0), min=0, max=1) 115 | 116 | # predict on the adversarial image 117 | prob_adv = softmax(model(inp).data.numpy())[0] 118 | pred_adv = np.argmax(prob_adv) 119 | 120 | print("%s [%f] ---> %s [%f]" %(cifar10_class_names[pred], prob[pred], cifar10_class_names[pred_adv], prob_adv[pred_adv])) 121 | print() 122 | 123 | adv = inp.numpy()[0] 124 | adv = adv.transpose(1, 2, 0) 125 | 126 | adv = adv * 255.0 127 | adv = adv[..., ::-1] # RGB to BGR 128 | adv = np.clip(adv, 0, 255).astype(np.uint8) 129 | 130 | cv2.imshow(window_pert, scale(pert)) 131 | cv2.imshow('vec1', scale((eps/255.0)*np.sign(vec1))) 132 | cv2.imshow('vec2', (rad/255.0)*scale(vec2)) 133 | cv2.imshow('orig', scale(adv)) 134 | cv2.destroyAllWindows() 135 | -------------------------------------------------------------------------------- /adversarial-examples/random_perturbations/models.py: -------------------------------------------------------------------------------- 1 | """ 2 | Custom models for training on cifar10 and mnist 3 | 4 | BasicCNN and BasicNN 5 | """ 6 | 7 | import torch.nn.functional as F 8 | import torch.nn as nn 9 | 10 | class BasicCNN(nn.Module): 11 | def __init__(self): 12 | super(BasicCNN, self).__init__() 13 | """ 14 | input - (3, 32, 32) 15 | block 1 - (32, 32, 32) 16 | maxpool - (32, 16, 16) 17 | block 2 - (64, 16, 16) 18 | maxpool - (64, 8, 8) 19 | block 3 - (128, 8, 8) 20 | maxpool - (128, 4, 4) 21 | block 4 - (128, 4, 4) 22 | avgpool - (128, 1, 1), reshpe to (128,) 23 | fc - (128,) -> (10,) 24 | 25 | """ 26 | # block 1 27 | self.conv1 = nn.Conv2d(3, 32, kernel_size=3, padding=1) 28 | self.conv2 = nn.Conv2d(32, 32, kernel_size=3, padding=1) 29 | self.bn1 = nn.BatchNorm2d(32) 30 | 31 | # block 2 32 | self.conv3 = nn.Conv2d(32, 64, kernel_size=3, padding=1) 33 | self.conv4 = nn.Conv2d(64, 64, kernel_size=3, padding=1) 34 | self.bn2 = nn.BatchNorm2d(64) 35 | 36 | # block 3 37 | self.conv5 = nn.Conv2d(64, 128, kernel_size=3, padding=1) 38 | self.conv6 = nn.Conv2d(128, 128, kernel_size=3, padding=1) 39 | self.bn3 = nn.BatchNorm2d(128) 40 | 41 | # block 4 42 | self.conv7 = nn.Conv2d(128, 256, kernel_size=3, padding=1) 43 | self.conv8 = nn.Conv2d(256, 256, kernel_size=3, padding=1) 44 | self.bn4 = nn.BatchNorm2d(256) 45 | 46 | self.avgpool = nn.AdaptiveAvgPool2d(1) 47 | self.fc = nn.Linear(256, 10) 48 | 49 | def forward(self, x): 50 | 51 | # block 1 52 | x = F.relu(self.conv1(x)) 53 | x = F.relu(self.bn1(self.conv2(x))) 54 | 55 | # maxpool 56 | x = F.max_pool2d(x, 2) 57 | 58 | # block 2 59 | x = F.relu(self.conv3(x)) 60 | x = F.relu(self.bn2(self.conv4(x))) 61 | 62 | # maxpool 63 | x = F.max_pool2d(x, 2) 64 | 65 | # block 3 66 | x = F.relu(self.conv5(x)) 67 | x = F.relu(self.bn3(self.conv6(x))) 68 | 69 | # maxpool 70 | x = F.max_pool2d(x, 2) 71 | 72 | # block 4 73 | x = F.relu(self.conv7(x)) 74 | x = F.relu(self.bn4(self.conv8(x))) 75 | 76 | # avgpool and reshape to 1D 77 | x = self.avgpool(x) 78 | x = x.view(x.size(0), -1) 79 | 80 | # fc 81 | x = self.fc(x) 82 | 83 | return x 84 | 85 | class BasicNN(nn.Module): 86 | def __init__(self): 87 | super(BasicNN, self).__init__() 88 | 89 | self.fc1 = nn.Linear(28*28, 512) 90 | self.bn1 = nn.BatchNorm1d(512) 91 | 92 | self.fc2 = nn.Linear(512, 512) 93 | self.bn2 = nn.BatchNorm1d(512) 94 | 95 | self.fc3 = nn.Linear(512, 256) 96 | self.bn3 = nn.BatchNorm1d(256) 97 | 98 | 99 | self.fc4 = nn.Linear(256, 128) 100 | self.bn4 = nn.BatchNorm1d(128) 101 | 102 | self.fc5 = nn.Linear(128, 64) 103 | self.bn5 = nn.BatchNorm1d(64) 104 | 105 | self.fc6 = nn.Linear(64, 10) 106 | 107 | def forward(self, x): 108 | x = F.relu(self.bn1(self.fc1(x))) 109 | 110 | x = F.relu(self.bn2(self.fc2(x))) 111 | x = F.relu(self.bn3(self.fc3(x))) 112 | 113 | x = F.relu(self.bn4(self.fc4(x))) 114 | x = F.relu(self.bn5(self.fc5(x))) 115 | 116 | x = self.fc6(x) 117 | 118 | return x 119 | -------------------------------------------------------------------------------- /adversarial-examples/spatially_transformed/README.md: -------------------------------------------------------------------------------- 1 | # Spatially Transformed Adversarial Examples 2 | [Paper](https://arxiv.org/abs/1801.02612) | ICLR 2018 3 | For clarity refer [View Synthesis by Appearance Flow](https://people.eecs.berkeley.edu/~tinghuiz/papers/eccv16_appflow.pdf). 4 | 5 | 6 | ## Usage 7 | ```bash 8 | $ python3 stadv.py --img images/1.jpg --target 7 9 | ``` 10 | Requires OpenCV for real-time visualization. 11 | 12 | 13 | ## Demo 14 | ![0_1](images/demo/0_1.gif) ![1_2](images/demo/1_2.gif) ![2_3](images/demo/2_3.gif) ![3_4](images/demo/3_4.gif) ![4_5](images/demo/4_5.gif) ![5_6](images/demo/5_6.gif) ![6_7](images/demo/6_7.gif) ![7_8](images/demo/7_8.gif) ![8_9](images/demo/8_9.gif) ![9_0](images/demo/9_0.gif) 15 | 16 | ## Results 17 | #### MNIST 18 | Column index is target label and ground truth images are along diagonal. 19 | 20 | 21 | ![tile](images/tile.png?raw=true) 22 | 23 | -------------------------------------------------------------------------------- /adversarial-examples/spatially_transformed/model_mnist.py: -------------------------------------------------------------------------------- 1 | import torch.nn as nn 2 | import torch 3 | import torch.nn.functional as F 4 | 5 | 6 | class Basic_CNN(nn.Module): 7 | def __init__(self, in_channels, num_classes): 8 | super(Basic_CNN, self).__init__() 9 | 10 | self.in_channels = in_channels 11 | self.num_classes = num_classes 12 | 13 | self.conv1_1 = nn.Conv2d(self.in_channels, 32, kernel_size=3, padding=1) 14 | self.conv1_2 = nn.Conv2d(32, 32, kernel_size=3, padding=1) 15 | 16 | self.maxpool1 = nn.MaxPool2d(kernel_size=2) 17 | 18 | self.conv2_1 = nn.Conv2d(32, 64, kernel_size=3, padding=1) 19 | self.conv2_2 = nn.Conv2d(64, 64, kernel_size=3, padding=1) 20 | 21 | self.maxpool2 = nn.MaxPool2d(kernel_size=2) 22 | 23 | self.fc1 = nn.Linear(7*7*64, 200) 24 | self.fc2 = nn.Linear(200, self.num_classes) 25 | 26 | def forward(self, x): 27 | 28 | x = F.relu(self.conv1_1(x)) 29 | x = F.relu(self.conv1_2(x)) 30 | 31 | x = self.maxpool1(x) 32 | 33 | x = F.relu(self.conv2_1(x)) 34 | x = F.relu(self.conv2_2(x)) 35 | 36 | x = self.maxpool2(x) 37 | 38 | x = x.view(x.size(0), -1) 39 | x = F.relu(self.fc1(x)) 40 | x = self.fc2(x) 41 | 42 | return x 43 | 44 | 45 | if __name__ == '__main__': 46 | saved = torch.load('9920.pth.tar', map_location='cpu') 47 | model = Basic_CNN(1, 10) 48 | 49 | model.load_state_dict(saved['state_dict']) 50 | -------------------------------------------------------------------------------- /adversarial-examples/spatially_transformed/stadv.py: -------------------------------------------------------------------------------- 1 | """ Spatially Transformed Adversarial Examples 2 | Paper link: https://arxiv.org/abs/1801.02612 3 | """ 4 | import torch 5 | from torch.autograd import Variable 6 | import torch.nn as nn 7 | import torch.nn.functional as F 8 | 9 | import numpy as np 10 | import cv2 11 | import argparse 12 | from model_mnist import Basic_CNN 13 | 14 | 15 | def CWLoss(logits, target, kappa=0): 16 | # inputs to the softmax function are called logits. 17 | # https://arxiv.org/pdf/1608.04644.pdf 18 | target = torch.ones(logits.size(0)).type(logits.type()).fill_(target) 19 | target_one_hot = torch.eye(10).type(logits.type())[target.long()] 20 | 21 | # workaround here. 22 | # subtract large value from target class to find other max value 23 | # https://github.com/carlini/nn_robust_attacks/blob/master/l2_attack.py 24 | real = torch.sum(target_one_hot*logits, 1) 25 | other = torch.max((1-target_one_hot)*logits - (target_one_hot*10000), 1)[0] 26 | kappa = torch.zeros_like(other).fill_(kappa) 27 | 28 | return torch.sum(torch.max(other-real, kappa)) 29 | 30 | 31 | class Loss_flow(nn.Module): 32 | def __init__(self, neighbours=np.array([[1, 1, 1], [1, 0, 1], [1, 1, 1]])): 33 | super(Loss_flow, self).__init__() 34 | 35 | filters = [] 36 | for i in range(neighbours.shape[0]): 37 | for j in range(neighbours.shape[1]): 38 | if neighbours[i][j] == 1: 39 | filter = np.zeros((1, neighbours.shape[0], neighbours.shape[1])) 40 | filter[0][i][j] = -1 41 | filter[0][neighbours.shape[0]//2][neighbours.shape[1]//2] = 1 42 | filters.append(filter) 43 | 44 | filters = np.array(filters) 45 | self.filters = torch.from_numpy(filters).float() 46 | 47 | def forward(self, f): 48 | # TODO: padding 49 | ''' 50 | f - f.size() = [1, h, w, 2] 51 | f[0, :, :, 0] - u channel 52 | f[0, :, :, 1] - v channel 53 | ''' 54 | f_u = f[:, :, :, 0].unsqueeze(1) 55 | f_v = f[:, :, :, 1].unsqueeze(1) 56 | 57 | diff_u = F.conv2d(f_u, self.filters)[0][0] # don't use squeeze 58 | diff_u_sq = torch.mul(diff_u, diff_u) 59 | 60 | diff_v = F.conv2d(f_v, self.filters)[0][0] # don't use squeeze 61 | diff_v_sq = torch.mul(diff_v, diff_v) 62 | 63 | dist = torch.sqrt(torch.sum(diff_u_sq, dim=0) + torch.sum(diff_v_sq, dim=0)) 64 | return torch.sum(dist) 65 | 66 | 67 | if __name__ == '__main__': 68 | 69 | parser = argparse.ArgumentParser() 70 | parser.add_argument('--img', type=str, default='images/1.jpg', help='path to image') 71 | parser.add_argument('--target', type=int, required=True, help='Target label') 72 | parser.add_argument('--gpu', action="store_true", default=False) 73 | parser.add_argument('--tau', type=float, required=False, default=10, help='balance flow loss') 74 | parser.add_argument('--lr', type=float, required=False, default=0.005, help='Learning rate') 75 | 76 | args = parser.parse_args() 77 | img_path = args.img 78 | target = args.target 79 | gpu = args.gpu 80 | tau = args.tau 81 | lr = args.lr 82 | IMG_SIZE = 28 83 | mean = 0 # for flow initialization 84 | std = 0.01 85 | 86 | print('Spatially Transformed Adversarial Examples') 87 | print() 88 | 89 | 90 | orig = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE) 91 | img = orig.copy().astype(np.float32) 92 | perturbation = np.empty_like(orig) 93 | 94 | mean = [0.5] 95 | std = [0.5] 96 | img /= 255.0 97 | img = (img - mean)/std 98 | 99 | 100 | # load model 101 | model = Basic_CNN(1, 10) 102 | saved = torch.load('9920.pth.tar', map_location='cpu') 103 | model.load_state_dict(saved['state_dict']) 104 | model.eval() 105 | 106 | 107 | # prediction before attack 108 | x = Variable(torch.from_numpy(img).float().unsqueeze(0).unsqueeze(0), requires_grad=True) 109 | 110 | out = model(x) 111 | pred = np.argmax(out.data.cpu().numpy()) 112 | print('Prediction before attack: %s' %(pred)) 113 | 114 | if pred == target: 115 | print('Prediction is same as target class.') 116 | exit() 117 | 118 | 119 | # flow, grid, loss_functions 120 | theta = torch.tensor([[1, 0, 0], [0, 1, 0]]).unsqueeze(0).float() # identity transformation 121 | grid = F.affine_grid(theta, x.size()) # flow = 0. This is base grid 122 | # grid.size() = (1, h, w, 2) 123 | 124 | f = Variable(torch.zeros_like(grid).float(), requires_grad=True) 125 | torch.nn.init.normal_(f, mean=0, std=0.01) 126 | 127 | grid_new = grid + f 128 | grid_new = grid_new.clamp(min=-1, max=1) 129 | x_new = F.grid_sample(x, grid_new, mode='bilinear') 130 | 131 | 132 | optimizer = torch.optim.SGD([f,], lr=lr) # optimizer = torch.optim.LBFGS([f, ], lr=lr) 133 | 134 | loss_flow = Loss_flow() 135 | loss_adv = CWLoss 136 | 137 | i=0 138 | while True: 139 | optimizer.zero_grad() 140 | 141 | logits = model(x_new) # .detach() for LBFGS 142 | pred = np.argmax(logits.data.numpy()) 143 | 144 | loss = loss_adv(logits, target) + tau*loss_flow(f) 145 | loss.backward() 146 | optimizer.step() 147 | 148 | # update variables and predict on adversarial image 149 | grid_new = grid + f 150 | grid_new = grid_new.clamp(min=-1, max=1) 151 | x_new = F.grid_sample(x, grid_new, mode='bilinear') 152 | 153 | pred_adv = np.argmax(model(x_new).data.numpy()) 154 | 155 | i+=1 156 | print("step %d: [%d] \t" %(i, pred_adv)) 157 | 158 | 159 | adv = x_new.data[0][0] 160 | adv = np.clip(adv.numpy(), -1, 1) 161 | adv = (adv * 0.5 + 0.5)*255 162 | adv = adv.astype(np.uint8) 163 | 164 | cv2.imshow('adv', adv) 165 | cv2.imshow('orig', orig) 166 | key = cv2.waitKey(500) & 0xFF 167 | key2 = 0 168 | if key == 32: 169 | while True: 170 | key2 = cv2.waitKey(100) & 0xFF 171 | if key2 == 32 or key2 == 27: 172 | break 173 | if key2 == ord('s'): 174 | cv2.imwrite('adv.png', adv) 175 | cv2.imwrite('orig.png', orig) 176 | if pred_adv == target: 177 | while True: 178 | key2 = cv2.waitKey(100) & 0xFF 179 | if key2 == 32 or key2 == 27: 180 | break 181 | if key2 == ord('s'): 182 | cv2.imwrite('images/results/%d_%d.png'%(9, target), adv) 183 | 184 | if key == 27 or key2 == 27: 185 | break 186 | print() 187 | cv2.destroyAllWindows() 188 | -------------------------------------------------------------------------------- /code/active.py: -------------------------------------------------------------------------------- 1 | import random 2 | import math 3 | 4 | 5 | def random_active(candidate_dataset, aim_dataset, active_ratio, totality): 6 | length = len(candidate_dataset.samples) 7 | print(length) 8 | index = random.sample(range(length), round(totality * active_ratio)) 9 | print(index) 10 | aim_dataset.add_item(candidate_dataset.samples[index]) 11 | candidate_dataset.remove_item(index) 12 | 13 | 14 | def uncertainty_active(candidate_dataset, aim_dataset, uncertainty_rank, current_acc, active_ratio, totality): 15 | length = len(uncertainty_rank) 16 | num_active = math.ceil(totality * active_ratio) 17 | 18 | print('current_acc: {}'.format(current_acc)) 19 | start = round(current_acc * length) 20 | if length - start < num_active: 21 | start = length - num_active 22 | index = random.sample(range(start, length), num_active) 23 | print('range = {}, {}'.format(start, length)) 24 | print(index) 25 | 26 | active_samples = uncertainty_rank[index, 0:2, ...] 27 | candidate_ds_index = uncertainty_rank[index, 2, ...] 28 | 29 | aim_dataset.add_item(active_samples) 30 | candidate_dataset.remove_item(candidate_ds_index) 31 | 32 | return active_samples 33 | -------------------------------------------------------------------------------- /code/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 | 9 | 10 | def pil_loader(path): 11 | # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835) 12 | with open(path, 'rb') as f: 13 | img = Image.open(f) 14 | return img.convert('RGB') 15 | 16 | 17 | class ImageList(VisionDataset): 18 | """ 19 | Args: 20 | root (string): Root directory of dataset 21 | transform (callable, optional): A function/transform that takes in an PIL image 22 | and returns a transformed version. E.g, ``transforms.RandomCrop`` 23 | target_transform (callable, optional): A function/transform that takes in the 24 | target and transforms it. 25 | """ 26 | 27 | def __init__(self, root, transform=None, target_transform=None): 28 | super(ImageList, self).__init__(root, transform=transform, target_transform=target_transform) 29 | 30 | # self.samples = np.loadtxt(root, dtype=np.unicode_, delimiter=' ') 31 | self.samples = np.loadtxt(root, dtype=np.dtype((np.unicode_, 1000)), delimiter=' ') 32 | self.loader = pil_loader 33 | 34 | def __getitem__(self, index): 35 | 36 | path, target = self.samples[index] 37 | target = int(target) 38 | 39 | sample = self.loader(path) 40 | 41 | if self.transform is not None: 42 | sample = self.transform(sample) 43 | if self.target_transform is not None: 44 | target = self.target_transform(target) 45 | return sample, target, path 46 | 47 | def __len__(self): 48 | return len(self.samples) 49 | 50 | def add_item(self, addition): 51 | self.samples = np.concatenate((self.samples, addition), axis=0) 52 | return self.samples 53 | 54 | def remove_item(self, reduced): 55 | self.samples = np.delete(self.samples, reduced, axis=0) 56 | return self.samples 57 | -------------------------------------------------------------------------------- /code/main.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import argparse 3 | import torch 4 | import torch.nn as nn 5 | import torch.nn.functional as F 6 | import torch.optim as optim 7 | from torch.utils.data import DataLoader 8 | import torch.backends.cudnn as cudnn 9 | from torchvision import datasets, transforms 10 | from image_list import ImageList 11 | from prepocess import * 12 | from network import ResNet50Fc, Discriminator, MultiClassify 13 | from active import random_active, uncertainty_active 14 | import numpy as np 15 | from tensorboardX import SummaryWriter 16 | from utils import single_entropy, margin, get_consistency 17 | 18 | import random 19 | 20 | 21 | def train(args, model, device, train_loader, optimizer, epoch): 22 | model.train() 23 | for batch_idx, (data, target, path) in enumerate(train_loader): 24 | data, target = data.to(device), target.to(device) 25 | optimizer.zero_grad() 26 | feature, output = model(data) 27 | loss = F.cross_entropy(output, target) 28 | loss.backward() 29 | optimizer.step() 30 | if batch_idx % args.log_interval == 0: 31 | print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( 32 | epoch, batch_idx * len(data), len(train_loader.dataset), 33 | 100. * batch_idx / len(train_loader), loss.item())) 34 | 35 | 36 | def train_sim(args, model, discrim, device, source_train_loader, target_train_loader, optimizer, epoch): 37 | model.eval() 38 | discrim.train() 39 | for batch_idx, ((source_data, source_label, source_path), (target_data, target_label, target_path)) in enumerate( 40 | zip(source_train_loader, target_train_loader)): 41 | source_data, source_label = source_data.to(device), source_label.to(device) 42 | target_data, target_label = target_data.to(device), target_label.to(device) 43 | 44 | optimizer.zero_grad() 45 | 46 | with torch.no_grad(): 47 | source_feature, source_output = model(source_data) 48 | target_feature, target_output = model(target_data) 49 | 50 | source_sim = discrim(source_feature.detach()) 51 | target_sim = discrim(target_feature.detach()) 52 | 53 | sim_loss = F.binary_cross_entropy(source_sim, torch.zeros_like(source_sim)) + \ 54 | F.binary_cross_entropy(target_sim, torch.ones_like(target_sim)) 55 | sim_loss.backward() 56 | optimizer.step() 57 | 58 | if batch_idx % args.log_interval == 0: 59 | print('Sim Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( 60 | epoch, batch_idx * len(source_data), 61 | min(len(source_train_loader.dataset), len(target_train_loader.dataset)), 62 | 100. * batch_idx / min(len(source_train_loader), len(target_train_loader)), sim_loss.item())) 63 | 64 | 65 | def train_multi(args, model, model1, device, train_loader1, train_loader2, train_loader3, train_loader4, train_loader5, 66 | optimizer1, epoch): 67 | model.eval() 68 | model1.train() 69 | iters = zip(train_loader1, train_loader2, train_loader3, train_loader4, train_loader5) 70 | 71 | for batch_idx, ((data1, target1, path1), (data2, target2, path2), (data3, target3, path3), 72 | (data4, target4, path4), (data5, target5, path5)) in enumerate(iters): 73 | data1 = data1.to(device) 74 | data2 = data2.to(device) 75 | data3 = data3.to(device) 76 | data4 = data4.to(device) 77 | data5 = data5.to(device) 78 | 79 | target1 = target1.to(device) 80 | target2 = target2.to(device) 81 | target3 = target3.to(device) 82 | target4 = target4.to(device) 83 | target5 = target5.to(device) 84 | 85 | with torch.no_grad(): 86 | feature1, output1 = model(data1) 87 | feature2, output2 = model(data2) 88 | feature3, output3 = model(data3) 89 | feature4, output4 = model(data4) 90 | feature5, output5 = model(data5) 91 | 92 | optimizer1.zero_grad() 93 | 94 | y1_d1, y2_d1, y3_d1, y4_s1, y5_s1 = model1(feature1.detach()) 95 | y1_d2, y2_d2, y3_d2, y4_s2, y5_s2 = model1(feature2.detach()) 96 | y1_d3, y2_d3, y3_d3, y4_s3, y5_s3 = model1(feature3.detach()) 97 | y1_d4, y2_d4, y3_d4, y4_s4, y5_s4 = model1(feature4.detach()) 98 | y1_d5, y2_d5, y3_d5, y4_s5, y5_s5 = model1(feature5.detach()) 99 | 100 | loss1 = F.cross_entropy(y1_d1, target1) 101 | loss2 = F.cross_entropy(y2_d2, target2) 102 | loss3 = F.cross_entropy(y3_d3, target3) 103 | loss4 = F.cross_entropy(y4_s4, target4) 104 | loss5 = F.cross_entropy(y5_s5, target5) 105 | loss = loss1 + loss2 + loss3 + loss4 + loss5 106 | 107 | loss.backward() 108 | optimizer1.step() 109 | 110 | 111 | def test(args, model, device, test_loader, multi): 112 | model.eval() 113 | multi.eval() 114 | test_loss = 0 115 | correct = 0 116 | with torch.no_grad(): 117 | for data, target, path in test_loader: 118 | data, target = data.to(device), target.to(device) 119 | feature, output = model(data) 120 | test_loss += F.cross_entropy(output, target, reduction='sum').item() # sum up batch loss 121 | pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability 122 | correct += pred.eq(target.view_as(pred)).sum().item() 123 | 124 | test_loss /= len(test_loader.dataset) 125 | 126 | print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.2f}%)\n'.format( 127 | test_loss, correct, len(test_loader.dataset), 128 | 100. * correct / len(test_loader.dataset))) 129 | 130 | return correct / len(test_loader.dataset) 131 | 132 | 133 | def find(args, model, model1, device, train_loader): 134 | model.eval() 135 | model1.eval() 136 | stat = list() 137 | with torch.no_grad(): 138 | for batch_idx, (data, target, path) in enumerate(train_loader): 139 | data, target = data.to(device), target.to(device) 140 | feature, output = model(data) 141 | target_sim = model1(feature.detach()) 142 | 143 | entropy = single_entropy(output) 144 | 145 | pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability 146 | correct = pred.eq(target.view_as(pred)) 147 | 148 | for i in range(len(correct)): 149 | stat.append([path[i], target[i].item(), batch_idx * args.batch_size + i, 150 | pred[i].item(), entropy[i].item(), correct[i].item()]) 151 | 152 | stat = sorted(stat, key=lambda x: x[0]) 153 | np.savetxt('stat.csv', stat, delimiter=',', fmt='%s') 154 | return stat 155 | 156 | 157 | def uncertainty_evaluate(args, model, multi, discrim, device, train_loader): 158 | model.eval() 159 | multi.eval() 160 | stat = list() 161 | with torch.no_grad(): 162 | for batch_idx, (data, target, path) in enumerate(train_loader): 163 | data, target = data.to(device), target.to(device) 164 | feature, output = model(data) 165 | y1, y2, y3, y4, y5 = multi(feature) 166 | target_sim = discrim(feature.detach()) 167 | 168 | # uncertainty = margin(output) + get_consistency(y1, y2, y3, y4, y5) + target_sim 169 | uncertainty = margin(output) + get_consistency(y1, y2, y3, y4, y5) 170 | pred = output.argmax(dim=1, keepdim=True) # get the index of the max log-probability 171 | correct = pred.eq(target.view_as(pred)) 172 | 173 | for i in range(len(correct)): 174 | stat.append([path[i], target[i].item(), batch_idx * args.batch_size + i, 175 | pred[i].item(), uncertainty[i].item(), correct[i].item()]) 176 | 177 | stat = sorted(stat, key=lambda x: x[4]) 178 | stat = np.array(stat) 179 | return stat 180 | 181 | 182 | def main(): 183 | # Training settings 184 | parser = argparse.ArgumentParser(description='PyTorch Example') 185 | parser.add_argument('--batch-size', type=int, default=32, metavar='N', 186 | help='input batch size for training (default: 32)') 187 | parser.add_argument('--test-batch-size', type=int, default=256, metavar='N', 188 | help='input batch size for testing (default: 1000)') 189 | parser.add_argument('--epochs', type=int, default=20, metavar='N', 190 | help='number of epochs to train (default: 20)') 191 | parser.add_argument('--lr', type=float, default=0.1, metavar='LR', 192 | help='learning rate (default: 1.0)') 193 | parser.add_argument('--gamma', type=float, default=0.7, metavar='M', 194 | help='Learning rate step gamma (default: 0.7)') 195 | parser.add_argument('--gpu', default=None, type=str, 196 | help='GPU id to use.') 197 | parser.add_argument('--seed', type=int, default=1, metavar='S', 198 | help='random seed (default: 1)') 199 | parser.add_argument('--log-interval', type=int, default=50, metavar='N', 200 | help='how many batches to wait before logging training status') 201 | parser.add_argument('--save-model', action='store_true', default=False, 202 | help='For Saving the current Model') 203 | parser.add_argument('--source', type=str, default='', help="The source dataset path list") 204 | parser.add_argument('--source-val', type=str, default='', help="The source validation dataset path list") 205 | parser.add_argument('--target', type=str, default='', help="The target dataset path list") 206 | parser.add_argument('--target-val', type=str, default='', help="The target validation dataset path list") 207 | parser.add_argument('--class-num', default=31, type=int, help='class num of dataset.') 208 | args = parser.parse_args() 209 | use_cuda = args.gpu and torch.cuda.is_available() 210 | 211 | torch.manual_seed(args.seed) 212 | torch.cuda.manual_seed(args.seed) 213 | random.seed(args.seed) 214 | # cudnn.benchmark = True 215 | cudnn.deterministic = True 216 | device = torch.device("cuda:" + args.gpu if use_cuda else "cpu") 217 | 218 | writer = SummaryWriter() 219 | kwargs = {'num_workers': 2, 'pin_memory': True} if use_cuda else {} 220 | 221 | source_train_ds = ImageList(args.source, transform=train_transform) 222 | source_train_ds1 = ImageList(args.source, transform=train_transform1) 223 | source_train_ds2 = ImageList(args.source, transform=train_transform2) 224 | source_train_ds3 = ImageList(args.source, transform=train_transform3) 225 | source_train_ds4 = ImageList(args.source, transform=train_transform4) 226 | source_train_ds5 = ImageList(args.source, transform=train_transform5) 227 | 228 | target_train_ds = ImageList(args.target, transform=test_transform) 229 | target_val_ds = ImageList(args.target_val, transform=test_transform) 230 | 231 | source_train_loader = DataLoader(source_train_ds, batch_size=args.batch_size, shuffle=True, drop_last=True, 232 | **kwargs) 233 | train_loader1 = DataLoader(source_train_ds1, batch_size=args.batch_size, shuffle=True, drop_last=True, **kwargs) 234 | train_loader2 = DataLoader(source_train_ds2, batch_size=args.batch_size, shuffle=True, drop_last=True, **kwargs) 235 | train_loader3 = DataLoader(source_train_ds3, batch_size=args.batch_size, shuffle=True, drop_last=True, **kwargs) 236 | train_loader4 = DataLoader(source_train_ds4, batch_size=args.batch_size, shuffle=True, drop_last=True, **kwargs) 237 | train_loader5 = DataLoader(source_train_ds5, batch_size=args.batch_size, shuffle=True, drop_last=True, **kwargs) 238 | 239 | target_train_loader = DataLoader(target_train_ds, batch_size=args.batch_size, **kwargs) 240 | target_test_loader = DataLoader(target_val_ds, batch_size=args.test_batch_size, **kwargs) 241 | 242 | model = ResNet50Fc(bottleneck_dim=256, class_num=args.class_num).to(device) 243 | multi = MultiClassify(bottleneck_dim=256, class_num=args.class_num).to(device) 244 | discrim = Discriminator(bottleneck_dim=256).to(device) 245 | 246 | optimizer = optim.Adadelta(model.parameters_list(args.lr), lr=args.lr) 247 | optimizer1 = optim.Adadelta(multi.parameters(), lr=args.lr) 248 | 249 | totality = len(target_train_ds) 250 | for epoch in range(1, args.epochs + 1): 251 | 252 | train(args, model, device, source_train_loader, optimizer, epoch) 253 | train_multi(args, model, multi, device, train_loader1, train_loader2, train_loader3, train_loader4, 254 | train_loader5, optimizer1, epoch) 255 | train_sim(args, model, discrim, device, source_train_loader, target_train_loader, optimizer, epoch) 256 | test_acc = test(args, model, device, target_test_loader, multi) 257 | 258 | # print(test_acc) 259 | writer.add_scalar('testacc', test_acc, epoch) 260 | 261 | if epoch in [10, 12, 14, 16, 18]: 262 | # if epoch in [14, 16, 18, 20, 22, 24, 28, 30, 32, 34]: 263 | # if epoch in [8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46]: 264 | # if epoch in [2, 16]: 265 | # random_active(candidate_dataset=target_train_ds, aim_dataset=source_train_ds, active_ratio=0.01, 266 | # totality=totality) 267 | uncertainty_rank = uncertainty_evaluate(args, model, multi, discrim, device, target_train_loader) 268 | active_samples = uncertainty_active(candidate_dataset=target_train_ds, aim_dataset=source_train_ds, 269 | uncertainty_rank=uncertainty_rank, current_acc=test_acc, 270 | active_ratio=0.01, totality=totality) 271 | source_train_ds1.add_item(active_samples) 272 | source_train_ds2.add_item(active_samples) 273 | source_train_ds3.add_item(active_samples) 274 | source_train_ds4.add_item(active_samples) 275 | source_train_ds5.add_item(active_samples) 276 | 277 | # np.savetxt(args.source[17] + '-' + args.target[17] + '.txt', source_train_ds.samples, delimiter=' ', fmt='%s') 278 | 279 | # wrong_list = find(args, model, model1, device, target_test_loader) 280 | # np.savetxt('sim.txt', wrong_list, fmt='%.5f') 281 | # np.savetxt('wrong_list.txt', wrong_list, fmt='%s') 282 | 283 | if args.save_model: 284 | torch.save(model.state_dict(), "resnet.pt") 285 | 286 | # writer.export_scalars_to_json("./all_scalars.json") 287 | writer.close() 288 | 289 | 290 | if __name__ == '__main__': 291 | main() 292 | -------------------------------------------------------------------------------- /code/network.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import torchvision 4 | from torchvision import models 5 | import math 6 | 7 | 8 | class ResNet50Fc(nn.Module): 9 | 10 | def __init__(self, bottleneck_dim=256, class_num=1000): 11 | super(ResNet50Fc, self).__init__() 12 | self.model_resnet = models.resnet50(pretrained=True) 13 | 14 | model_resnet = self.model_resnet 15 | self.conv1 = model_resnet.conv1 16 | self.bn1 = model_resnet.bn1 17 | self.relu = model_resnet.relu 18 | self.maxpool = model_resnet.maxpool 19 | self.layer1 = model_resnet.layer1 20 | self.layer2 = model_resnet.layer2 21 | self.layer3 = model_resnet.layer3 22 | self.layer4 = model_resnet.layer4 23 | self.avgpool = model_resnet.avgpool 24 | self.bottleneck = nn.Linear(model_resnet.fc.in_features, bottleneck_dim) 25 | self.bn2 = nn.BatchNorm1d(bottleneck_dim) 26 | self.fc = nn.Linear(bottleneck_dim, class_num) 27 | # self.fc = nn.Linear(model_resnet.fc.in_features, class_num) 28 | 29 | def forward(self, x): 30 | x = self.conv1(x) 31 | x = self.bn1(x) 32 | x = self.relu(x) 33 | x = self.maxpool(x) 34 | x = self.layer1(x) 35 | x = self.layer2(x) 36 | x = self.layer3(x) 37 | x = self.layer4(x) 38 | x = self.avgpool(x) 39 | x = torch.flatten(x, 1) 40 | x = self.bottleneck(x) 41 | x = self.bn2(x) 42 | y = self.fc(x) 43 | return x, y 44 | 45 | def output_num(self): 46 | return self.__in_features 47 | 48 | def parameters_list(self, lr): 49 | parameter_list = [ 50 | {'params': self.conv1.parameters(), 'lr': lr / 10}, 51 | {'params': self.bn1.parameters(), 'lr': lr / 10}, 52 | {'params': self.maxpool.parameters(), 'lr': lr / 10}, 53 | {'params': self.layer1.parameters(), 'lr': lr / 10}, 54 | {'params': self.layer2.parameters(), 'lr': lr / 10}, 55 | {'params': self.layer3.parameters(), 'lr': lr / 10}, 56 | {'params': self.layer4.parameters(), 'lr': lr / 10}, 57 | {'params': self.avgpool.parameters(), 'lr': lr / 10}, 58 | {'params': self.bottleneck.parameters()}, 59 | # {'params': self.bn2.parameters()}, 60 | {'params': self.fc.parameters()}, 61 | ] 62 | 63 | return parameter_list 64 | 65 | 66 | class Discriminator(nn.Module): 67 | def __init__(self, bottleneck_dim=256): 68 | super(Discriminator, self).__init__() 69 | self.fc = nn.Linear(bottleneck_dim, 1) 70 | self.sigmoid = nn.Sigmoid() 71 | 72 | nn.init.kaiming_uniform_(self.fc.weight) 73 | 74 | def forward(self, x): 75 | x = self.fc(x) 76 | x = self.sigmoid(x) 77 | # x = torch.flatten(x) 78 | return x 79 | 80 | def parameters_list(self, lr): 81 | parameter_list = [ 82 | {'params': self.fc.parameters()}, 83 | {'params': self.sigmoid.parameters()} 84 | ] 85 | return parameter_list 86 | 87 | 88 | class MultiClassify(nn.Module): 89 | 90 | def __init__(self, bottleneck_dim=256, class_num=1000): 91 | super(MultiClassify, self).__init__() 92 | 93 | self.fc1 = nn.Linear(bottleneck_dim, class_num) 94 | self.fc2 = nn.Linear(bottleneck_dim, class_num) 95 | self.fc3 = nn.Linear(bottleneck_dim, class_num) 96 | self.fc4 = nn.Linear(bottleneck_dim, class_num) 97 | self.fc5 = nn.Linear(bottleneck_dim, class_num) 98 | 99 | nn.init.xavier_uniform_(self.fc1.weight, gain=nn.init.calculate_gain('relu')) 100 | nn.init.xavier_normal_(self.fc2.weight) 101 | nn.init.kaiming_uniform_(self.fc3.weight) 102 | nn.init.kaiming_uniform_(self.fc4.weight, nonlinearity='relu') 103 | nn.init.kaiming_normal_(self.fc5.weight, a=math.sqrt(5)) 104 | 105 | def forward(self, x): 106 | y1 = self.fc1(x) 107 | y2 = self.fc2(x) 108 | y3 = self.fc3(x) 109 | y4 = self.fc4(x) 110 | y5 = self.fc5(x) 111 | 112 | return y1, y2, y3, y4, y5 113 | -------------------------------------------------------------------------------- /code/prepocess.py: -------------------------------------------------------------------------------- 1 | from torchvision import datasets, transforms 2 | from PIL import Image 3 | 4 | train_transform = transforms.Compose([ 5 | transforms.Resize(256), 6 | # transforms.RandomHorizontalFlip(0.5), 7 | transforms.RandomCrop(224), 8 | transforms.ToTensor(), 9 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 10 | std=[0.229, 0.224, 0.225]), 11 | ]) 12 | 13 | test_transform = transforms.Compose([ 14 | transforms.Resize(256), 15 | transforms.CenterCrop(224), 16 | transforms.ToTensor(), 17 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 18 | std=[0.229, 0.224, 0.225]), 19 | ]) 20 | 21 | train_transform1 = transforms.Compose([ 22 | transforms.Resize(256), 23 | transforms.RandomHorizontalFlip(), 24 | transforms.RandomAffine(degrees=30, translate=(0.1, 0.1), scale=(0.9, 1.1), shear=0.2, resample=Image.BICUBIC, 25 | fillcolor=(255, 255, 255)), 26 | transforms.CenterCrop(224), 27 | transforms.RandomGrayscale(p=0.1), 28 | transforms.ToTensor(), 29 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 30 | std=[0.229, 0.224, 0.225]), 31 | ]) 32 | 33 | train_transform2 = transforms.Compose([ 34 | transforms.Resize(256), 35 | transforms.RandomHorizontalFlip(), 36 | transforms.RandomPerspective(), 37 | transforms.FiveCrop(224), 38 | transforms.Lambda(lambda crops: crops[0]), 39 | transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2), 40 | transforms.ToTensor(), 41 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 42 | std=[0.229, 0.224, 0.225]), 43 | ]) 44 | 45 | train_transform3 = transforms.Compose([ 46 | transforms.Resize(256), 47 | transforms.RandomHorizontalFlip(), 48 | transforms.RandomAffine(degrees=30, translate=(0.1, 0.1), scale=(0.9, 1.1), shear=0.2, resample=Image.BICUBIC, 49 | fillcolor=(255, 255, 255)), 50 | transforms.FiveCrop(224), 51 | transforms.Lambda(lambda crops: crops[1]), 52 | transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.2), 53 | transforms.ToTensor(), 54 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 55 | std=[0.229, 0.224, 0.225]), 56 | ]) 57 | 58 | train_transform4 = transforms.Compose([ 59 | transforms.Resize(256), 60 | transforms.RandomHorizontalFlip(), 61 | transforms.RandomAffine(degrees=10, translate=(0.1, 0.1), scale=(0.9, 1.1), shear=0.1, resample=Image.BICUBIC, 62 | fillcolor=(255, 255, 255)), 63 | transforms.RandomPerspective(), 64 | transforms.FiveCrop(224), 65 | transforms.Lambda(lambda crops: crops[2]), 66 | transforms.ToTensor(), 67 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 68 | std=[0.229, 0.224, 0.225]), 69 | ]) 70 | 71 | train_transform5 = transforms.Compose([ 72 | transforms.Resize(256), 73 | transforms.RandomHorizontalFlip(), 74 | transforms.RandomPerspective(), 75 | transforms.FiveCrop(224), 76 | transforms.Lambda(lambda crops: crops[3]), 77 | transforms.RandomGrayscale(p=0.1), 78 | transforms.ToTensor(), 79 | transforms.Normalize(mean=[0.485, 0.456, 0.406], 80 | std=[0.229, 0.224, 0.225]), 81 | ]) 82 | -------------------------------------------------------------------------------- /code/utils.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import numpy as np 4 | 5 | 6 | def single_entropy(fc2_s): 7 | fc2_s = nn.Softmax(-1)(fc2_s) 8 | entropy = torch.sum(- fc2_s * torch.log(fc2_s + 1e-10), dim=1) 9 | entropy_norm = np.log(fc2_s.size(1)) 10 | entropy = entropy / entropy_norm 11 | return entropy 12 | 13 | 14 | def margin(out): 15 | out = nn.Softmax(-1)(out) 16 | top2 = torch.topk(out, 2).values 17 | # print(top2) 18 | return 1 - (top2[:, 0] - top2[:, 1]) 19 | 20 | 21 | def get_entropy(fc2_s, fc2_s2, fc2_s3, fc2_s4, fc2_s5, domain_temperature=1.0, class_temperature=10.0): 22 | fc2_s = nn.Softmax(-1)(fc2_s) 23 | fc2_s2 = nn.Softmax(-1)(fc2_s2) 24 | fc2_s3 = nn.Softmax(-1)(fc2_s3) 25 | fc2_s4 = nn.Softmax(-1)(fc2_s4) 26 | fc2_s5 = nn.Softmax(-1)(fc2_s5) 27 | 28 | entropy = torch.sum(- fc2_s * torch.log(fc2_s + 1e-10), dim=1) 29 | entropy2 = torch.sum(- fc2_s2 * torch.log(fc2_s2 + 1e-10), dim=1) 30 | entropy3 = torch.sum(- fc2_s3 * torch.log(fc2_s3 + 1e-10), dim=1) 31 | entropy4 = torch.sum(- fc2_s4 * torch.log(fc2_s4 + 1e-10), dim=1) 32 | entropy5 = torch.sum(- fc2_s5 * torch.log(fc2_s5 + 1e-10), dim=1) 33 | entropy_norm = np.log(fc2_s.size(1)) 34 | 35 | weight = (entropy + entropy2 + entropy3 + entropy4 + entropy5) / (5 * entropy_norm) 36 | return weight 37 | 38 | 39 | def get_consistency(fc2_s, fc2_s2, fc2_s3, fc2_s4, fc2_s5): 40 | fc2_s = nn.Softmax(-1)(fc2_s) 41 | fc2_s2 = nn.Softmax(-1)(fc2_s2) 42 | fc2_s3 = nn.Softmax(-1)(fc2_s3) 43 | fc2_s4 = nn.Softmax(-1)(fc2_s4) 44 | fc2_s5 = nn.Softmax(-1)(fc2_s5) 45 | 46 | fc2_s = torch.unsqueeze(fc2_s, 1) 47 | fc2_s2 = torch.unsqueeze(fc2_s2, 1) 48 | fc2_s3 = torch.unsqueeze(fc2_s3, 1) 49 | fc2_s4 = torch.unsqueeze(fc2_s4, 1) 50 | fc2_s5 = torch.unsqueeze(fc2_s5, 1) 51 | c = torch.cat((fc2_s, fc2_s2, fc2_s3, fc2_s4, fc2_s5), dim=1) 52 | d = torch.std(c, 1) 53 | consistency = torch.mean(d, 1) 54 | return consistency 55 | 56 | 57 | def get_predict_prob(fc2_s, fc2_s2, fc2_s3, fc2_s4, fc2_s5): 58 | fc2_s = nn.Softmax(-1)(fc2_s) 59 | fc2_s2 = nn.Softmax(-1)(fc2_s2) 60 | fc2_s3 = nn.Softmax(-1)(fc2_s3) 61 | fc2_s4 = nn.Softmax(-1)(fc2_s4) 62 | fc2_s5 = nn.Softmax(-1)(fc2_s5) 63 | 64 | fc2_s = torch.unsqueeze(fc2_s, 1) 65 | fc2_s2 = torch.unsqueeze(fc2_s2, 1) 66 | fc2_s3 = torch.unsqueeze(fc2_s3, 1) 67 | fc2_s4 = torch.unsqueeze(fc2_s4, 1) 68 | fc2_s5 = torch.unsqueeze(fc2_s5, 1) 69 | c = torch.cat((fc2_s, fc2_s2, fc2_s3, fc2_s4, fc2_s5), dim=1) 70 | predict_prob = torch.mean(c, 1) 71 | predict_prob = nn.Softmax(-1)(predict_prob) 72 | return predict_prob 73 | 74 | 75 | def get_target_weight(entropy, consistency, threshold): 76 | sorce = (entropy + consistency) / 2 77 | weight = [0.0 for i in range(len(sorce))] 78 | for i in range(len(sorce)): 79 | if sorce[i] < (threshold / 2): 80 | weight[i] = 1.0 81 | return torch.tensor(weight) 82 | 83 | 84 | def normalize_weight(x): 85 | min_val = x.min() 86 | max_val = x.max() 87 | x = (x - min_val) / (max_val - min_val) 88 | return x.detach() 89 | 90 | 91 | def nega_normalize_weight(x): 92 | x = 1 - x 93 | return x.detach() 94 | -------------------------------------------------------------------------------- /data/README.md: -------------------------------------------------------------------------------- 1 | # Active-Domain-Adaptation 2 | 3 | Dataset download:
4 | Office-31: http://people.eecs.berkeley.edu/~jhoffman/domainadapt/
5 | Office-Home: http://hemanthdv.org/OfficeHome-Dataset/
6 | VisDA: https://github.com/VisionLearningGroup/taskcv-2017-public/tree/master/classification
7 | Download the dataset according to the instructions on the above, and update the path in each file in the 'data' folder 8 | -------------------------------------------------------------------------------- /data/office/dslr.txt: -------------------------------------------------------------------------------- 1 | domain_adaptation_images/dslr/images/back_pack/frame_0001.jpg 0 2 | domain_adaptation_images/dslr/images/back_pack/frame_0002.jpg 0 3 | domain_adaptation_images/dslr/images/back_pack/frame_0003.jpg 0 4 | domain_adaptation_images/dslr/images/back_pack/frame_0004.jpg 0 5 | domain_adaptation_images/dslr/images/back_pack/frame_0005.jpg 0 6 | domain_adaptation_images/dslr/images/back_pack/frame_0006.jpg 0 7 | domain_adaptation_images/dslr/images/back_pack/frame_0007.jpg 0 8 | domain_adaptation_images/dslr/images/back_pack/frame_0008.jpg 0 9 | domain_adaptation_images/dslr/images/back_pack/frame_0009.jpg 0 10 | domain_adaptation_images/dslr/images/back_pack/frame_0010.jpg 0 11 | domain_adaptation_images/dslr/images/back_pack/frame_0011.jpg 0 12 | domain_adaptation_images/dslr/images/back_pack/frame_0012.jpg 0 13 | domain_adaptation_images/dslr/images/bike/frame_0001.jpg 1 14 | domain_adaptation_images/dslr/images/bike/frame_0002.jpg 1 15 | domain_adaptation_images/dslr/images/bike/frame_0003.jpg 1 16 | domain_adaptation_images/dslr/images/bike/frame_0004.jpg 1 17 | domain_adaptation_images/dslr/images/bike/frame_0005.jpg 1 18 | domain_adaptation_images/dslr/images/bike/frame_0006.jpg 1 19 | domain_adaptation_images/dslr/images/bike/frame_0007.jpg 1 20 | domain_adaptation_images/dslr/images/bike/frame_0008.jpg 1 21 | domain_adaptation_images/dslr/images/bike/frame_0009.jpg 1 22 | domain_adaptation_images/dslr/images/bike/frame_0010.jpg 1 23 | domain_adaptation_images/dslr/images/bike/frame_0011.jpg 1 24 | domain_adaptation_images/dslr/images/bike/frame_0012.jpg 1 25 | domain_adaptation_images/dslr/images/bike/frame_0013.jpg 1 26 | domain_adaptation_images/dslr/images/bike/frame_0014.jpg 1 27 | domain_adaptation_images/dslr/images/bike/frame_0015.jpg 1 28 | domain_adaptation_images/dslr/images/bike/frame_0016.jpg 1 29 | domain_adaptation_images/dslr/images/bike/frame_0017.jpg 1 30 | domain_adaptation_images/dslr/images/bike/frame_0018.jpg 1 31 | domain_adaptation_images/dslr/images/bike/frame_0019.jpg 1 32 | domain_adaptation_images/dslr/images/bike/frame_0020.jpg 1 33 | domain_adaptation_images/dslr/images/bike/frame_0021.jpg 1 34 | domain_adaptation_images/dslr/images/bike_helmet/frame_0001.jpg 2 35 | domain_adaptation_images/dslr/images/bike_helmet/frame_0002.jpg 2 36 | domain_adaptation_images/dslr/images/bike_helmet/frame_0003.jpg 2 37 | domain_adaptation_images/dslr/images/bike_helmet/frame_0004.jpg 2 38 | domain_adaptation_images/dslr/images/bike_helmet/frame_0005.jpg 2 39 | domain_adaptation_images/dslr/images/bike_helmet/frame_0006.jpg 2 40 | domain_adaptation_images/dslr/images/bike_helmet/frame_0007.jpg 2 41 | domain_adaptation_images/dslr/images/bike_helmet/frame_0008.jpg 2 42 | domain_adaptation_images/dslr/images/bike_helmet/frame_0009.jpg 2 43 | domain_adaptation_images/dslr/images/bike_helmet/frame_0010.jpg 2 44 | domain_adaptation_images/dslr/images/bike_helmet/frame_0011.jpg 2 45 | domain_adaptation_images/dslr/images/bike_helmet/frame_0012.jpg 2 46 | domain_adaptation_images/dslr/images/bike_helmet/frame_0013.jpg 2 47 | domain_adaptation_images/dslr/images/bike_helmet/frame_0014.jpg 2 48 | domain_adaptation_images/dslr/images/bike_helmet/frame_0015.jpg 2 49 | domain_adaptation_images/dslr/images/bike_helmet/frame_0016.jpg 2 50 | domain_adaptation_images/dslr/images/bike_helmet/frame_0017.jpg 2 51 | domain_adaptation_images/dslr/images/bike_helmet/frame_0018.jpg 2 52 | domain_adaptation_images/dslr/images/bike_helmet/frame_0019.jpg 2 53 | domain_adaptation_images/dslr/images/bike_helmet/frame_0020.jpg 2 54 | domain_adaptation_images/dslr/images/bike_helmet/frame_0021.jpg 2 55 | domain_adaptation_images/dslr/images/bike_helmet/frame_0022.jpg 2 56 | domain_adaptation_images/dslr/images/bike_helmet/frame_0023.jpg 2 57 | domain_adaptation_images/dslr/images/bike_helmet/frame_0024.jpg 2 58 | domain_adaptation_images/dslr/images/bookcase/frame_0001.jpg 3 59 | domain_adaptation_images/dslr/images/bookcase/frame_0002.jpg 3 60 | domain_adaptation_images/dslr/images/bookcase/frame_0003.jpg 3 61 | domain_adaptation_images/dslr/images/bookcase/frame_0004.jpg 3 62 | domain_adaptation_images/dslr/images/bookcase/frame_0005.jpg 3 63 | domain_adaptation_images/dslr/images/bookcase/frame_0006.jpg 3 64 | domain_adaptation_images/dslr/images/bookcase/frame_0007.jpg 3 65 | domain_adaptation_images/dslr/images/bookcase/frame_0008.jpg 3 66 | domain_adaptation_images/dslr/images/bookcase/frame_0009.jpg 3 67 | domain_adaptation_images/dslr/images/bookcase/frame_0010.jpg 3 68 | domain_adaptation_images/dslr/images/bookcase/frame_0011.jpg 3 69 | domain_adaptation_images/dslr/images/bookcase/frame_0012.jpg 3 70 | domain_adaptation_images/dslr/images/bottle/frame_0001.jpg 4 71 | domain_adaptation_images/dslr/images/bottle/frame_0002.jpg 4 72 | domain_adaptation_images/dslr/images/bottle/frame_0003.jpg 4 73 | domain_adaptation_images/dslr/images/bottle/frame_0004.jpg 4 74 | domain_adaptation_images/dslr/images/bottle/frame_0005.jpg 4 75 | domain_adaptation_images/dslr/images/bottle/frame_0006.jpg 4 76 | domain_adaptation_images/dslr/images/bottle/frame_0007.jpg 4 77 | domain_adaptation_images/dslr/images/bottle/frame_0008.jpg 4 78 | domain_adaptation_images/dslr/images/bottle/frame_0009.jpg 4 79 | domain_adaptation_images/dslr/images/bottle/frame_0010.jpg 4 80 | domain_adaptation_images/dslr/images/bottle/frame_0011.jpg 4 81 | domain_adaptation_images/dslr/images/bottle/frame_0012.jpg 4 82 | domain_adaptation_images/dslr/images/bottle/frame_0013.jpg 4 83 | domain_adaptation_images/dslr/images/bottle/frame_0014.jpg 4 84 | domain_adaptation_images/dslr/images/bottle/frame_0015.jpg 4 85 | domain_adaptation_images/dslr/images/bottle/frame_0016.jpg 4 86 | domain_adaptation_images/dslr/images/calculator/frame_0001.jpg 5 87 | domain_adaptation_images/dslr/images/calculator/frame_0002.jpg 5 88 | domain_adaptation_images/dslr/images/calculator/frame_0003.jpg 5 89 | domain_adaptation_images/dslr/images/calculator/frame_0004.jpg 5 90 | domain_adaptation_images/dslr/images/calculator/frame_0005.jpg 5 91 | domain_adaptation_images/dslr/images/calculator/frame_0006.jpg 5 92 | domain_adaptation_images/dslr/images/calculator/frame_0007.jpg 5 93 | domain_adaptation_images/dslr/images/calculator/frame_0008.jpg 5 94 | domain_adaptation_images/dslr/images/calculator/frame_0009.jpg 5 95 | domain_adaptation_images/dslr/images/calculator/frame_0010.jpg 5 96 | domain_adaptation_images/dslr/images/calculator/frame_0011.jpg 5 97 | domain_adaptation_images/dslr/images/calculator/frame_0012.jpg 5 98 | domain_adaptation_images/dslr/images/desk_chair/frame_0001.jpg 6 99 | domain_adaptation_images/dslr/images/desk_chair/frame_0002.jpg 6 100 | domain_adaptation_images/dslr/images/desk_chair/frame_0003.jpg 6 101 | domain_adaptation_images/dslr/images/desk_chair/frame_0004.jpg 6 102 | domain_adaptation_images/dslr/images/desk_chair/frame_0005.jpg 6 103 | domain_adaptation_images/dslr/images/desk_chair/frame_0006.jpg 6 104 | domain_adaptation_images/dslr/images/desk_chair/frame_0007.jpg 6 105 | domain_adaptation_images/dslr/images/desk_chair/frame_0008.jpg 6 106 | domain_adaptation_images/dslr/images/desk_chair/frame_0009.jpg 6 107 | domain_adaptation_images/dslr/images/desk_chair/frame_0010.jpg 6 108 | domain_adaptation_images/dslr/images/desk_chair/frame_0011.jpg 6 109 | domain_adaptation_images/dslr/images/desk_chair/frame_0012.jpg 6 110 | domain_adaptation_images/dslr/images/desk_chair/frame_0013.jpg 6 111 | domain_adaptation_images/dslr/images/desk_lamp/frame_0001.jpg 7 112 | domain_adaptation_images/dslr/images/desk_lamp/frame_0002.jpg 7 113 | domain_adaptation_images/dslr/images/desk_lamp/frame_0003.jpg 7 114 | domain_adaptation_images/dslr/images/desk_lamp/frame_0004.jpg 7 115 | domain_adaptation_images/dslr/images/desk_lamp/frame_0005.jpg 7 116 | domain_adaptation_images/dslr/images/desk_lamp/frame_0006.jpg 7 117 | domain_adaptation_images/dslr/images/desk_lamp/frame_0007.jpg 7 118 | domain_adaptation_images/dslr/images/desk_lamp/frame_0008.jpg 7 119 | domain_adaptation_images/dslr/images/desk_lamp/frame_0009.jpg 7 120 | domain_adaptation_images/dslr/images/desk_lamp/frame_0010.jpg 7 121 | domain_adaptation_images/dslr/images/desk_lamp/frame_0011.jpg 7 122 | domain_adaptation_images/dslr/images/desk_lamp/frame_0012.jpg 7 123 | domain_adaptation_images/dslr/images/desk_lamp/frame_0013.jpg 7 124 | domain_adaptation_images/dslr/images/desk_lamp/frame_0014.jpg 7 125 | domain_adaptation_images/dslr/images/desktop_computer/frame_0001.jpg 8 126 | domain_adaptation_images/dslr/images/desktop_computer/frame_0002.jpg 8 127 | domain_adaptation_images/dslr/images/desktop_computer/frame_0003.jpg 8 128 | domain_adaptation_images/dslr/images/desktop_computer/frame_0004.jpg 8 129 | domain_adaptation_images/dslr/images/desktop_computer/frame_0005.jpg 8 130 | domain_adaptation_images/dslr/images/desktop_computer/frame_0006.jpg 8 131 | domain_adaptation_images/dslr/images/desktop_computer/frame_0007.jpg 8 132 | domain_adaptation_images/dslr/images/desktop_computer/frame_0008.jpg 8 133 | domain_adaptation_images/dslr/images/desktop_computer/frame_0009.jpg 8 134 | domain_adaptation_images/dslr/images/desktop_computer/frame_0010.jpg 8 135 | domain_adaptation_images/dslr/images/desktop_computer/frame_0011.jpg 8 136 | domain_adaptation_images/dslr/images/desktop_computer/frame_0012.jpg 8 137 | domain_adaptation_images/dslr/images/desktop_computer/frame_0013.jpg 8 138 | domain_adaptation_images/dslr/images/desktop_computer/frame_0014.jpg 8 139 | domain_adaptation_images/dslr/images/desktop_computer/frame_0015.jpg 8 140 | domain_adaptation_images/dslr/images/file_cabinet/frame_0001.jpg 9 141 | domain_adaptation_images/dslr/images/file_cabinet/frame_0002.jpg 9 142 | domain_adaptation_images/dslr/images/file_cabinet/frame_0003.jpg 9 143 | domain_adaptation_images/dslr/images/file_cabinet/frame_0004.jpg 9 144 | domain_adaptation_images/dslr/images/file_cabinet/frame_0005.jpg 9 145 | domain_adaptation_images/dslr/images/file_cabinet/frame_0006.jpg 9 146 | domain_adaptation_images/dslr/images/file_cabinet/frame_0007.jpg 9 147 | domain_adaptation_images/dslr/images/file_cabinet/frame_0008.jpg 9 148 | domain_adaptation_images/dslr/images/file_cabinet/frame_0009.jpg 9 149 | domain_adaptation_images/dslr/images/file_cabinet/frame_0010.jpg 9 150 | domain_adaptation_images/dslr/images/file_cabinet/frame_0011.jpg 9 151 | domain_adaptation_images/dslr/images/file_cabinet/frame_0012.jpg 9 152 | domain_adaptation_images/dslr/images/file_cabinet/frame_0013.jpg 9 153 | domain_adaptation_images/dslr/images/file_cabinet/frame_0014.jpg 9 154 | domain_adaptation_images/dslr/images/file_cabinet/frame_0015.jpg 9 155 | domain_adaptation_images/dslr/images/headphones/frame_0001.jpg 10 156 | domain_adaptation_images/dslr/images/headphones/frame_0002.jpg 10 157 | domain_adaptation_images/dslr/images/headphones/frame_0003.jpg 10 158 | domain_adaptation_images/dslr/images/headphones/frame_0004.jpg 10 159 | domain_adaptation_images/dslr/images/headphones/frame_0005.jpg 10 160 | domain_adaptation_images/dslr/images/headphones/frame_0006.jpg 10 161 | domain_adaptation_images/dslr/images/headphones/frame_0007.jpg 10 162 | domain_adaptation_images/dslr/images/headphones/frame_0008.jpg 10 163 | domain_adaptation_images/dslr/images/headphones/frame_0009.jpg 10 164 | domain_adaptation_images/dslr/images/headphones/frame_0010.jpg 10 165 | domain_adaptation_images/dslr/images/headphones/frame_0011.jpg 10 166 | domain_adaptation_images/dslr/images/headphones/frame_0012.jpg 10 167 | domain_adaptation_images/dslr/images/headphones/frame_0013.jpg 10 168 | domain_adaptation_images/dslr/images/keyboard/frame_0001.jpg 11 169 | domain_adaptation_images/dslr/images/keyboard/frame_0002.jpg 11 170 | domain_adaptation_images/dslr/images/keyboard/frame_0003.jpg 11 171 | domain_adaptation_images/dslr/images/keyboard/frame_0004.jpg 11 172 | domain_adaptation_images/dslr/images/keyboard/frame_0005.jpg 11 173 | domain_adaptation_images/dslr/images/keyboard/frame_0006.jpg 11 174 | domain_adaptation_images/dslr/images/keyboard/frame_0007.jpg 11 175 | domain_adaptation_images/dslr/images/keyboard/frame_0008.jpg 11 176 | domain_adaptation_images/dslr/images/keyboard/frame_0009.jpg 11 177 | domain_adaptation_images/dslr/images/keyboard/frame_0010.jpg 11 178 | domain_adaptation_images/dslr/images/laptop_computer/frame_0001.jpg 12 179 | domain_adaptation_images/dslr/images/laptop_computer/frame_0002.jpg 12 180 | domain_adaptation_images/dslr/images/laptop_computer/frame_0003.jpg 12 181 | domain_adaptation_images/dslr/images/laptop_computer/frame_0004.jpg 12 182 | domain_adaptation_images/dslr/images/laptop_computer/frame_0005.jpg 12 183 | domain_adaptation_images/dslr/images/laptop_computer/frame_0006.jpg 12 184 | domain_adaptation_images/dslr/images/laptop_computer/frame_0007.jpg 12 185 | domain_adaptation_images/dslr/images/laptop_computer/frame_0008.jpg 12 186 | domain_adaptation_images/dslr/images/laptop_computer/frame_0009.jpg 12 187 | domain_adaptation_images/dslr/images/laptop_computer/frame_0010.jpg 12 188 | domain_adaptation_images/dslr/images/laptop_computer/frame_0011.jpg 12 189 | domain_adaptation_images/dslr/images/laptop_computer/frame_0012.jpg 12 190 | domain_adaptation_images/dslr/images/laptop_computer/frame_0013.jpg 12 191 | domain_adaptation_images/dslr/images/laptop_computer/frame_0014.jpg 12 192 | domain_adaptation_images/dslr/images/laptop_computer/frame_0015.jpg 12 193 | domain_adaptation_images/dslr/images/laptop_computer/frame_0016.jpg 12 194 | domain_adaptation_images/dslr/images/laptop_computer/frame_0017.jpg 12 195 | domain_adaptation_images/dslr/images/laptop_computer/frame_0018.jpg 12 196 | domain_adaptation_images/dslr/images/laptop_computer/frame_0019.jpg 12 197 | domain_adaptation_images/dslr/images/laptop_computer/frame_0020.jpg 12 198 | domain_adaptation_images/dslr/images/laptop_computer/frame_0021.jpg 12 199 | domain_adaptation_images/dslr/images/laptop_computer/frame_0022.jpg 12 200 | domain_adaptation_images/dslr/images/laptop_computer/frame_0023.jpg 12 201 | domain_adaptation_images/dslr/images/laptop_computer/frame_0024.jpg 12 202 | domain_adaptation_images/dslr/images/letter_tray/frame_0001.jpg 13 203 | domain_adaptation_images/dslr/images/letter_tray/frame_0002.jpg 13 204 | domain_adaptation_images/dslr/images/letter_tray/frame_0003.jpg 13 205 | domain_adaptation_images/dslr/images/letter_tray/frame_0004.jpg 13 206 | domain_adaptation_images/dslr/images/letter_tray/frame_0005.jpg 13 207 | domain_adaptation_images/dslr/images/letter_tray/frame_0006.jpg 13 208 | domain_adaptation_images/dslr/images/letter_tray/frame_0007.jpg 13 209 | domain_adaptation_images/dslr/images/letter_tray/frame_0008.jpg 13 210 | domain_adaptation_images/dslr/images/letter_tray/frame_0009.jpg 13 211 | domain_adaptation_images/dslr/images/letter_tray/frame_0010.jpg 13 212 | domain_adaptation_images/dslr/images/letter_tray/frame_0011.jpg 13 213 | domain_adaptation_images/dslr/images/letter_tray/frame_0012.jpg 13 214 | domain_adaptation_images/dslr/images/letter_tray/frame_0013.jpg 13 215 | domain_adaptation_images/dslr/images/letter_tray/frame_0014.jpg 13 216 | domain_adaptation_images/dslr/images/letter_tray/frame_0015.jpg 13 217 | domain_adaptation_images/dslr/images/letter_tray/frame_0016.jpg 13 218 | domain_adaptation_images/dslr/images/mobile_phone/frame_0001.jpg 14 219 | domain_adaptation_images/dslr/images/mobile_phone/frame_0002.jpg 14 220 | domain_adaptation_images/dslr/images/mobile_phone/frame_0003.jpg 14 221 | domain_adaptation_images/dslr/images/mobile_phone/frame_0004.jpg 14 222 | domain_adaptation_images/dslr/images/mobile_phone/frame_0005.jpg 14 223 | domain_adaptation_images/dslr/images/mobile_phone/frame_0006.jpg 14 224 | domain_adaptation_images/dslr/images/mobile_phone/frame_0007.jpg 14 225 | domain_adaptation_images/dslr/images/mobile_phone/frame_0008.jpg 14 226 | domain_adaptation_images/dslr/images/mobile_phone/frame_0009.jpg 14 227 | domain_adaptation_images/dslr/images/mobile_phone/frame_0010.jpg 14 228 | domain_adaptation_images/dslr/images/mobile_phone/frame_0011.jpg 14 229 | domain_adaptation_images/dslr/images/mobile_phone/frame_0012.jpg 14 230 | domain_adaptation_images/dslr/images/mobile_phone/frame_0013.jpg 14 231 | domain_adaptation_images/dslr/images/mobile_phone/frame_0014.jpg 14 232 | domain_adaptation_images/dslr/images/mobile_phone/frame_0015.jpg 14 233 | domain_adaptation_images/dslr/images/mobile_phone/frame_0016.jpg 14 234 | domain_adaptation_images/dslr/images/mobile_phone/frame_0017.jpg 14 235 | domain_adaptation_images/dslr/images/mobile_phone/frame_0018.jpg 14 236 | domain_adaptation_images/dslr/images/mobile_phone/frame_0019.jpg 14 237 | domain_adaptation_images/dslr/images/mobile_phone/frame_0020.jpg 14 238 | domain_adaptation_images/dslr/images/mobile_phone/frame_0021.jpg 14 239 | domain_adaptation_images/dslr/images/mobile_phone/frame_0022.jpg 14 240 | domain_adaptation_images/dslr/images/mobile_phone/frame_0023.jpg 14 241 | domain_adaptation_images/dslr/images/mobile_phone/frame_0024.jpg 14 242 | domain_adaptation_images/dslr/images/mobile_phone/frame_0025.jpg 14 243 | domain_adaptation_images/dslr/images/mobile_phone/frame_0026.jpg 14 244 | domain_adaptation_images/dslr/images/mobile_phone/frame_0027.jpg 14 245 | domain_adaptation_images/dslr/images/mobile_phone/frame_0028.jpg 14 246 | domain_adaptation_images/dslr/images/mobile_phone/frame_0029.jpg 14 247 | domain_adaptation_images/dslr/images/mobile_phone/frame_0030.jpg 14 248 | domain_adaptation_images/dslr/images/mobile_phone/frame_0031.jpg 14 249 | domain_adaptation_images/dslr/images/monitor/frame_0001.jpg 15 250 | domain_adaptation_images/dslr/images/monitor/frame_0002.jpg 15 251 | domain_adaptation_images/dslr/images/monitor/frame_0003.jpg 15 252 | domain_adaptation_images/dslr/images/monitor/frame_0004.jpg 15 253 | domain_adaptation_images/dslr/images/monitor/frame_0005.jpg 15 254 | domain_adaptation_images/dslr/images/monitor/frame_0006.jpg 15 255 | domain_adaptation_images/dslr/images/monitor/frame_0007.jpg 15 256 | domain_adaptation_images/dslr/images/monitor/frame_0008.jpg 15 257 | domain_adaptation_images/dslr/images/monitor/frame_0009.jpg 15 258 | domain_adaptation_images/dslr/images/monitor/frame_0010.jpg 15 259 | domain_adaptation_images/dslr/images/monitor/frame_0011.jpg 15 260 | domain_adaptation_images/dslr/images/monitor/frame_0012.jpg 15 261 | domain_adaptation_images/dslr/images/monitor/frame_0013.jpg 15 262 | domain_adaptation_images/dslr/images/monitor/frame_0014.jpg 15 263 | domain_adaptation_images/dslr/images/monitor/frame_0015.jpg 15 264 | domain_adaptation_images/dslr/images/monitor/frame_0016.jpg 15 265 | domain_adaptation_images/dslr/images/monitor/frame_0017.jpg 15 266 | domain_adaptation_images/dslr/images/monitor/frame_0018.jpg 15 267 | domain_adaptation_images/dslr/images/monitor/frame_0019.jpg 15 268 | domain_adaptation_images/dslr/images/monitor/frame_0020.jpg 15 269 | domain_adaptation_images/dslr/images/monitor/frame_0021.jpg 15 270 | domain_adaptation_images/dslr/images/monitor/frame_0022.jpg 15 271 | domain_adaptation_images/dslr/images/mouse/frame_0001.jpg 16 272 | domain_adaptation_images/dslr/images/mouse/frame_0002.jpg 16 273 | domain_adaptation_images/dslr/images/mouse/frame_0003.jpg 16 274 | domain_adaptation_images/dslr/images/mouse/frame_0004.jpg 16 275 | domain_adaptation_images/dslr/images/mouse/frame_0005.jpg 16 276 | domain_adaptation_images/dslr/images/mouse/frame_0006.jpg 16 277 | domain_adaptation_images/dslr/images/mouse/frame_0007.jpg 16 278 | domain_adaptation_images/dslr/images/mouse/frame_0008.jpg 16 279 | domain_adaptation_images/dslr/images/mouse/frame_0009.jpg 16 280 | domain_adaptation_images/dslr/images/mouse/frame_0010.jpg 16 281 | domain_adaptation_images/dslr/images/mouse/frame_0011.jpg 16 282 | domain_adaptation_images/dslr/images/mouse/frame_0012.jpg 16 283 | domain_adaptation_images/dslr/images/mug/frame_0001.jpg 17 284 | domain_adaptation_images/dslr/images/mug/frame_0002.jpg 17 285 | domain_adaptation_images/dslr/images/mug/frame_0003.jpg 17 286 | domain_adaptation_images/dslr/images/mug/frame_0004.jpg 17 287 | domain_adaptation_images/dslr/images/mug/frame_0005.jpg 17 288 | domain_adaptation_images/dslr/images/mug/frame_0006.jpg 17 289 | domain_adaptation_images/dslr/images/mug/frame_0007.jpg 17 290 | domain_adaptation_images/dslr/images/mug/frame_0008.jpg 17 291 | domain_adaptation_images/dslr/images/paper_notebook/frame_0001.jpg 18 292 | domain_adaptation_images/dslr/images/paper_notebook/frame_0002.jpg 18 293 | domain_adaptation_images/dslr/images/paper_notebook/frame_0003.jpg 18 294 | domain_adaptation_images/dslr/images/paper_notebook/frame_0004.jpg 18 295 | domain_adaptation_images/dslr/images/paper_notebook/frame_0005.jpg 18 296 | domain_adaptation_images/dslr/images/paper_notebook/frame_0006.jpg 18 297 | domain_adaptation_images/dslr/images/paper_notebook/frame_0007.jpg 18 298 | domain_adaptation_images/dslr/images/paper_notebook/frame_0008.jpg 18 299 | domain_adaptation_images/dslr/images/paper_notebook/frame_0009.jpg 18 300 | domain_adaptation_images/dslr/images/paper_notebook/frame_0010.jpg 18 301 | domain_adaptation_images/dslr/images/pen/frame_0001.jpg 19 302 | domain_adaptation_images/dslr/images/pen/frame_0002.jpg 19 303 | domain_adaptation_images/dslr/images/pen/frame_0003.jpg 19 304 | domain_adaptation_images/dslr/images/pen/frame_0004.jpg 19 305 | domain_adaptation_images/dslr/images/pen/frame_0005.jpg 19 306 | domain_adaptation_images/dslr/images/pen/frame_0006.jpg 19 307 | domain_adaptation_images/dslr/images/pen/frame_0007.jpg 19 308 | domain_adaptation_images/dslr/images/pen/frame_0008.jpg 19 309 | domain_adaptation_images/dslr/images/pen/frame_0009.jpg 19 310 | domain_adaptation_images/dslr/images/pen/frame_0010.jpg 19 311 | domain_adaptation_images/dslr/images/phone/frame_0001.jpg 20 312 | domain_adaptation_images/dslr/images/phone/frame_0002.jpg 20 313 | domain_adaptation_images/dslr/images/phone/frame_0003.jpg 20 314 | domain_adaptation_images/dslr/images/phone/frame_0004.jpg 20 315 | domain_adaptation_images/dslr/images/phone/frame_0005.jpg 20 316 | domain_adaptation_images/dslr/images/phone/frame_0006.jpg 20 317 | domain_adaptation_images/dslr/images/phone/frame_0007.jpg 20 318 | domain_adaptation_images/dslr/images/phone/frame_0008.jpg 20 319 | domain_adaptation_images/dslr/images/phone/frame_0009.jpg 20 320 | domain_adaptation_images/dslr/images/phone/frame_0010.jpg 20 321 | domain_adaptation_images/dslr/images/phone/frame_0011.jpg 20 322 | domain_adaptation_images/dslr/images/phone/frame_0012.jpg 20 323 | domain_adaptation_images/dslr/images/phone/frame_0013.jpg 20 324 | domain_adaptation_images/dslr/images/printer/frame_0001.jpg 21 325 | domain_adaptation_images/dslr/images/printer/frame_0002.jpg 21 326 | domain_adaptation_images/dslr/images/printer/frame_0003.jpg 21 327 | domain_adaptation_images/dslr/images/printer/frame_0004.jpg 21 328 | domain_adaptation_images/dslr/images/printer/frame_0005.jpg 21 329 | domain_adaptation_images/dslr/images/printer/frame_0006.jpg 21 330 | domain_adaptation_images/dslr/images/printer/frame_0007.jpg 21 331 | domain_adaptation_images/dslr/images/printer/frame_0008.jpg 21 332 | domain_adaptation_images/dslr/images/printer/frame_0009.jpg 21 333 | domain_adaptation_images/dslr/images/printer/frame_0010.jpg 21 334 | domain_adaptation_images/dslr/images/printer/frame_0011.jpg 21 335 | domain_adaptation_images/dslr/images/printer/frame_0012.jpg 21 336 | domain_adaptation_images/dslr/images/printer/frame_0013.jpg 21 337 | domain_adaptation_images/dslr/images/printer/frame_0014.jpg 21 338 | domain_adaptation_images/dslr/images/printer/frame_0015.jpg 21 339 | domain_adaptation_images/dslr/images/projector/frame_0001.jpg 22 340 | domain_adaptation_images/dslr/images/projector/frame_0002.jpg 22 341 | domain_adaptation_images/dslr/images/projector/frame_0003.jpg 22 342 | domain_adaptation_images/dslr/images/projector/frame_0004.jpg 22 343 | domain_adaptation_images/dslr/images/projector/frame_0005.jpg 22 344 | domain_adaptation_images/dslr/images/projector/frame_0006.jpg 22 345 | domain_adaptation_images/dslr/images/projector/frame_0007.jpg 22 346 | domain_adaptation_images/dslr/images/projector/frame_0008.jpg 22 347 | domain_adaptation_images/dslr/images/projector/frame_0009.jpg 22 348 | domain_adaptation_images/dslr/images/projector/frame_0010.jpg 22 349 | domain_adaptation_images/dslr/images/projector/frame_0011.jpg 22 350 | domain_adaptation_images/dslr/images/projector/frame_0012.jpg 22 351 | domain_adaptation_images/dslr/images/projector/frame_0013.jpg 22 352 | domain_adaptation_images/dslr/images/projector/frame_0014.jpg 22 353 | domain_adaptation_images/dslr/images/projector/frame_0015.jpg 22 354 | domain_adaptation_images/dslr/images/projector/frame_0016.jpg 22 355 | domain_adaptation_images/dslr/images/projector/frame_0017.jpg 22 356 | domain_adaptation_images/dslr/images/projector/frame_0018.jpg 22 357 | domain_adaptation_images/dslr/images/projector/frame_0019.jpg 22 358 | domain_adaptation_images/dslr/images/projector/frame_0020.jpg 22 359 | domain_adaptation_images/dslr/images/projector/frame_0021.jpg 22 360 | domain_adaptation_images/dslr/images/projector/frame_0022.jpg 22 361 | domain_adaptation_images/dslr/images/projector/frame_0023.jpg 22 362 | domain_adaptation_images/dslr/images/punchers/frame_0001.jpg 23 363 | domain_adaptation_images/dslr/images/punchers/frame_0002.jpg 23 364 | domain_adaptation_images/dslr/images/punchers/frame_0003.jpg 23 365 | domain_adaptation_images/dslr/images/punchers/frame_0004.jpg 23 366 | domain_adaptation_images/dslr/images/punchers/frame_0005.jpg 23 367 | domain_adaptation_images/dslr/images/punchers/frame_0006.jpg 23 368 | domain_adaptation_images/dslr/images/punchers/frame_0007.jpg 23 369 | domain_adaptation_images/dslr/images/punchers/frame_0008.jpg 23 370 | domain_adaptation_images/dslr/images/punchers/frame_0009.jpg 23 371 | domain_adaptation_images/dslr/images/punchers/frame_0010.jpg 23 372 | domain_adaptation_images/dslr/images/punchers/frame_0011.jpg 23 373 | domain_adaptation_images/dslr/images/punchers/frame_0012.jpg 23 374 | domain_adaptation_images/dslr/images/punchers/frame_0013.jpg 23 375 | domain_adaptation_images/dslr/images/punchers/frame_0014.jpg 23 376 | domain_adaptation_images/dslr/images/punchers/frame_0015.jpg 23 377 | domain_adaptation_images/dslr/images/punchers/frame_0016.jpg 23 378 | domain_adaptation_images/dslr/images/punchers/frame_0017.jpg 23 379 | domain_adaptation_images/dslr/images/punchers/frame_0018.jpg 23 380 | domain_adaptation_images/dslr/images/ring_binder/frame_0001.jpg 24 381 | domain_adaptation_images/dslr/images/ring_binder/frame_0002.jpg 24 382 | domain_adaptation_images/dslr/images/ring_binder/frame_0003.jpg 24 383 | domain_adaptation_images/dslr/images/ring_binder/frame_0004.jpg 24 384 | domain_adaptation_images/dslr/images/ring_binder/frame_0005.jpg 24 385 | domain_adaptation_images/dslr/images/ring_binder/frame_0006.jpg 24 386 | domain_adaptation_images/dslr/images/ring_binder/frame_0007.jpg 24 387 | domain_adaptation_images/dslr/images/ring_binder/frame_0008.jpg 24 388 | domain_adaptation_images/dslr/images/ring_binder/frame_0009.jpg 24 389 | domain_adaptation_images/dslr/images/ring_binder/frame_0010.jpg 24 390 | domain_adaptation_images/dslr/images/ruler/frame_0001.jpg 25 391 | domain_adaptation_images/dslr/images/ruler/frame_0002.jpg 25 392 | domain_adaptation_images/dslr/images/ruler/frame_0003.jpg 25 393 | domain_adaptation_images/dslr/images/ruler/frame_0004.jpg 25 394 | domain_adaptation_images/dslr/images/ruler/frame_0005.jpg 25 395 | domain_adaptation_images/dslr/images/ruler/frame_0006.jpg 25 396 | domain_adaptation_images/dslr/images/ruler/frame_0007.jpg 25 397 | domain_adaptation_images/dslr/images/scissors/frame_0001.jpg 26 398 | domain_adaptation_images/dslr/images/scissors/frame_0002.jpg 26 399 | domain_adaptation_images/dslr/images/scissors/frame_0003.jpg 26 400 | domain_adaptation_images/dslr/images/scissors/frame_0004.jpg 26 401 | domain_adaptation_images/dslr/images/scissors/frame_0005.jpg 26 402 | domain_adaptation_images/dslr/images/scissors/frame_0006.jpg 26 403 | domain_adaptation_images/dslr/images/scissors/frame_0007.jpg 26 404 | domain_adaptation_images/dslr/images/scissors/frame_0008.jpg 26 405 | domain_adaptation_images/dslr/images/scissors/frame_0009.jpg 26 406 | domain_adaptation_images/dslr/images/scissors/frame_0010.jpg 26 407 | domain_adaptation_images/dslr/images/scissors/frame_0011.jpg 26 408 | domain_adaptation_images/dslr/images/scissors/frame_0012.jpg 26 409 | domain_adaptation_images/dslr/images/scissors/frame_0013.jpg 26 410 | domain_adaptation_images/dslr/images/scissors/frame_0014.jpg 26 411 | domain_adaptation_images/dslr/images/scissors/frame_0015.jpg 26 412 | domain_adaptation_images/dslr/images/scissors/frame_0016.jpg 26 413 | domain_adaptation_images/dslr/images/scissors/frame_0017.jpg 26 414 | domain_adaptation_images/dslr/images/scissors/frame_0018.jpg 26 415 | domain_adaptation_images/dslr/images/speaker/frame_0001.jpg 27 416 | domain_adaptation_images/dslr/images/speaker/frame_0002.jpg 27 417 | domain_adaptation_images/dslr/images/speaker/frame_0003.jpg 27 418 | domain_adaptation_images/dslr/images/speaker/frame_0004.jpg 27 419 | domain_adaptation_images/dslr/images/speaker/frame_0005.jpg 27 420 | domain_adaptation_images/dslr/images/speaker/frame_0006.jpg 27 421 | domain_adaptation_images/dslr/images/speaker/frame_0007.jpg 27 422 | domain_adaptation_images/dslr/images/speaker/frame_0008.jpg 27 423 | domain_adaptation_images/dslr/images/speaker/frame_0009.jpg 27 424 | domain_adaptation_images/dslr/images/speaker/frame_0010.jpg 27 425 | domain_adaptation_images/dslr/images/speaker/frame_0011.jpg 27 426 | domain_adaptation_images/dslr/images/speaker/frame_0012.jpg 27 427 | domain_adaptation_images/dslr/images/speaker/frame_0013.jpg 27 428 | domain_adaptation_images/dslr/images/speaker/frame_0014.jpg 27 429 | domain_adaptation_images/dslr/images/speaker/frame_0015.jpg 27 430 | domain_adaptation_images/dslr/images/speaker/frame_0016.jpg 27 431 | domain_adaptation_images/dslr/images/speaker/frame_0017.jpg 27 432 | domain_adaptation_images/dslr/images/speaker/frame_0018.jpg 27 433 | domain_adaptation_images/dslr/images/speaker/frame_0019.jpg 27 434 | domain_adaptation_images/dslr/images/speaker/frame_0020.jpg 27 435 | domain_adaptation_images/dslr/images/speaker/frame_0021.jpg 27 436 | domain_adaptation_images/dslr/images/speaker/frame_0022.jpg 27 437 | domain_adaptation_images/dslr/images/speaker/frame_0023.jpg 27 438 | domain_adaptation_images/dslr/images/speaker/frame_0024.jpg 27 439 | domain_adaptation_images/dslr/images/speaker/frame_0025.jpg 27 440 | domain_adaptation_images/dslr/images/speaker/frame_0026.jpg 27 441 | domain_adaptation_images/dslr/images/stapler/frame_0001.jpg 28 442 | domain_adaptation_images/dslr/images/stapler/frame_0002.jpg 28 443 | domain_adaptation_images/dslr/images/stapler/frame_0003.jpg 28 444 | domain_adaptation_images/dslr/images/stapler/frame_0004.jpg 28 445 | domain_adaptation_images/dslr/images/stapler/frame_0005.jpg 28 446 | domain_adaptation_images/dslr/images/stapler/frame_0006.jpg 28 447 | domain_adaptation_images/dslr/images/stapler/frame_0007.jpg 28 448 | domain_adaptation_images/dslr/images/stapler/frame_0008.jpg 28 449 | domain_adaptation_images/dslr/images/stapler/frame_0009.jpg 28 450 | domain_adaptation_images/dslr/images/stapler/frame_0010.jpg 28 451 | domain_adaptation_images/dslr/images/stapler/frame_0011.jpg 28 452 | domain_adaptation_images/dslr/images/stapler/frame_0012.jpg 28 453 | domain_adaptation_images/dslr/images/stapler/frame_0013.jpg 28 454 | domain_adaptation_images/dslr/images/stapler/frame_0014.jpg 28 455 | domain_adaptation_images/dslr/images/stapler/frame_0015.jpg 28 456 | domain_adaptation_images/dslr/images/stapler/frame_0016.jpg 28 457 | domain_adaptation_images/dslr/images/stapler/frame_0017.jpg 28 458 | domain_adaptation_images/dslr/images/stapler/frame_0018.jpg 28 459 | domain_adaptation_images/dslr/images/stapler/frame_0019.jpg 28 460 | domain_adaptation_images/dslr/images/stapler/frame_0020.jpg 28 461 | domain_adaptation_images/dslr/images/stapler/frame_0021.jpg 28 462 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0001.jpg 29 463 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0002.jpg 29 464 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0003.jpg 29 465 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0004.jpg 29 466 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0005.jpg 29 467 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0006.jpg 29 468 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0007.jpg 29 469 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0008.jpg 29 470 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0009.jpg 29 471 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0010.jpg 29 472 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0011.jpg 29 473 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0012.jpg 29 474 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0013.jpg 29 475 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0014.jpg 29 476 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0015.jpg 29 477 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0016.jpg 29 478 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0017.jpg 29 479 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0018.jpg 29 480 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0019.jpg 29 481 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0020.jpg 29 482 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0021.jpg 29 483 | domain_adaptation_images/dslr/images/tape_dispenser/frame_0022.jpg 29 484 | domain_adaptation_images/dslr/images/trash_can/frame_0001.jpg 30 485 | domain_adaptation_images/dslr/images/trash_can/frame_0002.jpg 30 486 | domain_adaptation_images/dslr/images/trash_can/frame_0003.jpg 30 487 | domain_adaptation_images/dslr/images/trash_can/frame_0004.jpg 30 488 | domain_adaptation_images/dslr/images/trash_can/frame_0005.jpg 30 489 | domain_adaptation_images/dslr/images/trash_can/frame_0006.jpg 30 490 | domain_adaptation_images/dslr/images/trash_can/frame_0007.jpg 30 491 | domain_adaptation_images/dslr/images/trash_can/frame_0008.jpg 30 492 | domain_adaptation_images/dslr/images/trash_can/frame_0009.jpg 30 493 | domain_adaptation_images/dslr/images/trash_can/frame_0010.jpg 30 494 | domain_adaptation_images/dslr/images/trash_can/frame_0011.jpg 30 495 | domain_adaptation_images/dslr/images/trash_can/frame_0012.jpg 30 496 | domain_adaptation_images/dslr/images/trash_can/frame_0013.jpg 30 497 | domain_adaptation_images/dslr/images/trash_can/frame_0014.jpg 30 498 | domain_adaptation_images/dslr/images/trash_can/frame_0015.jpg 30 499 | -------------------------------------------------------------------------------- /data/office/webcam.txt: -------------------------------------------------------------------------------- 1 | domain_adaptation_images/webcam/images/back_pack/frame_0001.jpg 0 2 | domain_adaptation_images/webcam/images/back_pack/frame_0002.jpg 0 3 | domain_adaptation_images/webcam/images/back_pack/frame_0003.jpg 0 4 | domain_adaptation_images/webcam/images/back_pack/frame_0004.jpg 0 5 | domain_adaptation_images/webcam/images/back_pack/frame_0005.jpg 0 6 | domain_adaptation_images/webcam/images/back_pack/frame_0006.jpg 0 7 | domain_adaptation_images/webcam/images/back_pack/frame_0007.jpg 0 8 | domain_adaptation_images/webcam/images/back_pack/frame_0008.jpg 0 9 | domain_adaptation_images/webcam/images/back_pack/frame_0009.jpg 0 10 | domain_adaptation_images/webcam/images/back_pack/frame_0010.jpg 0 11 | domain_adaptation_images/webcam/images/back_pack/frame_0011.jpg 0 12 | domain_adaptation_images/webcam/images/back_pack/frame_0012.jpg 0 13 | domain_adaptation_images/webcam/images/back_pack/frame_0013.jpg 0 14 | domain_adaptation_images/webcam/images/back_pack/frame_0014.jpg 0 15 | domain_adaptation_images/webcam/images/back_pack/frame_0015.jpg 0 16 | domain_adaptation_images/webcam/images/back_pack/frame_0016.jpg 0 17 | domain_adaptation_images/webcam/images/back_pack/frame_0017.jpg 0 18 | domain_adaptation_images/webcam/images/back_pack/frame_0018.jpg 0 19 | domain_adaptation_images/webcam/images/back_pack/frame_0019.jpg 0 20 | domain_adaptation_images/webcam/images/back_pack/frame_0020.jpg 0 21 | domain_adaptation_images/webcam/images/back_pack/frame_0021.jpg 0 22 | domain_adaptation_images/webcam/images/back_pack/frame_0022.jpg 0 23 | domain_adaptation_images/webcam/images/back_pack/frame_0023.jpg 0 24 | domain_adaptation_images/webcam/images/back_pack/frame_0024.jpg 0 25 | domain_adaptation_images/webcam/images/back_pack/frame_0025.jpg 0 26 | domain_adaptation_images/webcam/images/back_pack/frame_0026.jpg 0 27 | domain_adaptation_images/webcam/images/back_pack/frame_0027.jpg 0 28 | domain_adaptation_images/webcam/images/back_pack/frame_0028.jpg 0 29 | domain_adaptation_images/webcam/images/back_pack/frame_0029.jpg 0 30 | domain_adaptation_images/webcam/images/bike/frame_0001.jpg 1 31 | domain_adaptation_images/webcam/images/bike/frame_0002.jpg 1 32 | domain_adaptation_images/webcam/images/bike/frame_0003.jpg 1 33 | domain_adaptation_images/webcam/images/bike/frame_0004.jpg 1 34 | domain_adaptation_images/webcam/images/bike/frame_0005.jpg 1 35 | domain_adaptation_images/webcam/images/bike/frame_0006.jpg 1 36 | domain_adaptation_images/webcam/images/bike/frame_0007.jpg 1 37 | domain_adaptation_images/webcam/images/bike/frame_0008.jpg 1 38 | domain_adaptation_images/webcam/images/bike/frame_0009.jpg 1 39 | domain_adaptation_images/webcam/images/bike/frame_0010.jpg 1 40 | domain_adaptation_images/webcam/images/bike/frame_0011.jpg 1 41 | domain_adaptation_images/webcam/images/bike/frame_0012.jpg 1 42 | domain_adaptation_images/webcam/images/bike/frame_0013.jpg 1 43 | domain_adaptation_images/webcam/images/bike/frame_0014.jpg 1 44 | domain_adaptation_images/webcam/images/bike/frame_0015.jpg 1 45 | domain_adaptation_images/webcam/images/bike/frame_0016.jpg 1 46 | domain_adaptation_images/webcam/images/bike/frame_0017.jpg 1 47 | domain_adaptation_images/webcam/images/bike/frame_0018.jpg 1 48 | domain_adaptation_images/webcam/images/bike/frame_0019.jpg 1 49 | domain_adaptation_images/webcam/images/bike/frame_0020.jpg 1 50 | domain_adaptation_images/webcam/images/bike/frame_0021.jpg 1 51 | domain_adaptation_images/webcam/images/bike_helmet/frame_0001.jpg 2 52 | domain_adaptation_images/webcam/images/bike_helmet/frame_0002.jpg 2 53 | domain_adaptation_images/webcam/images/bike_helmet/frame_0003.jpg 2 54 | domain_adaptation_images/webcam/images/bike_helmet/frame_0004.jpg 2 55 | domain_adaptation_images/webcam/images/bike_helmet/frame_0005.jpg 2 56 | domain_adaptation_images/webcam/images/bike_helmet/frame_0006.jpg 2 57 | domain_adaptation_images/webcam/images/bike_helmet/frame_0007.jpg 2 58 | domain_adaptation_images/webcam/images/bike_helmet/frame_0008.jpg 2 59 | domain_adaptation_images/webcam/images/bike_helmet/frame_0009.jpg 2 60 | domain_adaptation_images/webcam/images/bike_helmet/frame_0010.jpg 2 61 | domain_adaptation_images/webcam/images/bike_helmet/frame_0011.jpg 2 62 | domain_adaptation_images/webcam/images/bike_helmet/frame_0012.jpg 2 63 | domain_adaptation_images/webcam/images/bike_helmet/frame_0013.jpg 2 64 | domain_adaptation_images/webcam/images/bike_helmet/frame_0014.jpg 2 65 | domain_adaptation_images/webcam/images/bike_helmet/frame_0015.jpg 2 66 | domain_adaptation_images/webcam/images/bike_helmet/frame_0016.jpg 2 67 | domain_adaptation_images/webcam/images/bike_helmet/frame_0017.jpg 2 68 | domain_adaptation_images/webcam/images/bike_helmet/frame_0018.jpg 2 69 | domain_adaptation_images/webcam/images/bike_helmet/frame_0019.jpg 2 70 | domain_adaptation_images/webcam/images/bike_helmet/frame_0020.jpg 2 71 | domain_adaptation_images/webcam/images/bike_helmet/frame_0021.jpg 2 72 | domain_adaptation_images/webcam/images/bike_helmet/frame_0022.jpg 2 73 | domain_adaptation_images/webcam/images/bike_helmet/frame_0023.jpg 2 74 | domain_adaptation_images/webcam/images/bike_helmet/frame_0024.jpg 2 75 | domain_adaptation_images/webcam/images/bike_helmet/frame_0025.jpg 2 76 | domain_adaptation_images/webcam/images/bike_helmet/frame_0026.jpg 2 77 | domain_adaptation_images/webcam/images/bike_helmet/frame_0027.jpg 2 78 | domain_adaptation_images/webcam/images/bike_helmet/frame_0028.jpg 2 79 | domain_adaptation_images/webcam/images/bookcase/frame_0001.jpg 3 80 | domain_adaptation_images/webcam/images/bookcase/frame_0002.jpg 3 81 | domain_adaptation_images/webcam/images/bookcase/frame_0003.jpg 3 82 | domain_adaptation_images/webcam/images/bookcase/frame_0004.jpg 3 83 | domain_adaptation_images/webcam/images/bookcase/frame_0005.jpg 3 84 | domain_adaptation_images/webcam/images/bookcase/frame_0006.jpg 3 85 | domain_adaptation_images/webcam/images/bookcase/frame_0007.jpg 3 86 | domain_adaptation_images/webcam/images/bookcase/frame_0008.jpg 3 87 | domain_adaptation_images/webcam/images/bookcase/frame_0009.jpg 3 88 | domain_adaptation_images/webcam/images/bookcase/frame_0010.jpg 3 89 | domain_adaptation_images/webcam/images/bookcase/frame_0011.jpg 3 90 | domain_adaptation_images/webcam/images/bookcase/frame_0012.jpg 3 91 | domain_adaptation_images/webcam/images/bottle/frame_0001.jpg 4 92 | domain_adaptation_images/webcam/images/bottle/frame_0002.jpg 4 93 | domain_adaptation_images/webcam/images/bottle/frame_0003.jpg 4 94 | domain_adaptation_images/webcam/images/bottle/frame_0004.jpg 4 95 | domain_adaptation_images/webcam/images/bottle/frame_0005.jpg 4 96 | domain_adaptation_images/webcam/images/bottle/frame_0006.jpg 4 97 | domain_adaptation_images/webcam/images/bottle/frame_0007.jpg 4 98 | domain_adaptation_images/webcam/images/bottle/frame_0008.jpg 4 99 | domain_adaptation_images/webcam/images/bottle/frame_0009.jpg 4 100 | domain_adaptation_images/webcam/images/bottle/frame_0010.jpg 4 101 | domain_adaptation_images/webcam/images/bottle/frame_0011.jpg 4 102 | domain_adaptation_images/webcam/images/bottle/frame_0012.jpg 4 103 | domain_adaptation_images/webcam/images/bottle/frame_0013.jpg 4 104 | domain_adaptation_images/webcam/images/bottle/frame_0014.jpg 4 105 | domain_adaptation_images/webcam/images/bottle/frame_0015.jpg 4 106 | domain_adaptation_images/webcam/images/bottle/frame_0016.jpg 4 107 | domain_adaptation_images/webcam/images/calculator/frame_0001.jpg 5 108 | domain_adaptation_images/webcam/images/calculator/frame_0002.jpg 5 109 | domain_adaptation_images/webcam/images/calculator/frame_0003.jpg 5 110 | domain_adaptation_images/webcam/images/calculator/frame_0004.jpg 5 111 | domain_adaptation_images/webcam/images/calculator/frame_0005.jpg 5 112 | domain_adaptation_images/webcam/images/calculator/frame_0006.jpg 5 113 | domain_adaptation_images/webcam/images/calculator/frame_0007.jpg 5 114 | domain_adaptation_images/webcam/images/calculator/frame_0008.jpg 5 115 | domain_adaptation_images/webcam/images/calculator/frame_0009.jpg 5 116 | domain_adaptation_images/webcam/images/calculator/frame_0010.jpg 5 117 | domain_adaptation_images/webcam/images/calculator/frame_0011.jpg 5 118 | domain_adaptation_images/webcam/images/calculator/frame_0012.jpg 5 119 | domain_adaptation_images/webcam/images/calculator/frame_0013.jpg 5 120 | domain_adaptation_images/webcam/images/calculator/frame_0014.jpg 5 121 | domain_adaptation_images/webcam/images/calculator/frame_0015.jpg 5 122 | domain_adaptation_images/webcam/images/calculator/frame_0016.jpg 5 123 | domain_adaptation_images/webcam/images/calculator/frame_0017.jpg 5 124 | domain_adaptation_images/webcam/images/calculator/frame_0018.jpg 5 125 | domain_adaptation_images/webcam/images/calculator/frame_0019.jpg 5 126 | domain_adaptation_images/webcam/images/calculator/frame_0020.jpg 5 127 | domain_adaptation_images/webcam/images/calculator/frame_0021.jpg 5 128 | domain_adaptation_images/webcam/images/calculator/frame_0022.jpg 5 129 | domain_adaptation_images/webcam/images/calculator/frame_0023.jpg 5 130 | domain_adaptation_images/webcam/images/calculator/frame_0024.jpg 5 131 | domain_adaptation_images/webcam/images/calculator/frame_0025.jpg 5 132 | domain_adaptation_images/webcam/images/calculator/frame_0026.jpg 5 133 | domain_adaptation_images/webcam/images/calculator/frame_0027.jpg 5 134 | domain_adaptation_images/webcam/images/calculator/frame_0028.jpg 5 135 | domain_adaptation_images/webcam/images/calculator/frame_0029.jpg 5 136 | domain_adaptation_images/webcam/images/calculator/frame_0030.jpg 5 137 | domain_adaptation_images/webcam/images/calculator/frame_0031.jpg 5 138 | domain_adaptation_images/webcam/images/desk_chair/frame_0001.jpg 6 139 | domain_adaptation_images/webcam/images/desk_chair/frame_0002.jpg 6 140 | domain_adaptation_images/webcam/images/desk_chair/frame_0003.jpg 6 141 | domain_adaptation_images/webcam/images/desk_chair/frame_0004.jpg 6 142 | domain_adaptation_images/webcam/images/desk_chair/frame_0005.jpg 6 143 | domain_adaptation_images/webcam/images/desk_chair/frame_0006.jpg 6 144 | domain_adaptation_images/webcam/images/desk_chair/frame_0007.jpg 6 145 | domain_adaptation_images/webcam/images/desk_chair/frame_0008.jpg 6 146 | domain_adaptation_images/webcam/images/desk_chair/frame_0009.jpg 6 147 | domain_adaptation_images/webcam/images/desk_chair/frame_0010.jpg 6 148 | domain_adaptation_images/webcam/images/desk_chair/frame_0011.jpg 6 149 | domain_adaptation_images/webcam/images/desk_chair/frame_0012.jpg 6 150 | domain_adaptation_images/webcam/images/desk_chair/frame_0013.jpg 6 151 | domain_adaptation_images/webcam/images/desk_chair/frame_0014.jpg 6 152 | domain_adaptation_images/webcam/images/desk_chair/frame_0015.jpg 6 153 | domain_adaptation_images/webcam/images/desk_chair/frame_0016.jpg 6 154 | domain_adaptation_images/webcam/images/desk_chair/frame_0017.jpg 6 155 | domain_adaptation_images/webcam/images/desk_chair/frame_0018.jpg 6 156 | domain_adaptation_images/webcam/images/desk_chair/frame_0019.jpg 6 157 | domain_adaptation_images/webcam/images/desk_chair/frame_0020.jpg 6 158 | domain_adaptation_images/webcam/images/desk_chair/frame_0021.jpg 6 159 | domain_adaptation_images/webcam/images/desk_chair/frame_0022.jpg 6 160 | domain_adaptation_images/webcam/images/desk_chair/frame_0023.jpg 6 161 | domain_adaptation_images/webcam/images/desk_chair/frame_0024.jpg 6 162 | domain_adaptation_images/webcam/images/desk_chair/frame_0025.jpg 6 163 | domain_adaptation_images/webcam/images/desk_chair/frame_0026.jpg 6 164 | domain_adaptation_images/webcam/images/desk_chair/frame_0027.jpg 6 165 | domain_adaptation_images/webcam/images/desk_chair/frame_0028.jpg 6 166 | domain_adaptation_images/webcam/images/desk_chair/frame_0029.jpg 6 167 | domain_adaptation_images/webcam/images/desk_chair/frame_0030.jpg 6 168 | domain_adaptation_images/webcam/images/desk_chair/frame_0031.jpg 6 169 | domain_adaptation_images/webcam/images/desk_chair/frame_0032.jpg 6 170 | domain_adaptation_images/webcam/images/desk_chair/frame_0033.jpg 6 171 | domain_adaptation_images/webcam/images/desk_chair/frame_0034.jpg 6 172 | domain_adaptation_images/webcam/images/desk_chair/frame_0035.jpg 6 173 | domain_adaptation_images/webcam/images/desk_chair/frame_0036.jpg 6 174 | domain_adaptation_images/webcam/images/desk_chair/frame_0037.jpg 6 175 | domain_adaptation_images/webcam/images/desk_chair/frame_0038.jpg 6 176 | domain_adaptation_images/webcam/images/desk_chair/frame_0039.jpg 6 177 | domain_adaptation_images/webcam/images/desk_chair/frame_0040.jpg 6 178 | domain_adaptation_images/webcam/images/desk_lamp/frame_0001.jpg 7 179 | domain_adaptation_images/webcam/images/desk_lamp/frame_0002.jpg 7 180 | domain_adaptation_images/webcam/images/desk_lamp/frame_0003.jpg 7 181 | domain_adaptation_images/webcam/images/desk_lamp/frame_0004.jpg 7 182 | domain_adaptation_images/webcam/images/desk_lamp/frame_0005.jpg 7 183 | domain_adaptation_images/webcam/images/desk_lamp/frame_0006.jpg 7 184 | domain_adaptation_images/webcam/images/desk_lamp/frame_0007.jpg 7 185 | domain_adaptation_images/webcam/images/desk_lamp/frame_0008.jpg 7 186 | domain_adaptation_images/webcam/images/desk_lamp/frame_0009.jpg 7 187 | domain_adaptation_images/webcam/images/desk_lamp/frame_0010.jpg 7 188 | domain_adaptation_images/webcam/images/desk_lamp/frame_0011.jpg 7 189 | domain_adaptation_images/webcam/images/desk_lamp/frame_0012.jpg 7 190 | domain_adaptation_images/webcam/images/desk_lamp/frame_0013.jpg 7 191 | domain_adaptation_images/webcam/images/desk_lamp/frame_0014.jpg 7 192 | domain_adaptation_images/webcam/images/desk_lamp/frame_0015.jpg 7 193 | domain_adaptation_images/webcam/images/desk_lamp/frame_0016.jpg 7 194 | domain_adaptation_images/webcam/images/desk_lamp/frame_0017.jpg 7 195 | domain_adaptation_images/webcam/images/desk_lamp/frame_0018.jpg 7 196 | domain_adaptation_images/webcam/images/desktop_computer/frame_0001.jpg 8 197 | domain_adaptation_images/webcam/images/desktop_computer/frame_0002.jpg 8 198 | domain_adaptation_images/webcam/images/desktop_computer/frame_0003.jpg 8 199 | domain_adaptation_images/webcam/images/desktop_computer/frame_0004.jpg 8 200 | domain_adaptation_images/webcam/images/desktop_computer/frame_0005.jpg 8 201 | domain_adaptation_images/webcam/images/desktop_computer/frame_0006.jpg 8 202 | domain_adaptation_images/webcam/images/desktop_computer/frame_0007.jpg 8 203 | domain_adaptation_images/webcam/images/desktop_computer/frame_0008.jpg 8 204 | domain_adaptation_images/webcam/images/desktop_computer/frame_0009.jpg 8 205 | domain_adaptation_images/webcam/images/desktop_computer/frame_0010.jpg 8 206 | domain_adaptation_images/webcam/images/desktop_computer/frame_0011.jpg 8 207 | domain_adaptation_images/webcam/images/desktop_computer/frame_0012.jpg 8 208 | domain_adaptation_images/webcam/images/desktop_computer/frame_0013.jpg 8 209 | domain_adaptation_images/webcam/images/desktop_computer/frame_0014.jpg 8 210 | domain_adaptation_images/webcam/images/desktop_computer/frame_0015.jpg 8 211 | domain_adaptation_images/webcam/images/desktop_computer/frame_0016.jpg 8 212 | domain_adaptation_images/webcam/images/desktop_computer/frame_0017.jpg 8 213 | domain_adaptation_images/webcam/images/desktop_computer/frame_0018.jpg 8 214 | domain_adaptation_images/webcam/images/desktop_computer/frame_0019.jpg 8 215 | domain_adaptation_images/webcam/images/desktop_computer/frame_0020.jpg 8 216 | domain_adaptation_images/webcam/images/desktop_computer/frame_0021.jpg 8 217 | domain_adaptation_images/webcam/images/file_cabinet/frame_0001.jpg 9 218 | domain_adaptation_images/webcam/images/file_cabinet/frame_0002.jpg 9 219 | domain_adaptation_images/webcam/images/file_cabinet/frame_0003.jpg 9 220 | domain_adaptation_images/webcam/images/file_cabinet/frame_0004.jpg 9 221 | domain_adaptation_images/webcam/images/file_cabinet/frame_0005.jpg 9 222 | domain_adaptation_images/webcam/images/file_cabinet/frame_0006.jpg 9 223 | domain_adaptation_images/webcam/images/file_cabinet/frame_0007.jpg 9 224 | domain_adaptation_images/webcam/images/file_cabinet/frame_0008.jpg 9 225 | domain_adaptation_images/webcam/images/file_cabinet/frame_0009.jpg 9 226 | domain_adaptation_images/webcam/images/file_cabinet/frame_0010.jpg 9 227 | domain_adaptation_images/webcam/images/file_cabinet/frame_0011.jpg 9 228 | domain_adaptation_images/webcam/images/file_cabinet/frame_0012.jpg 9 229 | domain_adaptation_images/webcam/images/file_cabinet/frame_0013.jpg 9 230 | domain_adaptation_images/webcam/images/file_cabinet/frame_0014.jpg 9 231 | domain_adaptation_images/webcam/images/file_cabinet/frame_0015.jpg 9 232 | domain_adaptation_images/webcam/images/file_cabinet/frame_0016.jpg 9 233 | domain_adaptation_images/webcam/images/file_cabinet/frame_0017.jpg 9 234 | domain_adaptation_images/webcam/images/file_cabinet/frame_0018.jpg 9 235 | domain_adaptation_images/webcam/images/file_cabinet/frame_0019.jpg 9 236 | domain_adaptation_images/webcam/images/headphones/frame_0001.jpg 10 237 | domain_adaptation_images/webcam/images/headphones/frame_0002.jpg 10 238 | domain_adaptation_images/webcam/images/headphones/frame_0003.jpg 10 239 | domain_adaptation_images/webcam/images/headphones/frame_0004.jpg 10 240 | domain_adaptation_images/webcam/images/headphones/frame_0005.jpg 10 241 | domain_adaptation_images/webcam/images/headphones/frame_0006.jpg 10 242 | domain_adaptation_images/webcam/images/headphones/frame_0007.jpg 10 243 | domain_adaptation_images/webcam/images/headphones/frame_0008.jpg 10 244 | domain_adaptation_images/webcam/images/headphones/frame_0009.jpg 10 245 | domain_adaptation_images/webcam/images/headphones/frame_0010.jpg 10 246 | domain_adaptation_images/webcam/images/headphones/frame_0011.jpg 10 247 | domain_adaptation_images/webcam/images/headphones/frame_0012.jpg 10 248 | domain_adaptation_images/webcam/images/headphones/frame_0013.jpg 10 249 | domain_adaptation_images/webcam/images/headphones/frame_0014.jpg 10 250 | domain_adaptation_images/webcam/images/headphones/frame_0015.jpg 10 251 | domain_adaptation_images/webcam/images/headphones/frame_0016.jpg 10 252 | domain_adaptation_images/webcam/images/headphones/frame_0017.jpg 10 253 | domain_adaptation_images/webcam/images/headphones/frame_0018.jpg 10 254 | domain_adaptation_images/webcam/images/headphones/frame_0019.jpg 10 255 | domain_adaptation_images/webcam/images/headphones/frame_0020.jpg 10 256 | domain_adaptation_images/webcam/images/headphones/frame_0021.jpg 10 257 | domain_adaptation_images/webcam/images/headphones/frame_0022.jpg 10 258 | domain_adaptation_images/webcam/images/headphones/frame_0023.jpg 10 259 | domain_adaptation_images/webcam/images/headphones/frame_0024.jpg 10 260 | domain_adaptation_images/webcam/images/headphones/frame_0025.jpg 10 261 | domain_adaptation_images/webcam/images/headphones/frame_0026.jpg 10 262 | domain_adaptation_images/webcam/images/headphones/frame_0027.jpg 10 263 | domain_adaptation_images/webcam/images/keyboard/frame_0001.jpg 11 264 | domain_adaptation_images/webcam/images/keyboard/frame_0002.jpg 11 265 | domain_adaptation_images/webcam/images/keyboard/frame_0003.jpg 11 266 | domain_adaptation_images/webcam/images/keyboard/frame_0004.jpg 11 267 | domain_adaptation_images/webcam/images/keyboard/frame_0005.jpg 11 268 | domain_adaptation_images/webcam/images/keyboard/frame_0006.jpg 11 269 | domain_adaptation_images/webcam/images/keyboard/frame_0007.jpg 11 270 | domain_adaptation_images/webcam/images/keyboard/frame_0008.jpg 11 271 | domain_adaptation_images/webcam/images/keyboard/frame_0009.jpg 11 272 | domain_adaptation_images/webcam/images/keyboard/frame_0010.jpg 11 273 | domain_adaptation_images/webcam/images/keyboard/frame_0011.jpg 11 274 | domain_adaptation_images/webcam/images/keyboard/frame_0012.jpg 11 275 | domain_adaptation_images/webcam/images/keyboard/frame_0013.jpg 11 276 | domain_adaptation_images/webcam/images/keyboard/frame_0014.jpg 11 277 | domain_adaptation_images/webcam/images/keyboard/frame_0015.jpg 11 278 | domain_adaptation_images/webcam/images/keyboard/frame_0016.jpg 11 279 | domain_adaptation_images/webcam/images/keyboard/frame_0017.jpg 11 280 | domain_adaptation_images/webcam/images/keyboard/frame_0018.jpg 11 281 | domain_adaptation_images/webcam/images/keyboard/frame_0019.jpg 11 282 | domain_adaptation_images/webcam/images/keyboard/frame_0020.jpg 11 283 | domain_adaptation_images/webcam/images/keyboard/frame_0021.jpg 11 284 | domain_adaptation_images/webcam/images/keyboard/frame_0022.jpg 11 285 | domain_adaptation_images/webcam/images/keyboard/frame_0023.jpg 11 286 | domain_adaptation_images/webcam/images/keyboard/frame_0024.jpg 11 287 | domain_adaptation_images/webcam/images/keyboard/frame_0025.jpg 11 288 | domain_adaptation_images/webcam/images/keyboard/frame_0026.jpg 11 289 | domain_adaptation_images/webcam/images/keyboard/frame_0027.jpg 11 290 | domain_adaptation_images/webcam/images/laptop_computer/frame_0001.jpg 12 291 | domain_adaptation_images/webcam/images/laptop_computer/frame_0002.jpg 12 292 | domain_adaptation_images/webcam/images/laptop_computer/frame_0003.jpg 12 293 | domain_adaptation_images/webcam/images/laptop_computer/frame_0004.jpg 12 294 | domain_adaptation_images/webcam/images/laptop_computer/frame_0005.jpg 12 295 | domain_adaptation_images/webcam/images/laptop_computer/frame_0006.jpg 12 296 | domain_adaptation_images/webcam/images/laptop_computer/frame_0007.jpg 12 297 | domain_adaptation_images/webcam/images/laptop_computer/frame_0008.jpg 12 298 | domain_adaptation_images/webcam/images/laptop_computer/frame_0009.jpg 12 299 | domain_adaptation_images/webcam/images/laptop_computer/frame_0010.jpg 12 300 | domain_adaptation_images/webcam/images/laptop_computer/frame_0011.jpg 12 301 | domain_adaptation_images/webcam/images/laptop_computer/frame_0012.jpg 12 302 | domain_adaptation_images/webcam/images/laptop_computer/frame_0013.jpg 12 303 | domain_adaptation_images/webcam/images/laptop_computer/frame_0014.jpg 12 304 | domain_adaptation_images/webcam/images/laptop_computer/frame_0015.jpg 12 305 | domain_adaptation_images/webcam/images/laptop_computer/frame_0016.jpg 12 306 | domain_adaptation_images/webcam/images/laptop_computer/frame_0017.jpg 12 307 | domain_adaptation_images/webcam/images/laptop_computer/frame_0018.jpg 12 308 | domain_adaptation_images/webcam/images/laptop_computer/frame_0019.jpg 12 309 | domain_adaptation_images/webcam/images/laptop_computer/frame_0020.jpg 12 310 | domain_adaptation_images/webcam/images/laptop_computer/frame_0021.jpg 12 311 | domain_adaptation_images/webcam/images/laptop_computer/frame_0022.jpg 12 312 | domain_adaptation_images/webcam/images/laptop_computer/frame_0023.jpg 12 313 | domain_adaptation_images/webcam/images/laptop_computer/frame_0024.jpg 12 314 | domain_adaptation_images/webcam/images/laptop_computer/frame_0025.jpg 12 315 | domain_adaptation_images/webcam/images/laptop_computer/frame_0026.jpg 12 316 | domain_adaptation_images/webcam/images/laptop_computer/frame_0027.jpg 12 317 | domain_adaptation_images/webcam/images/laptop_computer/frame_0028.jpg 12 318 | domain_adaptation_images/webcam/images/laptop_computer/frame_0029.jpg 12 319 | domain_adaptation_images/webcam/images/laptop_computer/frame_0030.jpg 12 320 | domain_adaptation_images/webcam/images/letter_tray/frame_0001.jpg 13 321 | domain_adaptation_images/webcam/images/letter_tray/frame_0002.jpg 13 322 | domain_adaptation_images/webcam/images/letter_tray/frame_0003.jpg 13 323 | domain_adaptation_images/webcam/images/letter_tray/frame_0004.jpg 13 324 | domain_adaptation_images/webcam/images/letter_tray/frame_0005.jpg 13 325 | domain_adaptation_images/webcam/images/letter_tray/frame_0006.jpg 13 326 | domain_adaptation_images/webcam/images/letter_tray/frame_0007.jpg 13 327 | domain_adaptation_images/webcam/images/letter_tray/frame_0008.jpg 13 328 | domain_adaptation_images/webcam/images/letter_tray/frame_0009.jpg 13 329 | domain_adaptation_images/webcam/images/letter_tray/frame_0010.jpg 13 330 | domain_adaptation_images/webcam/images/letter_tray/frame_0011.jpg 13 331 | domain_adaptation_images/webcam/images/letter_tray/frame_0012.jpg 13 332 | domain_adaptation_images/webcam/images/letter_tray/frame_0013.jpg 13 333 | domain_adaptation_images/webcam/images/letter_tray/frame_0014.jpg 13 334 | domain_adaptation_images/webcam/images/letter_tray/frame_0015.jpg 13 335 | domain_adaptation_images/webcam/images/letter_tray/frame_0016.jpg 13 336 | domain_adaptation_images/webcam/images/letter_tray/frame_0017.jpg 13 337 | domain_adaptation_images/webcam/images/letter_tray/frame_0018.jpg 13 338 | domain_adaptation_images/webcam/images/letter_tray/frame_0019.jpg 13 339 | domain_adaptation_images/webcam/images/mobile_phone/frame_0001.jpg 14 340 | domain_adaptation_images/webcam/images/mobile_phone/frame_0002.jpg 14 341 | domain_adaptation_images/webcam/images/mobile_phone/frame_0003.jpg 14 342 | domain_adaptation_images/webcam/images/mobile_phone/frame_0004.jpg 14 343 | domain_adaptation_images/webcam/images/mobile_phone/frame_0005.jpg 14 344 | domain_adaptation_images/webcam/images/mobile_phone/frame_0006.jpg 14 345 | domain_adaptation_images/webcam/images/mobile_phone/frame_0007.jpg 14 346 | domain_adaptation_images/webcam/images/mobile_phone/frame_0008.jpg 14 347 | domain_adaptation_images/webcam/images/mobile_phone/frame_0009.jpg 14 348 | domain_adaptation_images/webcam/images/mobile_phone/frame_0010.jpg 14 349 | domain_adaptation_images/webcam/images/mobile_phone/frame_0011.jpg 14 350 | domain_adaptation_images/webcam/images/mobile_phone/frame_0012.jpg 14 351 | domain_adaptation_images/webcam/images/mobile_phone/frame_0013.jpg 14 352 | domain_adaptation_images/webcam/images/mobile_phone/frame_0014.jpg 14 353 | domain_adaptation_images/webcam/images/mobile_phone/frame_0015.jpg 14 354 | domain_adaptation_images/webcam/images/mobile_phone/frame_0016.jpg 14 355 | domain_adaptation_images/webcam/images/mobile_phone/frame_0017.jpg 14 356 | domain_adaptation_images/webcam/images/mobile_phone/frame_0018.jpg 14 357 | domain_adaptation_images/webcam/images/mobile_phone/frame_0019.jpg 14 358 | domain_adaptation_images/webcam/images/mobile_phone/frame_0020.jpg 14 359 | domain_adaptation_images/webcam/images/mobile_phone/frame_0021.jpg 14 360 | domain_adaptation_images/webcam/images/mobile_phone/frame_0022.jpg 14 361 | domain_adaptation_images/webcam/images/mobile_phone/frame_0023.jpg 14 362 | domain_adaptation_images/webcam/images/mobile_phone/frame_0024.jpg 14 363 | domain_adaptation_images/webcam/images/mobile_phone/frame_0025.jpg 14 364 | domain_adaptation_images/webcam/images/mobile_phone/frame_0026.jpg 14 365 | domain_adaptation_images/webcam/images/mobile_phone/frame_0027.jpg 14 366 | domain_adaptation_images/webcam/images/mobile_phone/frame_0028.jpg 14 367 | domain_adaptation_images/webcam/images/mobile_phone/frame_0029.jpg 14 368 | domain_adaptation_images/webcam/images/mobile_phone/frame_0030.jpg 14 369 | domain_adaptation_images/webcam/images/monitor/frame_0001.jpg 15 370 | domain_adaptation_images/webcam/images/monitor/frame_0002.jpg 15 371 | domain_adaptation_images/webcam/images/monitor/frame_0003.jpg 15 372 | domain_adaptation_images/webcam/images/monitor/frame_0004.jpg 15 373 | domain_adaptation_images/webcam/images/monitor/frame_0005.jpg 15 374 | domain_adaptation_images/webcam/images/monitor/frame_0006.jpg 15 375 | domain_adaptation_images/webcam/images/monitor/frame_0007.jpg 15 376 | domain_adaptation_images/webcam/images/monitor/frame_0008.jpg 15 377 | domain_adaptation_images/webcam/images/monitor/frame_0009.jpg 15 378 | domain_adaptation_images/webcam/images/monitor/frame_0010.jpg 15 379 | domain_adaptation_images/webcam/images/monitor/frame_0011.jpg 15 380 | domain_adaptation_images/webcam/images/monitor/frame_0012.jpg 15 381 | domain_adaptation_images/webcam/images/monitor/frame_0013.jpg 15 382 | domain_adaptation_images/webcam/images/monitor/frame_0014.jpg 15 383 | domain_adaptation_images/webcam/images/monitor/frame_0015.jpg 15 384 | domain_adaptation_images/webcam/images/monitor/frame_0016.jpg 15 385 | domain_adaptation_images/webcam/images/monitor/frame_0017.jpg 15 386 | domain_adaptation_images/webcam/images/monitor/frame_0018.jpg 15 387 | domain_adaptation_images/webcam/images/monitor/frame_0019.jpg 15 388 | domain_adaptation_images/webcam/images/monitor/frame_0020.jpg 15 389 | domain_adaptation_images/webcam/images/monitor/frame_0021.jpg 15 390 | domain_adaptation_images/webcam/images/monitor/frame_0022.jpg 15 391 | domain_adaptation_images/webcam/images/monitor/frame_0023.jpg 15 392 | domain_adaptation_images/webcam/images/monitor/frame_0024.jpg 15 393 | domain_adaptation_images/webcam/images/monitor/frame_0025.jpg 15 394 | domain_adaptation_images/webcam/images/monitor/frame_0026.jpg 15 395 | domain_adaptation_images/webcam/images/monitor/frame_0027.jpg 15 396 | domain_adaptation_images/webcam/images/monitor/frame_0028.jpg 15 397 | domain_adaptation_images/webcam/images/monitor/frame_0029.jpg 15 398 | domain_adaptation_images/webcam/images/monitor/frame_0030.jpg 15 399 | domain_adaptation_images/webcam/images/monitor/frame_0031.jpg 15 400 | domain_adaptation_images/webcam/images/monitor/frame_0032.jpg 15 401 | domain_adaptation_images/webcam/images/monitor/frame_0033.jpg 15 402 | domain_adaptation_images/webcam/images/monitor/frame_0034.jpg 15 403 | domain_adaptation_images/webcam/images/monitor/frame_0035.jpg 15 404 | domain_adaptation_images/webcam/images/monitor/frame_0036.jpg 15 405 | domain_adaptation_images/webcam/images/monitor/frame_0037.jpg 15 406 | domain_adaptation_images/webcam/images/monitor/frame_0038.jpg 15 407 | domain_adaptation_images/webcam/images/monitor/frame_0039.jpg 15 408 | domain_adaptation_images/webcam/images/monitor/frame_0040.jpg 15 409 | domain_adaptation_images/webcam/images/monitor/frame_0041.jpg 15 410 | domain_adaptation_images/webcam/images/monitor/frame_0042.jpg 15 411 | domain_adaptation_images/webcam/images/monitor/frame_0043.jpg 15 412 | domain_adaptation_images/webcam/images/mouse/frame_0001.jpg 16 413 | domain_adaptation_images/webcam/images/mouse/frame_0002.jpg 16 414 | domain_adaptation_images/webcam/images/mouse/frame_0003.jpg 16 415 | domain_adaptation_images/webcam/images/mouse/frame_0004.jpg 16 416 | domain_adaptation_images/webcam/images/mouse/frame_0005.jpg 16 417 | domain_adaptation_images/webcam/images/mouse/frame_0006.jpg 16 418 | domain_adaptation_images/webcam/images/mouse/frame_0007.jpg 16 419 | domain_adaptation_images/webcam/images/mouse/frame_0008.jpg 16 420 | domain_adaptation_images/webcam/images/mouse/frame_0009.jpg 16 421 | domain_adaptation_images/webcam/images/mouse/frame_0010.jpg 16 422 | domain_adaptation_images/webcam/images/mouse/frame_0011.jpg 16 423 | domain_adaptation_images/webcam/images/mouse/frame_0012.jpg 16 424 | domain_adaptation_images/webcam/images/mouse/frame_0013.jpg 16 425 | domain_adaptation_images/webcam/images/mouse/frame_0014.jpg 16 426 | domain_adaptation_images/webcam/images/mouse/frame_0015.jpg 16 427 | domain_adaptation_images/webcam/images/mouse/frame_0016.jpg 16 428 | domain_adaptation_images/webcam/images/mouse/frame_0017.jpg 16 429 | domain_adaptation_images/webcam/images/mouse/frame_0018.jpg 16 430 | domain_adaptation_images/webcam/images/mouse/frame_0019.jpg 16 431 | domain_adaptation_images/webcam/images/mouse/frame_0020.jpg 16 432 | domain_adaptation_images/webcam/images/mouse/frame_0021.jpg 16 433 | domain_adaptation_images/webcam/images/mouse/frame_0022.jpg 16 434 | domain_adaptation_images/webcam/images/mouse/frame_0023.jpg 16 435 | domain_adaptation_images/webcam/images/mouse/frame_0024.jpg 16 436 | domain_adaptation_images/webcam/images/mouse/frame_0025.jpg 16 437 | domain_adaptation_images/webcam/images/mouse/frame_0026.jpg 16 438 | domain_adaptation_images/webcam/images/mouse/frame_0027.jpg 16 439 | domain_adaptation_images/webcam/images/mouse/frame_0028.jpg 16 440 | domain_adaptation_images/webcam/images/mouse/frame_0029.jpg 16 441 | domain_adaptation_images/webcam/images/mouse/frame_0030.jpg 16 442 | domain_adaptation_images/webcam/images/mug/frame_0001.jpg 17 443 | domain_adaptation_images/webcam/images/mug/frame_0002.jpg 17 444 | domain_adaptation_images/webcam/images/mug/frame_0003.jpg 17 445 | domain_adaptation_images/webcam/images/mug/frame_0004.jpg 17 446 | domain_adaptation_images/webcam/images/mug/frame_0005.jpg 17 447 | domain_adaptation_images/webcam/images/mug/frame_0006.jpg 17 448 | domain_adaptation_images/webcam/images/mug/frame_0007.jpg 17 449 | domain_adaptation_images/webcam/images/mug/frame_0008.jpg 17 450 | domain_adaptation_images/webcam/images/mug/frame_0009.jpg 17 451 | domain_adaptation_images/webcam/images/mug/frame_0010.jpg 17 452 | domain_adaptation_images/webcam/images/mug/frame_0011.jpg 17 453 | domain_adaptation_images/webcam/images/mug/frame_0012.jpg 17 454 | domain_adaptation_images/webcam/images/mug/frame_0013.jpg 17 455 | domain_adaptation_images/webcam/images/mug/frame_0014.jpg 17 456 | domain_adaptation_images/webcam/images/mug/frame_0015.jpg 17 457 | domain_adaptation_images/webcam/images/mug/frame_0016.jpg 17 458 | domain_adaptation_images/webcam/images/mug/frame_0017.jpg 17 459 | domain_adaptation_images/webcam/images/mug/frame_0018.jpg 17 460 | domain_adaptation_images/webcam/images/mug/frame_0019.jpg 17 461 | domain_adaptation_images/webcam/images/mug/frame_0020.jpg 17 462 | domain_adaptation_images/webcam/images/mug/frame_0021.jpg 17 463 | domain_adaptation_images/webcam/images/mug/frame_0022.jpg 17 464 | domain_adaptation_images/webcam/images/mug/frame_0023.jpg 17 465 | domain_adaptation_images/webcam/images/mug/frame_0024.jpg 17 466 | domain_adaptation_images/webcam/images/mug/frame_0025.jpg 17 467 | domain_adaptation_images/webcam/images/mug/frame_0026.jpg 17 468 | domain_adaptation_images/webcam/images/mug/frame_0027.jpg 17 469 | domain_adaptation_images/webcam/images/paper_notebook/frame_0001.jpg 18 470 | domain_adaptation_images/webcam/images/paper_notebook/frame_0002.jpg 18 471 | domain_adaptation_images/webcam/images/paper_notebook/frame_0003.jpg 18 472 | domain_adaptation_images/webcam/images/paper_notebook/frame_0004.jpg 18 473 | domain_adaptation_images/webcam/images/paper_notebook/frame_0005.jpg 18 474 | domain_adaptation_images/webcam/images/paper_notebook/frame_0006.jpg 18 475 | domain_adaptation_images/webcam/images/paper_notebook/frame_0007.jpg 18 476 | domain_adaptation_images/webcam/images/paper_notebook/frame_0008.jpg 18 477 | domain_adaptation_images/webcam/images/paper_notebook/frame_0009.jpg 18 478 | domain_adaptation_images/webcam/images/paper_notebook/frame_0010.jpg 18 479 | domain_adaptation_images/webcam/images/paper_notebook/frame_0011.jpg 18 480 | domain_adaptation_images/webcam/images/paper_notebook/frame_0012.jpg 18 481 | domain_adaptation_images/webcam/images/paper_notebook/frame_0013.jpg 18 482 | domain_adaptation_images/webcam/images/paper_notebook/frame_0014.jpg 18 483 | domain_adaptation_images/webcam/images/paper_notebook/frame_0015.jpg 18 484 | domain_adaptation_images/webcam/images/paper_notebook/frame_0016.jpg 18 485 | domain_adaptation_images/webcam/images/paper_notebook/frame_0017.jpg 18 486 | domain_adaptation_images/webcam/images/paper_notebook/frame_0018.jpg 18 487 | domain_adaptation_images/webcam/images/paper_notebook/frame_0019.jpg 18 488 | domain_adaptation_images/webcam/images/paper_notebook/frame_0020.jpg 18 489 | domain_adaptation_images/webcam/images/paper_notebook/frame_0021.jpg 18 490 | domain_adaptation_images/webcam/images/paper_notebook/frame_0022.jpg 18 491 | domain_adaptation_images/webcam/images/paper_notebook/frame_0023.jpg 18 492 | domain_adaptation_images/webcam/images/paper_notebook/frame_0024.jpg 18 493 | domain_adaptation_images/webcam/images/paper_notebook/frame_0025.jpg 18 494 | domain_adaptation_images/webcam/images/paper_notebook/frame_0026.jpg 18 495 | domain_adaptation_images/webcam/images/paper_notebook/frame_0027.jpg 18 496 | domain_adaptation_images/webcam/images/paper_notebook/frame_0028.jpg 18 497 | domain_adaptation_images/webcam/images/pen/frame_0001.jpg 19 498 | domain_adaptation_images/webcam/images/pen/frame_0002.jpg 19 499 | domain_adaptation_images/webcam/images/pen/frame_0003.jpg 19 500 | domain_adaptation_images/webcam/images/pen/frame_0004.jpg 19 501 | domain_adaptation_images/webcam/images/pen/frame_0005.jpg 19 502 | domain_adaptation_images/webcam/images/pen/frame_0006.jpg 19 503 | domain_adaptation_images/webcam/images/pen/frame_0007.jpg 19 504 | domain_adaptation_images/webcam/images/pen/frame_0008.jpg 19 505 | domain_adaptation_images/webcam/images/pen/frame_0009.jpg 19 506 | domain_adaptation_images/webcam/images/pen/frame_0010.jpg 19 507 | domain_adaptation_images/webcam/images/pen/frame_0011.jpg 19 508 | domain_adaptation_images/webcam/images/pen/frame_0012.jpg 19 509 | domain_adaptation_images/webcam/images/pen/frame_0013.jpg 19 510 | domain_adaptation_images/webcam/images/pen/frame_0014.jpg 19 511 | domain_adaptation_images/webcam/images/pen/frame_0015.jpg 19 512 | domain_adaptation_images/webcam/images/pen/frame_0016.jpg 19 513 | domain_adaptation_images/webcam/images/pen/frame_0017.jpg 19 514 | domain_adaptation_images/webcam/images/pen/frame_0018.jpg 19 515 | domain_adaptation_images/webcam/images/pen/frame_0019.jpg 19 516 | domain_adaptation_images/webcam/images/pen/frame_0020.jpg 19 517 | domain_adaptation_images/webcam/images/pen/frame_0021.jpg 19 518 | domain_adaptation_images/webcam/images/pen/frame_0022.jpg 19 519 | domain_adaptation_images/webcam/images/pen/frame_0023.jpg 19 520 | domain_adaptation_images/webcam/images/pen/frame_0024.jpg 19 521 | domain_adaptation_images/webcam/images/pen/frame_0025.jpg 19 522 | domain_adaptation_images/webcam/images/pen/frame_0026.jpg 19 523 | domain_adaptation_images/webcam/images/pen/frame_0027.jpg 19 524 | domain_adaptation_images/webcam/images/pen/frame_0028.jpg 19 525 | domain_adaptation_images/webcam/images/pen/frame_0029.jpg 19 526 | domain_adaptation_images/webcam/images/pen/frame_0030.jpg 19 527 | domain_adaptation_images/webcam/images/pen/frame_0031.jpg 19 528 | domain_adaptation_images/webcam/images/pen/frame_0032.jpg 19 529 | domain_adaptation_images/webcam/images/phone/frame_0001.jpg 20 530 | domain_adaptation_images/webcam/images/phone/frame_0002.jpg 20 531 | domain_adaptation_images/webcam/images/phone/frame_0003.jpg 20 532 | domain_adaptation_images/webcam/images/phone/frame_0004.jpg 20 533 | domain_adaptation_images/webcam/images/phone/frame_0005.jpg 20 534 | domain_adaptation_images/webcam/images/phone/frame_0006.jpg 20 535 | domain_adaptation_images/webcam/images/phone/frame_0007.jpg 20 536 | domain_adaptation_images/webcam/images/phone/frame_0008.jpg 20 537 | domain_adaptation_images/webcam/images/phone/frame_0009.jpg 20 538 | domain_adaptation_images/webcam/images/phone/frame_0010.jpg 20 539 | domain_adaptation_images/webcam/images/phone/frame_0011.jpg 20 540 | domain_adaptation_images/webcam/images/phone/frame_0012.jpg 20 541 | domain_adaptation_images/webcam/images/phone/frame_0013.jpg 20 542 | domain_adaptation_images/webcam/images/phone/frame_0014.jpg 20 543 | domain_adaptation_images/webcam/images/phone/frame_0015.jpg 20 544 | domain_adaptation_images/webcam/images/phone/frame_0016.jpg 20 545 | domain_adaptation_images/webcam/images/printer/frame_0001.jpg 21 546 | domain_adaptation_images/webcam/images/printer/frame_0002.jpg 21 547 | domain_adaptation_images/webcam/images/printer/frame_0003.jpg 21 548 | domain_adaptation_images/webcam/images/printer/frame_0004.jpg 21 549 | domain_adaptation_images/webcam/images/printer/frame_0005.jpg 21 550 | domain_adaptation_images/webcam/images/printer/frame_0006.jpg 21 551 | domain_adaptation_images/webcam/images/printer/frame_0007.jpg 21 552 | domain_adaptation_images/webcam/images/printer/frame_0008.jpg 21 553 | domain_adaptation_images/webcam/images/printer/frame_0009.jpg 21 554 | domain_adaptation_images/webcam/images/printer/frame_0010.jpg 21 555 | domain_adaptation_images/webcam/images/printer/frame_0011.jpg 21 556 | domain_adaptation_images/webcam/images/printer/frame_0012.jpg 21 557 | domain_adaptation_images/webcam/images/printer/frame_0013.jpg 21 558 | domain_adaptation_images/webcam/images/printer/frame_0014.jpg 21 559 | domain_adaptation_images/webcam/images/printer/frame_0015.jpg 21 560 | domain_adaptation_images/webcam/images/printer/frame_0016.jpg 21 561 | domain_adaptation_images/webcam/images/printer/frame_0017.jpg 21 562 | domain_adaptation_images/webcam/images/printer/frame_0018.jpg 21 563 | domain_adaptation_images/webcam/images/printer/frame_0019.jpg 21 564 | domain_adaptation_images/webcam/images/printer/frame_0020.jpg 21 565 | domain_adaptation_images/webcam/images/projector/frame_0001.jpg 22 566 | domain_adaptation_images/webcam/images/projector/frame_0002.jpg 22 567 | domain_adaptation_images/webcam/images/projector/frame_0003.jpg 22 568 | domain_adaptation_images/webcam/images/projector/frame_0004.jpg 22 569 | domain_adaptation_images/webcam/images/projector/frame_0005.jpg 22 570 | domain_adaptation_images/webcam/images/projector/frame_0006.jpg 22 571 | domain_adaptation_images/webcam/images/projector/frame_0007.jpg 22 572 | domain_adaptation_images/webcam/images/projector/frame_0008.jpg 22 573 | domain_adaptation_images/webcam/images/projector/frame_0009.jpg 22 574 | domain_adaptation_images/webcam/images/projector/frame_0010.jpg 22 575 | domain_adaptation_images/webcam/images/projector/frame_0011.jpg 22 576 | domain_adaptation_images/webcam/images/projector/frame_0012.jpg 22 577 | domain_adaptation_images/webcam/images/projector/frame_0013.jpg 22 578 | domain_adaptation_images/webcam/images/projector/frame_0014.jpg 22 579 | domain_adaptation_images/webcam/images/projector/frame_0015.jpg 22 580 | domain_adaptation_images/webcam/images/projector/frame_0016.jpg 22 581 | domain_adaptation_images/webcam/images/projector/frame_0017.jpg 22 582 | domain_adaptation_images/webcam/images/projector/frame_0018.jpg 22 583 | domain_adaptation_images/webcam/images/projector/frame_0019.jpg 22 584 | domain_adaptation_images/webcam/images/projector/frame_0020.jpg 22 585 | domain_adaptation_images/webcam/images/projector/frame_0021.jpg 22 586 | domain_adaptation_images/webcam/images/projector/frame_0022.jpg 22 587 | domain_adaptation_images/webcam/images/projector/frame_0023.jpg 22 588 | domain_adaptation_images/webcam/images/projector/frame_0024.jpg 22 589 | domain_adaptation_images/webcam/images/projector/frame_0025.jpg 22 590 | domain_adaptation_images/webcam/images/projector/frame_0026.jpg 22 591 | domain_adaptation_images/webcam/images/projector/frame_0027.jpg 22 592 | domain_adaptation_images/webcam/images/projector/frame_0028.jpg 22 593 | domain_adaptation_images/webcam/images/projector/frame_0029.jpg 22 594 | domain_adaptation_images/webcam/images/projector/frame_0030.jpg 22 595 | domain_adaptation_images/webcam/images/punchers/frame_0001.jpg 23 596 | domain_adaptation_images/webcam/images/punchers/frame_0002.jpg 23 597 | domain_adaptation_images/webcam/images/punchers/frame_0003.jpg 23 598 | domain_adaptation_images/webcam/images/punchers/frame_0004.jpg 23 599 | domain_adaptation_images/webcam/images/punchers/frame_0005.jpg 23 600 | domain_adaptation_images/webcam/images/punchers/frame_0006.jpg 23 601 | domain_adaptation_images/webcam/images/punchers/frame_0007.jpg 23 602 | domain_adaptation_images/webcam/images/punchers/frame_0008.jpg 23 603 | domain_adaptation_images/webcam/images/punchers/frame_0009.jpg 23 604 | domain_adaptation_images/webcam/images/punchers/frame_0010.jpg 23 605 | domain_adaptation_images/webcam/images/punchers/frame_0011.jpg 23 606 | domain_adaptation_images/webcam/images/punchers/frame_0012.jpg 23 607 | domain_adaptation_images/webcam/images/punchers/frame_0013.jpg 23 608 | domain_adaptation_images/webcam/images/punchers/frame_0014.jpg 23 609 | domain_adaptation_images/webcam/images/punchers/frame_0015.jpg 23 610 | domain_adaptation_images/webcam/images/punchers/frame_0016.jpg 23 611 | domain_adaptation_images/webcam/images/punchers/frame_0017.jpg 23 612 | domain_adaptation_images/webcam/images/punchers/frame_0018.jpg 23 613 | domain_adaptation_images/webcam/images/punchers/frame_0019.jpg 23 614 | domain_adaptation_images/webcam/images/punchers/frame_0020.jpg 23 615 | domain_adaptation_images/webcam/images/punchers/frame_0021.jpg 23 616 | domain_adaptation_images/webcam/images/punchers/frame_0022.jpg 23 617 | domain_adaptation_images/webcam/images/punchers/frame_0023.jpg 23 618 | domain_adaptation_images/webcam/images/punchers/frame_0024.jpg 23 619 | domain_adaptation_images/webcam/images/punchers/frame_0025.jpg 23 620 | domain_adaptation_images/webcam/images/punchers/frame_0026.jpg 23 621 | domain_adaptation_images/webcam/images/punchers/frame_0027.jpg 23 622 | domain_adaptation_images/webcam/images/ring_binder/frame_0001.jpg 24 623 | domain_adaptation_images/webcam/images/ring_binder/frame_0002.jpg 24 624 | domain_adaptation_images/webcam/images/ring_binder/frame_0003.jpg 24 625 | domain_adaptation_images/webcam/images/ring_binder/frame_0004.jpg 24 626 | domain_adaptation_images/webcam/images/ring_binder/frame_0005.jpg 24 627 | domain_adaptation_images/webcam/images/ring_binder/frame_0006.jpg 24 628 | domain_adaptation_images/webcam/images/ring_binder/frame_0007.jpg 24 629 | domain_adaptation_images/webcam/images/ring_binder/frame_0008.jpg 24 630 | domain_adaptation_images/webcam/images/ring_binder/frame_0009.jpg 24 631 | domain_adaptation_images/webcam/images/ring_binder/frame_0010.jpg 24 632 | domain_adaptation_images/webcam/images/ring_binder/frame_0011.jpg 24 633 | domain_adaptation_images/webcam/images/ring_binder/frame_0012.jpg 24 634 | domain_adaptation_images/webcam/images/ring_binder/frame_0013.jpg 24 635 | domain_adaptation_images/webcam/images/ring_binder/frame_0014.jpg 24 636 | domain_adaptation_images/webcam/images/ring_binder/frame_0015.jpg 24 637 | domain_adaptation_images/webcam/images/ring_binder/frame_0016.jpg 24 638 | domain_adaptation_images/webcam/images/ring_binder/frame_0017.jpg 24 639 | domain_adaptation_images/webcam/images/ring_binder/frame_0018.jpg 24 640 | domain_adaptation_images/webcam/images/ring_binder/frame_0019.jpg 24 641 | domain_adaptation_images/webcam/images/ring_binder/frame_0020.jpg 24 642 | domain_adaptation_images/webcam/images/ring_binder/frame_0021.jpg 24 643 | domain_adaptation_images/webcam/images/ring_binder/frame_0022.jpg 24 644 | domain_adaptation_images/webcam/images/ring_binder/frame_0023.jpg 24 645 | domain_adaptation_images/webcam/images/ring_binder/frame_0024.jpg 24 646 | domain_adaptation_images/webcam/images/ring_binder/frame_0025.jpg 24 647 | domain_adaptation_images/webcam/images/ring_binder/frame_0026.jpg 24 648 | domain_adaptation_images/webcam/images/ring_binder/frame_0027.jpg 24 649 | domain_adaptation_images/webcam/images/ring_binder/frame_0028.jpg 24 650 | domain_adaptation_images/webcam/images/ring_binder/frame_0029.jpg 24 651 | domain_adaptation_images/webcam/images/ring_binder/frame_0030.jpg 24 652 | domain_adaptation_images/webcam/images/ring_binder/frame_0031.jpg 24 653 | domain_adaptation_images/webcam/images/ring_binder/frame_0032.jpg 24 654 | domain_adaptation_images/webcam/images/ring_binder/frame_0033.jpg 24 655 | domain_adaptation_images/webcam/images/ring_binder/frame_0034.jpg 24 656 | domain_adaptation_images/webcam/images/ring_binder/frame_0035.jpg 24 657 | domain_adaptation_images/webcam/images/ring_binder/frame_0036.jpg 24 658 | domain_adaptation_images/webcam/images/ring_binder/frame_0037.jpg 24 659 | domain_adaptation_images/webcam/images/ring_binder/frame_0038.jpg 24 660 | domain_adaptation_images/webcam/images/ring_binder/frame_0039.jpg 24 661 | domain_adaptation_images/webcam/images/ring_binder/frame_0040.jpg 24 662 | domain_adaptation_images/webcam/images/ruler/frame_0001.jpg 25 663 | domain_adaptation_images/webcam/images/ruler/frame_0002.jpg 25 664 | domain_adaptation_images/webcam/images/ruler/frame_0003.jpg 25 665 | domain_adaptation_images/webcam/images/ruler/frame_0004.jpg 25 666 | domain_adaptation_images/webcam/images/ruler/frame_0005.jpg 25 667 | domain_adaptation_images/webcam/images/ruler/frame_0006.jpg 25 668 | domain_adaptation_images/webcam/images/ruler/frame_0007.jpg 25 669 | domain_adaptation_images/webcam/images/ruler/frame_0008.jpg 25 670 | domain_adaptation_images/webcam/images/ruler/frame_0009.jpg 25 671 | domain_adaptation_images/webcam/images/ruler/frame_0010.jpg 25 672 | domain_adaptation_images/webcam/images/ruler/frame_0011.jpg 25 673 | domain_adaptation_images/webcam/images/scissors/frame_0001.jpg 26 674 | domain_adaptation_images/webcam/images/scissors/frame_0002.jpg 26 675 | domain_adaptation_images/webcam/images/scissors/frame_0003.jpg 26 676 | domain_adaptation_images/webcam/images/scissors/frame_0004.jpg 26 677 | domain_adaptation_images/webcam/images/scissors/frame_0005.jpg 26 678 | domain_adaptation_images/webcam/images/scissors/frame_0006.jpg 26 679 | domain_adaptation_images/webcam/images/scissors/frame_0007.jpg 26 680 | domain_adaptation_images/webcam/images/scissors/frame_0008.jpg 26 681 | domain_adaptation_images/webcam/images/scissors/frame_0009.jpg 26 682 | domain_adaptation_images/webcam/images/scissors/frame_0010.jpg 26 683 | domain_adaptation_images/webcam/images/scissors/frame_0011.jpg 26 684 | domain_adaptation_images/webcam/images/scissors/frame_0012.jpg 26 685 | domain_adaptation_images/webcam/images/scissors/frame_0013.jpg 26 686 | domain_adaptation_images/webcam/images/scissors/frame_0014.jpg 26 687 | domain_adaptation_images/webcam/images/scissors/frame_0015.jpg 26 688 | domain_adaptation_images/webcam/images/scissors/frame_0016.jpg 26 689 | domain_adaptation_images/webcam/images/scissors/frame_0017.jpg 26 690 | domain_adaptation_images/webcam/images/scissors/frame_0018.jpg 26 691 | domain_adaptation_images/webcam/images/scissors/frame_0019.jpg 26 692 | domain_adaptation_images/webcam/images/scissors/frame_0020.jpg 26 693 | domain_adaptation_images/webcam/images/scissors/frame_0021.jpg 26 694 | domain_adaptation_images/webcam/images/scissors/frame_0022.jpg 26 695 | domain_adaptation_images/webcam/images/scissors/frame_0023.jpg 26 696 | domain_adaptation_images/webcam/images/scissors/frame_0024.jpg 26 697 | domain_adaptation_images/webcam/images/scissors/frame_0025.jpg 26 698 | domain_adaptation_images/webcam/images/speaker/frame_0001.jpg 27 699 | domain_adaptation_images/webcam/images/speaker/frame_0002.jpg 27 700 | domain_adaptation_images/webcam/images/speaker/frame_0003.jpg 27 701 | domain_adaptation_images/webcam/images/speaker/frame_0004.jpg 27 702 | domain_adaptation_images/webcam/images/speaker/frame_0005.jpg 27 703 | domain_adaptation_images/webcam/images/speaker/frame_0006.jpg 27 704 | domain_adaptation_images/webcam/images/speaker/frame_0007.jpg 27 705 | domain_adaptation_images/webcam/images/speaker/frame_0008.jpg 27 706 | domain_adaptation_images/webcam/images/speaker/frame_0009.jpg 27 707 | domain_adaptation_images/webcam/images/speaker/frame_0010.jpg 27 708 | domain_adaptation_images/webcam/images/speaker/frame_0011.jpg 27 709 | domain_adaptation_images/webcam/images/speaker/frame_0012.jpg 27 710 | domain_adaptation_images/webcam/images/speaker/frame_0013.jpg 27 711 | domain_adaptation_images/webcam/images/speaker/frame_0014.jpg 27 712 | domain_adaptation_images/webcam/images/speaker/frame_0015.jpg 27 713 | domain_adaptation_images/webcam/images/speaker/frame_0016.jpg 27 714 | domain_adaptation_images/webcam/images/speaker/frame_0017.jpg 27 715 | domain_adaptation_images/webcam/images/speaker/frame_0018.jpg 27 716 | domain_adaptation_images/webcam/images/speaker/frame_0019.jpg 27 717 | domain_adaptation_images/webcam/images/speaker/frame_0020.jpg 27 718 | domain_adaptation_images/webcam/images/speaker/frame_0021.jpg 27 719 | domain_adaptation_images/webcam/images/speaker/frame_0022.jpg 27 720 | domain_adaptation_images/webcam/images/speaker/frame_0023.jpg 27 721 | domain_adaptation_images/webcam/images/speaker/frame_0024.jpg 27 722 | domain_adaptation_images/webcam/images/speaker/frame_0025.jpg 27 723 | domain_adaptation_images/webcam/images/speaker/frame_0026.jpg 27 724 | domain_adaptation_images/webcam/images/speaker/frame_0027.jpg 27 725 | domain_adaptation_images/webcam/images/speaker/frame_0028.jpg 27 726 | domain_adaptation_images/webcam/images/speaker/frame_0029.jpg 27 727 | domain_adaptation_images/webcam/images/speaker/frame_0030.jpg 27 728 | domain_adaptation_images/webcam/images/stapler/frame_0001.jpg 28 729 | domain_adaptation_images/webcam/images/stapler/frame_0002.jpg 28 730 | domain_adaptation_images/webcam/images/stapler/frame_0003.jpg 28 731 | domain_adaptation_images/webcam/images/stapler/frame_0004.jpg 28 732 | domain_adaptation_images/webcam/images/stapler/frame_0005.jpg 28 733 | domain_adaptation_images/webcam/images/stapler/frame_0006.jpg 28 734 | domain_adaptation_images/webcam/images/stapler/frame_0007.jpg 28 735 | domain_adaptation_images/webcam/images/stapler/frame_0008.jpg 28 736 | domain_adaptation_images/webcam/images/stapler/frame_0009.jpg 28 737 | domain_adaptation_images/webcam/images/stapler/frame_0010.jpg 28 738 | domain_adaptation_images/webcam/images/stapler/frame_0011.jpg 28 739 | domain_adaptation_images/webcam/images/stapler/frame_0012.jpg 28 740 | domain_adaptation_images/webcam/images/stapler/frame_0013.jpg 28 741 | domain_adaptation_images/webcam/images/stapler/frame_0014.jpg 28 742 | domain_adaptation_images/webcam/images/stapler/frame_0015.jpg 28 743 | domain_adaptation_images/webcam/images/stapler/frame_0016.jpg 28 744 | domain_adaptation_images/webcam/images/stapler/frame_0017.jpg 28 745 | domain_adaptation_images/webcam/images/stapler/frame_0018.jpg 28 746 | domain_adaptation_images/webcam/images/stapler/frame_0019.jpg 28 747 | domain_adaptation_images/webcam/images/stapler/frame_0020.jpg 28 748 | domain_adaptation_images/webcam/images/stapler/frame_0021.jpg 28 749 | domain_adaptation_images/webcam/images/stapler/frame_0022.jpg 28 750 | domain_adaptation_images/webcam/images/stapler/frame_0023.jpg 28 751 | domain_adaptation_images/webcam/images/stapler/frame_0024.jpg 28 752 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0001.jpg 29 753 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0002.jpg 29 754 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0003.jpg 29 755 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0004.jpg 29 756 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0005.jpg 29 757 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0006.jpg 29 758 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0007.jpg 29 759 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0008.jpg 29 760 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0009.jpg 29 761 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0010.jpg 29 762 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0011.jpg 29 763 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0012.jpg 29 764 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0013.jpg 29 765 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0014.jpg 29 766 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0015.jpg 29 767 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0016.jpg 29 768 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0017.jpg 29 769 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0018.jpg 29 770 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0019.jpg 29 771 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0020.jpg 29 772 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0021.jpg 29 773 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0022.jpg 29 774 | domain_adaptation_images/webcam/images/tape_dispenser/frame_0023.jpg 29 775 | domain_adaptation_images/webcam/images/trash_can/frame_0001.jpg 30 776 | domain_adaptation_images/webcam/images/trash_can/frame_0002.jpg 30 777 | domain_adaptation_images/webcam/images/trash_can/frame_0003.jpg 30 778 | domain_adaptation_images/webcam/images/trash_can/frame_0004.jpg 30 779 | domain_adaptation_images/webcam/images/trash_can/frame_0005.jpg 30 780 | domain_adaptation_images/webcam/images/trash_can/frame_0006.jpg 30 781 | domain_adaptation_images/webcam/images/trash_can/frame_0007.jpg 30 782 | domain_adaptation_images/webcam/images/trash_can/frame_0008.jpg 30 783 | domain_adaptation_images/webcam/images/trash_can/frame_0009.jpg 30 784 | domain_adaptation_images/webcam/images/trash_can/frame_0010.jpg 30 785 | domain_adaptation_images/webcam/images/trash_can/frame_0011.jpg 30 786 | domain_adaptation_images/webcam/images/trash_can/frame_0012.jpg 30 787 | domain_adaptation_images/webcam/images/trash_can/frame_0013.jpg 30 788 | domain_adaptation_images/webcam/images/trash_can/frame_0014.jpg 30 789 | domain_adaptation_images/webcam/images/trash_can/frame_0015.jpg 30 790 | domain_adaptation_images/webcam/images/trash_can/frame_0016.jpg 30 791 | domain_adaptation_images/webcam/images/trash_can/frame_0017.jpg 30 792 | domain_adaptation_images/webcam/images/trash_can/frame_0018.jpg 30 793 | domain_adaptation_images/webcam/images/trash_can/frame_0019.jpg 30 794 | domain_adaptation_images/webcam/images/trash_can/frame_0020.jpg 30 795 | domain_adaptation_images/webcam/images/trash_can/frame_0021.jpg 30 796 | --------------------------------------------------------------------------------