Skip to content

Commit b39afb0

Browse files
committed
train
1 parent fc733b3 commit b39afb0

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

cfgs/exps/darknet19_exp1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
exp_name = 'darknet19_voc07trainval_exp1'
1+
exp_name = 'darknet19_voc07trainval_exp3'
22

33
pretrained_fname = 'darknet19.weights.npz'
44

test.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ def preprocess(fname):
2222
# hyper-parameters
2323
# ------------
2424
imdb_name = cfg.imdb_test
25-
trained_model = cfg.trained_model
26-
# trained_model = os.path.join(cfg.train_output_dir, 'darknet19_voc07trainval_exp3_158.h5')
25+
# trained_model = cfg.trained_model
26+
trained_model = os.path.join(cfg.train_output_dir, 'darknet19_voc07trainval_exp3_118.h5')
2727
output_dir = cfg.test_output_dir
2828

2929
max_per_image = 300
@@ -91,7 +91,7 @@ def test_net(net, imdb, max_per_image=300, thresh=0.5, vis=False):
9191
_t['misc'].clear()
9292

9393
if vis:
94-
im2show = yolo_utils.draw_detection(ori_im, bboxes, scores, cls_inds, cfg)
94+
im2show = yolo_utils.draw_detection(ori_im, bboxes, scores, cls_inds, cfg, thr=0.1)
9595
if im2show.shape[0] > 1100:
9696
im2show = cv2.resize(im2show, (int(1000. * float(im2show.shape[1]) / im2show.shape[0]), 1000))
9797
cv2.imshow('test', im2show)

train.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import cv2
33
import torch
44
import numpy as np
5+
import datetime
56
from torch.multiprocessing import Pool
67

78
from darknet import Darknet19
@@ -56,10 +57,12 @@
5657
else:
5758
exp = cc.open_experiment(cfg.exp_name)
5859

60+
batch_per_epoch = imdb.batch_per_epoch
5961
train_loss = 0
6062
bbox_loss, iou_loss, cls_loss = 0., 0., 0.
6163
cnt = 0
6264
t = Timer()
65+
step_cnt = 0
6366
for step in range(start_epoch * imdb.batch_per_epoch, cfg.max_epoch * imdb.batch_per_epoch):
6467
t.tic()
6568
# batch
@@ -84,15 +87,16 @@
8487
loss.backward()
8588
optimizer.step()
8689
cnt += 1
87-
90+
step_cnt += 1
8891
duration = t.toc()
8992
if step % cfg.disp_interval == 0:
9093
train_loss /= cnt
9194
bbox_loss /= cnt
9295
iou_loss /= cnt
9396
cls_loss /= cnt
94-
print('epoch: %d, step: %d, loss: %.3f, bbox_loss: %.3f, iou_loss: %.3f, cls_loss: %.3f (%.2f s/batch)' % (
95-
imdb.epoch, step, train_loss, bbox_loss, iou_loss, cls_loss, duration))
97+
print('epoch %d[%d/%d], loss: %.3f, bbox_loss: %.3f, iou_loss: %.3f, cls_loss: %.3f (%.2f s/batch, rest:%s)' % (
98+
imdb.epoch, step_cnt, batch_per_epoch, train_loss, bbox_loss, iou_loss, cls_loss, duration,
99+
str(datetime.timedelta(seconds=int((batch_per_epoch - step_cnt) * duration)))))
96100

97101
if use_tensorboard and step % cfg.log_interval == 0:
98102
exp.add_scalar_value('loss_train', train_loss, step=step)
@@ -114,6 +118,6 @@
114118
save_name = os.path.join(cfg.train_output_dir, '{}_{}.h5'.format(cfg.exp_name, imdb.epoch))
115119
net_utils.save_net(save_name, net)
116120
print('save model: {}'.format(save_name))
117-
121+
step_cnt = 0
118122

119123
imdb.close()

utils/yolo.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,14 +195,16 @@ def get_bbox_targets(images, gt_boxes, cls_inds, dontcares, cfg):
195195
return bbox_targets, cls_targets
196196

197197

198-
def draw_detection(im, bboxes, scores, cls_inds, cfg):
198+
def draw_detection(im, bboxes, scores, cls_inds, cfg, thr=0.3):
199199
# draw image
200200
colors = cfg.colors
201201
labels = cfg.label_names
202202

203203
imgcv = np.copy(im)
204204
h, w, _ = imgcv.shape
205205
for i, box in enumerate(bboxes):
206+
if scores[i] < thr:
207+
continue
206208
cls_indx = cls_inds[i]
207209

208210
thick = int((h + w) / 300)

0 commit comments

Comments
 (0)