Skip to content

Commit 2b3347a

Browse files
committed
minor improvements
1 parent 6d63aa3 commit 2b3347a

File tree

5 files changed

+26
-18
lines changed

5 files changed

+26
-18
lines changed

fdfat/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import platform
22

3-
__version__ = '0.2.2'
3+
__version__ = '0.2.3'
44

55
LOGGING_NAME = 'landmark'
66
VERBOSE = 'true'

fdfat/cfg/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
CFG_INT_KEYS= 'seed', 'workers', 'imgsz', 'epoch', 'batch_size', 'dump_batch', 'patience', 'warmup', "lmk_num", "track_max_age", "track_min_hit"
99
CFG_FRACTION_KEYS = 'lr', 'lr0_factor', 'lr_factor', 'aux_pose_weight'
1010
CFG_FLOAT_KEYS = "aug", 'muliplier', 'w_jaw', 'w_leyeb', 'w_reyeb', 'w_nose', 'w_nosetip', 'w_leye', 'w_reye', 'w_mount', 'w_purpil', 'face_cls_weight', "track_sort_iou_threshold", "track_detector_fps"
11-
CFG_BOOL_KEYS = "save", "override", "pin_memory", "aux_pose", "lossw_enabled", "resume", "warmup", "pre_norm", "export_simplify", "export_pose", "lmk_mean", "cache", "profiler", "face_cls", "track_visualize", "freeze_landmark"
11+
CFG_BOOL_KEYS = "save", "override", "pin_memory", "aux_pose", "lossw_enabled", "resume", "warmup", "pre_norm", "export_simplify", "export_pose", "lmk_mean", "cache", "profiler", "face_cls", "track_visualize", "freeze_landmark", "track_verbose"
1212

1313
def cfg2dict(cfg):
1414
"""

fdfat/cfg/default.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,6 @@ track_max_age: 30 # maximum frame to hold a track
7171
track_min_hit: 3 # minimum frame to consider a track
7272
track_save: # save rendered frame to video file
7373
track_detector: # detector onnx model
74-
track_detector_fps: 2 # maximum fps for detector
74+
track_detector_fps: 2.0 # maximum fps for detector
7575
track_landmark: # landmark onnx model
76+
track_verbose: False # print track profile

fdfat/nn/onnx.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ def predict_frame(self, frame, bbox, have_face_cls=False):
108108

109109
fheight, fwidth, _ = frame.shape
110110
lmk_box = box_utils.guard_bbox_inside(bbox, fwidth, fheight)
111+
bw, bh = lmk_box[3]-lmk_box[1], lmk_box[2]-lmk_box[0]
112+
if bw*bh == 0:
113+
return np.zeros((70,2)), 0
114+
111115

112116
face_img = frame[lmk_box[1]:lmk_box[3], lmk_box[0]:lmk_box[2], :]
113117
lmk = self.predict(face_img, have_face_cls=have_face_cls)

fdfat/tracking/facial_sort.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def _run(self, _, to_det_socket, from_det_socket):
9494

9595
if self.args.track_save is not None:
9696
writer = cv2.VideoWriter(self.args.track_save,
97-
cv2.VideoWriter_fourcc(*'MJPG'), frame_fps, (frame_width, frame_height))
97+
cv2.VideoWriter_fourcc(*'mp4v'), frame_fps, (frame_width, frame_height))
9898

9999

100100
self.sort_tracker = SORT((frame_width, frame_height),
@@ -132,15 +132,20 @@ def _run(self, _, to_det_socket, from_det_socket):
132132

133133
current_time = current_millis()
134134
if (current_time - self.detector_last_push_stamp) > self.detector_wait_millis:
135+
det_frame = cv2.resize(frame, (320, 240))
135136
with bench_send:
136-
send_object(to_det_socket, frame)
137+
send_object(to_det_socket, det_frame)
137138
self.detector_last_push_stamp = current_time
138139

139140
socks = dict(poller.poll(1))
140141
if socks and socks.get(from_det_socket) == zmq.POLLIN:
141142
# self.logger.info(f'recv res from detector at frame {self.frame_id}')
142143
with bench_recv:
143144
detections = recv_object(from_det_socket)
145+
detections[:,0] *= frame_width/320
146+
detections[:,1] *= frame_height/240
147+
detections[:,2] *= frame_width/320
148+
detections[:,3] *= frame_height/240
144149

145150
dets, lmks, scores = [], [], []
146151
for bbox in detections:
@@ -183,26 +188,24 @@ def _run(self, _, to_det_socket, from_det_socket):
183188
cv2.putText(frame, f"FPS: {fps}", (5, 27), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 255), 2)
184189

185190
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
186-
191+
187192
if self.args.track_visualize:
188193

189194
cv2.imshow('Render', frame)
190195

191196
if self.args.track_save is not None:
192197
writer.write(frame)
193198

194-
# print("====")
195-
# bench_read.print_report()
196-
# bench_process.print_report()
197-
# bench_send.print_report()
198-
# bench_recv.print_report()
199-
# bench_detector.print_report()
200-
# bench_landmark.print_report()
201-
# bench_render.print_report()
202-
# bench_dummy.print_report()
203-
# time.sleep(0.1)
204-
205-
# time.sleep(0.005)
199+
if self.args.track_verbose:
200+
print("====")
201+
bench_read.print_report()
202+
bench_process.print_report()
203+
bench_send.print_report()
204+
bench_recv.print_report()
205+
bench_detector.print_report()
206+
bench_landmark.print_report()
207+
bench_render.print_report()
208+
bench_dummy.print_report()
206209

207210
cap.release()
208211
if self.args.track_save is not None:

0 commit comments

Comments
 (0)