Views
No views yet
1import torch
2from PIL import Image
3from transformers import BertTokenizer, ViTImageProcessor, VisionEncoderDecoderModel, GenerationConfig
4import requests
5
6mode = "impression"
7# Model
8model = VisionEncoderDecoderModel.from_pretrained(f"IAMJB/chexpert-mimic-cxr-{mode}-baseline").eval()
9tokenizer = BertTokenizer.from_pretrained(f"IAMJB/chexpert-mimic-cxr-{mode}-baseline")
10image_processor = ViTImageProcessor.from_pretrained(f"IAMJB/chexpert-mimic-cxr-{mode}-baseline")
11#
12# Dataset
13generation_args = {
14 "bos_token_id": model.config.bos_token_id,
15 "eos_token_id": model.config.eos_token_id,
16 "pad_token_id": model.config.pad_token_id,
17 "num_return_sequences": 1,
18 "max_length": 128,
19 "use_cache": True,
20 "beam_width": 2,
21}
22#
23# Inference
24refs = []
25hyps = []
26with torch.no_grad():
27 url = "https://huggingface.co/IAMJB/interpret-cxr-impression-baseline/resolve/main/effusions-bibasal.jpg"
28 image = Image.open(requests.get(url, stream=True).raw)
29 pixel_values = image_processor(image, return_tensors="pt").pixel_values
30 # Generate predictions
31 generated_ids = model.generate(
32 pixel_values,
33 generation_config=GenerationConfig(
34 **{**generation_args, "decoder_start_token_id": tokenizer.cls_token_id})
35 )
36 generated_texts = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)
37 print(generated_texts)@misc{chambon2024chexpertplusaugmentinglarge,
title={CheXpert Plus: Augmenting a Large Chest X-ray Dataset with Text Radiology Reports, Patient Demographics and Additional Image Formats},
author={Pierre Chambon and Jean-Benoit Delbrouck and Thomas Sounack and Shih-Cheng Huang and Zhihong Chen and Maya Varma and Steven QH Truong and Chu The Chuong and Curtis P. Langlotz},
year={2024},
eprint={2405.19538},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2405.19538},
}