You need to enable JavaScript to run this app.
文档中心
AI 数据湖服务

AI 数据湖服务

复制全文
下载 pdf
内容安全
敏感内容打码
复制全文
下载 pdf
敏感内容打码
敏感内容打码算子基于多模态大模型、OCR 和 ASR 对图片或视频中的敏感画面、文字与语音进行检测,自动定位并打码,同时对敏感语音做消音处理,输出处理后的媒体文件与检测结果 JSON。​
算子介绍​
算子 ID:las_sensitive_blur​
核心能力​
  • 多类敏感内容识别定位:​
  • 支持基于多模态大模型,对图片或视频抽样帧中的多类(涉黄、涉政、暴力、辱骂文字等)敏感内容进行精准识别。​
  • 支持 CSRT/KCF/NCC 多策略轨迹跟踪,在场景边界内稳定跟随目标区域。​
  • 视频转 CFR(恒定帧率)后进行场景切分与自适应抽帧,减少信息丢失。​
  • 敏感内容打码、消音处理:​
  • 支持多种遮挡方式:高斯模糊、马赛克、纯黑遮挡和径向模糊。​
  • 使用 RapidOCR 提取画面文字并进行语义复审,校准敏感文字的打码区域。​
  • 可选 ASR 音频审核,对辱骂、涉性、涉政词汇做消音处理。​
  • 政治类敏感内容的结果支持额外复检。​
  • 视频支持按 1~64 个时间段设置敏感类别、自定义文字和文字语音静音;分段规则只在各自的原片时间范围内生效。​
  • 输出结果灵活:​
  • 算子处理结果会尽量保持原视频媒体参数:codec、profile/level、像素格式、目标码率、FPS、分辨率,以及音频 codec、码率、采样率、声道。​
  • 未命中敏感内容且需要渲染输出时,直接复制输入媒体,不进行重编码。​
  • 支持自动将输出结果上传至指定 TOS 路径;支持同时输出处理后的媒体(图片、视频)与 result.json,以及视频逐帧遮罩结果(保存在 result.json 的 frames 字段中)。​
效果展示​
以下示例以包含扑克牌、彩色游戏筹码等元素的复古棋牌娱乐布景为输入,检测 gambling、gambling_text 类型的敏感内容,并使用马赛克方式进行遮挡。算子对视频 361 帧中的敏感区域完成打码,共生成 2059 个遮罩区域。​
  • 输入视频​
  • ​
    Replay
    Play
    00:00 / 00:15 Live
    00:00
    Fullscreen
    Cssfullscreen
    1x
    • 2x
    • 1.5x
    • 1x
    • 0.75x
    • 0.5x
    Click and hold to drag
    ​
    ​
  • 核心参数​
  • ​
    {​
    "categories": [​
    "gambling",​
    "gambling_text"​
    ],​
    "mask_mode": "mosaic",​
    "render_output": true​
    }​
    ​
  • 输出视频(马赛克打码)​
  • ​
    Replay
    Play
    00:00 / 00:15 Live
    00:00
    Fullscreen
    Cssfullscreen
    1x
    • 2x
    • 1.5x
    • 1x
    • 0.75x
    • 0.5x
    Click and hold to drag
    ​
    ​
​
支持的地域​
  • 北京:cn-beijing​
  • 上海:cn-shanghai​
  • 广州:cn-guangzhou​
算子性能​
​
​
细分项​
性能影响说明​
耗时​
  • 总耗时与媒体时长、分辨率、命中数量、内容复杂度及网络环境相关。​
  • 建议在火山内网环境下访问 TOS 源与写入 TOS 结果以获得更稳定的网络性能。​
重试策略​
* 视觉调用采用 fail-open 策略:单帧最多重试 3 次,连续失败后跳过该帧,不导致整个任务失败。​
​
输入与输出要求​
输入要求​
​
​
细分项​
详细要求​
支持的输入数据模态​
  • 图片​
  • 视频​
