Skip to content

Commit b0f1b1b

Browse files
author
arch
committed
improve visu
1 parent faf003b commit b0f1b1b

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

funscript_editor/algorithms/funscriptgenerator.py

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ def get_dick_pos(self, max_distance_frame_num: int) -> dict:
196196
else { 'w': center_line[0], 'm': center_line[1] }
197197

198198
# TODO: dividor is an hyperparameter
199-
dx = (dick_pos['m'][0] - dick_pos['w'][0]) / 3
200-
dy = (dick_pos['m'][1] - dick_pos['w'][1]) / 3
199+
dx = (dick_pos['m'][0] - dick_pos['w'][0]) / 2.5
200+
dy = (dick_pos['m'][1] - dick_pos['w'][1]) / 2.5
201201
return {
202202
'w': (self.clamp(dick_pos['w'][0] - dx, 0, frame_w-1), self.clamp(dick_pos['w'][1] - dy, 0, frame_h-1)),
203203
'm': (self.clamp(dick_pos['m'][0] + dx, 0, frame_w-1), self.clamp(dick_pos['m'][1] + dy, 0, frame_h-1))
@@ -221,6 +221,9 @@ def calculate_score(self, bboxes) -> None:
221221
}
222222

223223
dick_pos = None
224+
tracking_points_with_offset = {}
225+
for tracker_type in bboxes.keys():
226+
tracking_points_with_offset[tracker_type] = {}
224227

225228
self.logger.info("Calculate score for %d Tracker(s)", self.params.number_of_trackers)
226229
for tracker_number in range(self.params.number_of_trackers):
@@ -253,6 +256,20 @@ def calculate_score(self, bboxes) -> None:
253256
roll_men_offset = (dick_pos['m'][0] - men_center[dick_pos['idx']][0], dick_pos['m'][1] - men_center[dick_pos['idx']][1])
254257
self.logger.info('use roll offset w = %s, m = %s', str(roll_woman_offset), str(roll_men_offset))
255258

259+
tracking_points_with_offset['Woman'][tracker_number] = [
260+
(
261+
int(woman_center[i][0] + roll_woman_offset[0]),
262+
int(woman_center[i][1] + roll_woman_offset[1])
263+
) for i in range( min(( len(men_center), len(woman_center) )) )
264+
]
265+
266+
tracking_points_with_offset['Men'][tracker_number] = [
267+
(
268+
int(men_center[i][0] + roll_men_offset[0]),
269+
int(men_center[i][1] + roll_men_offset[1])
270+
) for i in range( min(( len(men_center), len(woman_center) )) )
271+
]
272+
256273
for i in range( min(( len(men_center), len(woman_center) )) ):
257274

258275
if False:
@@ -288,6 +305,11 @@ def calculate_score(self, bboxes) -> None:
288305
score['x'][tracker_number] = np.array([w[0] - min_woman_x for w in woman_center])
289306
score['y'][tracker_number] = np.array([max_woman_y - w[1] for w in woman_center])
290307

308+
tracking_points_with_offset['Woman'][tracker_number] = woman_center
309+
310+
311+
self.tracking_points = tracking_points_with_offset # save so we can use the later for visu
312+
291313
self.logger.info("Merge Scores")
292314

293315
pool, queue = {}, {}
@@ -732,28 +754,10 @@ def tracking(self) -> str:
732754
self.logger.info(status)
733755
self.logger.info('Interpolate tracking boxes')
734756
interpolated_bboxes = self.interpolate_bboxes(bboxes)
735-
self.tracking_points = self.determine_tracking_points(interpolated_bboxes)
736757
self.calculate_score(interpolated_bboxes)
737758
return status
738759

739760

740-
def determine_tracking_points(self, interpolated_bboxes: dict) -> dict:
741-
""" Determine the final tracking points
742-
743-
Args:
744-
interpolate_bboxes (dict): interpolate bboxes from all trackers
745-
746-
Returns:
747-
dict: final tracking points
748-
"""
749-
result = {}
750-
for tracker_type in interpolated_bboxes.keys():
751-
result[tracker_type] = {}
752-
for tracker_number in interpolated_bboxes[tracker_type].keys():
753-
result[tracker_type][tracker_number] = [self.get_center(item) for item in interpolated_bboxes[tracker_type][tracker_number]]
754-
755-
return result
756-
757761

758762
def get_tracking_points_by_frame_number(self, relative_frame_number: int) -> list:
759763
""" Get tracking points by frame number

0 commit comments

Comments
 (0)