Пример #1
0
    def listen(self):
        conf_manager = ConfigurationManager()
        config = conf_manager.instance()

        detector = hotword_detectors[config['HOTWORD_ENGINE']](
            self.detected_callback)
        detector.listen()
Пример #2
0
def create_app(app_name='Is3 Frontend'):
    configuration_manager = ConfigurationManager()
    app = Flask(app_name)
    configure_blueprints(app)
    redis_configuration = configuration_manager.get_redis_configuration()
    configure_conectors(app, redis_configuration)
    return app
Пример #3
0
def detected_callback():
    logger.info('Hotword detected')
    player = AudioPlayer()
    conf_manager = ConfigurationManager()
    config = conf_manager.instance()
    player.play(config['DETECT_SOUND'])
    recorder = Recorder()
    recorded_file = recorder.record()
    requester = ProteusRequests()
    try:
        answer_audio = requester.speech_audio(recorded_file)
    except Exception:
        logger.error('Connection Error: server unreachable')
        return
    logger.info('Playing...')
    player.play(answer_audio)
    def __init__(self, cfg_parser: ConfigurationManager):
        super().__init__(cfg_parser, QuantileRegressionAgent.head)
        self.cfg = cfg_parser.parse_and_return_dictionary(
            "AGENT", QuantileRegressionAgent.required_params)

        self.loss = self.build_loss_op()

        self.prepare(self.loss)
Пример #5
0
    def __init__(self, cfg_parser: ConfigurationManager, agent: Agent):
        act_plcy_cfg = cfg_parser.parse_and_return_dictionary(
            "POLICY.EXPLORATION_STRATEGY", Policy.required_params)

        if act_plcy_cfg["TYPE"] == "EPSILON_GREEDY":
            self.policy = EpsilonGreedy(cfg_parser, agent)
        elif act_plcy_cfg["TYPE"] == "SOFTMAX":
            self.policy = SoftMax(agent)
        else:
            raise NotImplementedError
Пример #6
0
    def __init__(self, config_parser: ConfigurationManager,
                 net: network.GeneralNetwork):
        super().__init__(config_parser, net)

        self.cfg = config_parser.parse_and_return_dictionary(
            "HEAD", SoftmaxFixedAtomsDistributionalHead.required_params)

        self.q_dist = tf.nn.softmax(self.q_dist,
                                    name="state_action_value_dist",
                                    axis=-1)
Пример #7
0
    def __init__(self, env: Environment, config_parser: ConfigurationManager):
        gym.Wrapper.__init__(self, env.env)
        self.cfg = config_parser.parse_and_return_dictionary(
            "ENVIRONMENT", NetworkActionToEnvAction.required_params)

        if "ACTION_SPECIFICATIONS" in self.cfg:
            self.actions = self.cfg["ACTION_SPECIFICATIONS"]
        else:
            self.actions = list(
                range(config_parser.parsed_json["DEFAULT_NUM_ACTIONS"]))
Пример #8
0
    def __init__(self, config_parser: ConfigurationManager):
        self.cfg = config_parser.parse_and_return_dictionary(
            "ENVIRONMENT", Head.required_params)

        if "ACTION_SPECIFICATIONS" in self.cfg:
            self.num_actions = len(self.cfg["ACTION_SPECIFICATIONS"])
        else:
            self.num_actions = config_parser.parsed_json["DEFAULT_NUM_ACTIONS"]

        self.greedy_action = None
