示例#1
0
import math
from pathlib import Path

from second.utils.buildtools.pybind11_build import load_pb11
from second.utils.find import find_cuda_device_arch
import numba
import numpy as np

try:
    from second.core.non_max_suppression.nms import (
        non_max_suppression_cpu, rotate_non_max_suppression_cpu)
except:
    current_dir = Path(__file__).resolve().parents[0]
    load_pb11(
        ["../cc/nms/nms_kernel.cu.cc", "../cc/nms/nms.cc"],
        current_dir / "nms.so",
        current_dir,
        cuda=True)
    from second.core.non_max_suppression.nms import (
        non_max_suppression_cpu, rotate_non_max_suppression_cpu)

from second.core import box_np_ops


def nms_cc(dets, thresh):
    scores = dets[:, 4]
    order = scores.argsort()[::-1].astype(np.int32)  # highest->lowest
    return non_max_suppression_cpu(dets, order, thresh, 1.0)


def rotate_nms_cc(dets, thresh):
示例#2
0
import math
from pathlib import Path

from second.utils.buildtools.pybind11_build import load_pb11
from second.utils.find import find_cuda_device_arch
import numba
import numpy as np

try:
    from second.core.non_max_suppression.nms import (
        non_max_suppression_cpu, rotate_non_max_suppression_cpu)
except:
    current_dir = Path(__file__).resolve().parents[0]
    load_pb11(
        ["../cc/nms/nms_kernel.cu.cc", "../cc/nms/nms.cc"],
        current_dir / "nms.so",
        current_dir,
        includes=["/zfsauton2/home/anirudds/.local/boost_1_62_0"],
        cuda=True)
    from second.core.non_max_suppression.nms import (
        non_max_suppression_cpu, rotate_non_max_suppression_cpu)

from second.core import box_np_ops


def nms_cc(dets, thresh):
    scores = dets[:, 4]
    order = scores.argsort()[::-1].astype(np.int32)  # highest->lowest
    return non_max_suppression_cpu(dets, order, thresh, 1.0)


def rotate_nms_cc(dets, thresh):
import numba
from pathlib import Path
import numpy as np
from second.utils.buildtools.pybind11_build import load_pb11

from second.core.geometry import points_in_convex_polygon_3d_jit
from second.core.non_max_suppression.nms_gpu import rotate_iou_gpu_eval

try:
    from second.core import box_ops_cc
except:
    current_dir = Path(__file__).resolve().parents[0]
    box_ops_cc = load_pb11(["./cc/box_ops.cc"], current_dir / "box_ops_cc.so", current_dir)


def riou_cc(rbboxes, qrbboxes, standup_thresh=0.0):
    # less than 50ms when used in second one thread. 10x slower than gpu
    boxes_corners = center_to_corner_box2d(rbboxes[:, :2], rbboxes[:, 2:4],
                                           rbboxes[:, 4])
    boxes_standup = corner_to_standup_nd(boxes_corners)
    qboxes_corners = center_to_corner_box2d(qrbboxes[:, :2], qrbboxes[:, 2:4],
                                            qrbboxes[:, 4])
    qboxes_standup = corner_to_standup_nd(qboxes_corners)
    # if standup box not overlapped, rbbox not overlapped too.
    standup_iou = iou_jit(boxes_standup, qboxes_standup, eps=0.0)
    return box_ops_cc.rbbox_iou(boxes_corners, qboxes_corners, standup_iou,
                                standup_thresh)


def second_box_encode(boxes, anchors, encode_angle_to_vector=False, smooth_dim=False):
    """box encode for VoxelNet in lidar
示例#4
0
import numba
from pathlib import Path
import numpy as np
from second.utils.buildtools.pybind11_build import load_pb11

from second.core.geometry import points_in_convex_polygon_3d_jit
from second.core.non_max_suppression.nms_gpu import rotate_iou_gpu_eval

try:
    from second.core import box_ops_cc
except:
    current_dir = Path(__file__).resolve().parents[0]
    box_ops_cc = load_pb11(
        ["./cc/box_ops.cc"],
        current_dir / "box_ops_cc.so",
        current_dir,
        includes=["/zfsauton2/home/anirudds/.local/boost_1_62_0"])


def riou_cc(rbboxes, qrbboxes, standup_thresh=0.0):
    # less than 50ms when used in second one thread. 10x slower than gpu
    boxes_corners = center_to_corner_box2d(rbboxes[:, :2], rbboxes[:, 2:4],
                                           rbboxes[:, 4])
    boxes_standup = corner_to_standup_nd(boxes_corners)
    qboxes_corners = center_to_corner_box2d(qrbboxes[:, :2], qrbboxes[:, 2:4],
                                            qrbboxes[:, 4])
    qboxes_standup = corner_to_standup_nd(qboxes_corners)
    # if standup box not overlapped, rbbox not overlapped too.
    standup_iou = iou_jit(boxes_standup, qboxes_standup, eps=0.0)
    return box_ops_cc.rbbox_iou(boxes_corners, qboxes_corners, standup_iou,
                                standup_thresh)