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):
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
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)