Exemplo n.º 1
0
    def test_check_recognize_tracker_not_mergeable_new_face(self, mock_save):
        def fake_img_save(arg1, arg2):
            return True

        mock_save.side_effect = fake_img_save
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 6)
            trackers[i] = tracker

        vec = np.zeros(12)
        vec[1] = 1
        vec[2] = 1
        vec[3] = 2
        vec[4] = 3
        new_tracker = create_tracker([vec] * 6)

        tracker_list = TrackersList()
        tracker_list.trackers = {1: new_tracker}
        tracker_list.current_trackers_history.trackers = trackers
        tracker_list.current_trackers_history.history_matcher = matcher
        tracker_list.current_trackers_history.labels = labels
        tracker_list.check_recognize_tracker(matcher, Mock(), 1)
Exemplo n.º 2
0
    def test_delete_tracker_history_True(self, mock_dir):
        mock_dir.side_effect = fake_os('123')
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 6)
            tracker.area = "0"
            trackers[i] = tracker

        vec = np.zeros(12)
        vec[1] = 1
        vec[2] = 1
        vec[3] = 2
        vec[4] = 3
        new_tracker = create_tracker([vec] * 6)
        new_tracker.area = '0'
        tracker_list = TrackersList()
        tracker_list.trackers = {1: new_tracker}
        tracker_list.check_delete_trackers(matcher, Mock(), history_mode=True)
Exemplo n.º 3
0
    def test_check_recognize_tracker_detecting_name(self):
        '''
        What?

        input:
        matcher
        track_id
        rabbit_mq
        :return:
        '''
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 40)
            tracker.name = 'NOT_DETECTING'
            trackers[i] = tracker
        tracker_list = TrackersList()
        tracker_list.trackers = trackers
        result = tracker_list.check_recognize_tracker(Mock(), Mock(), 0)
        self.assertEqual(-1, result)
Exemplo n.º 4
0
    def test_check_recognize_tracker_mergeable(self, mock_save):
        def fake_img_save(arg1, arg2):
            return True

        mock_save.side_effect = fake_img_save
        matcher = HistoryMatcher()
        # embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 30)
            tracker.name = 'TCH-VVT-' + str(i)
            trackers['TCH-VVT-' + str(i)] = tracker

        matcher.from_trackers_rebuild_matcher(trackers)

        vec = np.zeros(12)
        vec[1] = 1
        new_tracker = create_tracker([vec] * 30)

        tracker_list = TrackersList()
        tracker_list.trackers = {1: new_tracker}
        tracker_list.current_trackers_history.trackers = trackers
        tracker_list.current_trackers_history.history_matcher = matcher
        tracker_list.current_trackers_history.labels = labels
        result = tracker_list.check_recognize_tracker(matcher, Mock(), 1)
        self.assertTrue(result)
        self.assertEqual('TCH-VVT-1', tracker_list.trackers[1].name)
Exemplo n.º 5
0
    def test_match_face_dlib_but_not_overlap(self, retrack, mock_overlap):
        mock_overlap.return_value = 1.0
        retrack.return_value = 1.0, 1
        tracker_list = TrackersList()
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1

            tracker = create_tracker([vec] * 40)
            trackers[i] = tracker

        tracker_list.trackers = trackers

        frame = np.zeros((512, 512, 3), np.uint8)
        cv2.rectangle(frame, (0, 0), (20, 20), (0, 255, 0), 3)
        tracker_list.matching_face_with_trackers(frame, 0, [0, 0, 20, 20],
                                                 Mock(), 1)
        new_frame = np.zeros((512, 512, 3), np.uint8)
        cv2.rectangle(new_frame, (5, 5), (25, 25), (0, 255, 0), 3)
        tracker_list.matching_face_with_trackers(new_frame, 0, [5, 5, 25, 25],
                                                 embs[0, :], 1)
