Пример #1
0
def pose_mean_shift(im_predict):
    pos_pred = []
    label_set = np.unique(im_predict)
    for i in xrange(N_MSR_JOINTS):
        if i in label_set:
            inds = np.nonzero(im_predict == i)
            if len(inds[0]) > 0:
                X = np.array(inds).T
                cluster_centers, cluster_counts = mean_shift(
                    X, 50, n_seeds=10, max_iterations=100)
                # Find cluster with most pixels
                max_cluster = np.argmax(cluster_counts)
                pos_tmp = [cluster_centers[max_cluster].astype(np.int16)]
                pos_pred += [[pos_tmp[0][1], pos_tmp[0][0]]]
            else:
                pos_pred += [[-1]]
        else:
            pos_pred += [[-1]]

    skel_pos_pred = np.zeros([N_MSR_JOINTS, 2], dtype=np.int16)
    for i in xrange(len(SKEL_JOINTS)):
        if pos_pred[i][0] != -1:
            skel_pos_pred[SKEL_JOINTS[i], :] = pos_pred[i]

    return skel_pos_pred
Пример #2
0
def infer_pose(im_depth, rf, offsets_1, offsets_2):
	'''
	rf : pretrained random forest
	'''
	''' Compute features and labels '''
	features = calculate_rf_features(im_depth, offsets_1, offsets_2)
	pixel_loc = np.nonzero(im_depth>0)

	pred = rf.predict(features)
	im_predict = np.ones_like(im_depth)+N_MSR_JOINTS+1
	im_predict[pixel_loc] = pred

	''' Mean shift '''
	pos_pred = []
	label_set = np.unique(im_predict)
	for i in xrange(N_MSR_JOINTS):
		if i in label_set:
			inds = np.nonzero(im_predict==i)
			if len(inds[0])>0:
				X = np.array(inds).T
				cluster_centers, cluster_counts = mean_shift(X, 50, n_seeds=10, max_iterations=100)
				# Find cluster with most pixels
				max_cluster = np.argmax(cluster_counts)
				pos_tmp = [cluster_centers[max_cluster].astype(np.int16)]
				pos_pred += [[pos_tmp[0][1], pos_tmp[0][0]]]
			else:
				pos_pred += [[-1]]
		else:
			pos_pred += [[-1]]

	skel_pos_pred = np.zeros([N_MSR_JOINTS,2], dtype=np.int16)
	for i in xrange(len(SKEL_JOINTS)):
		if pos_pred[i][0] != -1:
			skel_pos_pred[SKEL_JOINTS[i],:] = pos_pred[i]

	return skel_pos_pred, im_predict
Пример #3
0
def pose_mean_shift(im_predict):
	pos_pred = []
	label_set = np.unique(im_predict)
	for i in xrange(N_MSR_JOINTS):
		if i in label_set:
			inds = np.nonzero(im_predict==i)
			if len(inds[0])>0:
				X = np.array(inds).T
				cluster_centers, cluster_counts = mean_shift(X, 50, n_seeds=10, max_iterations=100)
				# Find cluster with most pixels
				max_cluster = np.argmax(cluster_counts)
				pos_tmp = [cluster_centers[max_cluster].astype(np.int16)]
				pos_pred += [[pos_tmp[0][1], pos_tmp[0][0]]]
			else:
				pos_pred += [[-1]]
		else:
			pos_pred += [[-1]]

	skel_pos_pred = np.zeros([N_MSR_JOINTS,2], dtype=np.int16)
	for i in xrange(len(SKEL_JOINTS)):
		if pos_pred[i][0] != -1:
			skel_pos_pred[SKEL_JOINTS[i],:] = pos_pred[i]

	return skel_pos_pred
Пример #4
0
def infer_pose(im_depth, rf, offsets_1, offsets_2):
    '''
	rf : pretrained random forest
	'''
    ''' Compute features and labels '''
    features = calculate_rf_features(im_depth, offsets_1, offsets_2)
    pixel_loc = np.nonzero(im_depth > 0)

    pred = rf.predict(features)
    im_predict = np.ones_like(im_depth) + N_MSR_JOINTS + 1
    im_predict[pixel_loc] = pred
    ''' Mean shift '''
    pos_pred = []
    label_set = np.unique(im_predict)
    for i in xrange(N_MSR_JOINTS):
        if i in label_set:
            inds = np.nonzero(im_predict == i)
            if len(inds[0]) > 0:
                X = np.array(inds).T
                cluster_centers, cluster_counts = mean_shift(
                    X, 50, n_seeds=10, max_iterations=100)
                # Find cluster with most pixels
                max_cluster = np.argmax(cluster_counts)
                pos_tmp = [cluster_centers[max_cluster].astype(np.int16)]
                pos_pred += [[pos_tmp[0][1], pos_tmp[0][0]]]
            else:
                pos_pred += [[-1]]
        else:
            pos_pred += [[-1]]

    skel_pos_pred = np.zeros([N_MSR_JOINTS, 2], dtype=np.int16)
    for i in xrange(len(SKEL_JOINTS)):
        if pos_pred[i][0] != -1:
            skel_pos_pred[SKEL_JOINTS[i], :] = pos_pred[i]

    return skel_pos_pred, im_predict