Пример #9
0
 def __init__(self):
     
     # i18n
     languages = []
     lc, encoding = locale.getdefaultlocale()
     if lc:
         languages = [lc]
     languages += DEFAULT_LANGUAGES
     gettext.bindtextdomain(OCRFEEDER_COMPACT_NAME, LOCALE_DIR)
     gettext.textdomain(OCRFEEDER_COMPACT_NAME)
     language = gettext.translation(OCRFEEDER_COMPACT_NAME, LOCALE_DIR,
                                    languages = languages, fallback = True)
     _ = language.gettext
     self.title = OCRFEEDER_STUDIO_NAME
     self.main_window = widgetPresenter.MainWindow()
     self.main_window.setTitle(self.title)
     cli_command_retriever = ArgsRetriever(sys.argv)
     imgs = cli_command_retriever.getParams('--images')
     self.configuration_manager = ConfigurationManager()
     self.ocr_engines_manager = OcrEnginesManager(self.configuration_manager)
     self.ocr_engines_manager.makeEnginesFromFolder(self.configuration_manager.user_engines_folder)
     self.ocr_engines = self.ocr_engines_manager.ocr_engines
     self.configuration_manager.loadConfiguration()
     self.source_images_selector = SourceImagesSelector(imgs)
     self.source_images_selector.connect('selection_changed', self.selectionChanged)
     self.source_images_icon_view = SourceImagesSelectorIconView(self.source_images_selector)
     self.source_images_icon_view.setDeleteCurrentPageFunction(self.deleteCurrentPage)
     self.source_images_icon_view.show()
     self.main_window.main_area_left.add_with_viewport(self.source_images_icon_view)
     self.images_selectable_area = {}
     self.images_dict = create_images_dict_from_liststore(self.source_images_selector.list_store)
     self.source_images_controler = ImageReviewer_Controler(self.main_window.notebook, self.images_dict, self.source_images_icon_view, self.ocr_engines, self.configuration_manager, self.main_window.tripple_statusbar)
     self.project_name = None
     
     toolbar_callback_dict = {'detection': self.source_images_controler.performBoxDetection,
                      'export_to_odt': self.exportToOdt}
     
     menubar_callback_dict = {'exit': self.quit, 'add_image': self.addImage, 'export_to_odt': self.exportToOdt, 'edit_page': self.choosePageSize,
                              'delete_page': self.deleteCurrentPage, 'export_dialog': self.exportDialog, 'add_folder': self.addFolder, 
                              'import_pdf': self.importPdf, 'save_project': self.saveProject, 'save_project_as': self.saveProjectAs,
                              'open_project': self.openProject, 'append_project': self.appendProject,'clear': self.clear,
                              'unpaper': self.unpaper, 'preferences': self.preferences, 'about': self.about,
                              'ocr_engines': self.ocrEngines, 'zoom_in': self.zoomIn, 'zoom_out': self.zoomOut,
                              'zoom_fit': self.zoomFit, 'reset_zoom': self.resetZoom}
     
     self.main_window.setHeader(menubar_callback_dict, toolbar_callback_dict)
     self.main_window.setDestroyEvent(self.quit)
     
     dirs = cli_command_retriever.getParams('--dir')
     if dirs:
         self.__addImagesToReviewer(lib.getImagesFromFolder(dirs[0]))
     
     self.main_window.setHasImages(not self.source_images_selector.isEmpty())
Пример #10
0
    def __init__(self, cfg_parser: ConfigurationManager, head):
        super().__init__()

        from util.util import build_train_and_target_general_network_with_head, get_session
        self.sess = get_session(cfg_parser)

        self.train_network_base, self.train_network, \
            self.target_network_base, self.target_network, self.copy_op, self.saver = \
                build_train_and_target_general_network_with_head(head, cfg_parser)

        from memory.experience_replay import ExperienceReplay
        self.experience_replay = ExperienceReplay(cfg_parser)

        self.cfg_parser = cfg_parser

        from function_approximator.head import QNetworkHead

        self.train_network: QNetworkHead

        self.target_network: QNetworkHead

        cfg_parser["NUM_ACTIONS"] = self.train_network.num_actions

        self.cfg = cfg_parser.parse_and_return_dictionary(
            "AGENT", BaseDQNBasedAgent.required_params)

        self.train_step = None

        self.action_placeholder = tf.placeholder(name="action",
                                                 dtype=tf.int32,
                                                 shape=[
                                                     None,
                                                 ])
        self.reward_placeholder = tf.placeholder(name="reward",
                                                 dtype=tf.float32,
                                                 shape=(None, ))
        # TODO: Optimize memory uint8 -> bool (check if casting works to float)
        self.terminal_placeholder = tf.placeholder(name="terminal",
                                                   dtype=tf.uint8,
                                                   shape=(None, ))

        self.predict_calls = 0
        self.train_calls = 0
        self.num_updates = tf.Variable(initial_value=0,
                                       dtype=tf.int32,
                                       trainable=False)

        self.batch_dim_range = tf.range(tf.shape(self.train_network_base.x)[0],
                                        dtype=tf.int32)

        self.policy = None
    def __init__(self, cfg_parser: ConfigurationManager):
        super().__init__(cfg_parser, CategoricalAgent.head)
        self.cfg = cfg_parser.parse_and_return_dictionary(
            "AGENT", CategoricalAgent.required_params)

        self.cfg["NB_ATOMS"] = self.cfg_parser["HEAD.NB_ATOMS"]

        self.Z, self.delta_z = np.linspace(self.cfg["V_MIN"],
                                           self.cfg["V_MAX"],
                                           self.cfg["NB_ATOMS"],
                                           retstep=True)

        self.loss = self.build_loss_op()

        self.prepare(self.loss)
