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
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()
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
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
# --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)
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")