Ejemplo n.º 1
0
def test_nlm3_fast():
    from imgtools import test_images, calcPSNR, read3dTiff
    dev = OCLDevice(useDevice=1)



    # data = test_images.blobs64()

    data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif")

    np.random.seed(0)
    data = 1000.*data/np.amax(data)
    y = np.maximum(0,data + np.random.normal(0,200,data.shape))
    # y = y.astype(np.uint16)
    y = y.astype(np.float32)

    t = time()
    out = nlm3_fast(dev,y,2,3,200)

    print "time:", time()-t
    print "PSNR: ",utils.calcPSNR(data,out)
    # sigs = np.linspace(3,70,30)

    # bests = []
    # for s0 in np.linspace(2,20,10):
    #     y = data + np.random.normal(0,s0,data.shape)
    #     y = y.astype(np.float32)
    #     sigs = s0*np.linspace(.1,5 ,20)

    #     ind=np.argmax([calcPSNR(data,nlm3_fast(dev,y,2,3,s)) for s in sigs])
    #     print s0,sigs[ind]
    #     bests.append([s0,sigs[ind]])

    return out
Ejemplo n.º 2
0
def test_nlm3_fast():
    from imgtools import test_images, calcPSNR, read3dTiff
    dev = OCLDevice(useDevice=1)



    # data = test_images.blobs64()

    data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif")

    np.random.seed(0)
    data = 1000.*data/np.amax(data)
    y = np.maximum(0,data + np.random.normal(0,200,data.shape))
    # y = y.astype(np.uint16)
    y = y.astype(np.float32)

    t = time()
    out = nlm3_fast(dev,y,2,3,200)

    print "time:", time()-t
    print "PSNR: ",utils.calcPSNR(data,out)
    # sigs = np.linspace(3,70,30)

    # bests = []
    # for s0 in np.linspace(2,20,10):
    #     y = data + np.random.normal(0,s0,data.shape)
    #     y = y.astype(np.float32)
    #     sigs = s0*np.linspace(.1,5 ,20)

    #     ind=np.argmax([calcPSNR(data,nlm3_fast(dev,y,2,3,s)) for s in sigs])
    #     print s0,sigs[ind]
    #     bests.append([s0,sigs[ind]])

    return out
Ejemplo n.º 3
0
def test_tv3_gpu():
    from imgtools import test_images, calcPSNR, read3dTiff
    dev = OCLDevice(useDevice=1)

    data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif")

    np.random.seed(0)
    data = 100.*data/np.amax(data)
    y = np.maximum(0,data + np.random.normal(0,0.2*np.amax(data),data.shape))
    y = y.astype(np.float32)

    t = time()
    out = tv3_gpu(dev,y,.4*np.amax(data))

    print "time:", time()-t
    print "PSNR: ",utils.calcPSNR(data,out)
    return data,y,out
Ejemplo n.º 4
0
def test_tv3_gpu():
    from imgtools import test_images, calcPSNR, read3dTiff
    dev = OCLDevice(useDevice=1)

    data = read3dTiff("/Users/mweigert/Data/synthetics/blobs64.tif")

    np.random.seed(0)
    data = 100.*data/np.amax(data)
    y = np.maximum(0,data + np.random.normal(0,0.2*np.amax(data),data.shape))
    y = y.astype(np.float32)

    t = time()
    out = tv3_gpu(dev,y,.4*np.amax(data))

    print "time:", time()-t
    print "PSNR: ",utils.calcPSNR(data,out)
    return data,y,out
Ejemplo n.º 5
0
    def test(self):
        self.model.eval()
        self.checkpoint.saveLog('\nEvaluation:')
        epoch = self.checkpoint.getEpoch()
        scale = self.scale[0]

        testTimer = utils.timer()
        self.checkpoint.addLog(torch.zeros(1, len(self.scale)), False)

        testTimer.tic()
        for scaleIdx in range(len(self.scale)):
            scale = self.scale[scaleIdx]
            self.scaleChange(scaleIdx, self.testLoader)
            for imgIdx, (input, target, _) in enumerate(self.testLoader):
                input, target = self.prepareData(input, target, volatile=True)

                # Self ensemble!
                if self.args.selfEnsemble:
                    output = utils.x8Forward(input, self.model,
                                             self.args.precision)
                else:
                    output = self.model(input)

                evalValue = utils.calcPSNR(output, target,
                                           self.testLoader.dataset.name,
                                           self.args.rgbRange, scale)
                self.checkpoint.testLog[-1, scaleIdx] \
                    += evalValue / len(self.testLoader)
                self.checkpoint.saveResults(imgIdx, input, output, target,
                                            scale)

            bestValue, bestEpoch = self.checkpoint.testLog.max(0)
            performance = 'PSNR: {:.3f}'.format(
                self.checkpoint.testLog[-1, scaleIdx])
            self.checkpoint.saveLog(
                '[SR on {} x{}]\t{} (Best: {:.3f} from epoch {})'.format(
                    self.testLoader.dataset.name, scale, performance,
                    bestValue.squeeze(0)[scaleIdx],
                    bestEpoch.squeeze(0)[scaleIdx] + 1))

        self.checkpoint.saveLog('Time: {:.2f}s\n'.format(testTimer.toc()),
                                refresh=True)
        self.checkpoint.save(self, epoch)