Пример #12
0
    def __init__(self, config_parser: ConfigurationManager):
        self.cfg = config_parser.parse_and_return_dictionary(
            "NETWORK", GeneralNetwork.required_params)

        if "STATE_DIMENSIONS" in self.cfg:
            obs_shape = [int(i) for i in self.cfg["STATE_DIMENSIONS"]]
        else:
            obs_shape = config_parser.parsed_json["DEFAULT_OBS_DIMS"]

        # Input
        self.x = tf.placeholder(name="state",
                                dtype=tf.float32,
                                shape=(None, *obs_shape))

        # Convolutional Layers
        self.conv_outputs = []
        for CONV_LAYER_SPEC in self.cfg["CONVOLUTIONAL_LAYERS_SPEC"]:
            self.conv_outputs.append(
                layers.conv2d(
                    name="conv_layer_" + str(len(self.conv_outputs) + 1),
                    inputs=self.x
                    if len(self.conv_outputs) == 0 else self.conv_outputs[-1],
                    filters=CONV_LAYER_SPEC["filters"],
                    kernel_size=CONV_LAYER_SPEC["kernel_size"],
                    strides=CONV_LAYER_SPEC["strides"],
                    activation=tf.nn.relu))

        if len(self.cfg["CONVOLUTIONAL_LAYERS_SPEC"]) > 0:
            # Flatten
            self.flattened_conv_output = tf.layers.flatten(
                name="conv_output_flattener", inputs=self.conv_outputs[-1])

            last_out = self.flattened_conv_output
        else:
            last_out = self.x

        # Hidden Layer
        self.dense_outputs = []
        for DENSE_LAYER_SPEC in self.cfg["DENSE_LAYERS_SPEC"]:
            self.dense_outputs.append(
                layers.dense(
                    name="fc_layer_" + str(len(self.dense_outputs) + 1),
                    inputs=last_out if len(
                        self.dense_outputs) == 0 else self.dense_outputs[-1],
                    units=DENSE_LAYER_SPEC,
                    activation=tf.nn.relu))

        self.last_op = self.dense_outputs[-1]
Пример #13
0
def get_session(cfg_params: ConfigurationManager):
    required_params = []

    tf_params = cfg_params.parse_and_return_dictionary("TENSORFLOW",
                                                       required_params)

    config = tf.ConfigProto()

    if "ALLOW_GPU_GROWTH" not in tf_params or not tf_params["ALLOW_GPU_GROWTH"]:
        config.gpu_options.allow_growth = True

    if "INTRA_OP_PARALLELISM" in tf_params:
        config.intra_op_parallelism_threads = tf_params["INTRA_OP_PARALLELISM"]
    if "INTER_OP_PARALLELISM" in tf_params:
        config.inter_op_parallelism_threads = tf_params["INTER_OP_PARALLELISM"]

    return tf.Session(config=config)
Пример #14
0
    def __init__(self, config_parser: ConfigurationManager,
                 net: network.GeneralNetwork):
        super().__init__(config_parser)

        self.cfg = config_parser.parse_and_return_dictionary(
            "HEAD", FixedAtomsDistributionalHead.required_params)

        # State-Action-Value Distributions (as a flattened vector)
        self.flattened_dist = layers.dense(name="flattened_dists",
                                           inputs=net.last_op,
                                           units=self.num_actions *
                                           self.cfg["NB_ATOMS"],
                                           activation=None)

        # Unflatten
        self.q_dist = tf.reshape(self.flattened_dist,
                                 [-1, self.num_actions, self.cfg["NB_ATOMS"]],
                                 name="per_action_dist")

        self.q = tf.reduce_mean(self.q_dist, axis=-1)

        self.greedy_action = tf.cast(tf.squeeze(tf.argmax(self.q, axis=-1)),
                                     dtype=tf.int32)
