class_docstr: Load WiderFace records with 'anno_path'
  
  Args:
      dataset_dir (str): root directory for dataset.
      image_dir (str): directory for images.
      anno_path (str): WiderFace annotation data.
      data_fields (list): key name of data dictionary, at least have 'image'.
      sample_num (int): number of samples to load, -1 means all.
      with_lmk (bool): whether to load face landmark keypoint labels.
class_docstr_tok: ["Load","WiderFace","records","with","'anno_path'","Args",":","dataset_dir","(","str",")",":","root","directory","for","dataset",".","image_dir","(","str",")",":","directory","for","images",".","anno_path","(","str",")",":","WiderFace","annotation","data",".","data_fields","(","list",")",":","key","name","of","data","dictionary",",","at","least","have","'image","'",".","sample_num","(","int",")",":","number","of","samples","to","load",",","-1","means","all",".","with_lmk","(","bool",")",":","whether","to","load","face","landmark","keypoint","labels","."]
code: def _load_file_list(self, input_txt):
      with open(input_txt, "r") as f_dir:
          lines_input_txt = f_dir.readlines()
  
      file_dict = {}
      num_class = 0
      exts = ["jpg", "jpeg", "png", "bmp"]
      exts += [ext.upper() for ext in exts]
      for i in range(len(lines_input_txt)):
          line_txt = lines_input_txt[i].strip("\n\t\r")
          split_str = line_txt.split(" ")
          if len(split_str) == 1:
              img_file_name = os.path.split(split_str[0])[1]
              split_txt = img_file_name.split(".")
              if len(split_txt) < 2:
                  continue
              elif split_txt[-1] in exts:
                  if i != 0:
                      num_class += 1
                  file_dict[num_class] = [line_txt]
          else:
              if len(line_txt) <= 6:
                  continue
              result_boxs = []
              xmin = float(split_str[0])
              ymin = float(split_str[1])
              w = float(split_str[2])
              h = float(split_str[3])
              # Filter out wrong labels
              if w < 0 or h < 0:
                  logger.warning(
                      "Illegal box with w: {}, h: {} in "
                      "img: {}, and it will be ignored".format(
                          w, h, file_dict[num_class][0]
                      )
                  )
                  continue
              xmin = max(0, xmin)
              ymin = max(0, ymin)
              xmax = xmin + w
              ymax = ymin + h
              gt_bbox = [xmin, ymin, xmax, ymax]
              result_boxs.append(gt_bbox)
              if self.with_lmk:
                  assert len(split_str) > 18, (
                      "When `with_lmk=True`, the number"
                      "of characters per line in the annotation file should"
                      "exceed 18."
                  )
                  lmk0_x = float(split_str[5])
                  lmk0_y = float(split_str[6])
                  lmk1_x = float(split_str[8])
                  lmk1_y = float(split_str[9])
                  lmk2_x = float(split_str[11])
                  lmk2_y = float(split_str[12])
                  lmk3_x = float(split_str[14])
                  lmk3_y = float(split_str[15])
                  lmk4_x = float(split_str[17])
                  lmk4_y = float(split_str[18])
                  lmk_ignore_flag = 0 if lmk0_x == -1 else 1
                  gt_lmk_label = [
                      lmk0_x,
                      lmk0_y,
                      lmk1_x,
                      lmk1_y,
                      lmk2_x,
                      lmk2_y,
                      lmk3_x,
                      lmk3_y,
                      lmk4_x,
                      lmk4_y,
                  ]
                  result_boxs.append(gt_lmk_label)
                  result_boxs.append(lmk_ignore_flag)
              file_dict[num_class].append(result_boxs)
  
      return list(file_dict.values())
  
file_path: PaddleDetection/ppdet/data/source/widerface.py
imports: import os
  import numpy
  from ppdet.core.workspace import register, serializable
  from .dataset import DetDataset
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 3 for calling the WIDERFaceDataSet obj's underlying member method code with example usage: obj._load_file_list(input_txt) and returns: list