class_docstr: Implementation of the BadDet Object Generation Attack.
  
  | Paper link: https://arxiv.org/abs/2205.14497
code: def _check_params(self) -> None:
      if not isinstance(self.backdoor, PoisoningAttackBackdoor):
          raise ValueError(
              "Backdoor must be of type PoisoningAttackBackdoor"
          )
      if self.bbox_height <= 0:
          raise ValueError("bbox_height must be positive")
      if self.bbox_width <= 0:
          raise ValueError("bbox_width must be positive")
      if not 0 < self.percent_poison <= 1:
          raise ValueError("percent_poison must be between 0 and 1")
  
file_path: adversarial-robustness-toolbox/art/attacks/poisoning/bad_det/bad_det_oga.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Dict, List, Tuple, Union
  import numpy
  from tqdm.auto import tqdm
  from art.attacks.attack import PoisoningAttackObjectDetector
  from art.attacks.poisoning.backdoor_attack import PoisoningAttackBackdoor
label_desc: Use image node_id 3 for calling the BadDetObjectGenerationAttack obj's underlying member method code with example usage: obj._check_params() without return types