Пример #15
0
class Studio:

    EXPORT_FORMATS = ['HTML', 'ODT']

    def __init__(self):

        # i18n
        languages = []
        lc, encoding = locale.getdefaultlocale()
        if lc:
            languages = [lc]
        languages += DEFAULT_LANGUAGES
        gettext.bindtextdomain(OCRFEEDER_COMPACT_NAME, LOCALE_DIR)
        gettext.textdomain(OCRFEEDER_COMPACT_NAME)
        language = gettext.translation(OCRFEEDER_COMPACT_NAME,
                                       LOCALE_DIR,
                                       languages=languages,
                                       fallback=True)
        _ = language.gettext
        self.title = OCRFEEDER_STUDIO_NAME
        self.main_window = widgetPresenter.MainWindow()
        self.main_window.setTitle(self.title)
        cli_command_retriever = ArgsRetriever(sys.argv)
        imgs = cli_command_retriever.getParams('--images')
        self.configuration_manager = ConfigurationManager()
        self.ocr_engines_manager = OcrEnginesManager(
            self.configuration_manager)
        self.ocr_engines_manager.makeEnginesFromFolder(
            self.configuration_manager.user_engines_folder)
        self.ocr_engines = self.ocr_engines_manager.ocr_engines
        self.configuration_manager.loadConfiguration()
        self.source_images_selector = SourceImagesSelector(imgs)
        self.source_images_selector.connect('selection_changed',
                                            self.selectionChanged)
        self.source_images_icon_view = SourceImagesSelectorIconView(
            self.source_images_selector)
        self.source_images_icon_view.setDeleteCurrentPageFunction(
            self.deleteCurrentPage)
        self.source_images_icon_view.show()
        self.main_window.main_area_left.add_with_viewport(
            self.source_images_icon_view)
        self.images_selectable_area = {}
        self.images_dict = create_images_dict_from_liststore(
            self.source_images_selector.list_store)
        self.source_images_controler = ImageReviewer_Controler(
            self.main_window.notebook, self.images_dict,
            self.source_images_icon_view, self.ocr_engines,
            self.configuration_manager, self.main_window.tripple_statusbar)
        self.project_name = None

        toolbar_callback_dict = {
            'detection': self.source_images_controler.performBoxDetection,
            'export_to_odt': self.exportToOdt
        }

        menubar_callback_dict = {
            'exit': self.quit,
            'add_image': self.addImage,
            'export_to_odt': self.exportToOdt,
            'edit_page': self.choosePageSize,
            'delete_page': self.deleteCurrentPage,
            'export_dialog': self.exportDialog,
            'add_folder': self.addFolder,
            'import_pdf': self.importPdf,
            'save_project': self.saveProject,
            'save_project_as': self.saveProjectAs,
            'open_project': self.openProject,
            'append_project': self.appendProject,
            'clear': self.clear,
            'unpaper': self.unpaper,
            'preferences': self.preferences,
            'about': self.about,
            'ocr_engines': self.ocrEngines,
            'zoom_in': self.zoomIn,
            'zoom_out': self.zoomOut,
            'zoom_fit': self.zoomFit,
            'reset_zoom': self.resetZoom
        }

        self.main_window.setHeader(menubar_callback_dict,
                                   toolbar_callback_dict)
        self.main_window.setDestroyEvent(self.quit)

        dirs = cli_command_retriever.getParams('--dir')
        if dirs:
            self.__addImagesToReviewer(lib.getImagesFromFolder(dirs[0]))

        self.main_window.setHasImages(
            not self.source_images_selector.isEmpty())

    def run(self):
        gtk.main()

    def addImage(self, widget):
        file_open_dialog = widgetPresenter.FileDialog('open',
                                                      file_filters=[
                                                          (_('Images'),
                                                           ['image/*'], [])
                                                      ])
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for file_name in file_open_dialog.get_filenames():
                self.__addImagesToReviewer([file_name])
        file_open_dialog.destroy()

    def importPdf(self, widget):
        file_open_dialog = widgetPresenter.FileDialog(
            'open', file_filters=[(_('PDF'), ['application/pdf'], [])])
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for file_name in file_open_dialog.get_filenames():
                folder = lib.convertPdfToImages(
                    file_name, self.configuration_manager.getTemporaryDir())
                self.__addImagesToReviewer(lib.getImagesFromFolder(folder))
        file_open_dialog.destroy()

    def addFolder(self, widget):
        file_open_dialog = widgetPresenter.FileDialog('select-folder')
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for folder in file_open_dialog.get_filenames():
                self.__addImagesToReviewer(lib.getImagesFromFolder(folder))
        file_open_dialog.destroy()

    def exportToHtml(self, widget=None):
        self.source_images_controler.exportPagesToHtml(
            self.source_images_selector.getPixbufsSorted())

    def exportToOdt(self, widget=None):
        self.source_images_controler.exportPagesToOdt(
            self.source_images_selector.getPixbufsSorted())

    def exportDialog(self, widget):
        export_dialog = widgetPresenter.ExportDialog(_('Export pages'),
                                                     self.EXPORT_FORMATS)
        response = export_dialog.run()
        if response == gtk.RESPONSE_ACCEPT:
            format = export_dialog.getSelectedFormat().capitalize()
            export_dialog.destroy()
            exec('self.exportTo%s()' % format)
            return None
        export_dialog.destroy()
        return None

    def choosePageSize(self, widget):
        self.source_images_controler.choosePageSize()

    def deleteCurrentPage(self, widget):
        delete_dialog = widgetPresenter.QuestionDialog(
            _('Are you sure you want to delete the current image?'))
        response = delete_dialog.run()
        if response == gtk.RESPONSE_YES:
            self.source_images_controler.deleteCurrentPage()
            self.source_images_icon_view.deleteCurrentSelection()
        delete_dialog.destroy()

    def __addImagesToReviewer(self, images):
        for image in images:
            pixbuf, image, iter = self.source_images_selector.addImage(image)
            self.source_images_controler.addImage(pixbuf, image)
        tree_path = self.source_images_selector.list_store.get_path(iter)
        self.source_images_icon_view.select_path(tree_path)

    def setProjectName(self, project_name):
        self.project_name = project_name
        project_title = os.path.splitext(os.path.basename(
            self.project_name))[0]
        self.main_window.setTitle('%s - %s' % (self.title, project_title))

    def saveProjectAs(self, widget=None):
        file_name = self.source_images_controler.saveProjectAs()
        if file_name:
            self.setProjectName(file_name)
            self.saveProject()

    def saveProject(self, widget=None):
        if self.project_name:
            self.source_images_controler.saveProject(self.project_name)
        else:
            self.saveProjectAs()

    def appendProject(self, widget=None):
        self.__loadProject(False)

    def openProject(self, widget=None):
        self.__loadProject()

    def __loadProject(self, clear_current=True):
        project_title = self.source_images_controler.openProject(clear_current)
        if project_title:
            self.setProjectName(project_title)

    def clear(self, widget=None):
        self.source_images_controler.clear()

    def unpaper(self, widget=None):
        self.source_images_controler.unpaperTool()

    def preferences(self, widget=None):
        preferences_dialog = widgetPresenter.PreferencesDialog(
            self.configuration_manager, self.ocr_engines_manager.ocr_engines)
        if preferences_dialog.run() == gtk.RESPONSE_ACCEPT:
            preferences_dialog.saveToManager()
            self.source_images_controler.updateFromConfiguration()
        preferences_dialog.destroy()

    def ocrEngines(self, widget=None):
        ocr_dialog = widgetPresenter.OcrManagerDialog(self.ocr_engines_manager)
        ocr_dialog.run()
        ocr_dialog.destroy()

    def enginesTool(self, widget=None):
        pass

    def selectionChanged(self, selector, is_empty):
        self.main_window.setHasImages(not is_empty)

    def about(self, widget=None):
        from gnome import url_show
        gtk.about_dialog_set_url_hook(lambda x, y, z: url_show(y), "")
        about_dialog = widgetPresenter.CustomAboutDialog()
        if about_dialog.run():
            about_dialog.destroy()

    def zoomIn(self, widget=None):
        self.source_images_controler.zoomIn()

    def zoomOut(self, widget=None):
        self.source_images_controler.zoomOut()

    def resetZoom(self, widget=None):
        self.source_images_controler.resetZoom()

    def zoomFit(self, widget=None):
        self.source_images_controler.zoomFit()

    def quit(self, widget=None, data=None):
        if not self.project_name and not self.source_images_selector.isEmpty():
            quit_dialog = widgetPresenter.QuestionDialog(
                '<b>' + _("The project hasn't been saved.") + '</b>',
                gtk.BUTTONS_NONE)
            quit_dialog.format_secondary_text(
                _('Do you want to save it before closing?'))
            quit_dialog.add_buttons(_('Close anyway'), gtk.RESPONSE_NO,
                                    gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                                    gtk.STOCK_SAVE_AS, gtk.RESPONSE_YES)
            response = quit_dialog.run()
            quit_dialog.destroy()
            if response == gtk.RESPONSE_YES:
                self.saveProjectAs()
                self.__main_quit()
            elif response == gtk.RESPONSE_NO:
                quit_dialog.destroy()
                self.__main_quit()
        else:
            self.__main_quit()

    def __main_quit(self):
        self.configuration_manager.configurationToXml()
        gtk.main_quit()
