Exemple #1
0
    def create_new_project(self, event):
        """
        Finally create the new project
        """
        if self.sel_config.IsShown():
            self.cfg = self.sel_config.GetPath()
            if self.cfg == "":
                wx.MessageBox(
                    'Please choose the config.yaml file to load the project',
                    'Error', wx.OK | wx.ICON_ERROR)
                self.loaded = False
            else:
                wx.MessageBox('Project Loaded!', 'Info',
                              wx.OK | wx.ICON_INFORMATION)
                self.loaded = True
                self.edit_config_file.Enable(True)
        else:
            self.task = self.proj_name_txt_box.GetValue()
            self.scorer = self.exp_txt_box.GetValue()
            if self.task and self.scorer and len(self.filelist):
                self.cfg = deeplabcut.create_new_project(
                    self.task, self.scorer, self.filelist, self.dir,
                    self.copy_choice.IsChecked())
            else:
                wx.MessageBox(
                    'Some of the entries are missing.\n\nMake sure that the task and experimenter name are specified and videos are selected!',
                    'Error', wx.OK | wx.ICON_ERROR)
                self.cfg = False
                self.loaded = False
            if self.cfg:
                wx.MessageBox('New Project Created', 'Info',
                              wx.OK | wx.ICON_INFORMATION)
                self.loaded = True
                self.edit_config_file.Enable(True)

        # Remove the pages in case the user goes back to the create new project and creates/load a new project
        if self.parent.GetPageCount() > 3:
            for i in range(2, self.parent.GetPageCount()):
                self.parent.RemovePage(2)
                self.parent.Layout()

        # Add all the other pages
        if self.loaded:
            self.edit_config_file.Enable(True)
            if self.parent.GetPageCount() < 3:
                page3 = Extract_frames(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page3, "Extract frames")
                page4 = Label_frames(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page4, "Label frames")
                page5 = Create_training_dataset(self.parent, self.gui_size,
                                                self.cfg)
                self.parent.AddPage(page5, "Create training dataset")
                page6 = Train_network(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page6, "Train network")
                page7 = Evaluate_network(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page7, "Evaluate network")
                page8 = Analyze_videos(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page8, "Analyze videos")
                page11 = Create_Labeled_Videos(self.parent, self.gui_size,
                                               self.cfg)
                self.parent.AddPage(page11, "Create Videos")
                page9 = Extract_outlier_frames(self.parent, self.gui_size,
                                               self.cfg)
                self.parent.AddPage(page9, "Extract outlier frames")
                page10 = Refine_labels(self.parent, self.gui_size, self.cfg,
                                       page5)
                self.parent.AddPage(page10, "Refine labels")
                self.edit_config_file.Enable(True)
    def create_new_project(self, event):
        """
        Finally create the new project
        """
        if self.sel_config.IsShown():
            self.cfg = self.sel_config.GetPath()
            if self.cfg == "":
                wx.MessageBox(
                    "Please choose the config.yaml file to load the project",
                    "Error",
                    wx.OK | wx.ICON_ERROR,
                )
                self.loaded = False
            else:
                wx.MessageBox("Project Loaded!", "Info",
                              wx.OK | wx.ICON_INFORMATION)
                self.loaded = True
                self.sel_vids_new.Enable(True)
                self.addvid.Enable(True)
                self.edit_config_file.Enable(True)
        else:
            self.task = self.proj_name_txt_box.GetValue()
            self.scorer = self.exp_txt_box.GetValue()

            if self.task != "" and self.scorer != "" and self.filelist != []:
                self.cfg = deeplabcut.create_new_project(
                    self.task,
                    self.scorer,
                    self.filelist,
                    self.dir,
                    copy_videos=self.copy,
                    multianimal=self.multi_choice.IsChecked(),
                )
            else:
                wx.MessageBox(
                    "Some of the enteries are missing.\n\nMake sure that the task and experimenter name are specified and videos are selected!",
                    "Error",
                    wx.OK | wx.ICON_ERROR,
                )
                self.cfg = False
            if self.cfg:
                wx.MessageBox("New Project Created", "Info",
                              wx.OK | wx.ICON_INFORMATION)
                self.loaded = True
                self.edit_config_file.Enable(True)

        # Remove the pages in case the user goes back to the create new project and creates/load a new project
        if self.parent.GetPageCount() > 3:
            for i in range(2, self.parent.GetPageCount()):
                self.parent.RemovePage(2)
                self.parent.Layout()

        # Add all the other pages
        if self.loaded:
            self.edit_config_file.Enable(True)
            cfg = auxiliaryfunctions.read_config(self.cfg)
            if self.parent.GetPageCount() < 3:
                page3 = Extract_frames(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page3, "Extract frames")

                page4 = Label_frames(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page4, "Label frames")

                page5 = Create_training_dataset(self.parent, self.gui_size,
                                                self.cfg)
                self.parent.AddPage(page5, "Create training dataset")

                page6 = Train_network(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page6, "Train network")

                page7 = Evaluate_network(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page7, "Evaluate network")

                page12 = Video_Editing(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page12, "Video editor")

                page8 = Analyze_videos(self.parent, self.gui_size, self.cfg)
                self.parent.AddPage(page8, "Analyze videos")

                if cfg.get("multianimalproject", False):
                    page = Refine_tracklets(self.parent, self.gui_size,
                                            self.cfg)
                    self.parent.AddPage(page, "Refine tracklets")
                page11 = Create_Labeled_Videos(self.parent, self.gui_size,
                                               self.cfg)
                self.parent.AddPage(page11, "Create videos")
                page9 = Extract_outlier_frames(self.parent, self.gui_size,
                                               self.cfg)
                self.parent.AddPage(page9, "Extract outlier frames")
                page10 = Refine_labels(self.parent, self.gui_size, self.cfg,
                                       page5)
                self.parent.AddPage(page10, "Refine labels")
                self.edit_config_file.Enable(True)