boxes = [] for score, geo, index in zip(quad_scores, quad_after_nms, range(len(quad_scores))): if np.amin(score) > 0: geo = reorder_vertexes(geo)[[0, 3, 2, 1]] # 顺时针排序 rescaled_geo = geo / [ width * 4 / int(batch['shape'][0][1]), height * 4 / int(batch['shape'][0][0]) ] boxes.append(rescaled_geo.astype(np.int16)) boxes = np.array(boxes).astype(np.int16) boxes_batch.append(boxes) raw_metric = QuadMeasurer().validate_measure( batch, [boxes_batch], False) raw_metrics.append(raw_metric) metrics = QuadMeasurer().gather_measure(raw_metrics) for key, metric in metrics.items(): logger.metrics('%d : %s : %f (%d)' % (epoch, key, metric.avg, metric.count)) state_dict = model.state_dict() torch.save(state_dict, 'model/resnest_east_weights_{}_{}.h5'.format(\ cfg.train_task_id, epoch))