Пример #16
0
class Studio:
    
    EXPORT_FORMATS = ['HTML', 'ODT']
    
    def __init__(self):
        
        # i18n
        languages = []
        lc, encoding = locale.getdefaultlocale()
        if lc:
            languages = [lc]
        languages += DEFAULT_LANGUAGES
        gettext.bindtextdomain(OCRFEEDER_COMPACT_NAME, LOCALE_DIR)
        gettext.textdomain(OCRFEEDER_COMPACT_NAME)
        language = gettext.translation(OCRFEEDER_COMPACT_NAME, LOCALE_DIR,
                                       languages = languages, fallback = True)
        _ = language.gettext
        self.title = OCRFEEDER_STUDIO_NAME
        self.main_window = widgetPresenter.MainWindow()
        self.main_window.setTitle(self.title)
        cli_command_retriever = ArgsRetriever(sys.argv)
        imgs = cli_command_retriever.getParams('--images')
        self.configuration_manager = ConfigurationManager()
        self.ocr_engines_manager = OcrEnginesManager(self.configuration_manager)
        self.ocr_engines_manager.makeEnginesFromFolder(self.configuration_manager.user_engines_folder)
        self.ocr_engines = self.ocr_engines_manager.ocr_engines
        self.configuration_manager.loadConfiguration()
        self.source_images_selector = SourceImagesSelector(imgs)
        self.source_images_selector.connect('selection_changed', self.selectionChanged)
        self.source_images_icon_view = SourceImagesSelectorIconView(self.source_images_selector)
        self.source_images_icon_view.setDeleteCurrentPageFunction(self.deleteCurrentPage)
        self.source_images_icon_view.show()
        self.main_window.main_area_left.add_with_viewport(self.source_images_icon_view)
        self.images_selectable_area = {}
        self.images_dict = create_images_dict_from_liststore(self.source_images_selector.list_store)
        self.source_images_controler = ImageReviewer_Controler(self.main_window.notebook, self.images_dict, self.source_images_icon_view, self.ocr_engines, self.configuration_manager, self.main_window.tripple_statusbar)
        self.project_name = None
        
        toolbar_callback_dict = {'detection': self.source_images_controler.performBoxDetection,
                         'export_to_odt': self.exportToOdt}
        
        menubar_callback_dict = {'exit': self.quit, 'add_image': self.addImage, 'export_to_odt': self.exportToOdt, 'edit_page': self.choosePageSize,
                                 'delete_page': self.deleteCurrentPage, 'export_dialog': self.exportDialog, 'add_folder': self.addFolder, 
                                 'import_pdf': self.importPdf, 'save_project': self.saveProject, 'save_project_as': self.saveProjectAs,
                                 'open_project': self.openProject, 'append_project': self.appendProject,'clear': self.clear,
                                 'unpaper': self.unpaper, 'preferences': self.preferences, 'about': self.about,
                                 'ocr_engines': self.ocrEngines, 'zoom_in': self.zoomIn, 'zoom_out': self.zoomOut,
                                 'zoom_fit': self.zoomFit, 'reset_zoom': self.resetZoom}
        
        self.main_window.setHeader(menubar_callback_dict, toolbar_callback_dict)
        self.main_window.setDestroyEvent(self.quit)
        
        dirs = cli_command_retriever.getParams('--dir')
        if dirs:
            self.__addImagesToReviewer(lib.getImagesFromFolder(dirs[0]))
        
        self.main_window.setHasImages(not self.source_images_selector.isEmpty())
    
    def run(self):
        gtk.main()
    
    def addImage(self, widget):
        file_open_dialog = widgetPresenter.FileDialog('open', file_filters = [(_('Images'), ['image/*'], [])])
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for file_name in file_open_dialog.get_filenames():
                self.__addImagesToReviewer([file_name])
        file_open_dialog.destroy()
    
    def importPdf(self, widget):
        file_open_dialog = widgetPresenter.FileDialog('open', file_filters = [(_('PDF'), ['application/pdf'], [])])
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for file_name in file_open_dialog.get_filenames():
                folder = lib.convertPdfToImages(file_name, self.configuration_manager.getTemporaryDir())
                self.__addImagesToReviewer(lib.getImagesFromFolder(folder))
        file_open_dialog.destroy()
    
    def addFolder(self, widget):
        file_open_dialog = widgetPresenter.FileDialog('select-folder')
        response = file_open_dialog.run()
        if response == gtk.RESPONSE_OK:
            for folder in file_open_dialog.get_filenames():
                self.__addImagesToReviewer(lib.getImagesFromFolder(folder))
        file_open_dialog.destroy()
    
    def exportToHtml(self, widget = None):
        self.source_images_controler.exportPagesToHtml(self.source_images_selector.getPixbufsSorted())
    
    def exportToOdt(self, widget = None):
        self.source_images_controler.exportPagesToOdt(self.source_images_selector.getPixbufsSorted())
        
    def exportDialog(self, widget):
        export_dialog = widgetPresenter.ExportDialog(_('Export pages'), self.EXPORT_FORMATS)
        response = export_dialog.run()
        if response == gtk.RESPONSE_ACCEPT:
            format = export_dialog.getSelectedFormat().capitalize()
            export_dialog.destroy()
            exec('self.exportTo%s()' % format)
            return None
        export_dialog.destroy()
        return None
    
    def choosePageSize(self, widget):
        self.source_images_controler.choosePageSize()
    
    def deleteCurrentPage(self, widget):
        delete_dialog = widgetPresenter.QuestionDialog(_('Are you sure you want to delete the current image?'))
        response = delete_dialog.run()
        if response == gtk.RESPONSE_YES:
            self.source_images_controler.deleteCurrentPage()
            self.source_images_icon_view.deleteCurrentSelection()
        delete_dialog.destroy()
    
    def __addImagesToReviewer(self, images):
        for image in images:
            pixbuf, image, iter = self.source_images_selector.addImage(image)
            self.source_images_controler.addImage(pixbuf, image)
        tree_path = self.source_images_selector.list_store.get_path(iter)
        self.source_images_icon_view.select_path(tree_path)
    
    def setProjectName(self, project_name):
        self.project_name = project_name
        project_title = os.path.splitext(os.path.basename(self.project_name))[0]
        self.main_window.setTitle('%s - %s' % (self.title, project_title))
    
    def saveProjectAs(self, widget = None):
        file_name = self.source_images_controler.saveProjectAs()
        if file_name:
            self.setProjectName(file_name)
            self.saveProject()
    
    def saveProject(self, widget = None):
        if self.project_name:
            self.source_images_controler.saveProject(self.project_name)
        else:
            self.saveProjectAs()
    
    def appendProject(self, widget = None):
        self.__loadProject(False)
    
    def openProject(self, widget = None):
        self.__loadProject()
    
    def __loadProject(self, clear_current = True):
        project_title = self.source_images_controler.openProject(clear_current)
        if project_title:
            self.setProjectName(project_title)
        
    def clear(self, widget = None):
        self.source_images_controler.clear()
    
    def unpaper(self, widget = None):
        self.source_images_controler.unpaperTool()
    
    def preferences(self, widget = None):
        preferences_dialog = widgetPresenter.PreferencesDialog(self.configuration_manager, self.ocr_engines_manager.ocr_engines)
        if preferences_dialog.run() == gtk.RESPONSE_ACCEPT:
            preferences_dialog.saveToManager()
            self.source_images_controler.updateFromConfiguration()
        preferences_dialog.destroy()
    
    def ocrEngines(self, widget = None):
        ocr_dialog = widgetPresenter.OcrManagerDialog(self.ocr_engines_manager)
        ocr_dialog.run()
        ocr_dialog.destroy()
    
    def enginesTool(self, widget = None):
        pass
    
    def selectionChanged(self, selector, is_empty):
        self.main_window.setHasImages(not is_empty)
    
    def about(self, widget = None):
        from gnome import url_show
        gtk.about_dialog_set_url_hook(lambda x,y,z: url_show(y), "")
        about_dialog = widgetPresenter.CustomAboutDialog()
        if about_dialog.run():
            about_dialog.destroy()
    
    def zoomIn(self, widget = None):
        self.source_images_controler.zoomIn()
    
    def zoomOut(self, widget = None):
        self.source_images_controler.zoomOut()
    
    def resetZoom(self, widget = None):
        self.source_images_controler.resetZoom()

    def zoomFit(self, widget = None):
        self.source_images_controler.zoomFit()
    
    def quit(self, widget = None, data = None):
        if not self.project_name and not self.source_images_selector.isEmpty():
            quit_dialog = widgetPresenter.QuestionDialog('<b>' + _("The project hasn't been saved.") + '</b>', gtk.BUTTONS_NONE)
            quit_dialog.format_secondary_text(_('Do you want to save it before closing?'))
            quit_dialog.add_buttons(_('Close anyway'), gtk.RESPONSE_NO, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_SAVE_AS, gtk.RESPONSE_YES)
            response = quit_dialog.run()
            quit_dialog.destroy()
            if response == gtk.RESPONSE_YES:
                self.saveProjectAs()
                self.__main_quit()
            elif response == gtk.RESPONSE_NO:
                quit_dialog.destroy()
                self.__main_quit()
        else:
            self.__main_quit()
    
    def __main_quit(self):
        self.configuration_manager.configurationToXml()
        gtk.main_quit()