Exemplo n.º 6
0
    def test_update_trackers_list(self):
        tracker_list = TrackersList()
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1

            tracker = create_tracker([vec] * 40)
            trackers[i] = tracker
        tracker_list.trackers = trackers
        current = tracker_list.current_track_id
        tracker_list.update_trackers_list(14, 0, [0, 0, 0, 0], 'image', Mock(),
                                          0, 0, 1, 0, [0, 0, 0, 0], matcher,
                                          Mock())
        self.assertEqual(current + 1, tracker_list.current_track_id)

        tracker_list.update_trackers_list(1, 0, [0, 0, 0, 0], 'image', Mock(),
                                          0, 0, 1, 0, [0, 0, 0, 0], matcher,
                                          Mock())
Exemplo n.º 7
0
 def test_check_recognize_tracker_detecting_name_less_element(self):
     matcher = FakeMatcher()
     embs = np.eye(12)
     labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
     matcher.build(embs, labels)
     # total 12 tracker
     zero = np.zeros(12)
     trackers = {}
     for i in range(12):
         vec = zero.copy()
         vec[i] = 1
         tracker = create_tracker([vec] * 2)
         trackers[i] = tracker
     tracker_list = TrackersList()
     tracker_list.trackers = trackers
     result = tracker_list.check_recognize_tracker(matcher, Mock(), 1)
     self.assertTrue(result)
Exemplo n.º 8
0
 def test_check_recognize_tracker_detecting_name_bad_track(self):
     matcher = FakeMatcher()
     embs = np.eye(12)
     labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
     matcher.build(embs, labels)
     # total 12 tracker
     zero = np.zeros(12)
     trackers = {}
     for i in range(12):
         vec = zero.copy()
         vec[i] = 1
         tracker = create_tracker([vec] * 40)
         trackers[i] = tracker
     tracker_list = TrackersList()
     tracker_list.trackers = trackers
     result = tracker_list.check_recognize_tracker(Mock(), Mock(), 1)
     self.assertEqual(-1, result)
     self.assertEqual('BAD-TRACK', tracker_list.trackers[1].name)
Exemplo n.º 9
0
    def test_retrack_tracker_cannot_retrack(self):
        tracker_list = TrackersList()
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1

            tracker = create_tracker([vec] * 40)
            trackers[i] = tracker
        tracker_list.trackers = trackers
        result = tracker_list.get_retrack_tracker(Mock(), 0)
        self.assertEqual((-1, -1), result)
Exemplo n.º 10
0
    def test_check_recognize_tracker_not_mergeable_old_face(self, mock_save):
        def fake_img_save(arg1, arg2):
            return True

        mock_save.side_effect = fake_img_save
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 30)
            tracker.name = 'TCH-VVT-' + str(i)
            trackers[i] = tracker

        vec = np.zeros(12)
        vec[1] = 1
        vec[2] = 1
        vec[3] = 2
        vec[4] = 3
        new_tracker = create_tracker([vec] * 30)

        history_matcher = HistoryMatcher()
        history_matcher.from_trackers_rebuild_matcher(trackers)

        tracker_list = TrackersList()
        tracker_list.trackers = {1: new_tracker}
        tracker_list.current_trackers_history.trackers = trackers
        tracker_list.current_trackers_history.history_matcher = history_matcher
        tracker_list.current_trackers_history.labels = labels
        recognizer_matcher = FakeMatcher()
        recog_embs = np.vstack((vec for _ in range(12)))
        recognizer_matcher.build(recog_embs, ['13'] * 12)
        tracker_list.check_recognize_tracker(recognizer_matcher, Mock(), 1)
Exemplo n.º 11
0
    def test_delete_tracker_history_false(self):
        matcher = FakeMatcher()
        embs = np.eye(12)
        labels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
        matcher.build(embs, labels)
        # total 12 tracker
        zero = np.zeros(12)
        trackers = {}
        for i in range(12):
            vec = zero.copy()
            vec[i] = 1
            tracker = create_tracker([vec] * 6)
            trackers[i] = tracker

        vec = np.zeros(12)
        vec[1] = 1
        vec[2] = 1
        vec[3] = 2
        vec[4] = 3
        new_tracker = create_tracker([vec] * 6)
        tracker_list = TrackersList()
        tracker_list.trackers = {1: new_tracker}
        tracker_list.check_delete_trackers(matcher, Mock(), history_mode=False)