docs: def _get_face2(shape=None, face_r=1.0, smile_r1=0.5, smile_r2=0.7, eye_r=0.2):
      """
      Create 2D binar face
      :param shape:
      :param face_r:
      :param smile_r1:
      :param smile_r2:
      :param eye_r:
      :return:
      """
  
      # data3d = np.zeros([1,7,7], dtype=np.int16)
      if shape is None:
          shape = [32, 32]
  
      center = (np.asarray(shape) - 1) / 2.0
      r = np.min(center) * face_r
  
      # np.min(np.asarray(shape) / 2.0)
      # shape = data3d.shape[1:]
      # data3d[center[0], center[1], center[2]] = 1
      x, y = np.meshgrid(range(shape[1]), range(shape[0]))
  
      head = (x - center[0]) ** 2 + (y - center[1]) ** 2 < r ** 2
  
      smile = (
          ((x - center[0]) ** 2 + (y - center[1]) ** 2 < (r * smile_r2) ** 2)
          & (y > (center[1] + 0.3 * r))
          & ((x - center[0]) ** 2 + (y - center[1]) ** 2 >= (r * smile_r1) ** 2)
      )
      smile
      e1c = center + r * np.array([-0.35, -0.2])
      e2c = center + r * np.array([0.35, -0.2])
  
      eyes = (x - e1c[0]) ** 2 + (y - e1c[1]) ** 2 <= (r * eye_r) ** 2
      eyes += (x - e2c[0]) ** 2 + (y - e1c[1]) ** 2 <= (r * eye_r) ** 2
  
      face = head & ~smile & ~eyes
      return face