Esempio n. 1
0
                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))