def seal_detect(img, model, device):
    boxes = detect.detect(img, model, device)
    boxes = detect.adjust_ratio(boxes, ratio_w, ratio_h)

    orig_vertices = []
    theta = 0
    if boxes is not None and boxes.size:
        for box in boxes:
            box = np.array(box[:8])
            orig_vertices.append(box)
            theta += crop_mode.find_min_rect_angle(box)

        orig_vertices = np.array(orig_vertices)
        theta /= len(boxes)
        tmp_img, vertices = crop_mode.rotate_allimg(img, orig_vertices,
                                                    -theta / math.pi * 180)

        dict_centers = {}
        for i, vertice in enumerate(vertices):
            avg_x = int(crop_mode.averagenum(vertice[::2]))
            avg_y = int(crop_mode.averagenum(vertice[1::2]))
            dict_centers[str(avg_x) + ',' + str(avg_y)] = i

        centers = crop_mode.sort_centers(dict_centers, 1)

        xcenters = []
        for center in centers:
            xcenters.append([center])

        shape = []
        for i, xcenter in enumerate(xcenters):
            for center in xcenter:
                anno = {}
                anno['box'] = orig_vertices[int(center[1])]
                anno['class'] = 'seal'
                shape.append(anno)

        return shape, boxes
            orig_vertices.append(box)
            theta += crop_mode.find_min_rect_angle(box)

        orig_vertices = np.array(orig_vertices)
        theta /= len(boxes)

        tmp_img, vertices = crop_mode.rotate_allimg(rotate_img, orig_vertices,
                                                    -theta / math.pi * 180)

        dict_centers = {}
        for i, vertice in enumerate(vertices):
            avg_x = int(crop_mode.averagenum(vertice[::2]))
            avg_y = int(crop_mode.averagenum(vertice[1::2]))
            dict_centers[str(avg_x) + ',' + str(avg_y)] = i

        centers = crop_mode.sort_centers(dict_centers, 1)

        k = 0
        xcenters = []
        index = [6, 2, 2, 1, 2]
        for i, j in enumerate(index):
            xcenter = crop_mode.sort_xcenters(centers[k:k + j], 0)
            if i == 0:
                if int(xcenter[0][0].split(',')[1]) < int(
                        xcenter[1][0].split(',')[1]):
                    tmp = xcenter[0]
                    xcenter[0] = xcenter[1]
                    xcenter[1] = tmp
                if int(xcenter[5][0].split(',')[1]) < int(
                        xcenter[4][0].split(',')[1]):
                    tmp = xcenter[5]