Пример #1
0
def test_process_context_block():
    from draw_util import get_semantic3d_class_colors
    lbl_colors=get_semantic3d_class_colors()
    fss=read_large_block_list()
    random.shuffle(fss)
    for fs in fss[:1]:
        print fs
        # xyzs, rgbs, covars, lbls, ctx_xyzs, ctx_idxs, block_mins = process_context_block(fs)
        xyzs, rgbs, covars, lbls, ctx_xyzs, ctx_idxs, block_mins = read_pkl('data/Semantic3D.Net/context/block_avg/'+fs)


        for k in xrange(len(xyzs[:10])):
            print np.min(lbls[k]),np.max(lbls[k])
            ctx_xyzs[k][:,3:6]*=127
            ctx_xyzs[k][:,3:6]+=128
            rgbs[k]*=127
            rgbs[k]+=128
            xyzs[k]+=block_mins[k]
            ctx_xyzs[k][:,:3]+=block_mins[k]

            output_points('test_result/{}xyzs.txt'.format(k),xyzs[k],rgbs[k])
            output_points('test_result/{}lbls.txt'.format(k),xyzs[k],lbl_colors[lbls[k]])
            output_points('test_result/{}context_xyzs.txt'.format(k),ctx_xyzs[k])

            print len(ctx_xyzs[k])
            colors=np.random.randint(0,255,[len(ctx_xyzs[k]),3])
            output_points('test_result/{}context_xyzs_rcolor.txt'.format(k),ctx_xyzs[k],colors)
            output_points('test_result/{}xyzs_rcolor.txt'.format(k),xyzs[k],colors[ctx_idxs[k],:])
            cluster_num=5
            from sklearn.cluster import KMeans
            colors=np.random.randint(0,255,[cluster_num,3])
            kmeans=KMeans(cluster_num)
            preds=kmeans.fit_predict(covars[k])
            output_points('test_result/{}xyzs_cluster.txt'.format(k),xyzs[k],colors[preds])
def test_process_block():
    fss = semantic3d_read_train_block_list()
    random.shuffle(fss)
    colors = get_semantic3d_class_colors()
    fss = [
        fs for fs in fss
        if fs.startswith('untermaederbrunnen_station1_xyz_intensity_rgb')
    ]
    orientations = [[] for _ in xrange(6)]
    for t in xrange(6):
        for fs in fss:
            if fs.split('_')[-1].startswith(str(t)):
                orientations[t].append(fs)

    for i in xrange(1):
        for t, fs in enumerate(orientations[i]):
            xyzs, rgbs, covars, lbls, block_mins = read_pkl(
                'data/Semantic3D.Net/block/sampled/' + fs)
            for k in xrange(len(xyzs)):
                # idxs=libPointUtil.gridDownsampleGPU(xyzs[k],0.2,False)
                pts = xyzs[k]  #[idxs]
                lbl = lbls[k]  #[idxs]
                rgb = rgbs[k]  #[idxs]
                print np.min(pts,
                             axis=0), np.max(pts, axis=0) - np.min(pts, axis=0)
                output_points('test_result/colors{}_{}_{}.txt'.format(i, t, k),
                              pts + block_mins[k], rgb * 127 + 128)
                output_points('test_result/labels{}_{}_{}.txt'.format(i, t, k),
                              pts + block_mins[k], colors[lbl, :])
Пример #3
0
def save_results(sxyzs, qxyzs, sprobs, qprobs, prefix, fs):
    colors = get_semantic3d_class_colors()
    spreds = np.argmax(sprobs[:, 1:], axis=1) + 1
    qpreds = np.argmax(qprobs[:, 1:], axis=1) + 1

    dir = 'data/Semantic3D.Net/{}'.format(prefix)
    if not os.path.exists(dir): os.mkdir(dir)
    with open('{}/{}.labels'.format(dir, fs), 'w') as f:
        for pred in qpreds:
            f.write('{}\n'.format(pred))

    idxs = libPointUtil.gridDownsampleGPU(sxyzs, 0.3, False)
    sxyzs = sxyzs[idxs]
    spreds = spreds[idxs]
    output_points('{}/{}_sparse.txt'.format(dir, fs), sxyzs, colors[spreds])

    idxs = libPointUtil.gridDownsampleGPU(qxyzs, 0.3, False)
    qxyzs = qxyzs[idxs]
    qpreds = qpreds[idxs]
    output_points('{}/{}_dense.txt'.format(dir, fs), qxyzs, colors[qpreds])
def test_big_block():
    fss = semantic3d_read_train_block_list()
    random.shuffle(fss)
    colors = get_semantic3d_class_colors()
    fss = [
        fs for fs in fss
        if fs.startswith('untermaederbrunnen_station1_xyz_intensity_rgb')
    ]
    orientations = [[] for _ in xrange(6)]
    for t in xrange(6):
        for fs in fss:
            if fs.split('_')[-1].startswith(str(t)):
                orientations[t].append(fs)

    for i in xrange(6):
        for t, fs in enumerate(orientations[i]):
            points, labels = read_pkl('data/Semantic3D.Net/block/train/' + fs)
            idxs = libPointUtil.gridDownsampleGPU(points, 0.2, False)
            points = points[idxs]
            labels = labels[idxs]
            print points.shape
            output_points('test_result/{}_{}_colors.txt'.format(i, t), points)
            output_points('test_result/{}_{}_labels.txt'.format(i, t), points,
                          colors[labels, :])
Пример #5
0
        qrn = qn / rn
        if qn % rn != 0: qrn += 1
        print 'qrn {} sxyzs num {}'.format(qrn, sxyzs.shape[0])

        qprobs = []
        for t in xrange(qrn):
            beg_idxs = t * rn
            end_idxs = min((t + 1) * rn, qn)
            qrprobs = interpolate(sxyzs, sprobs, qxyzs[beg_idxs:end_idxs])
            print 'interpolate {} done'.format(t)
            qprobs.append(qrprobs)

        qprobs = np.concatenate(qprobs, axis=0)
        qpreds = np.argmax(qprobs[:, 1:], axis=1) + 1

        colors = get_semantic3d_class_colors()
        spreds = np.argmax(sprobs[:, 1:], axis=1) + 1

        print 'total cost {} s'.format(time.time() - begin)

        with open('data/Semantic3D.Net/{}.labels'.format(fn), 'w') as f:
            for p in qpreds:
                f.write('{}\n'.format(p))

        idxs = libPointUtil.gridDownsampleGPU(sxyzs, 0.1, False)
        sxyzs = sxyzs[idxs]
        spreds = spreds[idxs]
        output_points('test_result/{}_sparse.txt'.format(fn), sxyzs,
                      colors[spreds, :])
        idxs = libPointUtil.gridDownsampleGPU(qxyzs, 0.1, False)
        qxyzs = qxyzs[idxs]