implemented adas semantic segmentation (#890)
commit
a2a03d2bd5
@ -0,0 +1,31 @@
|
||||
import numpy as np
|
||||
from skimage.measure import approximate_polygon, find_contours
|
||||
|
||||
import cv2
|
||||
|
||||
|
||||
for frame_results in detections:
|
||||
frame_height = frame_results['frame_height']
|
||||
frame_width = frame_results['frame_width']
|
||||
frame_number = frame_results['frame_id']
|
||||
detection = frame_results['detections']
|
||||
detection = detection[0, 0, :, :]
|
||||
width, height = detection.shape
|
||||
|
||||
for i in range(21):
|
||||
zero = np.zeros((width,height),dtype=np.uint8)
|
||||
|
||||
f = float(i)
|
||||
zero = ((detection == f) * 255).astype(np.float32)
|
||||
zero = cv2.resize(zero, dsize=(frame_width, frame_height), interpolation=cv2.INTER_CUBIC)
|
||||
|
||||
contours = find_contours(zero, 0.8)
|
||||
|
||||
for contour in contours:
|
||||
contour = np.flip(contour, axis=1)
|
||||
contour = approximate_polygon(contour, tolerance=2.5)
|
||||
segmentation = contour.tolist()
|
||||
if len(segmentation) < 3:
|
||||
continue
|
||||
|
||||
results.add_polygon(segmentation, i, frame_number)
|
||||
@ -0,0 +1,25 @@
|
||||
{
|
||||
"label_map": {
|
||||
"0": "road",
|
||||
"1": "sidewalk",
|
||||
"2": "building",
|
||||
"3": "wall",
|
||||
"4": "fence",
|
||||
"5": "pole",
|
||||
"6": "traffic light",
|
||||
"7": "traffic sign",
|
||||
"8": "vegetation",
|
||||
"9": "terrain",
|
||||
"10": "sky",
|
||||
"11": "person",
|
||||
"12": "rider",
|
||||
"13": "car",
|
||||
"14": "truck",
|
||||
"15": "bus",
|
||||
"16": "train",
|
||||
"17": "motorcycle",
|
||||
"18": "bicycle",
|
||||
"19": "ego-vehicle",
|
||||
"20": "background"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue