pyppbox 3.6b1__tar.gz → 3.6b2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyppbox-3.6b1/pyppbox.egg-info → pyppbox-3.6b2}/PKG-INFO +1 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/RELEASENOTES.md +18 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/__init__.py +1 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/detectors/yolocls/__init__.py +10 -10
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/detectors/yoloult/__init__.py +6 -6
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/facenet/__init__.py +1 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/torchreid/__init__.py +1 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/__init__.py +1 -1
- {pyppbox-3.6b1/pyppbox/standalone → pyppbox-3.6b2/pyppbox/ppb}/__init__.py +24 -24
- {pyppbox-3.6b1/pyppbox/standalone → pyppbox-3.6b2/pyppbox/ppb}/mt.py +7 -7
- pyppbox-3.6b2/pyppbox/standalone/__init__.py +37 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/gttools.py +2 -2
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/visualizetools.py +3 -3
- {pyppbox-3.6b1 → pyppbox-3.6b2/pyppbox.egg-info}/PKG-INFO +1 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox.egg-info/SOURCES.txt +2 -1
- {pyppbox-3.6b1 → pyppbox-3.6b2}/GETSTARTED.md +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/LICENSE +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/MANIFEST.in +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/README.md +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/cfg/cfg.zip +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/cfg/detectors.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/cfg/main.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/cfg/reiders.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/cfg/trackers.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/configtools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/myconfig.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/strings/strings.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/strings/strings.zip +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/config/unifiedstrings.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/data/datasets/.gitignore +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/data/logs/.gitignore +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/data/modules/.gitignore +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/data/res/.gitignore +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/data/res/idmap.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/assets/TReID.png +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/assets/icon.ico +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/assets/settings.ico +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/guidemo.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/guihub.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/guitools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/tmp/input.tmp +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/tmp/ui.tmp +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_centroid.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_deepsort.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_facenet.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_gt.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_launcher.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_sort.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_torchreid.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_yolocls.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/gui/ui_yoloult.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/detectors/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/facenet/origin/align_dataset_mtcnn.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/facenet/origin/detect_face.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/facenet/origin/facenet.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/torchreid/model_dict.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/torchreid/model_dict.yaml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/torchreid/utils.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/centroid/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/detection.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/detection_yolo.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/generate_detections.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/iou_matching.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/kalman_filter.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/linear_assignment.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/nn_matching.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/preprocessing.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/track.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/tracker.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/voc_classes.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/sort/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/sort/origin/sort.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/__init__.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/commontools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/evatools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/logtools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/mot2pyppbox.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/persontools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/utils/restools.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox.egg-info/dependency_links.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox.egg-info/requires.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox.egg-info/top_level.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/pyproject.toml +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/requirements/README.md +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/requirements/requirements.txt +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/requirements/test_gpu.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/setup.cfg +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/setup.py +0 -0
- {pyppbox-3.6b1 → pyppbox-3.6b2}/setup_extra.yaml +0 -0
|
@@ -1,8 +1,25 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## **pyppbox V4 - Even Smaller**
|
|
4
|
+
|
|
5
|
+
* `pyppbox` v4.0b1 (COMING SOON 🚀)
|
|
6
|
+
|
|
7
|
+
- `pyppbox` will leverage [`vsensebox`](https://github.com/rathaumons/vsensebox) for detection and tracking
|
|
8
|
+
- `pyppbox.utils.persontools` will change to adapt [`vsensebox`](https://github.com/rathaumons/vsensebox)
|
|
9
|
+
- `pyppbox.ppb` will replace `pyppbox.standalone`
|
|
10
|
+
- All configuration files will also change
|
|
11
|
+
- More changes will be added here! Stay tuned!
|
|
12
|
+
|
|
3
13
|
## **pyppbox V3 - Make Simpler and Faster**
|
|
4
14
|
|
|
5
|
-
* `pyppbox` [v3.
|
|
15
|
+
* `pyppbox` [v3.6b2](https://github.com/rathaumons/pyppbox/tree/v3.6b2)
|
|
16
|
+
|
|
17
|
+
- Add a warning for the changes in the coming major version 4
|
|
18
|
+
- Update documentations
|
|
19
|
+
- **Known issue/limitation**:
|
|
20
|
+
- You tell me :)
|
|
21
|
+
|
|
22
|
+
* `pyppbox` [v3.6b1](https://github.com/rathaumons/pyppbox/tree/v3.6b1)
|
|
6
23
|
|
|
7
24
|
- Replace `pyunpack` & `patool` with `shutil`
|
|
8
25
|
- Improve Example 9 - example_09_eva_offline.py
|
|
@@ -47,7 +47,7 @@ from pyppbox.gui.guitools import (
|
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
|
|
50
|
-
__version__ = '3.
|
|
50
|
+
__version__ = '3.6b2'
|
|
51
51
|
__author__ = 'Ratha SIV'
|
|
52
52
|
__description__ = 'Toolbox for people detecting, tracking, and re-identifying.'
|
|
53
53
|
__homepage__ = 'https://rathaumons.github.io/pyppbox'
|
|
@@ -56,25 +56,25 @@ class MyYOLOCLS(object):
|
|
|
56
56
|
self.model = cv2.dnn_DetectionModel(net)
|
|
57
57
|
self.model.setInputParams(size=cfg.model_resolution, scale=1/255.0)
|
|
58
58
|
|
|
59
|
-
def detect(self, img, visual=True, class_filter=0, min_width_filter=35):
|
|
59
|
+
def detect(self, img, visual=True, class_filter=[0], min_width_filter=35):
|
|
60
60
|
"""Detect general object with object's class filter :obj:`class_filter` in a
|
|
61
|
-
given
|
|
61
|
+
given :obj:`Mat` like image.
|
|
62
62
|
|
|
63
63
|
Parameters
|
|
64
64
|
----------
|
|
65
65
|
img : Mat
|
|
66
|
-
A
|
|
66
|
+
A :obj:`Mat` like image.
|
|
67
67
|
visual : bool, default=True
|
|
68
68
|
An indication of whether to visualize the detected objects.
|
|
69
|
-
class_filter : int, defualt=0
|
|
70
|
-
Object's class filter, 0
|
|
69
|
+
class_filter : list[int, ...], defualt=0
|
|
70
|
+
Object's class filter, [0] = Person only.
|
|
71
71
|
min_width_filter : int, default=35
|
|
72
72
|
Mininum width filter of a detected object.
|
|
73
73
|
|
|
74
74
|
Returns
|
|
75
75
|
-------
|
|
76
76
|
Mat
|
|
77
|
-
A
|
|
77
|
+
A :obj:`Mat` like image.
|
|
78
78
|
list[ndarray[int, int, int, int], ...]
|
|
79
79
|
A list of bounding box :code:`ndarray[x, y, width, height]`.
|
|
80
80
|
list[ndarray[int, int, int, int], ...]
|
|
@@ -93,7 +93,7 @@ class MyYOLOCLS(object):
|
|
|
93
93
|
nmsThreshold=float(self.cfg.nms))
|
|
94
94
|
if len(classes) > 0:
|
|
95
95
|
for class_id, conf, box_xywh in zip(classes.flatten(), confidences, boxes):
|
|
96
|
-
if class_id
|
|
96
|
+
if class_id in class_filter and box_xywh[2] >= min_width_filter:
|
|
97
97
|
box_xywh = box_xywh.astype(int)
|
|
98
98
|
pboxes_xywh.append(box_xywh)
|
|
99
99
|
box_xyxy = to_xyxy(box_xywh)
|
|
@@ -109,12 +109,12 @@ class MyYOLOCLS(object):
|
|
|
109
109
|
return img, pboxes_xywh, pboxes_xyxy, repspoints, confs
|
|
110
110
|
|
|
111
111
|
def detectPeople(self, img, visual=True, min_width_filter=35, alt_repspoint=False, alt_repspoint_top=True):
|
|
112
|
-
"""Detect person(s) in a given
|
|
112
|
+
"""Detect person(s) in a given :obj:`Mat` like image.
|
|
113
113
|
|
|
114
114
|
Parameters
|
|
115
115
|
----------
|
|
116
116
|
img : Mat
|
|
117
|
-
A
|
|
117
|
+
A :obj:`Mat` like image.
|
|
118
118
|
visual : bool, default=True
|
|
119
119
|
An indication of whether to visualize the detected people.
|
|
120
120
|
min_width_filter : int, default=35
|
|
@@ -129,7 +129,7 @@ class MyYOLOCLS(object):
|
|
|
129
129
|
list[Person, ...]
|
|
130
130
|
A list of detected :class:`Person` object.
|
|
131
131
|
Mat
|
|
132
|
-
A
|
|
132
|
+
A :obj:`Mat` like image.
|
|
133
133
|
"""
|
|
134
134
|
people = []
|
|
135
135
|
classes, confidences, boxes = self.model.detect(
|
|
@@ -117,12 +117,12 @@ class MyYOLOULT(object):
|
|
|
117
117
|
|
|
118
118
|
def detect(self, img, visual=True, classes=0, min_width_filter=35):
|
|
119
119
|
"""Detect general object with object's class filter :obj:`class_filter`
|
|
120
|
-
in a given
|
|
120
|
+
in a given :obj:`Mat` like image.
|
|
121
121
|
|
|
122
122
|
Parameters
|
|
123
123
|
----------
|
|
124
124
|
img : Mat
|
|
125
|
-
A
|
|
125
|
+
A :obj:`Mat` like image.
|
|
126
126
|
visual : bool, default=True
|
|
127
127
|
An indication of whether to visualize the detected objects.
|
|
128
128
|
classes : int, defualt=0
|
|
@@ -133,7 +133,7 @@ class MyYOLOULT(object):
|
|
|
133
133
|
Returns
|
|
134
134
|
-------
|
|
135
135
|
Mat
|
|
136
|
-
A
|
|
136
|
+
A :obj:`Mat` like image.
|
|
137
137
|
list[ndarray[int, int, int, int], ...]
|
|
138
138
|
A list of bounding box :code:`ndarray[x, y, width, height]`.
|
|
139
139
|
list[ndarray[int, int, int, int], ...]
|
|
@@ -205,12 +205,12 @@ class MyYOLOULT(object):
|
|
|
205
205
|
return img, pboxes_xywh, pboxes_xyxy, repspoints, keypoints, confs
|
|
206
206
|
|
|
207
207
|
def detectPeople(self, img, visual=True, min_width_filter=35, alt_repspoint=False, alt_repspoint_top=True):
|
|
208
|
-
"""Detect person(s) in a given
|
|
208
|
+
"""Detect person(s) in a given :obj:`Mat` like image.
|
|
209
209
|
|
|
210
210
|
Parameters
|
|
211
211
|
----------
|
|
212
212
|
img : Mat
|
|
213
|
-
A
|
|
213
|
+
A :obj:`Mat` like image.
|
|
214
214
|
visual : bool, default=True
|
|
215
215
|
An indication of whether to visualize the detected people.
|
|
216
216
|
min_width_filter : int, default=35
|
|
@@ -225,7 +225,7 @@ class MyYOLOULT(object):
|
|
|
225
225
|
list[Person, ...]
|
|
226
226
|
A list of detected :class:`Person` object.
|
|
227
227
|
Mat
|
|
228
|
-
A
|
|
228
|
+
A :obj:`Mat` like image.
|
|
229
229
|
"""
|
|
230
230
|
numpy_dets = []
|
|
231
231
|
people = []
|
|
@@ -94,7 +94,7 @@ class MyDeepSORT(object):
|
|
|
94
94
|
person_list : list[Person, ...]
|
|
95
95
|
A list of :class:`Person` object which stores the detected people in the given :obj:`img`.
|
|
96
96
|
img : any, default=None
|
|
97
|
-
A
|
|
97
|
+
A :obj:`Mat` like image.
|
|
98
98
|
max_spread : int, default=5
|
|
99
99
|
Max spread or max margin used to decide whether 2 bounding boxes are the same by comparing
|
|
100
100
|
the differences between the elements in the bounding box given by the embedded SORT and the
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
Standalone is designed for easy detect, track, and reid people in a single thread
|
|
24
24
|
enviroment or in command line.
|
|
25
25
|
|
|
26
|
-
For multithreading application, see :py:class:`pyppbox.
|
|
26
|
+
For multithreading application, see :py:class:`pyppbox.ppb.mt.MT`.
|
|
27
27
|
|
|
28
28
|
Example:
|
|
29
29
|
|
|
@@ -69,27 +69,27 @@ Example:
|
|
|
69
69
|
|
|
70
70
|
from .mt import MT
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
_mt = MT()
|
|
73
73
|
|
|
74
74
|
def setConfigDir(config_dir=None, load_all=False):
|
|
75
|
-
"""See :func:`pyppbox.
|
|
76
|
-
|
|
75
|
+
"""See :func:`pyppbox.ppb.mt.MT.setConfigDir`"""
|
|
76
|
+
_mt.setConfigDir(config_dir=config_dir, load_all=load_all)
|
|
77
77
|
|
|
78
78
|
def setMainModules(main_yaml=None, load_all=True):
|
|
79
|
-
"""See :func:`pyppbox.
|
|
80
|
-
|
|
79
|
+
"""See :func:`pyppbox.ppb.mt.MT.setMainModules`"""
|
|
80
|
+
_mt.setMainModules(main_yaml=main_yaml, load_all=load_all)
|
|
81
81
|
|
|
82
82
|
def getConfig():
|
|
83
|
-
"""See :func:`pyppbox.
|
|
84
|
-
return
|
|
83
|
+
"""See :func:`pyppbox.ppb.mt.MT.getConfig`"""
|
|
84
|
+
return _mt.getConfig()
|
|
85
85
|
|
|
86
86
|
def forceFullGTMode():
|
|
87
|
-
"""See :func:`pyppbox.
|
|
88
|
-
|
|
87
|
+
"""See :func:`pyppbox.ppb.mt.MT.forceFullGTMode`"""
|
|
88
|
+
_mt.forceFullGTMode()
|
|
89
89
|
|
|
90
90
|
def setMainDetector(detector=""):
|
|
91
|
-
"""See :func:`pyppbox.
|
|
92
|
-
|
|
91
|
+
"""See :func:`pyppbox.ppb.mt.MT.setMainDetector`"""
|
|
92
|
+
_mt.setMainDetector(detector=detector)
|
|
93
93
|
|
|
94
94
|
def detectPeople(img,
|
|
95
95
|
img_is_mat=False,
|
|
@@ -99,8 +99,8 @@ def detectPeople(img,
|
|
|
99
99
|
min_width_filter=35,
|
|
100
100
|
alt_repspoint=False,
|
|
101
101
|
alt_repspoint_top=True):
|
|
102
|
-
"""See :func:`pyppbox.
|
|
103
|
-
return
|
|
102
|
+
"""See :func:`pyppbox.ppb.mt.MT.detectPeople`"""
|
|
103
|
+
return _mt.detectPeople(img,
|
|
104
104
|
img_is_mat=img_is_mat,
|
|
105
105
|
visual=visual,
|
|
106
106
|
save=save,
|
|
@@ -110,24 +110,24 @@ def detectPeople(img,
|
|
|
110
110
|
alt_repspoint_top=alt_repspoint_top)
|
|
111
111
|
|
|
112
112
|
def setMainTracker(tracker=""):
|
|
113
|
-
"""See :func:`pyppbox.
|
|
114
|
-
|
|
113
|
+
"""See :func:`pyppbox.ppb.mt.MT.setMainTracker`"""
|
|
114
|
+
_mt.setMainTracker(tracker=tracker)
|
|
115
115
|
|
|
116
116
|
def trackPeople(img, people, img_is_mat=False):
|
|
117
|
-
"""See :func:`pyppbox.
|
|
118
|
-
return
|
|
117
|
+
"""See :func:`pyppbox.ppb.mt.MT.trackPeople`"""
|
|
118
|
+
return _mt.trackPeople(img, people, img_is_mat=img_is_mat)
|
|
119
119
|
|
|
120
120
|
def setMainReIDer(reider="", auto_load=True):
|
|
121
|
-
"""See :func:`pyppbox.
|
|
122
|
-
|
|
121
|
+
"""See :func:`pyppbox.ppb.mt.MT.setMainReIDer`"""
|
|
122
|
+
_mt.setMainReIDer(reider=reider, auto_load=auto_load)
|
|
123
123
|
|
|
124
124
|
def reidPeople(img, people, deduplicate=True, img_is_mat=False):
|
|
125
|
-
"""See :func:`pyppbox.
|
|
126
|
-
return
|
|
125
|
+
"""See :func:`pyppbox.ppb.mt.MT.reidPeople`"""
|
|
126
|
+
return _mt.reidPeople(img, people, deduplicate=deduplicate, img_is_mat=img_is_mat)
|
|
127
127
|
|
|
128
128
|
def trainReIDClassifier(reider="Default", train_data="", classifier_pkl=""):
|
|
129
|
-
"""See :func:`pyppbox.
|
|
130
|
-
|
|
129
|
+
"""See :func:`pyppbox.ppb.mt.MT.trainReIDClassifier`"""
|
|
130
|
+
_mt.trainReIDClassifier(reider=reider, train_data=train_data, classifier_pkl=classifier_pkl)
|
|
131
131
|
|
|
132
132
|
__all__ = ['setConfigDir', 'setMainModules', 'getConfig', 'forceFullGTMode',
|
|
133
133
|
'setMainDetector', 'detectPeople', 'setMainTracker', 'trackPeople',
|
|
@@ -424,9 +424,9 @@ class MT(object):
|
|
|
424
424
|
Parameters
|
|
425
425
|
----------
|
|
426
426
|
img : str or Mat
|
|
427
|
-
Set an image file or a
|
|
427
|
+
Set an image file or a :obj:`Mat` like image.
|
|
428
428
|
img_is_mat : bool, default=False
|
|
429
|
-
Speed up the function by telling whether the :obj:`img` is
|
|
429
|
+
Speed up the function by telling whether the :obj:`img` is :obj:`Mat` like image.
|
|
430
430
|
visual : bool, default=False
|
|
431
431
|
Decide whether to visualize like drawing bounding boxes and keypoints to the
|
|
432
432
|
return :obj:`img`.
|
|
@@ -446,7 +446,7 @@ class MT(object):
|
|
|
446
446
|
list[Person, ...]
|
|
447
447
|
A list of :class:`Person` object.
|
|
448
448
|
Mat
|
|
449
|
-
A
|
|
449
|
+
A :obj:`Mat` like image.
|
|
450
450
|
"""
|
|
451
451
|
people = []
|
|
452
452
|
if self.__dt_is_set__:
|
|
@@ -619,11 +619,11 @@ class MT(object):
|
|
|
619
619
|
Parameters
|
|
620
620
|
----------
|
|
621
621
|
img : str or Mat
|
|
622
|
-
Set an image file or a
|
|
622
|
+
Set an image file or a :obj:`Mat` like image.
|
|
623
623
|
people : list[Person, ...]
|
|
624
624
|
Set a list of :class:`Person` object which stores the detected people in the input :obj:`img`.
|
|
625
625
|
img_is_mat : bool, default=False
|
|
626
|
-
Speed up the function by telling whether the :obj:`img` is
|
|
626
|
+
Speed up the function by telling whether the :obj:`img` is :obj:`Mat` like image.
|
|
627
627
|
|
|
628
628
|
Returns
|
|
629
629
|
-------
|
|
@@ -791,14 +791,14 @@ class MT(object):
|
|
|
791
791
|
Parameters
|
|
792
792
|
----------
|
|
793
793
|
img : str or Mat
|
|
794
|
-
Set an image file or a
|
|
794
|
+
Set an image file or a :obj:`Mat` like image.
|
|
795
795
|
people : list[Person, ...]
|
|
796
796
|
Set a list of :class:`Person` object which stores the detected or tracked people in
|
|
797
797
|
the input :obj:`img`.
|
|
798
798
|
deduplicate : bool, default=True
|
|
799
799
|
Indicate whether to re-reid people who have the same face ids or deep ids.
|
|
800
800
|
img_is_mat : bool, default=False
|
|
801
|
-
Speed up the function by telling whether the :obj:`img` is
|
|
801
|
+
Speed up the function by telling whether the :obj:`img` is :obj:`Mat` like image.
|
|
802
802
|
|
|
803
803
|
Returns
|
|
804
804
|
-------
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
2
|
+
# #
|
|
3
|
+
# pyppbox: Toolbox for people detecting, tracking, and re-identifying. #
|
|
4
|
+
# Copyright (C) 2022 UMONS-Numediart #
|
|
5
|
+
# #
|
|
6
|
+
# This program is free software: you can redistribute it and/or modify #
|
|
7
|
+
# it under the terms of the GNU General Public License as published by #
|
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or #
|
|
9
|
+
# (at your option) any later version. #
|
|
10
|
+
# #
|
|
11
|
+
# This program is distributed in the hope that it will be useful, #
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
|
14
|
+
# GNU General Public License for more details. #
|
|
15
|
+
# #
|
|
16
|
+
# You should have received a copy of the GNU General Public License #
|
|
17
|
+
# along with this program. If not, see <https://www.gnu.org/licenses/>. #
|
|
18
|
+
# #
|
|
19
|
+
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
from pyppbox.ppb import *
|
|
23
|
+
from pyppbox.utils.logtools import add_warning_log
|
|
24
|
+
|
|
25
|
+
msg = ("\n! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !\n"
|
|
26
|
+
"! !\n"
|
|
27
|
+
"! For the coming major version 4: !\n"
|
|
28
|
+
"! * 'pyppbox' will leverage 'vsensebox' for detection and tracking !\n"
|
|
29
|
+
"! * 'pyppbox.utils.persontools' will change to adapt 'vesensebox' !\n"
|
|
30
|
+
"! * 'pyppbox.ppb' will replace 'pyppbox.standalone' !\n"
|
|
31
|
+
"! * All configuration files will also change !\n"
|
|
32
|
+
"! * More changes will be added to release notes !\n"
|
|
33
|
+
"! !\n"
|
|
34
|
+
"! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !\n")
|
|
35
|
+
|
|
36
|
+
add_warning_log(msg)
|
|
37
|
+
|
|
@@ -273,7 +273,7 @@ class GTInterpreter(object):
|
|
|
273
273
|
Parameters
|
|
274
274
|
----------
|
|
275
275
|
img : Mat
|
|
276
|
-
A
|
|
276
|
+
A :obj:`Mat` like image.
|
|
277
277
|
visual :
|
|
278
278
|
An indication of whether to draw bounding boxes on the return :obj:`img`.
|
|
279
279
|
|
|
@@ -282,7 +282,7 @@ class GTInterpreter(object):
|
|
|
282
282
|
list[Person, ...]
|
|
283
283
|
A list of :class:`Person` object.
|
|
284
284
|
Mat
|
|
285
|
-
A
|
|
285
|
+
A :obj:`Mat` like image.
|
|
286
286
|
"""
|
|
287
287
|
people = []
|
|
288
288
|
tmp_id = 0
|
|
@@ -107,7 +107,7 @@ def visualizePeople(img, people, show_box=True, show_skl=(True,True,5), show_ids
|
|
|
107
107
|
Parameters
|
|
108
108
|
----------
|
|
109
109
|
img : str or Mat
|
|
110
|
-
An image file or a
|
|
110
|
+
An image file or a :obj:`Mat` like image.
|
|
111
111
|
people : list[Person, ...]
|
|
112
112
|
Set a list of :class:`Person` object found in the input :obj:`img`.
|
|
113
113
|
show_box : bool, default=True
|
|
@@ -128,12 +128,12 @@ def visualizePeople(img, people, show_box=True, show_skl=(True,True,5), show_ids
|
|
|
128
128
|
show_repspoint : bool, default=True
|
|
129
129
|
Indicate whether to show the :obj:`repspoint` of :class:`Person` object.
|
|
130
130
|
img_is_mat : bool, default=True
|
|
131
|
-
Speed up the function by telling whether the :obj:`img` is
|
|
131
|
+
Speed up the function by telling whether the :obj:`img` is :obj:`Mat` like image.
|
|
132
132
|
|
|
133
133
|
Returns
|
|
134
134
|
-------
|
|
135
135
|
Mat
|
|
136
|
-
A visualized
|
|
136
|
+
A visualized :obj:`Mat` like image.
|
|
137
137
|
"""
|
|
138
138
|
# Overwrite `img_is_mat` to False when `img` is a file.
|
|
139
139
|
if img_is_mat and isinstance(img, str): img_is_mat = False
|
|
@@ -75,8 +75,9 @@ pyppbox/modules/trackers/deepsort/origin/tracker.py
|
|
|
75
75
|
pyppbox/modules/trackers/deepsort/origin/voc_classes.txt
|
|
76
76
|
pyppbox/modules/trackers/sort/__init__.py
|
|
77
77
|
pyppbox/modules/trackers/sort/origin/sort.py
|
|
78
|
+
pyppbox/ppb/__init__.py
|
|
79
|
+
pyppbox/ppb/mt.py
|
|
78
80
|
pyppbox/standalone/__init__.py
|
|
79
|
-
pyppbox/standalone/mt.py
|
|
80
81
|
pyppbox/utils/__init__.py
|
|
81
82
|
pyppbox/utils/commontools.py
|
|
82
83
|
pyppbox/utils/evatools.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/reiders/facenet/origin/align_dataset_mtcnn.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/generate_detections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyppbox-3.6b1 → pyppbox-3.6b2}/pyppbox/modules/trackers/deepsort/origin/linear_assignment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|