这篇主要讲解触发画面审核回调事件后,腾讯云直播发送给用户的回调消息通知字段。
一、注意事项
·阅读这篇之前,希望你已经了解腾讯云直播是如何配置回调功能、你是如何接收回调消息的,具体请参见 如何接收事件通知。
·直播画面审核默认只会将可疑违规结果进行回调,正常结果不会回调。
·建议使用回调消息参数中的:type、score、suggestion 这三个参数对违规图片进行评判,由于检测系统判定无法做到100%准确率,有少量图片会识别成疑似违规或识别结果不对,可根据实际应用场景判断是否需要进行人工二次确认。
·此前对画面审核业务进行了版本升级,调整了部分回调消息参数,建议你以最新版本的为准,参考下文中的参数说明即可。为了兼容客户使用老版本,还是会回调一部分当前无用的参数到接收服务器上,这部分参数包括:tid、abductionRisk、confidence、normalScore、hotScore、pornScore、terrorScore、polityScore、illegalScore、similarScore、abuseScore、teenagerScore、adScore、customScore。
二、事件类型参数
| 事件类型 | 字段取值说明 |
| 直播画面审核 | event_type = 317 |
三、回调公共参数
| 字段名称 | 类型 | 说明 |
| t | int64 | 过期时间,事件通知签名过期 UNIX 时间戳。来自腾讯云的消息通知默认过期时间是10分钟,如果一条消息通知中的 t 值所指定的时间已经过期,则可以判定这条通知无效,进而可以防止网络重放攻击。t 的格式为十进制 UNIX 时间戳,即从1970年01月01日(UTC/GMT 的午夜)开始所经过的秒数。 |
| sign | string | 事件通知安全签名 sign = MD5(key + t)。说明:腾讯云把加密 key 和 t 进行字符串拼接后通过 MD5 计算得出 sign 值,并将其放在通知消息里,你的后台服务器在收到通知消息后可以根据同样的算法确认 sign 是否正确,进而确认消息是否确实来自腾讯云后台。 |
注意:key 为 功能配置>直播回调 中的回调密钥,主要用于鉴权。为了保护你的数据信息安全,建议你填写。
注意:
四、回调消息参数
| 参数 | 是否必填 | 数据类型 | 描述 |
| streamId | 必填 | String | 流名称。 |
| channelId | 必填 | string | 频道 ID。 |
| img | 必填 | string | 预警图片链接。 |
| type | 必填 | Array | 指检测结果中优先级最高的恶意标签对应的分类值,具体含义可参考参数 label 返回的补充文字描述。 |
| score | 必填 | Array | type 对应的评分。 |
| ocrMsg | 选填 | string | 图片的 OCR 识别信息(如果存在)。 |
| suggestion | 必填 | string | 建议值,取值可选:Block:打击Review:待复审Pass:正常 |
| label | 选填 | string | 该字段用于返回检测结果(labelResults,objectResults,ocrResults)中所对应的分值最高的恶意标签,表示模型推荐的审核结果,建议你按照业务所需,对不同违规类型与建议值进行处理。 |
| subLabel | 必填 | string | 该字段用于返回检测结果所命中优先级最高的恶意标签下的子标签名称,如:色情–性行为;若未命中任何子标签则返回空字符串。 |
| labelResults | 选填 | Array of LabelResult | 该字段用于返回分类模型命中的恶意标签的详细识别结果,包括涉黄、违法违规、广告等令人反感、不安全或不适宜的内容类型识别结果。注意:此字段可能返回 null,表示取不到有效值。 |
| objectResults | 选填 | Array of ObjectResult | 该字段用于返回物体检测模型的详细检测结果;包括:实体、广告台标、二维码等内容命中的标签名称、标签分数、坐标信息、场景识别结果、建议操作等内容识别信息;详细返回值信息可参阅对应的数据结构(ObjectResults)描述。注意:此字段可能返回 null,表示取不到有效值。 |
| ocrResults | 选填 | Array of OcrResult | 该字段用于返回OCR文本识别的详细检测结果;包括:文本坐标信息、文本识别结果、建议操作等内容识别信息;详细返回值信息可参阅对应的数据结构(OcrResults)描述。注意:此字段可能返回 null,表示取不到有效值。 |
| libResults | 选填 | Array of LibResult | 风险图库审核结果。 |
| screenshotTime | 必填 | Number | 截图时间。 |
| sendTime | 必填 | Number | 请求发送时间,UNIX 时间戳。 |
| stream_param | 必填 | String | 推流参数。 |
| app | 必填 | String | 推流域名。 |
| appid | 必填 | Number | 业务 ID。 |
| appname | 必填 | String | 推流 path 路径。 |
五、LabelResult
分类模型命中结果。
| 名称 | 类型 | 描述 |
| Scene | String | 返回模型识别出的场景结果,如广告、色情、违法违规有害内容等场景。 |
| Suggestion | String | 返回针对当前恶意标签的后续操作建议。当你获取到判定结果后,返回值表示系统推荐的后续操作;建议你按照业务所需,对不同违规类型与建议值进行处理。 返回值:Block:建议屏蔽Review :建议人工复审Pass:建议通过 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| SubLabel | String | 子标签名称。 |
| Score | Integer | 该标签模型命中的分值。 |
| Details | Array of LabelDetailItem | 分类模型命中子标签明细结果。 |
六、LabelDetailItem
分类模型命中子标签结果。
| 名称 | 类型 | 描述 |
| Id | Integer | 序号。 |
| Name | String | 子标签名称。 |
| Score | Integer | 子标签分数,取值范围0分 – 100分。 |
七、ObjectResult
实体检测结果详情。
| 名称 | 类型 | 描述 |
| Scene | String | 返回实体识别出的实体场景结果,如二维码、logo、图片 OCR 等场景。 |
| Suggestion | String | 返回针对当前恶意标签的后续操作建议。当你获取到判定结果后,返回值表示系统推荐的后续操作;建议你按照业务所需,对不同违规类型与建议值进行处理。返回值:Block:建议屏蔽Review :建议人工复审Pass:建议通过 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| SubLabel | String | 子标签名称。 |
| Score | Integer | 所属场景模型命中子标签的分值,取值范围0分 – 100分。 |
| Names | Array of String | 实体名称列表。 |
| Details | Array of ObjectDetail | 实体检测结果明细。 |
八、ObjectDetail
实体检测结果明细,当检测场景为实体、广告台标、二维码时表示模型检测目标框的标签名称、标签值、标签分数以及检测框的位置信息。
| 名称 | 类型 | 描述 |
| Id | Integer | 该参数用于返回识别对象的 ID 以方便识别和区分。 |
| Name | String | 该参数用于返回命中的实体标签。 |
| Value | String | 该参数用于返回对应实体标签所对应的值或内容。如:当标签为二维码(QrCode)时,该字段为识别出的二维码对应的 URL 地址。 |
| Score | Integer | 该参数用于返回对应实体标签命中的分值,取值为0-100,如:QrCode 99 则代表相应识别内容命中二维码场景标签的概率非常高。 |
| Location | Location | 该字段用于返回实体检测框的坐标位置(左上角xy坐标、长宽、旋转角度)以方便快速定位实体的相关信息。 |
九、Location
坐标。
| 名称 | 类型 | 描述 |
| X | Float | 左上角横坐标。 |
| Y | Float | 左上角纵坐标。 |
| Width | Float | 宽度。 |
| Height | Float | 高度。 |
| Rotate | Float | 检测框的旋转角度。 |
十、OcrResult
OCR 结果检测详情。
| 名称 | 类型 | 描述 |
| Scene | String | 表示识别场景,取值默认为 OCR(图片 OCR 识别)。 |
| Suggestion | String | 返回优先级最高的恶意标签对应的后续操作建议。当你获取到判定结果后,返回值表示系统推荐的后续操作;建议你按照业务所需,对不同违规类型与建议值进行处理。返回值:Block:建议屏蔽Review :建议人工复审Pass:建议通过 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| SubLabel | String | 子标签名称。 |
| Score | Integer | 所属场景模型命中子标签的分值,取值范围0分 – 100分。 |
| Text | String | 文本内容。 |
| Details | Array of OcrTextDetail | OCR 结果详情。 |
十一、OcrTextDetail
OCR 文本结果详情。
| 名称 | 类型 | 描述 |
| Text | String | 返回 OCR 识别出的文本内容(OCR 文本识别上限在5000字节内) 。 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| Keywords | Array of String | 该标签下命中的关键词。 |
| Score | Integer | 该标签模型命中的分值,取值范围0分 – 100分。 |
| Location | Location | OCR 文本坐标位置。 |
十二、LibResult
黑白库结果明细。
| 名称 | 类型 | 描述 |
| Scene | String | 表示模型的场景识别结果,默认取值为 Similar。 |
| Suggestion | String | 返回后续操作建议。当你获取到判定结果后,返回值表示系统推荐的后续操作;建议你按照业务所需,对不同违规类型与建议值进行处理。 返回值:Block:建议屏蔽Review :建议人工复审Pass:建议通过 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| SubLabel | String | 子标签名称。 |
| Score | Integer | 图片检索模型识别分值,取值范围0分 – 100分。 |
| Details | Array of LibDetail | 黑白库结果明细。 |
十三、LibDetail
自定义库/黑白库明细。
| 名称 | 类型 | 描述 |
| Id | Integer | 序号。 |
| ImageId | String | 图片 ID。 |
| Label | String | 该字段用于返回检测结果所对应的恶意标签。 |
| Tag | String | 自定义标签。 |
| Score | Integer | 模型识别分值,取值范围0分 – 100分。 |
十四、回调消息示例
{ "ocrMsg": "", "type": [1], "score": [99], "screenshotTime": 1610640000, "level": 0, "img": "http://1.1.1.1/download/porn/test.jpg", "faceDetails": [], "sendTime": 1615859827, "suggestion": "Block", "label": "Porn", "subLabel": "PornHigh", "labelResults": [{ "HitFlag": 0, "Scene": "Illegal", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Details": [] }, { "HitFlag": 1, "Scene": "Porn", "Suggestion": "Block", "Label": "Porn", "SubLabel": "PornHigh", "Score": 99, "Details": [{ "Id": 0, "Name": "PornHigh", "Score": 99 }, { "Id": 1, "Name": "WomenChest", "Score": 99 }] }, { "HitFlag": 0, "Scene": "Sexy", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Details": [] }, { "HitFlag": 0, "Scene": "Terror", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Details": [] }], "objectResults": [{ "HitFlag": 0, "Scene": "QrCode", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Names": [], "Details": [] }, { "HitFlag": 0, "Scene": "MapRecognition", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Names": [], "Details": [] }, { "HitFlag": 0, "Scene": "PolityFace", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Names": [], "Details": [] }], "ocrResults": [{ "HitFlag": 0, "Scene": "OCR", "Suggestion": "Pass", "Label": "Normal", "SubLabel": "", "Score": 0, "Text": "", "Details": [] }], "streamId": "teststream", "channelId": "teststream", "stream_param": "txSecret=40f38f69f574fd51126c421a3d96c374&txTime=5DEBEC80", "app": "5000.myqcloud.com", "appname": "live", "appid": 10000, "event_type": 317, "sign": "ac920c3e66**********78cf1b5de2c63", "t": 1615860427}