Adversarial Patch Error in `PyTorchObjectDetector`
**Describe the bug**
When running the adversarial patch attack for the `PyTorchObjectDetector` and `PyTorchFasterRCNN`, an error can occur when using any PyTorch-specific preprocessors.

**To Reproduce**
Steps to reproduce the behavior:
Run the adversarial patch attack on the `PyTorchObjectDetector` while using a Faster R-CNN model. When using additional PyTorch-specific preprocessors, the error above will occur.

**Expected behavior**
The attacks should run without error. It can be easily fixed by adding the following if-condition 

```python
if x_tensor.is_leaf:
    x_tensor.requires_grad = True
else:
    x_tensor.retain_grad()
```

when setting the gradients to true. This if-condition is already applied for the `PyTorchYolo` detector, it just needs to be copied to the `PyTorchObjectDetector`.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**System information (please complete the following information):**
 - OS
 - Python version
 - ART version or commit number
 - TensorFlow / Keras / PyTorch / MXNet version

diff --git a/art/estimators/object_detection/pytorch_object_detector.py b/art/estimators/object_detection/pytorch_object_detector.py
index fecb0fafc..06025be8d 100644
--- a/art/estimators/object_detection/pytorch_object_detector.py
+++ b/art/estimators/object_detection/pytorch_object_detector.py
@@ -219,7 +219,10 @@ class PyTorchObjectDetector(ObjectDetectorMixin, PyTorchEstimator):
 
             # Set gradients
             if not no_grad:
-                x_tensor.requires_grad = True
+                if x_tensor.is_leaf:
+                    x_tensor.requires_grad = True
+                else:
+                    x_tensor.retain_grad()
 
             # Apply framework-specific preprocessing
             x_preprocessed, y_preprocessed = self._apply_preprocessing(x=x_tensor, y=y_tensor, fit=fit, no_grad=no_grad)
['art/estimators/object_detection/pytorch_object_detector.py']