Skip to content

Commit ac7822f

Browse files
committed
error1: Resizer()中的int8->int32
error2: autoaugment中的边界问题
1 parent fa49718 commit ac7822f

File tree

10 files changed

+251
-193
lines changed

10 files changed

+251
-193
lines changed

Augmentation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import config
22
import numpy as np
33
from augmentation_zoo.Myautoaugment_utils import distort_image_with_autoaugment
4-
from picture_visualization import easy_visualization
4+
from tools import easy_visualization
55
import torch
66
import matplotlib.pyplot as plt
77

config.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
epochs = 100
77
CUDA_DEVICES = '6'
88

9-
kitti_batch_size = 24
10-
voc_batch_size = 2
9+
voc_batch_size = 12
10+
kitti_batch_size = 32
1111

12-
# voc_root_dir = '/home/CN/zhenglin.zhou/Documents/VOC/VOCdevkit/'
13-
# kitti_root_dir = '/home/CN/zhenglin.zhou/Documents/Kitti/training/'
1412

15-
voc_root_dir = 'D:/VOC/VOCdevkit'
16-
kitti_root_dir = 'D:/KITTI/training'
13+
voc_root_dir = '/home/CN/zhenglin.zhou/Documents/VOC/VOCdevkit/'
14+
kitti_root_dir = '/home/CN/zhenglin.zhou/Documents/Kitti/training/'
15+
16+
# voc_root_dir = 'D:/VOC/VOCdevkit'
17+
# kitti_root_dir = 'D:/KITTI/training'
1718

1819
""" Mixup """
1920
use_mixup = 0

eval_model.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import torch
2+
from retinanet import model
3+
from prepare_data import VocDataset, Normalizer, Resizer, AspectRatioBasedSampler, UnNormalizer, collater
4+
from Augmentation import autoaugmenter
5+
from torchvision import transforms
6+
import config
7+
from retinanet import csv_eval
8+
from torch.utils.data import DataLoader
9+
import numpy as np
10+
import cv2
11+
12+
def show_image():
13+
net_path = 'voc_retinanet_19.pt'
14+
dataset_val = VocDataset(config.voc_root_dir, 'val', transform=transforms.Compose([Normalizer(), Resizer()]))
15+
sampler_val = AspectRatioBasedSampler(dataset_val, batch_size=1, drop_last=False)
16+
dataloader_val = DataLoader(dataset_val, num_workers=1, collate_fn=collater, batch_sampler=sampler_val)
17+
retinanet = torch.load(net_path, map_location=torch.device('cpu'))
18+
retinanet = torch.nn.DataParallel(retinanet)
19+
retinanet.eval()
20+
21+
# mAP = csv_eval.evaluate(dataset_val, retinanet)
22+
23+
unnormalize = UnNormalizer()
24+
25+
def draw_caption(image, box, caption):
26+
27+
b = np.array(box).astype(int)
28+
cv2.putText(image, caption, (b[0], b[1] - 10), cv2.FONT_HERSHEY_PLAIN, 1, (0, 0, 0), 2)
29+
cv2.putText(image, caption, (b[0], b[1] - 10), cv2.FONT_HERSHEY_PLAIN, 1, (255, 255, 255), 1)
30+
31+
for idx, data in enumerate(dataloader_val):
32+
with torch.no_grad():
33+
scores, classification, transformed_anchors = retinanet(data['img'].float())
34+
print(scores.cpu())
35+
idxs = np.where(scores.cpu() > 0.1)
36+
print(idxs)
37+
img = np.array(255 * unnormalize(data['img'][0, :, :, :])).copy()
38+
39+
img[img < 0] = 0
40+
img[img > 255] = 255
41+
42+
img = np.transpose(img, (1, 2, 0))
43+
44+
img = cv2.cvtColor(img.astype(np.uint8), cv2.COLOR_BGR2RGB)
45+
print(idxs[0].shape[0])
46+
for j in range(idxs[0].shape[0]):
47+
bbox = transformed_anchors[idxs[0][j], :]
48+
print(bbox)
49+
x1 = int(bbox[0])
50+
y1 = int(bbox[1])
51+
x2 = int(bbox[2])
52+
y2 = int(bbox[3])
53+
label_name = dataset_val.label_2_name[int(classification[idxs[0][j]])]
54+
draw_caption(img, (x1, y1, x2, y2), label_name)
55+
56+
cv2.rectangle(img, (x1, y1), (x2, y2), color=(0, 0, 255), thickness=2)
57+
print(label_name)
58+
59+
cv2.imshow('img', img)
60+
cv2.waitKey(0)
61+
62+
if __name__ == '__main__':
63+
show_image()

