diff --git a/CHANGELOG.md b/CHANGELOG.md index 431866a2..66d8cbab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ https://github.com/opencv/cvat/issues/750). - REST API to export an annotation task (images + annotations) - Datumaro is an experimental framework to build, analyze, debug and visualize datasets for DL algorithms - Text Detection Auto Annoation Script in OpenVINO format for version 4 +- Added in OpenVINO Semantic Segmentation for roads ### Changed - page_size parameter for all REST API methods diff --git a/utils/open_model_zoo/Transportation/semantic-segmentation-adas/interp.py b/utils/open_model_zoo/Transportation/semantic-segmentation-adas/interp.py new file mode 100644 index 00000000..58a87fa3 --- /dev/null +++ b/utils/open_model_zoo/Transportation/semantic-segmentation-adas/interp.py @@ -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) diff --git a/utils/open_model_zoo/Transportation/semantic-segmentation-adas/mapping.json b/utils/open_model_zoo/Transportation/semantic-segmentation-adas/mapping.json new file mode 100644 index 00000000..cbda289d --- /dev/null +++ b/utils/open_model_zoo/Transportation/semantic-segmentation-adas/mapping.json @@ -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" + } +}