Example #1
0
import os
import object_detection

path = "D:\_test\control_set_01_02_positive"

number_of_images = 0
detected = 0

with open("test_res_pos.txt", "w") as f:
    for file in os.listdir(path):
        number_of_images += 1
        if "люди" in object_detection.get_keywords(os.path.join(path, file)):
            detected += 1
        print("{0} % detected ({1} from {2})".format(
            int(detected / number_of_images * 1000) / 10, detected,
            number_of_images))
        f.write("{0}\t{1}\t{2}\n".format(
            int(detected / number_of_images * 1000) / 10, detected,
            number_of_images))
Example #2
0
    def analyze(self, _=None):
        # Recreate frame with results to clean up previous data
        self.frame_results.destroy()
        self.frame_results = ttk.Frame(master=self.frame_main, padding=5)
        self.frame_results.grid(row=1, column=0)
        # Dictionary to combine results of all analysis types together
        self.results = {}

        self.ch_btn_addr_values = {}
        self.ch_btn_kw_values = {}

        photo = self.photo_for_analysis[self.current_photo_ix]

        if self.ch_btn_geo_an_value.get() == "True":
            msg = self.show_msg(get_name("msg_run_geo_an"))
            # Get results of geo-analysis
            self.results.update(geo_tags.get_geo_tags_in_iptc_format(photo))

            msg.destroy()

            # Display header for address info only if we have found address (have got non-empty result)
            if self.results:
                self.ch_btn_address_info_value = StringVar()
                self.ch_btn_address_info_value.set(1)
                self.ch_btn_address_info = ttk.Checkbutton(master=self.frame_results,
                                                           text=get_name("address_info"),
                                                           variable=self.ch_btn_address_info_value,
                                                           command=self.ch_btn_address_handler)
                self.ch_btn_address_info.pack(fill=X, anchor=W)
                self.frame_address_info = ttk.Frame(master=self.frame_results, padding=(7, 0))
                self.frame_address_info.pack(fill=X)

                self.ch_btn_addr = []
                for name in sorted(self.results):
                    # Skip keywords here, they will be displayed later
                    if name == "keywords":
                        continue
                    self.ch_btn_addr_values[name] = StringVar()
                    self.ch_btn_addr_values[name].set(1)
                    self.ch_btn_addr.append(ttk.Checkbutton(master=self.frame_address_info,
                                                            text=self.results[name],
                                                            variable=self.ch_btn_addr_values[name]))

                    self.ch_btn_addr[-1].grid(row=len(self.ch_btn_addr) - 1, column=0, sticky=W)

        if self.ch_btn_obj_detect_an_value.get() == "True":
            msg = self.show_msg(get_name("msg_run_obj_detect_an"))

            # Get results of object detection
            if "keywords" in self.results:
                self.results["keywords"].extend(object_detection.get_keywords(photo))
            else:
                self.results["keywords"] = object_detection.get_keywords(photo)

            msg.destroy()

        if self.ch_btn_project_an_value.get() == "True" and self.project_keywords is not None:
            if "keywords" in self.results:
                self.results["keywords"].extend(self.project_keywords)
            else:
                self.results["keywords"] = self.project_keywords

        # If we have key "keywords" and keywords list is not empty
        if "keywords" in self.results and self.results["keywords"]:
            self.results["keywords"] = list(set(self.results["keywords"]))
            self.ch_btn_keywords_value = StringVar()
            self.ch_btn_keywords_value.set(1)
            self.ch_btn_keywords = ttk.Checkbutton(master=self.frame_results,
                                                   text=get_name("keywords"),
                                                   variable=self.ch_btn_keywords_value,
                                                   command=self.ch_btn_keywords_handler)
            self.ch_btn_keywords.pack(fill=X, anchor=W)
            self.frame_keywords = ttk.Frame(master=self.frame_results, padding=(7, 0))
            self.frame_keywords.pack(fill=X)

            self.ch_btn_kw = []

            for kw in self.results["keywords"]:
                self.ch_btn_kw_values[kw] = StringVar()
                self.ch_btn_kw_values[kw].set(1)
                self.ch_btn_kw.append(ttk.Checkbutton(master=self.frame_keywords,
                                                      text=kw,
                                                      variable=self.ch_btn_kw_values[kw]))

                self.ch_btn_kw[-1].grid(row=len(self.ch_btn_kw) - 1, column=0, sticky=W)
    def analyze(self, _=None):
        # Recreate frame with results to clean up previous data
        self.frame_results.destroy()
        self.frame_results = ttk.Frame(master=self.frame_main, padding=5)
        self.frame_results.grid(row=1, column=0)
        # Dictionary to combine results of all analysis types together
        self.results = {}

        self.ch_btn_addr_values = {}
        self.ch_btn_kw_values = {}

        photo = self.photo_for_analysis[self.current_photo_ix]

        if self.ch_btn_geo_an_value.get() == "True":
            msg = self.show_msg(get_name("msg_run_geo_an"))
            # Get results of geo-analysis
            self.results.update(geo_tags.get_geo_tags_in_iptc_format(photo))

            msg.destroy()

            # Display header for address info only if we have found address (have got non-empty result)
            if self.results:
                self.ch_btn_address_info_value = StringVar()
                self.ch_btn_address_info_value.set(1)
                self.ch_btn_address_info = ttk.Checkbutton(master=self.frame_results,
                                                           text=get_name("address_info"),
                                                           variable=self.ch_btn_address_info_value,
                                                           command=self.ch_btn_address_handler)
                self.ch_btn_address_info.pack(fill=X, anchor=W)
                self.frame_address_info = ttk.Frame(master=self.frame_results, padding=(7, 0))
                self.frame_address_info.pack(fill=X)

                self.ch_btn_addr = []
                for name in sorted(self.results):
                    # Skip keywords here, they will be displayed later
                    if name == "keywords":
                        continue
                    self.ch_btn_addr_values[name] = StringVar()
                    self.ch_btn_addr_values[name].set(1)
                    self.ch_btn_addr.append(ttk.Checkbutton(master=self.frame_address_info,
                                                            text=self.results[name],
                                                            variable=self.ch_btn_addr_values[name]))

                    self.ch_btn_addr[-1].grid(row=len(self.ch_btn_addr) - 1, column=0, sticky=W)

        if self.ch_btn_obj_detect_an_value.get() == "True":
            msg = self.show_msg(get_name("msg_run_obj_detect_an"))

            # Get results of object detection
            if "keywords" in self.results:
                self.results["keywords"].extend(object_detection.get_keywords(photo))
            else:
                self.results["keywords"] = object_detection.get_keywords(photo)

            msg.destroy()

        if self.ch_btn_project_an_value.get() == "True" and self.project_keywords is not None:
            if "keywords" in self.results:
                self.results["keywords"].extend(self.project_keywords)
            else:
                self.results["keywords"] = self.project_keywords

        # If we have key "keywords" and keywords list is not empty
        if "keywords" in self.results and self.results["keywords"]:
            self.results["keywords"] = list(set(self.results["keywords"]))
            self.ch_btn_keywords_value = StringVar()
            self.ch_btn_keywords_value.set(1)
            self.ch_btn_keywords = ttk.Checkbutton(master=self.frame_results,
                                                   text=get_name("keywords"),
                                                   variable=self.ch_btn_keywords_value,
                                                   command=self.ch_btn_keywords_handler)
            self.ch_btn_keywords.pack(fill=X, anchor=W)
            self.frame_keywords = ttk.Frame(master=self.frame_results, padding=(7, 0))
            self.frame_keywords.pack(fill=X)

            self.ch_btn_kw = []

            for kw in self.results["keywords"]:
                self.ch_btn_kw_values[kw] = StringVar()
                self.ch_btn_kw_values[kw].set(1)
                self.ch_btn_kw.append(ttk.Checkbutton(master=self.frame_keywords,
                                                      text=kw,
                                                      variable=self.ch_btn_kw_values[kw]))

                self.ch_btn_kw[-1].grid(row=len(self.ch_btn_kw) - 1, column=0, sticky=W)
import os
import object_detection

path = "D:\_test\control_set_01_02_positive"

number_of_images = 0
detected = 0

with open("test_res_pos.txt", "w") as f:
    for file in os.listdir(path):
        number_of_images += 1
        if "люди" in object_detection.get_keywords(os.path.join(path, file)):
            detected += 1
        print("{0} % detected ({1} from {2})".format(int(detected/number_of_images*1000)/10, detected, number_of_images))
        f.write("{0}\t{1}\t{2}\n".format(int(detected/number_of_images*1000)/10, detected, number_of_images))