picture_visualization.py

Lines changed: 0 additions & 151 deletions
This file was deleted.

prepare_data.py

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ def __init__(self,
155155
self.ids = list()
156156
self.find_file_list()
157157

158+
158159
def __len__(self):
159160
return len(self.ids)
160161

@@ -326,9 +327,10 @@ def __call__(self, sample, min_side=608, max_side=1024):
326327

327328
new_image = np.zeros((rows + pad_w, cols + pad_h, cns)).astype(np.float32)
328329
new_image[:rows, :cols, :] = image.astype(np.float32)
330+
329331
annots = annots.astype(np.float32)
330332
annots[:, :4] *= scale
331-
annots = annots.astype(np.int8)
333+
annots = annots.astype(np.int)
332334

333335
return {'img': torch.from_numpy(new_image), 'annot': torch.from_numpy(annots), 'scale': scale}
334336

@@ -357,17 +359,5 @@ def group_images(self):
357359
return [[order[x % len(order)] for x in range(i, i + self.batch_size)] for i in
358360
range(0, len(order), self.batch_size)]
359361

360-
if __name__ == '__main__':
361-
voc_root_dir = 'D:\VOC\VOCdevkit'
362-
kitti_root_dir = 'D:/KITTI/training'
363-
# voc = VocDataset(voc_root_dir, 'train')
364-
# sample = voc.__getitem__(2)
365-
# pv.visualization(voc, sample)
366-
kitti = KittiDataset(kitti_root_dir)
367-
sample = kitti.__getitem__(10)
368-
# pv.visualization(kitti, sample)
369-
# image = sample['img'][:, ::-1, :]
370-
# fig = plt.imshow(image)
371-
# plt.show()
372362

373363

retinanet/losses.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def forward(self, classifications, regressions, anchors, annotations):
171171
regression_losses.append(torch.tensor(0).float().cuda())
172172
else:
173173
regression_losses.append(torch.tensor(0).float())
174+
174175
# return torch.stack(classification_losses).mean(dim=0, keepdim=True), torch.stack(regression_losses).mean(dim=0, keepdim=True)
175176
return torch.stack(classification_losses), torch.stack(regression_losses)
176177

retinanet/model.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ def forward(self, x):
153153

154154

155155
class ResNet(nn.Module):
156+
156157
def __init__(self, num_classes, block, layers):
157158
self.inplanes = 64
158159
super(ResNet, self).__init__()
@@ -350,5 +351,3 @@ def resnet152(num_classes, pretrained=False, **kwargs):
350351
if pretrained:
351352
model.load_state_dict(model_zoo.load_url(model_urls['resnet152'], model_dir='.'), strict=False)
352353
return model
353-
354-

test_augmentation.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@
33
from Augmentation import autoaugmenter, retinanet_augmentater
44
from config import voc_root_dir, kitti_root_dir
55
from torchvision import transforms
6+
from tools import easy_visualization
67

78
if __name__ == '__main__':
89
voc_train = VocDataset(voc_root_dir, 'train',
9-
transform=transforms.Compose([autoaugmenter('test')]))
10-
# for i in range(voc_train.__len__()):
11-
# print(i)
12-
# sample = voc_train[i]
13-
sample = voc_train[11]
10+
transform=transforms.Compose([
11+
12+
Resizer()]))
13+
for i in range(voc_train.__len__()):
14+
print(i)
15+
sample = voc_train[i]
16+
print(sample['annot'])
17+
# sample = voc_train[11]
18+
# print(sample['annot'])
1419
# SplitKittiDataset(kitti_root_dir, 0.5) # 分割KITTI数据集,50%训练集,50%测试集
1520
#
1621
# kitti_train = KittiDataset(kitti_root_dir, 'train', transform=transforms.Compose([autoaugmenter('test')]))

0 commit comments

Comments
 (0)