def iterate(self):
		THIS_DIR = os.getcwd()
		os.chdir(os.path.join(ANNEX_DIR, self.base_path))

		try:
			iter_num = len(self.getAssetsByTagName(ASSET_TAGS['DLXDD_DD']))

			bc = BatCountry(os.path.join(getConfig('caffe_root'), "models", "bvlc_googlenet"))
			img = bc.dream(np.float32(self.get_image(file_name="dream_%d.jpg" % iter_num)))
			bc.cleanup()

			os.chdir(THIS_DIR)

			iter_num += 1
			dream = Image.fromarray(np.uint8(img))
			asset_path = self.addAsset(None, "dream_%d.jpg" % iter_num, \
				tags=[ASSET_TAGS['DLXDD_DD']], description="deep dream iteration")

			if asset_path is not None:
				dream.save(os.path.join(ANNEX_DIR, asset_path))
				return True
		
		except Exception as e:
			print "ERROR ON ITERATION:"
			print e, type(e)

		return False
예제 #2
0
    def POST(self):
        data = web.input(auth_code='', image={})
        if data.auth_code == '':
            raise web.Forbidden()

        if data.auth_code != config.auth_code:
            raise web.Forbidden()

        if 'image' not in data:
            raise web.BadRequest()

        
        input_image = Image.open(data['image'].file)

        bc = BatCountry(os.environ['CAFFE_HOME'] + '/models/bvlc_googlenet')

        result_data = bc.dream(np.float32(input_image),
            end='inception_3b/5x5_reduce')

        bc.cleanup()

        result_image = Image.fromarray(np.uint8(result_data))
        result = io.BytesIO()
        result_image.save(result, 'PNG')
        result.seek(0)

        web.header('Content-type', 'image/png') 
        return result.read()
예제 #3
0
    def iterate(self):
        THIS_DIR = os.getcwd()
        os.chdir(os.path.join(ANNEX_DIR, self.base_path))

        try:
            iter_num = len(self.getAssetsByTagName(ASSET_TAGS['DLXDD_DD']))

            bc = BatCountry(
                os.path.join(getConfig('caffe_root'), "models",
                             "bvlc_googlenet"))
            img = bc.dream(
                np.float32(self.get_image(file_name="dream_%d.jpg" %
                                          iter_num)))
            bc.cleanup()

            os.chdir(THIS_DIR)

            iter_num += 1
            dream = Image.fromarray(np.uint8(img))
            asset_path = self.addAsset(None, "dream_%d.jpg" % iter_num, \
             tags=[ASSET_TAGS['DLXDD_DD']], description="deep dream iteration")

            if asset_path is not None:
                dream.save(os.path.join(ANNEX_DIR, asset_path))
                return True

        except Exception as e:
            print "ERROR ON ITERATION:"
            print e, type(e)

        return False
예제 #4
0
def dream_that_image(before, after, layer, seed, filehash, iteration):

    # dreaming...
    mydebugmsg("Dreaming dream #" + str(iteration))
    mydebugmsg("before = [" + before + "]")
    mydebugmsg("after  = [" + after + "]")

    bc = BatCountry(DREAMMODEL)
    features = bc.prepare_guide(Image.open(seed), end=layer)
    image = bc.dream(np.float32(Image.open(before)),
                     end=layer,
                     iter_n=20,
                     objective_fn=BatCountry.guided_objective,
                     objective_features=features,
                     verbose=VERBOSITY)

    bc.cleanup()

    #
    # write the output image to file
    #

    result = Image.fromarray(np.uint8(image))
    result.save(after)

    #
    # Save both the input image and output image to S3 using the MD5 hash of the original file content as the key name
    #

    keyname = filehash + ".jpg"
    key = beforebucket.new_key(keyname)

    key.set_contents_from_filename(before)
    key.set_acl('public-read')

    mydebugmsg("new key name = [" + keyname + "]")

    create_thumbnail(before, keyname, before_thumbnails_bucket)

    #
    # keyname should look like hashvalue.1.jpg
    #

    keyname = filehash + "." + str(iteration) + ".jpg"
    key = afterbucket.new_key(keyname)

    key.set_contents_from_filename(after)
    key.set_acl('public-read')

    mydebugmsg("new key name = [" + keyname + "]")

    create_thumbnail(after, keyname, after_thumbnails_bucket)

    photo_after_url = "https://{}.{}/{}".format(after_bucket_name,
                                                s3.server_name(), keyname)
    tweet_the_nightmare(photo_after_url)
    mydebugmsg("url for tweepy = " + photo_after_url)

    mydebugmsg("------------------------------------------")
    return
예제 #5
0
#	--image initial_images/fear_and_loathing/fal_01.jpg \
#	--vis examples/output/visualizations

# import the necessary packages
from batcountry import BatCountry
from PIL import Image
import numpy as np
import argparse

# construct the argument parser and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-b", "--base-model", required=True, help="base model path")
ap.add_argument("-l", "--layer", type=str, default="conv2/3x3",
	help="layer of CNN to use")
ap.add_argument("-i", "--image", required=True, help="path to base image")
ap.add_argument("-v", "--vis", required=True,
	help="path to output directory for visualizations")
args = ap.parse_args()

# we can't stop here...
bc = BatCountry(args.base_model)
(image, visualizations) = bc.dream(np.float32(Image.open(args.image)),
	end=args.layer, visualize=True)
bc.cleanup()

# loop over the visualizations
for (k, vis) in visualizations:
	# write the visualization to file
	outputPath = "{}/{}.jpg".format(args.vis, k)
	result = Image.fromarray(np.uint8(vis))
	result.save(outputPath)
예제 #6
0
import os
from batcountry import BatCountry
import numpy as np
from PIL import Image

bc = BatCountry(os.path.expanduser("~/install/caffe/models/bvlc_googlenet"))
image = bc.dream(np.float32(Image.open("cat.1.jpg")))
bc.cleanup()

result = Image.fromarray(np.uint8(image))
result.save("output.jpg")