简介
本文档提供关于图片审核的 API 概览和 SDK 示例代码。
注意
API | 操作描述 |
图片审核功能支持同步、异步请求方式,您可以通过本接口对图片文件进行内容审核。该接口属于 GET 请求。 | |
图片批量审核接口为同步请求方式,您可以通过本接口对多个图片文件进行内容审核。该接口属于 POST 请求。 | |
本接口用于主动查询指定的图片审核任务结果。 |
单次图片审核
功能说明
图片审核功能支持同步、异步请求方式,您可以通过本接口对图片文件进行内容审核。该接口属于 GET 请求。
方法原型
public Guzzle\\Service\\Resource\\Model detectImage(array $args = array());
请求示例
示例一:审核某个存储桶路径下的图片
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为 https'credentials' => array('secretId' => $secretId,'secretKey' => $secretKey)));try {//存储桶图片审核$result = $cosClient->detectImage(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => 'test.png', // 桶文件'ci-process' => 'sensitive-content-recognition',// 'BizType' => '', // 可选 定制化策略,不传走默认策略// 'Interval' => 5, // 可选 审核 GIF 时使用 截帧的间隔// 'MaxFrames' => 5, // 可选 针对 GIF 动图审核的最大截帧数量,需大于0。// 'LargeImageDetect' => '',// 'DataId' => '',// 'Async' => '',// 'Callback' => '',));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
示例二:审核图片 URL
<?phprequire dirname(__FILE__) . '/../vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为 https'credentials' => array('secretId' => $secretId,'secretKey' => $secretKey)));try {//图片链接审核$imgUrl = 'https://test.jpg';$result = $cosClient->detectImage(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => '/', // 链接图片资源路径写 / 即可'ci-process' => 'sensitive-content-recognition','DetectUrl' => $imgUrl,// 'BizType' => '', // 可选 定制化策略,不传走默认策略// 'Interval' => 5, // 可选 审核 GIF 时使用 截帧的间隔// 'MaxFrames' => 5, // 可选 针对 GIF 动图审核的最大截帧数量,需大于0。// 'LargeImageDetect' => '',// 'DataId' => '',// 'Async' => '',// 'Callback' => '',));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
单次审核参数说明
Request 中的主要参数描述如下:
参数名称 | 描述 | 类型 | 是否必选 |
Key | COS 存储桶中的图片文件名称,COS 存储桶由 Host 指定,例如在北京的 examplebucket-1250000000存储桶中的目录 test 下的文件 img.jpg,则 Host 填写 examplebucket-1250000000.cos.ap-beijing.myqcloud.com,Key 填写 test/img.jpg。 | String | 否 |
ci-process | 标识数据处理功能的字段,内容审核的值为:sensitive-content-recognition。 | String | 是 |
BizType | 表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如涉黄、广告、违法违规等,配置指引: 设置公共审核策略。您可以在控制台上获取到 biz-type。biz-type 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。 biz-type 不填写时,将自动使用默认的审核策略。 | String | 否 |
DetectUrl | 您可以通过填写 detect-url 审核任意公网可访问的图片链接不填写 detect-url 时,后台会默认审核 ObjectKey 填写了 detect-url 时,后台会审核 detect-url 链接,无需再填写 ObjectKey detect-url 示例:http://www.example.com/abc.jpg 。 | String | 否 |
Interval | 审核 GIF 动图时,可使用该参数进行截帧配置,代表截帧的间隔。例如值设为5,则表示从第1帧开始截取,每隔5帧截取一帧,默认值5。 | Int | 否 |
MaxFrames | 针对 GIF 动图审核的最大截帧数量,需大于0。例如值设为5,则表示最大截取5帧,默认值为5。 | Int | 否 |
LargeImageDetect | 对于超过大小限制的图片是否进行压缩后再审核,取值为: 0(不压缩),1(压缩)。默认为0。 注:压缩最大支持32MB的图片,且会收取图片压缩费用。对于 GIF 等动态图过大时,压缩时间较长,可能会导致审核超时失败。 | Int | 否 |
DataId | 图片标识,该字段在结果中返回原始内容,长度限制为512字节。 | String | 否 |
Async | 请求方式参数,有效值: 0(同步返回结果),1(异步进行审核),默认值为0。 | Int | 否 |
Callback | 回调地址,审核结果(Detail版本)以回调形式发送至您的回调地址,仅在异步审核时生效,支持以 http:// 或者 https:// 开头的地址,例如: http://www.callback.com 。 | String | 否 |
返回结果
批量图片审核
功能说明
图片批量审核接口为同步请求方式,您可以通过本接口对多个图片文件进行内容审核。该接口属于 POST 请求。
方法原型
public Guzzle\\Service\\Resource\\Model detectImages(array $args = array());
请求示例
<?phprequire dirname(__FILE__, 2) . '/vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为 https'credentials' => array('secretId' => $secretId,'secretKey' => $secretKey)));try {// 获取图片base64编码// $localImageFile = '/tmp/test.jpg';// $img = file_get_contents($localImageFile);// $imgInfo = getimagesize($localImageFile);// $imgBase64Content = base64_encode($img);$result = $cosClient->detectImages(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由 BucketName-Appid 组成,可以在 COS 控制台查看 https://console.cloud.tencent.com/cos5/bucket'Inputs' => array(array('Object' => 'test01.png', // 桶文件// 'Interval' => '', // 可选 审核 GIF 时使用 截帧的间隔// 'MaxFrames' => '', // 可选 针对 GIF 动图审核的最大截帧数量,需大于0。// 'DataId' => 'aaa', // 可选 图片标识,该字段在结果中返回原始内容,长度限制为512字节// 'LargeImageDetect' => 1, // 对于超过大小限制的图片是否进行压缩后再审核,取值为: 0(不压缩),1(压缩)。默认为0。注:压缩最大支持32M的图片,且会收取压缩费用// 'UserInfo' => array(// 'TokenId' => '',// 'Nickname' => '',// 'DeviceId' => '',// 'AppId' => '',// 'Room' => '',// 'IP' => '',// 'Type' => '',// 'ReceiveTokenId' => '',// 'Gender' => '',// 'Level' => '',// 'Role' => '',// ), // 可选 用户业务字段// 'Encryption' => array(// 'Algorithm' => '',// 'Key' => '',// 'IV' => '',// 'KeyId' => '',// 'KeyType' => 0,// ), // 可选 文件加密信息。如果图片未做加密则不需要使用该字段,如果设置了该字段,则会按设置的信息解密后再做审核。),array('Url' => 'http://example.com/test.png', // 图片URL// 'Interval' => 5, // 可选 审核 GIF 时使用 截帧的间隔// 'MaxFrames' => 5, // 可选 针对 GIF 动图审核的最大截帧数量,需大于0。// 'DataId' => 'bbb', // 可选 图片标识,该字段在结果中返回原始内容,长度限制为512字节// 'LargeImageDetect' => 1, // 对于超过大小限制的图片是否进行压缩后再审核,取值为: 0(不压缩),1(压缩)。默认为0。注:压缩最大支持32M的图片,且会收取压缩费用// 'UserInfo' => array(// 'TokenId' => '',// 'Nickname' => '',// 'DeviceId' => '',// 'AppId' => '',// 'Room' => '',// 'IP' => '',// 'Type' => '',// 'ReceiveTokenId' => '',// 'Gender' => '',// 'Level' => '',// 'Role' => '',// ), // 可选 用户业务字段// 'Encryption' => array(// 'Algorithm' => '',// 'Key' => '',// 'IV' => '',// 'KeyId' => '',// 'KeyType' => 0,// ), // 可选 文件加密信息。如果图片未做加密则不需要使用该字段,如果设置了该字段,则会按设置的信息解密后再做审核。),// array(// 'Content' => $imgBase64Content, // 图片文件的内容,需要先经过 base64 编码。注:Content方式提交图片不支持文件加密方式//// 'Interval' => 5, // 可选 审核 GIF 时使用 截帧的间隔//// 'MaxFrames' => 5, // 可选 针对 GIF 动图审核的最大截帧数量,需大于0。//// 'DataId' => 'ccc', // 可选 图片标识,该字段在结果中返回原始内容,长度限制为512字节// ),),// 'Conf' => array(// 'BizType' => '', // 可选 定制化策略,不传走默认策略// 'Async' => 0, // 可选 是否异步进行审核,0:同步返回结果,1:异步进行审核。默认值为 0。// 'Callback' => '', // 可选 审核结果(Detail版本)以回调形式发送至您的回调地址// 'Freeze' => array(// 'PornScore' => 90,// 'AdsScore' => 90,// 'PoliticsScore' => 90,// 'TerrorismScore' => 90,// ), // 可选 可通过该字段,设置根据审核结果给出的不同分值,对图片进行自动冻结,仅当`input`中审核的图片为`object`时有效。// ) // 可选 在BizType不传的情况下,走默认策略及默认审核场景。));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
批量审核参数说明
Request 中的主要参数描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Input | Request | 需要审核的内容,如有多个图片,请传入多个 Input 结构。 | Container Array | 是 |
Conf | Request | 审核规则配置。 | Container | 是 |
Container 类型 Input 的具体数据描述如下,使用其中一种:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
Object | Request.Input | 存储在 COS 存储桶中的图片文件名称,例如在目录 test 中的文件 image.jpg,则文件名称为 test/image.jpg。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Url | Request.Input | 图片文件的链接地址,例如 http://a-1250000.cos.ap-shanghai.myqcloud.com/image.jpg 。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Content | Request.Input | 图片文件的内容,需要先经过 base64 编码。Content,Object 和 Url 只能选择其中一种,传入多个时仅一个生效,按 Content,Object, Url 顺序。 | String | 否 |
Interval | Request.Input | 截帧频率,GIF 图检测专用,默认值为5,表示从第一帧(包含)开始每隔5帧截取一帧。 | Int | 否 |
MaxFrames | Request.Input | 最大截帧数量,GIF 图检测专用,默认值为5,表示只截取 GIF 的5帧图片进行审核,必须大于0。 | Int | 否 |
DataId | Request.Input | 图片标识,该字段在结果中返回原始内容,长度限制为512字节。 | String | 否 |
LargeImageDetect | Request.Input | 对于超过大小限制的图片是否进行压缩后再审核,取值为: 0(不压缩),1(压缩)。默认为0。注:压缩最大支持32M的图片,且会收取压缩费用。 | Int | 否 |
UserInfo | Request.Input | 用户业务字段。 | Container | 否 |
Container 节点 UserInfo 的内容:
节点名称(关键字) | 描述 | 类型 | 是否必选 |
TokenId | 一般用于表示账号信息,长度不超过128字节。 | String | 否 |
Nickname | 一般用于表示昵称信息,长度不超过128字节。 | String | 否 |
DeviceId | 一般用于表示设备信息,长度不超过128字节。 | String | 否 |
AppId | 一般用于表示 App 的唯一标识,长度不超过128字节。 | String | 否 |
Room | 一般用于表示房间号信息,长度不超过128字节。 | String | 否 |
IP | 一般用于表示 IP 地址信息,长度不超过128字节。 | String | 否 |
Type | 一般用于表示业务类型,长度不超过128字节。 | String | 否 |
ReceiveTokenId | 一般用于表示接收消息的用户账号,长度不超过128字节。 | String | 否 |
Gender | 一般用于表示性别信息,长度不超过128字节。 | String | 否 |
Level | 一般用于表示等级信息,长度不超过128字节。 | String | 否 |
Role | 一般用于表示角色信息,长度不超过128字节。 | String | 否 |
Container 类型 Conf 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
BizType | Request.Conf | 表示审核策略的唯一标识,您可以通过控制台上的审核策略页面,配置您希望审核的场景,如涉黄、广告、违法违规等,配置指引: 设置公共审核策略。您可以在控制台上获取到 BizType。BizType 填写时,此条审核请求将按照该审核策略中配置的场景进行审核。BizType 不填写时,将自动使用默认的审核策略。 | String | 否 |
Async | Request.Conf | 是否异步进行审核,0:同步返回结果,1:异步进行审核。默认值为 0。 | Integer | 否 |
Callback | Request.Conf | 审核结果(Detail版本)以回调形式发送至您的回调地址,异步审核时生效,支持以 http:// 或者 https:// 开头的地址,例如:http://www.callback.com 。 | String | 否 |
Freeze | Request.Conf | 可通过该字段,设置根据审核结果给出的不同分值,对图片进行自动冻结,仅当 input 中审核的图片为 object 时有效。 | Container | 否 |
Container 类型 Freeze 的具体数据描述如下:
节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
PornScore | Request.Conf.Freeze | 取值为[0,100],表示当色情审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
AdsScore | Request.Conf.Freeze | 取值为[0,100],表示当广告审核结果大于或等于该分数时,自动进行冻结操作。不填写则表示不自动冻结,默认值为空。 | Integer | 否 |
返回结果
查询图片审核结果
功能说明
本接口用于主动查询指定的图片审核任务结果。
方法原型
public Guzzle\\Service\\Resource\\Model getDetectImageResult(array $args = array());
请求示例
<?phprequire dirname(__FILE__, 2) . '/vendor/autoload.php';$secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi$region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket$cosClient = new Qcloud\\Cos\\Client(array('region' => $region,'schema' => 'https', // 审核时必须为https'credentials'=> array('secretId' => $secretId ,'secretKey' => $secretKey)));try {$result = $cosClient->getDetectImageResult(array('Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket'Key' => '', // jobId));// 请求成功print_r($result);} catch (\\Exception $e) {// 请求失败echo($e);}
参数说明
Request 中的具体数据描述如下:
参数名称 | 类型 | 描述 | 是否必填 |
Bucket | String | 存储桶名称,格式:BucketName-APPID。 | 是 |
Key | String | 需要查询的任务 ID。 | 是 |
返回结果示例
GuzzleHttp\\Command\\Result Object([RequestId] => NjEzZTBjZWRfZmNjYTNiMGFfNGM2M18zZGUzNzc=[ContentType] => application/xml[ContentLength] => 1053[JobsDetail] => Array([JobId] => sd48e1ea1213d411ec953452540024deb5[State] => Success[CreationTime] => 2023-05-15T16:02:39+08:00[Object] => terrorism/枪械.jpeg[CompressionResult] => 0[Text] =>[Label] => Terrorism[Category] => Firearms[SubLabel] => Gun[Result] => 1[Score] => 99[ForbidState] => 0[PornInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[Category] =>[SubLabel] =>)[AdsInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[Category] =>[SubLabel] =>)[PoliticsInfo] => Array([HitFlag] => 0[Score] => 0[Label] =>[Category] =>[SubLabel] =>)[TerrorismInfo] => Array([HitFlag] => 1[Score] => 99[Label] => Gun[Category] => Firearms[SubLabel] => Gun))[Key] => sd48e1ea1213d411ec953452540024deb5[Bucket] => examplebucket-1250000000[Location] => examplebucket-1250000000.ci.ap-guangzhou.myqcloud.com/image/auditing/sd48e1ea1213d411ec953452540024deb5)