Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,92 @@
|
|
1 |
---
|
2 |
license: cc-by-nc-4.0
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
license: cc-by-nc-4.0
|
3 |
---
|
4 |
+
|
5 |
+
# CXR LLaVA
|
6 |
+
https://github.com/ECOFRI/CXR_LLaVA
|
7 |
+
|
8 |
+
|
9 |
+
### Multimodal Large Language Model Fine-Tuned for Chest X-ray Images
|
10 |
+
CXR LLaVA is an innovative open-source, multimodal large language model specifically designed for generating radiologic reports from chest X-ray images.
|
11 |
+
|
12 |
+
- **Arxiv Preprint Paper**: Explore the detailed scientific background of CXR LLaVA on [Arxiv](https://arxiv.org/abs/2310.18341).
|
13 |
+
- **Demo Website**: Experience the model in action at [Radiologist App](https://radiologist.app/cxr-llava).
|
14 |
+
|
15 |
+
|
16 |
+
|
17 |
+
|
18 |
+
|Version| Input CXR resolution | Channels | Vision Encoder | Base LLM | Weight
|
19 |
+
|--|--|--|--|--|--|
|
20 |
+
| v1.0 | 512x512 | RGB|RN50|LLAMA2-13B-CHAT|Deprecated
|
21 |
+
|v2.0 (Latest)|512x512|Grayscale|ViT-L/16|LLAMA2-7B-CHAT|[Link](https://huggingface.co/ECOFRI/CXR-LLAVA-v2)
|
22 |
+
|
23 |
+
|
24 |
+
## Usage Guide
|
25 |
+
### Importing Packages
|
26 |
+
|
27 |
+
from transformers import AutoModel
|
28 |
+
from PIL import Image
|
29 |
+
### Prepare CXR
|
30 |
+
|
31 |
+
- Ensure you have an CXR image file ready, such as 'img.jpg'.
|
32 |
+
- Use the following code to load the image
|
33 |
+
|
34 |
+
cxr_image = Image.open(os.path.join(os.path.dirname(__file__), "IMG", "img.jpg"))
|
35 |
+
|
36 |
+
### Load model
|
37 |
+
Loading the CXR-LLAVA model is straightforward and can be done in one line of code.
|
38 |
+
|
39 |
+
|
40 |
+
model = AutoModel.from_pretrained("ECOFRI/CXR-LLAVA-v2", trust_remote_code=True)
|
41 |
+
model = model.to("cuda")
|
42 |
+
|
43 |
+
|
44 |
+
### Generating Radiologic Reports
|
45 |
+
|
46 |
+
To write a radiologic report of a chest radiograph:
|
47 |
+
|
48 |
+
|
49 |
+
|
50 |
+
response = model.write_radiologic_report(cxr_image)
|
51 |
+
|
52 |
+
> The radiologic report reveals a large consolidation in the right upper lobe of the lungs. There is no evidence of pleural effusion or pneumothorax. The cardiac and mediastinal contours are normal.
|
53 |
+
|
54 |
+
|
55 |
+
### Differential Diagnosis
|
56 |
+
For differential diagnosis:
|
57 |
+
|
58 |
+
|
59 |
+
model.write_differential_diagnosis(cxr_image)
|
60 |
+
|
61 |
+
> Possible differential diagnoses for this patient include pneumonia,tuberculosis, lung abscess, or a neoplastic process such as lung cancer.
|
62 |
+
|
63 |
+
### Question Answering
|
64 |
+
To ask a question:
|
65 |
+
|
66 |
+
question = "What is true meaning of consolidation?"
|
67 |
+
response = model.ask_question(question=question, image=cxr_image)
|
68 |
+
|
69 |
+
> Consolidation refers to the filling of the airspaces in the lungs with fluid, pus, blood, cells or other substances, resulting in a region of lung tissue that has become dense and solid rather than containing air.
|
70 |
+
|
71 |
+
## Custom Prompt
|
72 |
+
For custom interactions:
|
73 |
+
|
74 |
+
img = Image.open(os.path.join(os.path.dirname(__file__), "IMG", "img.jpg"))
|
75 |
+
chat = [
|
76 |
+
{"role": "system",
|
77 |
+
"content": "You are a helpful radiologist. Try to interpret chest x ray image and answer to the question that user provides."},
|
78 |
+
{"role": "user",
|
79 |
+
"content": "<image>\nWrite a radiologic report on the given chest radiograph, including information about atelectasis, cardiomegaly, consolidation, pulmonary edema, pleural effusion, and pneumothorax.\n"}
|
80 |
+
]
|
81 |
+
response = model.generate_cxr_repsonse(chat=chat,pil_image=img, temperature=0, top_p=1)
|
82 |
+
|
83 |
+
|
84 |
+
|
85 |
+
## License Information
|
86 |
+
|
87 |
+
CXR LLaVA is available under a Creative Commons NonCommercial License.
|
88 |
+
|
89 |
+
Users must obtain the LLAMA-2 license prior to use. More details can be found [here](https://ai.meta.com/resources/models-and-libraries/llama-downloads/).
|
90 |
+
|
91 |
+
|
92 |
+
Lastly, we extend our heartfelt thanks to all the contributors of the [LLaVA project](https://llava-vl.github.io/).
|