Skip to content

Commit 09c278a

Browse files
committed
🚀 feat(model): Added support for Grounding tasks with YOLOE model for text/visual prompting and prompt-free detection & segmentation
1 parent e89d1fc commit 09c278a

File tree

20 files changed

+604
-25
lines changed

20 files changed

+604
-25
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
__pycache__
66
*.pyc
77
*.egg-info
8+
*.pt
9+
*.onnx
810
anylabeling/data
911
/data
1012
/dist

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,21 @@
1919

2020
![](https://user-images.githubusercontent.com/18329471/234640541-a6a65fbc-d7a5-4ec3-9b65-55305b01a7aa.png)
2121

22-
2322
https://github.com/user-attachments/assets/f517fa94-c49c-4f05-864e-96b34f592079
2423

24+
https://github.com/user-attachments/assets/52cbdb5d-cc60-4be5-826f-903ea4330ca8
25+
26+
<div align="center"><strong>Text/Visual Prompting and Prompt-free for Detection & Segmentation</strong></div>
27+
2528
<br>
2629

2730
<img src="https://github.com/user-attachments/assets/7f43bcec-96fd-48d1-bd36-9e5a440a66f6" width="100%" />
28-
<div align="center"><strong>Visual Prompting for Detection</strong></div>
31+
<div align="center"><strong>Detect Anything</strong></div>
2932

3033
<br>
3134

3235
<img src="https://github.com/user-attachments/assets/208dc9ed-b8c9-4127-9e5b-e76f53892f03" width="100%" />
33-
<div align="center"><strong>Visual Prompting for Segmentation</strong></div>
36+
<div align="center"><strong>Segment Anything</strong></div>
3437

3538
<br>
3639

@@ -40,6 +43,7 @@ https://github.com/user-attachments/assets/f517fa94-c49c-4f05-864e-96b34f592079
4043

4144
## 🥳 What's New
4245

46+
- Added support for Grounding tasks with YOLOE model for text/visual prompting and prompt-free detection & segmentation
4347
- Bump version to [3.0.1](https://github.com/CVHub520/X-AnyLabeling/releases/tag/v3.0.1)
4448
- For more details, please refer to the [CHANGELOG](./CHANGELOG.md)
4549

@@ -74,12 +78,12 @@ https://github.com/user-attachments/assets/f517fa94-c49c-4f05-864e-96b34f592079
7478
| 📏 Depth Estimation | Depth Anything |
7579
| 🧩 Segment Anything | SAM, SAM-HQ, SAM-Med2D, EdgeSAM, EfficientViT-SAM, MobileSAM,
7680
| ✂️ Image Matting | RMBG |
77-
| 📍 Grounding | CountGD, GeCO, Grunding DINO, YOLO-World |
7881
| 💡 Proposal | UPN |
7982
| 🏷️ Tagging | RAM, RAM++ |
8083
| 📄 OCR | PP-OCR |
8184
| 🗣️ VLM | Florence2,
8285
| 🛣️ Land Detection | CLRNet |
86+
| 📍 Grounding | CountGD, GeCO, Grunding DINO, YOLO-World, YOLOE |
8387
| 📚 Other | 👉 [model_zoo](./docs/en/model_zoo.md) 👈 |
8488

8589

README_zh-CN.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,31 @@
1919

2020
![](https://user-images.githubusercontent.com/18329471/234640541-a6a65fbc-d7a5-4ec3-9b65-55305b01a7aa.png)
2121

22-
2322
https://github.com/user-attachments/assets/f517fa94-c49c-4f05-864e-96b34f592079
2423

24+
https://github.com/user-attachments/assets/52cbdb5d-cc60-4be5-826f-903ea4330ca8
25+
26+
<div align="center"><strong>基于文本/视觉提示或免提示的检测和分割统一模型</strong></div>
27+
2528
<br>
2629

2730
<img src="https://github.com/user-attachments/assets/7f43bcec-96fd-48d1-bd36-9e5a440a66f6" width="100%" />
28-
<div align="center"><strong>Visual Prompting for Detection</strong></div>
31+
<div align="center"><strong>检测一切</strong></div>
2932

3033
<br>
3134

3235
<img src="https://github.com/user-attachments/assets/208dc9ed-b8c9-4127-9e5b-e76f53892f03" width="100%" />
33-
<div align="center"><strong>Visual Prompting for Segmentation</strong></div>
36+
<div align="center"><strong>分割一切</strong></div>
3437

3538
<br>
3639

3740
<img src="https://github.com/user-attachments/assets/56c9a20b-c836-47aa-8b54-bad5bb99b735" width="100%" />
38-
<div align="center"><strong>Chatbot</strong></div>
41+
<div align="center"><strong>聊天机器人</strong></div>
3942

4043

4144
## 🥳 新功能
4245

46+
- 新增 `Grounding` 任务支持,集成 `YOLOE` 模型实现文本/视觉提示和无提示检测分割
4347
- X-AnyLabeling [v3.0.1](https://github.com/CVHub520/X-AnyLabeling/releases/tag/v3.0.1) 最新版本发布
4448
- 更多详情,请参考[更新日志](./CHANGELOG.md)
4549

@@ -75,12 +79,12 @@ https://github.com/user-attachments/assets/f517fa94-c49c-4f05-864e-96b34f592079
7579
| 📏 **深度估计** | Depth Anything |
7680
| 🧩 **分割一切** | SAM, SAM-HQ, SAM-Med2D, EdgeSAM, EfficientViT-SAM, MobileSAM |
7781
| ✂️ **图像抠图** | RMBG |
78-
| 📍 **视觉定位** | CountGD, GeCO, Grunding DINO, YOLO-World |
7982
| 💡 **候选框提取** | UPN |
8083
| 🏷️ **图像标记** | RAM, RAM++ |
8184
| 📄 **光学字符识别** | PP-OCR |
8285
| 🗣️ **视觉语言模型** | Florence2 |
8386
| 🛣️ **车道线检测** | CLRNet |
87+
| 📍 **Grounding** | CountGD, GeCO, Grunding DINO, YOLO-World, YOLOE |
8488
| 📚 **其他** | 👉 [model_zoo](./docs/en/model_zoo.md) 👈 |
8589

8690

anylabeling/app_info.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
__appname__ = "X-AnyLabeling"
22
__appdescription__ = "Advanced Auto Labeling Solution with Added Features"
3-
__version__ = "3.0.0"
3+
__version__ = "3.0.1"
44
__preferred_device__ = "CPU" # GPU or CPU
55
__url__ = "https://github.com/CVHub520/X-AnyLabeling"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
type: yoloe
2+
name: yoloe_11s-r20250524
3+
provider: THU
4+
display_name: YOLOE-11-S
5+
model_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/yoloe-11s-seg.pt
6+
model_pf_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/yoloe-11s-seg-pf.pt
7+
embedding_model_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/mobileclip_blt.pt
8+
input_height: 640
9+
input_width: 640
10+
iou_threshold: 0.70
11+
conf_threshold: 0.25
12+
max_det: 1000
13+
with_mask: false
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
type: yoloe
2+
name: yoloe_v8l-r20250524
3+
provider: THU
4+
display_name: YOLOE-v8-L
5+
model_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/yoloe-v8l-seg.pt
6+
model_pf_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/yoloe-v8l-seg-pf.pt
7+
embedding_model_path: https://github.com/CVHub520/X-AnyLabeling/releases/download/v3.0.0/mobileclip_blt.pt
8+
input_height: 640
9+
input_width: 640
10+
iou_threshold: 0.70
11+
conf_threshold: 0.25
12+
max_det: 1000
13+
with_mask: false

anylabeling/configs/models.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,10 @@
180180
config_file: ":/yolo12s.yaml"
181181
- model_name: "yolo12x-r20250514"
182182
config_file: ":/yolo12x.yaml"
183+
- model_name: "yoloe_11s-r20250524"
184+
config_file: ":/yoloe_11s.yaml"
185+
- model_name: "yoloe_v8l-r20250524"
186+
config_file: ":/yoloe_v8l.yaml"
183187
- model_name: "yolov5_car_plate-r20230112"
184188
config_file: ":/yolov5_car_plate.yaml"
185189
- model_name: "yolov5l-r20230520"

anylabeling/services/auto_labeling/__init__.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
"dfine",
7373
"yolo12",
7474
"u_rtdetr",
75+
"yoloe",
7576
]
7677

7778

@@ -96,6 +97,13 @@
9697
"edge_sam",
9798
"florence2",
9899
"geco",
100+
"yoloe",
101+
]
102+
103+
104+
# --- skip_prediction_on_new_marks ---
105+
_SKIP_PREDICTION_ON_NEW_MARKS_MODELS = [
106+
"yoloe",
99107
]
100108

101109

@@ -163,6 +171,7 @@
163171
"dfine",
164172
"yolo12",
165173
"u_rtdetr",
174+
"yoloe",
166175
]
167176

168177

@@ -198,6 +207,7 @@
198207
"yolo11_pose_track",
199208
"yolox",
200209
"yolo12",
210+
"yoloe",
201211
]
202212

