├── 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 | 
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 | |  |  |  |
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 | |  |  |  |
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 |          
15 |
16 | ## Results
17 | #### MNIST
18 | Column index is target label and ground truth images are along diagonal.
19 |
20 |
21 | 
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 |
--------------------------------------------------------------------------------