Skip to content
Snippets Groups Projects
Select Git revision
  • 264fb0558461d40bde1404c9ba244cf75f75ca71
  • master default
  • disable-new-requests
  • fix-bulletin-view-missing-notes-error
  • add-missing-queue-managers
  • projects-task-53
  • projects-task-51
  • projects-task-43
  • projects-task-24
  • projects-task-31
  • projects-task-32
  • projects-task-8
  • project-setup-docs
  • projects-task-28
  • projects-task-27
  • projects-task-9
  • projects-task-7
  • mass-update-course-codes-in-sections
  • wdn-four
  • learning-outcomes
  • additional-bulletin-pages
  • svn-redesign
  • svn-popups
  • svn-trunk
  • svn-performance
  • svn-tim
26 results

PublicViewController.php

Blame
  • extract_features.py 2.16 KiB
    import tensorflow as tf
    from keras_applications.vgg16 import preprocess_input as vgg_preprocess_input
    from keras_applications.resnet import preprocess_input as resnet_preprocess_input
    from cyvlfeat.sift import dsift
    import numpy as np
    
    
    def extract_vgg16_feature(img_data, model):
        """ Use Pre-traing vgg16 model to extract image features """
        img_data = vgg_preprocess_input(img_data,
                                backend=tf.keras.backend,
                                layers=tf.keras.layers,
                                models=tf.keras.models,
                                utils=tf.keras.utils)
        vgg16_feature = model.predict(img_data)
        shape = vgg16_feature.shape
        if len(shape) == 4:
            keypts = np.array([[x, y] for y in range(shape[1]) for x in range(shape[2])]).reshape(shape[1], shape[2], 2)
            keypts = np.tile(keypts, [shape[0], 1, 1, 1])
        else:
            keypts = None
    
        return vgg16_feature, keypts
        
        
    def extract_resnet50_feature(img_data, model):
        """ Use Pre-traing ResNet50 model to extract image features """
        img_data = resnet_preprocess_input(img_data,
                                backend=tf.keras.backend,
                                layers=tf.keras.layers,
                                models=tf.keras.models,
                                utils=tf.keras.utils)
        resnet50_feature = model.predict(img_data)
        shape = resnet50_feature.shape
        if len(shape) == 4:
            keypts = np.array([[x, y] for y in range(shape[1]) for x in range(shape[2])]).reshape(shape[1], shape[2], 2)
            keypts = np.tile(keypts, [shape[0], 1, 1, 1])
        else:
            keypts = None
    
        return resnet50_feature, keypts
        
    
    def extract_dsift_feature(images, step=8, size=5):
        """ extract Dense SIFT (DSIFT) image features """
        n = images.shape[0]
        if n > 0:
            d, f = dsift(images[0, :, :, 0], step=step, size=size)
        ndescr, descrl = f.shape
    
        feats = np.zeros((n, ndescr, descrl))
        keypts = np.zeros((n, ndescr, 2))
    
        for i in range(n):
            d, f = dsift(images[i, :, :, 0], step=step, size=size)
            feats[i, :, :] = f
            keypts[i, :, :] = d
    
        return feats, keypts