Views
No views yet
1import birder
2from birder.inference.classification import infer_image
3
4# Option 1: manual setup (more control over preprocessing)
5net, model_info = birder.load_pretrained_model("rope_i_vit_l14_nf_swiglu_c1_eva02-clip", inference=True)
6
7# Get the image size the model was trained on
8size = birder.get_size_from_signature(model_info.signature)
9
10# Create an inference transform
11transform = birder.classification_transform(size, model_info.rgb_stats)
12
13# Option 2: helper (quick start with default preprocessing)
14net, model_info, transform = birder.load_pretrained_model_and_transform("rope_i_vit_l14_nf_swiglu_c1_eva02-clip", inference=True)
15
16image = "path/to/image.jpeg" # or a PIL image, must be loaded in RGB format
17out, _ = infer_image(net, image, transform)
18# out is a NumPy array with shape of (1, 768), representing class probabilities.1import birder
2from birder.inference.classification import infer_image
3
4# Option 1: manual setup (more control over preprocessing)
5net, model_info = birder.load_pretrained_model("rope_i_vit_l14_nf_swiglu_c1_eva02-clip", inference=True)
6
7# Get the image size the model was trained on
8size = birder.get_size_from_signature(model_info.signature)
9
10# Create an inference transform
11transform = birder.classification_transform(size, model_info.rgb_stats)
12
13# Option 2: helper (quick start with default preprocessing)
14net, model_info, transform = birder.load_pretrained_model_and_transform("rope_i_vit_l14_nf_swiglu_c1_eva02-clip", inference=True)
15
16image = "path/to/image.jpeg" # or a PIL image
17out, embedding = infer_image(net, image, transform, return_embedding=True)
18# embedding is a NumPy array with shape of (1, 1024)1from PIL import Image
2import birder
3
4net, model_info, transform = birder.load_pretrained_model_and_transform("rope_i_vit_l14_nf_swiglu_c1_eva02-clip", inference=True)
5
6image = Image.open("path/to/image.jpeg")
7features = net.detection_features(transform(image).unsqueeze(0))
8# features is a dict (stage name -> torch.Tensor)
9print([(k, v.size()) for k, v in features.items()])
10# Output example:
11# [('stage1', torch.Size([1, 1024, 24, 24]))]1@article{Fang_2024,
2 title={EVA-02: A visual representation for neon genesis},
3 volume={149},
4 ISSN={0262-8856},
5 url={http://dx.doi.org/10.1016/j.imavis.2024.105171},
6 DOI={10.1016/j.imavis.2024.105171},
7 journal={Image and Vision Computing},
8 publisher={Elsevier BV},
9 author={Fang, Yuxin and Sun, Quan and Wang, Xinggang and Huang, Tiejun and Wang, Xinlong and Cao, Yue},
10 year={2024},
11 month=Sept, pages={105171}
12}
13@misc{sun2023evaclipimprovedtrainingtechniques,
14 title={EVA-CLIP: Improved Training Techniques for CLIP at Scale},
15 author={Quan Sun and Yuxin Fang and Ledell Wu and Xinlong Wang and Yue Cao},
16 year={2023},
17 eprint={2303.15389},
18 archivePrefix={arXiv},
19 primaryClass={cs.CV},
20 url={https://arxiv.org/abs/2303.15389},
21}