Source code for menpo.landmark.labels.car

from collections import OrderedDict
import numpy as np

from .base import labeller_func, validate_input, connectivity_from_array


@labeller_func(group_label='car_streetscene_view_0_8')
[docs]def car_streetscene_20_to_car_streetscene_view_0_8(pcloud): r""" Apply the 8-point semantic labels of "view 0" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - front - bonnet - windshield References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) front_indices = np.array([0, 1, 3, 2]) bonnet_indices = np.array([2, 3, 5, 4]) windshield_indices = np.array([4, 5, 7, 6]) front_connectivity = connectivity_from_array(front_indices, close_loop=True) bonnet_connectivity = connectivity_from_array(bonnet_indices, close_loop=True) windshield_connectivity = connectivity_from_array(windshield_indices, close_loop=True) all_connectivity = np.vstack([front_connectivity, bonnet_connectivity, windshield_connectivity]) ind = np.arange(8) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['front'] = front_indices mapping['bonnet'] = bonnet_indices mapping['windshield'] = windshield_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_1_14')
[docs]def car_streetscene_20_to_car_streetscene_view_1_14(pcloud): """ Apply the 14-point semantic labels of "view 1" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - front - bonnet - windshield - left_side References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) front_indices = np.array([0, 1, 3, 2]) bonnet_indices = np.array([2, 3, 5, 4]) windshield_indices = np.array([4, 5, 7, 6]) left_side_indices = np.array([0, 2, 4, 6, 8, 9, 10, 11, 13, 12]) front_connectivity = connectivity_from_array(front_indices, close_loop=True) bonnet_connectivity = connectivity_from_array(bonnet_indices, close_loop=True) windshield_connectivity = connectivity_from_array(windshield_indices, close_loop=True) left_side_connectivity = connectivity_from_array(left_side_indices, close_loop=True) all_connectivity = np.vstack([ front_connectivity, bonnet_connectivity, windshield_connectivity, left_side_connectivity ]) ind = np.hstack((np.arange(9), np.array([10, 12, 14, 16, 18]))) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['front'] = front_indices mapping['bonnet'] = bonnet_indices mapping['windshield'] = windshield_indices mapping['left_side'] = left_side_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_2_10')
[docs]def car_streetscene_20_to_car_streetscene_view_2_10(pcloud): r""" Apply the 10-point semantic labels of "view 2" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - left_side References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) left_side_indices = np.array([0, 1, 2, 3, 4, 5, 6, 7, 9, 8]) left_side_connectivity = connectivity_from_array(left_side_indices, close_loop=True) all_connectivity = left_side_connectivity ind = np.array([0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['left_side'] = left_side_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_3_14')
[docs]def car_streetscene_20_to_car_streetscene_view_3_14(pcloud): r""" Apply the 14-point semantic labels of "view 3" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - left_side - rear windshield - trunk - rear References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) left_side_indices = np.array([0, 1, 2, 3, 4, 6, 8, 10, 13, 12]) rear_windshield_indices = np.array([4, 5, 7, 6]) trunk_indices = np.array([6, 7, 9, 8]) rear_indices = np.array([8, 9, 11, 10]) left_side_connectivity = connectivity_from_array(left_side_indices, close_loop=True) rear_windshield_connectivity = connectivity_from_array( rear_windshield_indices, close_loop=True) trunk_connectivity = connectivity_from_array(trunk_indices, close_loop=True) rear_connectivity = connectivity_from_array(rear_indices, close_loop=True) all_connectivity = np.vstack([ left_side_connectivity, rear_windshield_connectivity, trunk_connectivity, rear_connectivity ]) ind = np.array([0, 2, 4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18]) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['left_side'] = left_side_indices mapping['rear_windshield'] = rear_windshield_indices mapping['trunk'] = trunk_indices mapping['rear'] = rear_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_4_14')
[docs]def car_streetscene_20_to_car_streetscene_view_4_14(pcloud): r""" Apply the 14-point semantic labels of "view 4" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - front - bonnet - windshield - right_side References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) front_indices = np.array([0, 1, 3, 2]) bonnet_indices = np.array([2, 3, 5, 4]) windshield_indices = np.array([4, 5, 7, 6]) right_side_indices = np.array([8, 9, 10, 11, 13, 12, 1, 3, 5, 7]) front_connectivity = connectivity_from_array(front_indices, close_loop=True) bonnet_connectivity = connectivity_from_array(bonnet_indices, close_loop=True) windshield_connectivity = connectivity_from_array(windshield_indices, close_loop=True) right_side_connectivity = connectivity_from_array(right_side_indices, close_loop=True) total_conn = np.vstack([ front_connectivity, bonnet_connectivity, windshield_connectivity, right_side_connectivity ]) ind = np.hstack([np.arange(8), np.array([9, 11, 13, 15, 17, 19])]) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], total_conn) mapping = OrderedDict() mapping['front'] = front_indices mapping['bonnet'] = bonnet_indices mapping['windshield'] = windshield_indices mapping['right_side'] = right_side_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_5_10')
[docs]def car_streetscene_20_to_car_streetscene_view_5_10(pcloud): r""" Apply the 10-point semantic labels of "view 5" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - right_side References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) right_side_indices = np.array([0, 1, 2, 3, 4, 5, 6, 7, 9, 8]) right_side_connectivity = connectivity_from_array(right_side_indices, close_loop=True) all_connectivity = right_side_connectivity ind = np.array([1, 3, 5, 7, 9, 11, 13, 15, 17, 19]) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['right_side'] = right_side_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_6_14')
[docs]def car_streetscene_20_to_car_streetscene_view_6_14(pcloud): r""" Apply the 14-point semantic labels of "view 6" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - right_side - rear_windshield - trunk - rear References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) right_side_indices = np.array([0, 1, 2, 3, 5, 7, 9, 11, 13, 12]) rear_windshield_indices = np.array([4, 5, 7, 6]) trunk_indices = np.array([6, 7, 9, 8]) rear_indices = np.array([8, 9, 11, 10]) right_side_connectivity = connectivity_from_array(right_side_indices, close_loop=True) rear_windshield_connectivity = connectivity_from_array( rear_windshield_indices, close_loop=True) trunk_connectivity = connectivity_from_array(trunk_indices, close_loop=True) rear_connectivity = connectivity_from_array(rear_indices, close_loop=True) all_connectivity = np.vstack([ right_side_connectivity, rear_windshield_connectivity, trunk_connectivity, rear_connectivity ]) ind = np.array([1, 3, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19]) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['right_side'] = right_side_indices mapping['rear_windshield'] = rear_windshield_indices mapping['trunk'] = trunk_indices mapping['rear'] = rear_indices return new_pcloud, mapping
@labeller_func(group_label='car_streetscene_view_7_8')
[docs]def car_streetscene_20_to_car_streetscene_view_7_8(pcloud): r""" Apply the 8-point semantic labels of "view 7" from the MIT Street Scene Car dataset (originally a 20-point markup). The semantic labels applied are as follows: - rear_windshield - trunk - rear References ---------- .. [1] http://www.cs.cmu.edu/~vboddeti/alignment.html """ from menpo.shape import PointUndirectedGraph n_expected_points = 20 validate_input(pcloud, n_expected_points) rear_windshield_indices = np.array([0, 1, 3, 2]) trunk_indices = np.array([2, 3, 5, 4]) rear_indices = np.array([4, 5, 7, 6]) rear_windshield_connectivity = connectivity_from_array( rear_windshield_indices, close_loop=True) trunk_connectivity = connectivity_from_array(trunk_indices, close_loop=True) rear_connectivity = connectivity_from_array(rear_indices, close_loop=True) all_connectivity = np.vstack([rear_windshield_connectivity, trunk_connectivity, rear_connectivity]) ind = np.arange(8, 16) new_pcloud = PointUndirectedGraph.init_from_edges(pcloud.points[ind], all_connectivity) mapping = OrderedDict() mapping['rear_windshield'] = rear_windshield_indices mapping['trunk'] = trunk_indices mapping['rear'] = rear_indices return new_pcloud, mapping