Пример #17
0
    Receives Configuration File. Propagates to Agent, Memory, Optimizer, Function_Approximator, Environment.

'''

if len(sys.argv) < 2:
    raise Exception("Configuration File Required.")

# --- Get Config. File Loc. --- #
from pathlib import Path
parent_dir = Path(__file__).resolve().parent.parent
config_file_loc = parent_dir / "configuration" / sys.argv[1]
# ----------------------------- #

# --- Load Configuration --- #
from configuration import ConfigurationManager
cfg_manager = ConfigurationManager(config_file_loc)
print("Loaded Configuration!")
# -------------------------- #

# --- Create Root Folder --- #
import time
start_time = time.time()
os.makedirs(str(parent_dir / str(start_time)))
cfg_manager["TRAIN_FOLDER"] = str(parent_dir / str(start_time))
print("Created Root Folder: ", str(start_time))
# -------------------------- #

# --- Copy Config. Loc into Root --- #
from shutil import copyfile
copyfile(str(config_file_loc),
         str(parent_dir / str(start_time) / "config.json"))
Пример #18
0
    def __init__(self, config_parser: ConfigurationManager,
                 net: network.GeneralNetwork):
        super().__init__(config_parser)

        self.cfg = config_parser.parse_and_return_dictionary(
            "HEAD", IQNHead.required_params)

        self.psi = net.last_op

        self.num_samples = tf.placeholder(dtype=tf.int32,
                                          shape=[],
                                          name="num_samples")

        # Preprocessed tau (choose number of samples and pass through beta as necessary)
        from action_policy.distorted_expectation import distorted_expectation, get_uniform_dist
        self.uniform_tau = get_uniform_dist(psi=self.psi,
                                            N_placeholder=self.num_samples)

        self.distorted_tau = distorted_expectation(
            config_parser, psi=self.psi, N_placeholder=self.num_samples)
        import math as m
        pi = tf.constant(m.pi)

        cos_embed = tf.layers.Dense(units=self.cfg["EMBEDDING_SIZE"],
                                    activation=tf.nn.relu,
                                    name="cosine_embedding")

        self.distorted_tau_phi = cos_embed(
            tf.cos(
                tf.einsum(
                    'bn,j->bnj', self.distorted_tau,
                    tf.range(self.cfg["EMBEDDING_SIZE"], dtype=tf.float32)) *
                pi))

        mul_distorted = tf.einsum('bnj,bj->bnj', self.distorted_tau_phi,
                                  self.psi)

        ###

        self.uniform_tau_phi = cos_embed(
            tf.cos(
                tf.einsum(
                    'bn,j->bnj', self.uniform_tau,
                    tf.range(self.cfg["EMBEDDING_SIZE"], dtype=tf.float32)) *
                pi))

        mul_uniform = tf.einsum('bnj,bj->bnj', self.uniform_tau_phi, self.psi)

        ###

        q_dist_layer = tf.layers.Dense(units=self.num_actions,
                                       activation=None,
                                       name="q_dist")

        self.q_dist = tf.transpose(q_dist_layer(mul_uniform), perm=[0, 2, 1])

        self.q_undistorted = tf.reduce_mean(self.q_dist, axis=-1)

        self.q_dist_distorted = tf.transpose(q_dist_layer(mul_distorted),
                                             perm=[0, 2, 1])

        self.q = tf.reduce_mean(self.q_dist_distorted, axis=-1)

        self.greedy_action = tf.cast(tf.squeeze(tf.argmax(self.q, axis=-1)),
                                     dtype=tf.int32)
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base

from configuration import ConfigurationManager, ConfigProp
from .mongodb import MongoManager
from .postgres import PostgresManager

db_engine = create_engine(ConfigurationManager.get_config_value(ConfigProp.db_postgres_name()))
Base = declarative_base()
Пример #20
0
 def __init__(self, config_file=None):
     self._config_manager = ConfigurationManager(config_file)
Пример #21
0
    def __init__(self, config_parser: ConfigurationManager):
        self.cfg = config_parser.parse_and_return_dictionary(
            "EXPERIENCE_REPLAY", ExperienceReplay.required_params)

        self.memory = deque(maxlen=self.cfg["EXPERIENCE_REPLAY_SIZE"])
Пример #22
0
    def __init__(self):

        # i18n
        languages = []
        lc, encoding = locale.getdefaultlocale()
        if lc:
            languages = [lc]
        languages += DEFAULT_LANGUAGES
        gettext.bindtextdomain(OCRFEEDER_COMPACT_NAME, LOCALE_DIR)
        gettext.textdomain(OCRFEEDER_COMPACT_NAME)
        language = gettext.translation(OCRFEEDER_COMPACT_NAME,
                                       LOCALE_DIR,
                                       languages=languages,
                                       fallback=True)
        _ = language.gettext
        self.title = OCRFEEDER_STUDIO_NAME
        self.main_window = widgetPresenter.MainWindow()
        self.main_window.setTitle(self.title)
        cli_command_retriever = ArgsRetriever(sys.argv)
        imgs = cli_command_retriever.getParams('--images')
        self.configuration_manager = ConfigurationManager()
        self.ocr_engines_manager = OcrEnginesManager(
            self.configuration_manager)
        self.ocr_engines_manager.makeEnginesFromFolder(
            self.configuration_manager.user_engines_folder)
        self.ocr_engines = self.ocr_engines_manager.ocr_engines
        self.configuration_manager.loadConfiguration()
        self.source_images_selector = SourceImagesSelector(imgs)
        self.source_images_selector.connect('selection_changed',
                                            self.selectionChanged)
        self.source_images_icon_view = SourceImagesSelectorIconView(
            self.source_images_selector)
        self.source_images_icon_view.setDeleteCurrentPageFunction(
            self.deleteCurrentPage)
        self.source_images_icon_view.show()
        self.main_window.main_area_left.add_with_viewport(
            self.source_images_icon_view)
        self.images_selectable_area = {}
        self.images_dict = create_images_dict_from_liststore(
            self.source_images_selector.list_store)
        self.source_images_controler = ImageReviewer_Controler(
            self.main_window.notebook, self.images_dict,
            self.source_images_icon_view, self.ocr_engines,
            self.configuration_manager, self.main_window.tripple_statusbar)
        self.project_name = None

        toolbar_callback_dict = {
            'detection': self.source_images_controler.performBoxDetection,
            'export_to_odt': self.exportToOdt
        }

        menubar_callback_dict = {
            'exit': self.quit,
            'add_image': self.addImage,
            'export_to_odt': self.exportToOdt,
            'edit_page': self.choosePageSize,
            'delete_page': self.deleteCurrentPage,
            'export_dialog': self.exportDialog,
            'add_folder': self.addFolder,
            'import_pdf': self.importPdf,
            'save_project': self.saveProject,
            'save_project_as': self.saveProjectAs,
            'open_project': self.openProject,
            'append_project': self.appendProject,
            'clear': self.clear,
            'unpaper': self.unpaper,
            'preferences': self.preferences,
            'about': self.about,
            'ocr_engines': self.ocrEngines,
            'zoom_in': self.zoomIn,
            'zoom_out': self.zoomOut,
            'zoom_fit': self.zoomFit,
            'reset_zoom': self.resetZoom
        }

        self.main_window.setHeader(menubar_callback_dict,
                                   toolbar_callback_dict)
        self.main_window.setDestroyEvent(self.quit)

        dirs = cli_command_retriever.getParams('--dir')
        if dirs:
            self.__addImagesToReviewer(lib.getImagesFromFolder(dirs[0]))

        self.main_window.setHasImages(
            not self.source_images_selector.isEmpty())
Пример #23
0
import twitter
from configuration import ConfigurationManager
from spotify import SpotifyClient
from messenger import Messenger

configurationManager = ConfigurationManager()
messenger = Messenger()
spotifyClient = SpotifyClient(**configurationManager.getSpotifyConfiguration())
twitterClient = twitter.Api(**configurationManager.getTwitterConfiguration())

print('[Spotify] - Login')
spotifyClient.login()
print('[Spotify] - Login SUCCESS')

print('[Spotify] - Get Currently Playing')
currently_playing_track = spotifyClient.get_currently_playing()
print('[Spotify] - Get Currently Playing SUCCESS')

if currently_playing_track and currently_playing_track['is_playing']:
    album = currently_playing_track['item']['album']
    artists = currently_playing_track['item']['artists']

    message = messenger.create_message(album, artists)

    print('[Twitter] - Post message')
    twitterClient.PostUpdate(message)
    print('[Twitter] - Post message SUCCESS')