code: def break_mot(self, mot_list, cid):
      new_mot_list = dict()
      new_num_tracklets = max(mot_list) + 1
      for tracklet in mot_list:
          tracklet_dict = mot_list[tracklet]
          frame_list = list(tracklet_dict.keys())
          frame_list.sort()
          zone_list = []
          back_tracklet = False
          new_zone_f = 0
          pre_frame = frame_list[0]
          time_break = False
          for f in frame_list:
              if f - pre_frame > 100:
                  if cid in [44, 45]:
                      time_break = True
                      break
              if not cid in [41, 44, 45, 46]:
                  break
              pre_frame = f
              new_zone = tracklet_dict[f]["zone"]
              if len(zone_list) > 0 and zone_list[-1] == new_zone:
                  continue
              if new_zone_f > 1:
                  if len(zone_list) > 1 and new_zone in zone_list:
                      back_tracklet = True
                  zone_list.append(new_zone)
                  new_zone_f = 0
              else:
                  new_zone_f += 1
          if back_tracklet:
              new_tracklet_dict = dict()
              pre_bbox = -1
              pre_arrow = 0
              have_break = False
              for f in frame_list:
                  now_bbox = tracklet_dict[f]["bbox"]
                  if type(pre_bbox) == int:
                      if pre_bbox == -1:
                          pre_bbox = now_bbox
                  now_arrow = now_bbox[0] - pre_bbox[0]
                  if (
                      pre_arrow * now_arrow < 0
                      and len(new_tracklet_dict) > 15
                      and not have_break
                  ):
                      new_mot_list[tracklet] = new_tracklet_dict
                      new_tracklet_dict = dict()
                      have_break = True
                  if have_break:
                      tracklet_dict[f]["id"] = new_num_tracklets
                  new_tracklet_dict[f] = tracklet_dict[f]
                  pre_bbox, pre_arrow = now_bbox, now_arrow
  
              if have_break:
                  new_mot_list[new_num_tracklets] = new_tracklet_dict
                  new_num_tracklets += 1
              else:
                  new_mot_list[tracklet] = new_tracklet_dict
          elif time_break:
              new_tracklet_dict = dict()
              have_break = False
              pre_frame = frame_list[0]
              for f in frame_list:
                  if f - pre_frame > 100:
                      new_mot_list[tracklet] = new_tracklet_dict
                      new_tracklet_dict = dict()
                      have_break = True
                  new_tracklet_dict[f] = tracklet_dict[f]
                  pre_frame = f
              if have_break:
                  new_mot_list[new_num_tracklets] = new_tracklet_dict
                  new_num_tracklets += 1
              else:
                  new_mot_list[tracklet] = new_tracklet_dict
          else:
              new_mot_list[tracklet] = tracklet_dict
      return new_mot_list
  
file_path: PaddleDetection/deploy/pptracking/python/mot/mtmct/zone.py
imports: import os
  import cv2
  import numpy
label_desc: Use image node_id 7 for calling the Zone obj's underlying member method code with example usage: obj.break_mot(mot_list, cid) and returns: new_mot_list