203213

@@ -243,6 +253,7 @@
243253
"dfine",
244254
"yolo12",
245255
"u_rtdetr",
256+
"yoloe",
246257
]
247258

248259

anylabeling/services/auto_labeling/model_manager.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1797,6 +1797,26 @@ def _load_geco():
17971797
f"❌ Error in loading model: {model_config['type']} with error: {str(e)}"
17981798
)
17991799
return
1800+
elif model_config["type"] == "yoloe":
1801+
from .yoloe import YOLOE
1802+
1803+
try:
1804+
model_config["model"] = YOLOE(
1805+
model_config, on_message=self.new_model_status.emit
1806+
)
1807+
self.auto_segmentation_model_unselected.emit()
1808+
logger.info(
1809+
f"✅ Model loaded successfully: {model_config['type']}"
1810+
)
1811+
except Exception as e: # noqa
1812+
template = "Error in loading model: {error_message}"
1813+
translated_template = self.tr(template)
1814+
error_text = translated_template.format(error_message=str(e))
1815+
self.new_model_status.emit(error_text)
1816+
logger.error(
1817+
f"❌ Error in loading model: {model_config['type']} with error: {str(e)}"
1818+
)
1819+
return
18001820
elif model_config["type"] == "u_rtdetr":
18011821
from .u_rtdetr import U_RTDETR
18021822

0 commit comments

Comments
 (0)