输入格式:图片​
* 格式:支持 jpg、jpeg、png、webp、bmp​
输入格式:视频​
* 格式:支持 mp4、mov、mkv、avi、webm、flv、ts、m4v​
输入路径要求​
通过请求参数 url提供给算子输入数据,当前支持公网 URL、TOS 路径这两种方式。​
  • 公网 URL:公网可访问的视频 URL,格式为 http/https。​
  • TOS 路径:将待处理数据上传至与当前 LAS 服务同主账号、同地域的 TOS Bucket后,可提供 TOS 路径,格式为tos://bucket_name/demo。​
​
输出要求​
​
​
细分项​
详细要求​
支持的数据模态​
  • 图片​
  • 视频​
  • 文件(JSON)​
算子处理结果会尽量保持原视频媒体参数:codec、profile/level、像素格式、目标码率、FPS、分辨率,以及音频 codec、码率、采样率、声道。​
结构化结果​
返回检测摘要,并通过 result.json 提供完整结果;视频包含逐帧遮罩信息​
​
计费说明​
  • 计费标准​
  • ​
  • ​
    细分项​
    计费标准说明​
    计费项​
    与输入的数据类型有关:​
    • 图片类型输入:按输入图片的数量统计用量进行计费;​
    • 视频类型输入:全片模式按输入视频时长计费;分段模式按各请求区间在原视频范围内实际生效的区间并集计费,单段有效时长以 Poll 接口返回的 effective_end_sec - effective_start_sec 计算,重叠部分只计算一次。​
    计费类型​
    按量计费,按实际的计费用量每小时出账。​
    单价​
    • 图片:0.01 元/张;​
    • 视频:0.83 元/分钟。​
    ​
注意与前提​
​
​
细分项​
注意与前提​
开通 LAS​
  • 如果您是一个全新的火山引擎用户,此前未开通过 LAS 产品,您可先开通 LAS,不使用 LAS 的计费功能仅开通 LAS 产品不会产生费用。开通操作请参见准备工作。​
费用​
调用算子前,您需先了解使用算子时的模型调用费用,详情请参见大模型调用计费。​
鉴权(API Key)​
调用算子前,您需要先生成算子调用的API Key,并建议将API Key配置为环境变量,便于更安全地调用算子,详情请参见获取 API Key 并配置。​
BaseURL​
调用算子前,您需要先根据您当前使用的LAS服务所在地域,了解算子调用的BaseURL,用于配置算子调用路径参数取值。​
详情请参见获取 Base URL,下文中的调用示例仅作为参考,实际调用时需替换为您对应地域的路径取值。​
​
Rest API 调用​
Submit​
接口说明​
提交敏感内容打码任务。成功后返回任务 ID,可通过 Poll 查询处理状态和结果。​
请求参数​
operator_id string 必选 示例值: las_sensitive_blur​
算子 ID,固定为 las_sensitive_blur。​
​
operator_version string 必选 示例值: v1​
算子版本,固定为 v1。​
​
data SensitiveBlurInfo 必选​
敏感内容打码参数。​
url string 必选 示例值: https://example.com/a.mp4​
输入媒体的可下载地址,支持 HTTP/HTTPS、火山 TOS,图片或视频均可。​
​
output_tos_path string 必选 示例值: tos://bucket/output​
输出 TOS 根目录或带输出文件名的路径。算子会创建独立子目录,保存处理后的媒体与 result.json。​
​
media_type string Optional 示例值: auto​
媒体类型,可选 auto、image、video,默认 auto。无法按 URL 后缀判断时可显式指定。​
​
output_filename string Optional 示例值: output.mp4​
输出文件名;省略时根据输入名推导,图片保持原图片扩展名。​
​
enable_thinking boolean Optional 示例值: true​
是否为主视觉检测与音频审核开启 thinking,默认 true。设置为 true 敏感内容识别更准确,但相应的处理时间会更长。​
​
categories list of string Optional 示例值: ["sexual","political"]​
设置需要打码处理的敏感类型。支持 sexual、sexual_text、abusive_text、political、political_text、religious、religious_text、gambling、gambling_text、drug、violent、violent_text;省略时使用模板全集。与 segments 互斥;分段模式需在各段内声明类别。​
​
confidence_threshold float Optional 示例值: 0.5​
置信度过滤阈值,范围 [0, 1],默认 0.5。​
​
mask_mode string Optional 示例值: blur​
遮挡方式,默认 blur。支持以下取值:​
  • blur:高斯模糊,柔化区域细节。​
  • mosaic:马赛克,将区域像素化。​
  • black:纯黑遮挡,用黑色填充区域。​
  • radial_blur:径向模糊,相比 blur 模糊效果更强。​
