Beispiel #1
0
import datetime
import matplotlib.pyplot as plt

import time
from net import SVBRDF_debugged
from datagen import svbrdf_gen
#from loss import rendering_loss,l1_loss,normalisation,l2_loss
#from loss_fixed_opt import render_loss
from loss_fixed import rendering_loss_linear, GGXtf

sample = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\single'
train_path = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\\trainBlended'
test_path = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\\testBlended'

print('load_data')
ds = svbrdf_gen(train_path, 8)
sample_ds = svbrdf_gen(sample, 8)
test_ds = svbrdf_gen(test_path, 8)
print('finish_loading')

lightpos_set = np.array([[100, 100, 300], [100, 500, 300], [80, 0, 60],
                         [200, 1000, 300], [10000, 10000, 300],
                         [700, 200, 300], [1500, 900, 300], [80, 60, 60]])

for _, svbrdf in sample_ds.take(1):
    for i in range(8):
        print('start rendering')
        st = time.time()
        plt.axis('off')
        #maps = (svbrdf[1]+1)/2
        #albedomap, specularmap,roughnessmap, normalinmap= maps[:,:,0:3], maps[:,:,3:6], maps[:,:,6], maps[:,:,7:]
Beispiel #2
0
    with file_writer.as_default():
        # Don't forget to reshape.
        images = np.reshape(display_list, (-1, 256, 256, 3))
        tf.summary.image("svbrdf", images, max_outputs=5, step=0)


def show_predictions(dataset, model, num=1):
    for photo, svbrdf in dataset.take(num):
        pred_svbrdf = model.predict(photo)
        display_gt(photo[0], svbrdf[0])
        display_predicted(photo[0], pred_svbrdf[0])


print(tf.__version__)

test_path = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\\single'
print('load_data')
ds = svbrdf_gen(test_path, 8)
print(ds.element_spec)
print('finish_loading')

opt = Adam(lr=0.00002)

new_model = tf.keras.models.load_model(
    'E:\workspace_ms_zhiyuan\DNNreimplement\Model_trained\Model_trained\Model_saved_rl',
    custom_objects={'rendering_loss': rendering_loss_linear},
    compile=False)
new_model.compile(optimizer=opt, loss=rendering_loss_linear, metrics=['mse'])
show_predictions(ds, new_model, 1)
Beispiel #3
0
tensorboard_callback = tf.keras.callbacks.TensorBoard(
    log_dir="E:\workspace_ms_zhiyuan\\tensorboard_log\\" +
    datetime.datetime.now().strftime("%Y%m%d-%H%M%S"),
    histogram_freq=1,
    profile_batch=3)
#tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir="/vol/bitbucket/zz6117/tb_log/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"), histogram_freq=1)
#model = SVBRDF_branched()
model = SVBRDF_debugged(9)
learning_rate = 0.00002

#sample = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\Train_smaller'
train_path = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\\trainBlended'
test_path = 'E:\workspace_ms_zhiyuan\Data_Deschaintre18\\testBlended'

print('load_data')
ds = svbrdf_gen(train_path, 8)
#sample_ds = svbrdf_gen(sample,8)
test_ds = svbrdf_gen(test_path, 8)
print(ds.element_spec)
print('finish_loading')

opt = Adam(lr=learning_rate)
model.compile(optimizer=opt, loss=rendering_loss, metrics=['accuracy'])
hitory = model.fit(ds,
                   verbose=2,
                   steps_per_epoch=2000,
                   epochs=8,
                   callbacks=[tensorboard_callback])  #24884 DisplayCallback()

loss, acc = model.evaluate(test_ds, verbose=2, steps=10)
print('Restored model, accuracy: {:5.2f}%'.format(100 * acc))