AutoImageProcessor
# What does this PR do?

Adds the `AutoImageProcessor` class and makes model image processors available to import.

Fixes # (issue)


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [x] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/main/CONTRIBUTING.md#start-contributing-pull-requests),
      Pull Request section?
- [ ] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/main/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/main/docs#writing-source-documentation).
- [x] Did you write any new necessary tests?

The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/transformers/pr_20111). All of your documentation changes will be reflected on that endpoint.<|||||>Still reviewing, but in `processing_auto.py/from_pretrained`, the beginning part

https://github.com/huggingface/transformers/blob/1ebc7bb995c5e43961a7c8079ca3bf29f06f2411/src/transformers/models/auto/processing_auto.py#L197

around this, there is no `ImageProcessingMixin`. I feel this is a miss and should appear here?

<|||||>> Still reviewing, but in `processing_auto.py/from_pretrained`, the beginning part
> 
> https://github.com/huggingface/transformers/blob/1ebc7bb995c5e43961a7c8079ca3bf29f06f2411/src/transformers/models/auto/processing_auto.py#L197
> 
> around this, there is no `ImageProcessingMixin`. I feel this is a miss and should appear here?

@ydshieh Yes, you're right. I've added a check now [here](https://github.com/amyeroberts/transformers/blob/2e08d16f7758889fe0cb203091d292c968f067b0/src/transformers/models/auto/processing_auto.py#L194). Can you confirm if this matches with what you think should have been added? <|||||>> Can you confirm if this matches with what you think should have been added?

Yes!

<|||||>One comment (no need to be done in this PR): I think it would be great if we can remove the `feature_extractor_type` key after loading the image processor.

```python
from transformers import CLIPModel, AutoProcessor, CLIPProcessor, CLIPImageProcessor, CLIPFeatureExtractor, AutoImageProcessor

p = CLIPImageProcessor.from_pretrained("openai/clip-vit-base-patch32")
print(p.feature_extractor_type)
p.save_pretrained("temp-clip")
```
gives
```bash
CLIPFeatureExtractor
```
on the terminal,  and in the output file `preprocessor_config.json`, we have

```python
  "feature_extractor_type": "CLIPFeatureExtractor",
  "image_processor_type": "CLIPImageProcessor",
```