​
render_output boolean Optional 示例值: true​
是否渲染输出媒体,默认 true;为 false 时仅返回检测结果 JSON。​
​
enable_audio_censor boolean Optional 示例值: true​
仅视频有效。全片模式下是否对辱骂、涉性、涉政词汇做音频消音,默认 true。传入 segments 后由各段的同名字段控制,此全局开关不控制分段音频处理。​
​
segments list of SensitiveBlurSegment Optional​
仅视频有效。分段处理规则,默认不传或传 null 时使用全片模式;传入时须包含 1~64 个段,并与全局 categories 互斥。​
start_sec float 必选 示例值: 1.0​
原片时间轴上的起点,单位秒,须为有限数值且大于等于 0,包含起点。​
​
end_sec float 必选 示例值: 3.0​
原片时间轴上的终点,单位秒,须大于 start_sec,不包含终点。超出视频时长时截断;整个段位于时长外时任务失败。​
​
categories list of string Optional 示例值: ["abusive_text"]​
该段检测的预置类别,取值同全局 categories,默认空数组,不做预置类别检测。与 text_terms 至少声明一项;两项均传时一起生效。​
​
text_terms list of string Optional 示例值: ["示例品牌"]​
该段需要遮挡的自定义文字,默认空数组。每段最多 50 个去重后的非空词项,每项最多 64 个字符,首尾空白会去除。按 OCR 字面匹配,忽略全半角、大小写、标点和空白差异,不做语义审核;重复出现及合法重叠匹配分别处理。初始框采用命中字符范围;缺少可靠字符框时任务失败,不退化为整行遮挡。​
​
enable_audio_censor boolean Optional 示例值: true​
段内文字语音静音开关,默认 false,独立于全局同名开关。为 true 时,该段必须有 text_terms 或至少一个以 _text 结尾的文字类别。仅静音已检出文字对应的完整 ASR 词语音,并裁剪到该段边界,不加入提示音、不对整段静音。无文字命中、无对应语音或无音轨时不静音;有音轨但必要 ASR 或词时间戳不可用时任务失败。所有开启此项的段共享一次 ASR。​
​
​
​
​
​
返回数据​
metadata metadata​
请求元信息。​
task_id string 示例值: task-xxx​
异步任务 ID,用于 Poll 查询。​
​
task_status string 示例值: PENDING​
任务状态。​
​
business_code string 示例值: 0​
业务码,成功为 0。​
​
error_msg string​
异常详情。​
​
​
​
请求示例​
​
curl --location "https://operator.las.cn-beijing.volces.com/api/v1/submit" \​
--header "Content-Type: application/json" \​
--header "Authorization: Bearer $LAS_API_KEY" \​
--data '{​
"operator_id": "las_sensitive_blur",​
"operator_version": "v1",​
"data": {​
"url": "https://example.com/sensitive-sample.mp4",​
"output_tos_path": "tos://bucket/output",​
"mask_mode": "blur",​
"enable_audio_censor": true,​
"segments": [​
{"start_sec": 1.0, "end_sec": 3.0, "text_terms": ["示例品牌"], "enable_audio_censor": true},​
{"start_sec": 11.0, "end_sec": 14.0, "text_terms": ["示例品牌"], "enable_audio_censor": true},​
{"start_sec": 29.0, "end_sec": 31.0, "text_terms": ["示例品牌"], "enable_audio_censor": true}​
]​
}​
}'​
​
返回示例​
​
{​
"metadata": {​
"task_id": "task-xxx",​
"task_status": "PENDING",​
"business_code": "0",​
"error_msg": ""​
}​
}​
​
错误码​
​
​
HttpStatusCode​
错误码​
错误信息​
描述​
400​
Parameter.Missing​
Missing required parameter​
缺少必选参数​
400​
Parameter.Invalid​
invalid parameter​
参数不合法,例如无法自动判断媒体类型。分段请求还包括 segments 为空、超过 64 段、与全局 categories 同传、时间边界不合法、缺少段内规则或段内 enable_audio_censor 缺少文字规则。完全位于视频时长外的段在执行阶段以此业务码失败,需通过 Poll 查询​
400​
Url.Invalid​
Sensitive blur request failed​
输入 URL 协议不支持​
400​
SensitiveBlur.DownloadFailed​
Failed to download sensitive-blur input media​
输入媒体下载失败​
400​
SensitiveBlur.UploadFailed​
Failed to upload sensitive-blur output media​
输出媒体或结果 JSON 上传失败​
500​
SensitiveBlur.ProcessFailed​
Failed to process sensitive-blur video​
模型客户端初始化、媒体预处理或渲染等处理失败;也包括自定义词所需 OCR/字符框不可用、必要 ASR/词时间戳不可用或指定段内没有可处理视频帧​
401​
Authorization.Missing​
Missing Authorization.​
缺少平台鉴权​
401​
ApiKey.Invalid​
The api key is invalid.​
平台 API Key 不合法​
500​
InternalError​
Internal server error​
未预期的服务内部错误​
​
Poll​
接口说明​
查询敏感内容打码任务的执行状态和结果。​
请求参数​
​
​
名称​
类型​
是否必选​
示例值​
描述​
operator_id​
string​
是​
las_sensitive_blur​
算子 ID​
operator_version​
string​
是​
v1​
算子版本​
task_id​
string​
是​
task-xxx​
任务 ID​
​
返回数据​
metadata metadata​
请求元信息。​
task_id string 示例值: task-xxx​
任务 ID。​
​
task_status string 示例值: COMPLETED​
任务状态:PENDING、RUNNING、COMPLETED、FAILED、TIMEOUT。​
​
submit_time string 示例值: 2026-09-15T10:00:00+08:00​
任务提交时间,ISO 8601 格式。​
​
end_time string 示例值: 2026-09-15T10:03:00+08:00​
任务结束时间,ISO 8601 格式。​
​
business_code string 示例值: 0​
业务码,成功为 0。​
​
error_msg string​
异常详情。​
​
​
data SensitiveBlurResult​
任务处理结果。​
media_type string 示例值: video​
实际处理的媒体类型,image 或 video。​
​
processed boolean 示例值: true​
是否生成输出媒体。render_output=false 时为 false;未命中但已直通复制时仍为 true。​
​
output_tos_uri string 示例值: tos://bucket/output/xxx/output.mp4​
输出媒体的 TOS 地址;未生成输出媒体时为空。​
​
result_json_tos_uri string 示例值: tos://bucket/output/xxx/result.json​
完整检测结果 result.json 的 TOS 地址。对于视频,逐帧遮罩结果仅保存在该文件中,Poll 接口不直接返回 frames。​
​
coordinate_space string 示例值: normalized_0_999​
坐标空间,归一化到 0~999。​
​
fps float 示例值: 30.0​
仅视频返回。输入视频帧率。​
​
width integer 示例值: 1080​
仅视频返回。输入媒体宽度,单位像素。​
​
height integer 示例值: 1920​
仅视频返回。输入媒体高度,单位像素。​
​
total_frames integer 示例值: 1801​
仅视频返回。输入视频总帧数。​
​
masked_frame_count integer 示例值: 320​
仅视频返回。包含至少一个遮罩的帧数。​
​
mask_count integer 示例值: 408​
仅视频返回。所有帧的遮罩总数。​
​
audio_spans list of audio_span​
仅视频返回。音频消音区间列表;未命中或未执行音频审核时为空数组。分段模式只包含对应规则窗口内检出文字的静音区间;render_output=false 时为规划区间,不表示音频已经修改。​
start_sec float 示例值: 12.3​
消音区间起始时间,单位秒。​
​
end_sec float 示例值: 12.9​
消音区间结束时间,严格大于 start_sec。​
​
category string 示例值: abusive​
命中类别。全片音频审核使用 abusive、sexual 或 political;分段预置文字使用对应的 _text 类别;自定义词使用 custom_text。​
​
text string​
命中的 ASR 文本。分段模式为检出的敏感文字;自定义词保留请求中的原始词项。​
​
​
segments list of SensitiveBlurSegmentResult​
仅视频返回。分段任务按请求顺序返回回执;全片模式为 null。重叠段可能引用同一命中,各段的 visual_box_count 不能相加作为唯一目标总数。​
index integer 示例值: 0​
对应输入 segments 的下标。​
​
start_sec float 示例值: 1.0​
请求中的段起点。​
​
end_sec float 示例值: 3.0​
请求中的段终点。​
​
effective_start_sec float 示例值: 1.0​
实际生效起点,不会向前扩展。​
​
effective_end_sec float 示例值: 3.0​
实际生效终点;超出视频时长时截断。​
​
categories list of string​
该段请求的预置敏感类别。​
​
text_terms list of string​
该段请求的自定义词项。​
​
enable_audio_censor boolean​
该段请求的文字语音静音开关,不等同于已经执行静音。​
​
hit_categories list of string​
该段实际命中的类别;自定义词命中记为 custom_text。​
​
visual_box_count integer​
该段规则对应的视觉检测框数量,不是遮挡帧数。​
​
audio_muted boolean​
仅在输出媒体实际完成静音后为 true。​
​
​
visual_boxes list of visual_box​
仅图片返回。视觉检测框列表,坐标归一化到 0~999。​
x1 integer 示例值: 120​
左上角横坐标,取值范围为 0~999。​
​
y1 integer 示例值: 680​
左上角纵坐标,取值范围为 0~999。​
​
x2 integer 示例值: 310​
右下角横坐标,取值范围为 0~999。​
​
y2 integer 示例值: 740​
右下角纵坐标,取值范围为 0~999。​
​
category string 示例值: abusive_text​
敏感内容类别。​
​
text string 示例值: 敏感文字​
命中的文字;非文字类通常为空字符串。​
​
polygon array Optional 示例值: [[120,680],[310,680],[310,740],[120,740]]​
仅图片可能返回。文字检测框的多边形坐标,每个点为 [x, y],取值范围为 0~999。仅检测结果包含多边形信息时返回,否则省略;视频遮罩不返回该字段。​
​
​
stats image_stats​
仅图片返回。表示检测结果统计信息。视频不返回该字段,视频遮罩数量请查看 masked_frame_count 和 mask_count。​
visual_box_count integer 示例值: 3​
最终返回的检测框数量,等于 visual_boxes 数组长度。​
​
oversize_filtered integer 示例值: 0​
保留的统计字段,当前版本固定为 0。当前未启用大框过滤,也不支持通过请求参数配置。​
​
category_filtered integer 示例值: 1​
因不属于请求参数 categories 指定类别而被过滤的检测框数量;未指定 categories 时为 0。​
​
width integer 示例值: 1080​
输入图片宽度,单位像素。​
​
height integer 示例值: 1920​
输入图片高度,单位像素。​
​
​
​
​
​
视频逐帧遮罩的完整 frames 与 masks 数据仅保存在 result_json_tos_uri 指向的 result.json 中,Poll 接口不直接返回。​
frames list of frame​
视频逐帧遮罩列表。仅存在于 result_json_tos_uri 指向的 result.json 中。​
frame_index integer 示例值: 369​
帧序号,从 0 开始。​
​
timestamp_sec float 示例值: 12.3​
帧时间戳,单位秒;允许与 frame_index / fps 的计算结果存在 0.01 秒以内误差。​
​
masks list of mask​
当前帧的遮罩列表。仅存在于 result_json_tos_uri 指向的 result.json 中。​
x1 integer 示例值: 120​
左上角横坐标,取值范围为 0~999。​
​
y1 integer 示例值: 680​
左上角纵坐标,取值范围为 0~999。​
​
x2 integer 示例值: 310​
右下角横坐标,取值范围为 0~999。​
​
y2 integer 示例值: 740​
右下角纵坐标,取值范围为 0~999。​
​
category string 示例值: abusive_text​
敏感内容类别;分段自定义词使用 custom_text。​
​
text string 示例值: 敏感文字​
命中的文字;非文字类通常为空字符串。分段自定义词保留原始请求词项。​
​
​
​
​
请求示例​
​
curl --location "https://operator.las.cn-beijing.volces.com/api/v1/poll" \​
--header "Content-Type: application/json" \​
--header "Authorization: Bearer $LAS_API_KEY" \​
--data '{​
"operator_id": "las_sensitive_blur",​
"operator_version": "v1",​
"task_id": "task-xxx"​
}'​
​
返回示例​
​
{​
"metadata": {​
"task_id": "task-xxx",​
"task_status": "COMPLETED",​
"submit_time": "2026-09-15T10:00:00+08:00",​
"end_time": "2026-09-15T10:03:00+08:00",​
"business_code": "0",​
"error_msg": ""​
},​
"data": {​
"media_type": "video",​
"processed": true,​
"output_tos_uri": "tos://bucket/output/sensitive_sample_a1b2c3d4/sensitive_sample_sensitive_blur.mp4",​
"result_json_tos_uri": "tos://bucket/output/sensitive_sample_a1b2c3d4/result.json",​
"coordinate_space": "normalized_0_999",​
"fps": 30.0,​
"width": 1080,​
"height": 1920,​
"total_frames": 1801,​
"masked_frame_count": 120,​
"mask_count": 120,​
"audio_spans": [​
{​
"start_sec": 1.2,​
"end_sec": 1.7,​
"category": "custom_text",​
"text": "示例品牌"​
},​
{​
"start_sec": 11.7,​
"end_sec": 12.2,​
"category": "custom_text",​
"text": "示例品牌"​
},​
{​
"start_sec": 29.9,​
"end_sec": 30.4,​
"category": "custom_text",​
"text": "示例品牌"​
}​
],​
"segments": [​
{​
"index": 0,​
"start_sec": 1.0,​
"end_sec": 3.0,​
"effective_start_sec": 1.0,​
"effective_end_sec": 3.0,​
"categories": [],​
"text_terms": ["示例品牌"],​
"enable_audio_censor": true,​
"hit_categories": ["custom_text"],​
"visual_box_count": 2,​
"audio_muted": true​
},​
{​
"index": 1,​
"start_sec": 11.0,​
"end_sec": 14.0,​
"effective_start_sec": 11.0,​
"effective_end_sec": 14.0,​
"categories": [],​
"text_terms": ["示例品牌"],​
"enable_audio_censor": true,​
"hit_categories": ["custom_text"],​
"visual_box_count": 3,​
"audio_muted": true​
},​
{​
"index": 2,​
"start_sec": 29.0,​
"end_sec": 31.0,​
"effective_start_sec": 29.0,​
"effective_end_sec": 31.0,​
"categories": [],​
"text_terms": ["示例品牌"],​
"enable_audio_censor": true,​
"hit_categories": ["custom_text"],​
"visual_box_count": 4,​
"audio_muted": true​
}​
]​
}​
}​
​
错误码​
​
HttpStatusCode​
错误码​
错误信息​
描述​
400​
Parameter.Missing​
Missing required parameter​
缺少必选参数。​
400​
Parameter.Invalid​
invalid parameter​
参数不合法,包括完全位于视频时长外的段。执行阶段发现的错误通过 metadata.business_code 和 error_msg 上报,任务状态为 FAILED。​
400​
Url.Invalid​
Sensitive blur request failed​
输入 URL 协议不支持。​
400​
SensitiveBlur.DownloadFailed​
Failed to download sensitive-blur input media​
输入媒体下载失败。​
400​
SensitiveBlur.UploadFailed​
Failed to upload sensitive-blur output media​
输出媒体或结果 JSON 上传失败。​
500​
SensitiveBlur.ProcessFailed​
Failed to process sensitive-blur video​
模型客户端初始化、媒体预处理或渲染等处理失败。分段处理还包括自定义词所需 OCR/字符框、必要 ASR/词时间戳、段内视频帧不可用。​
401​
Authorization.Missing​
Missing Authorization.​
缺少平台鉴权。​
401​
ApiKey.Invalid​
The api key is invalid.​
平台 API Key 不合法。​
500​
InternalError​
Internal server error​
未预期的服务内部错误。​
​
​
最近更新时间:2026.10.28 20:17:20
这个页面对您有帮助吗?
有用
有用
无用
无用