图像目标检测(YOLO)
更新时间:2026-07-29
简介
ImageDetectionYolo 是基于 ultralytics YOLO(11) 的目标检测算子,对每张图返回检测框(xywh)、类别 id 与置信度,是多模态打标链路中的 2D 检测环节。
功能描述
• 使用 ultralytics YOLO 加载权重(默认 yolo11n.pt),支持 CPU / GPU 推理(GPU 更快)。
• 可配置推理分辨率 imgsz、置信度阈值 conf 与 NMS IoU 阈值 iou。
• 输出每张图的检测框(xywh 格式)、类别 id 列表和置信度列表;无图或无检测时均为空列表。
算子参数
输入
| 输入 | 含义 |
|---|---|
| image | 待检测的图像列,取值由 image_src_type 决定(图像 URL / base64 / 二进制) |
输出
| 输出 | 含义 |
|---|---|
| result | struct{bbox: list<list<float64>> (M×4, xywh), cls: list<int64>, conf: list<float64>},无检测时三者均为空列表 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| model_path | str | "yolo11n.pt" | YOLO 权重路径或名称(如 yolo11n.pt / yolo11x.pt) |
| image_src_type | str | "image_url" | 图像输入类型,可选 image_url / image_base64 / image_binary |
| imgsz | int | 640 | 推理分辨率 |
| conf | float | 0.05 | 置信度阈值 |
| iou | float | 0.5 | NMS IoU 阈值 |
| fail_on_error | bool | False | 推理异常时是否立即抛出;False 时对应行返回空检测 |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.image.image_detection_yolo import ImageDetectionYolo
10
11IMAGE = "bos://your-bucket/sample.jpg" # MOCK
12
13os.environ.setdefault("BOS_ENDPOINT", "http://bj.bcebos.com")
14os.environ.setdefault("BOS_REGION", "bj")
15
16if __name__ == "__main__":
17 if os.getenv("DAFT_RUNNER", "native") == "ray":
18 import ray
19
20 ray.init(ignore_reinit_error=True)
21 daft.set_runner_ray()
22 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
23
24 samples = {"image": [IMAGE]}
25 ds = daft.from_pydict(samples)
26 ds = ds.with_column(
27 "det",
28 aihc_udf(
29 ImageDetectionYolo,
30 construct_args={
31 "model_path": "yolo11n.pt",
32 "image_src_type": "image_url",
33 "imgsz": 640,
34 "conf": 0.05,
35 "iou": 0.5,
36 },
37 num_cpus=1,
38 num_gpus=1,
39 concurrency=1,
40 batch_size=1,
41 )(col("image")),
42 )
43 ds.show()
评价此篇文章
