Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Kent0n-Li/SAMScore
https://github.com/Kent0n-Li/SAMScore
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/Kent0n-Li/SAMScore
- Owner: Kent0n-Li
- License: bsd-2-clause
- Created: 2023-05-23T17:38:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-23T20:31:50.000Z (11 months ago)
- Last Synced: 2024-04-25T13:21:37.022Z (9 months ago)
- Language: Jupyter Notebook
- Size: 2.96 MB
- Stars: 14
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-Segment-Anything - [code
README
## SAMScore: A Semantic Structural Similarity Metric for Image Translation Evaluation
[Yunxiang Li](https://www.yunxiangli.top/), Meixu Chen, Wenxuan Yang, Kai Wang, [Jun Ma](https://scholar.google.com/citations?hl=zh-CN&user=bW1UV4IAAAAJ), [Alan C. Bovik](https://www.ece.utexas.edu/people/faculty/alan-bovik), [You Zhang](https://profiles.utsouthwestern.edu/profile/161901/you-zhang.html).
### Quick start
Run `pip install samscore`.
```python
pip install git+https://github.com/ChaoningZhang/MobileSAM.git
pip install timmpip install samscore
pip install git+https://github.com/facebookresearch/segment-anything.git
```The following Python code is all you need.
```python
import requests
import os
import samscoredef download_image(url, save_path):
response = requests.get(url)
response.raise_for_status() # Raise an exception if the request was unsuccessfulwith open(save_path, 'wb') as file:
file.write(response.content)
os.makedirs('imgs', exist_ok=True)
# Example usage
image_url = 'https://i.ibb.co/yFFg5pn/n02381460-20-real.png'
save_location = 'imgs/real.png'
download_image(image_url, save_location)image_url = 'https://i.ibb.co/GCQ2jQy/n02381460-20-fake.png'
save_location = 'imgs/fake.png'
download_image(image_url, save_location)## Initializing the model
# You can choose "vit_t", "vit_l", "vit_b", "vit_h"
SAMScore_Evaluation = samscore.SAMScore(model_type = "vit_b" )
samscore_result = SAMScore_Evaluation.evaluation_from_path(source_image_path='imgs/real.png', generated_image_path='imgs/fake.png')print('SAMScore: %.4f'%samscore_result)
```Use it on pytorch
```python
import requests
import os
import samscore
import cv2
import torchdef download_image(url, save_path):
response = requests.get(url)
response.raise_for_status() # Raise an exception if the request was unsuccessfulwith open(save_path, 'wb') as file:
file.write(response.content)
os.makedirs('imgs', exist_ok=True)
# Example usage
image_url = 'https://i.ibb.co/yFFg5pn/n02381460-20-real.png'
save_location = 'imgs/real.png'
download_image(image_url, save_location)image_url = 'https://i.ibb.co/GCQ2jQy/n02381460-20-fake.png'
save_location = 'imgs/fake.png'
download_image(image_url, save_location)# You can choose "vit_t", "vit_l", "vit_b", "vit_h"
SAMScore_Evaluation = samscore.SAMScore(model_type = "vit_b" )source_cv2 = cv2.imread('imgs/real.png')
source = torch.from_numpy(source_cv2.transpose(2, 0, 1)).unsqueeze(0).float()
source = torch.cat((source,source,source),dim=0)generated_cv2 = cv2.imread('imgs/fake.png')
generated = torch.from_numpy(generated_cv2.transpose(2, 0, 1)).unsqueeze(0).float()
generated = torch.cat((generated,generated,generated),dim=0)samscore_result = SAMScore_Evaluation.evaluation_from_torch(source, generated)
print('SAMScore:',samscore_result)
```## Citation
If you find this repository useful for your research, please use the following.
```
@article{li2023samscore,
title={SAMScore: A Semantic Structural Similarity Metric for Image Translation Evaluation},
author={Li, Yunxiang and Chen, Meixu and Yang, Wenxuan and Wang, Kai and Ma, Jun and Bovik, Alan C and Zhang, You},
journal={arXiv preprint arXiv:2305.15367},
year={2023}
}
```