图像审核
概述
图像审核服务是百度智能云对外提供的图像智能审核服务,支持对图像的多个维度进行审核,包括色情识别、暴恐识别、政治敏感识别、恶心图识别、广告识别等。图像审核应用场景广泛,例如游戏、社交、论坛、生活服务类、UGC等场景。如游戏厂商需要对玩家上传的自定义头像进行审核,就可以借助图像审核服务对头像进行审核。
图像审核服务和BOS进行了深度集成,您可以通过BOS API、SDK、CLI等方式调用图像审核能力。
计费方式
作为图像审核服务的调用入口,BOS仅收取BOS API的请求费用,详细信息请参考BOS产品定价。
图像审核服务的费用由图像审核产品收取,详细信息请参考图像审核产品文档。
开通图像审核服务
目前百度智能云支持对BOS上的图像进行审核,支持主动调用图像审核API接口与图像自动审核,图像自动审核功能,您需先通过控制台开通图像审核服务,图审规则生效后,您新上传的文件将自动被审核,您可以通过控制台、SDK、CLI等方式上传Object到BOS上。
- 控制台开通图像审核服务,参考控制台设置图像审核服务。
- 开通图像审核服务后用户可以通过BOS CLI工具或者BOS API接口调用图像审核功能,下文详细介绍API接口。
API接口
此接口用于请求图像审核服务。
说明:使用本接口需要先在控制台开通图像审核服务。
请求
-
请求语法
POST <ObjectName>?process HTTP/1.1 Host: <BucketName>.bj.bcebos.com Date: <Date> Authorization: <AuthorizationString> Content-Type: application/json; charset=utf-8 Content-Length: <ContentLength> { "action" : { "sync" : [{ "url" : "$(img-censor)", "parameters" : "<base64_encode(param)>", } ] } }
-
请求参数
- url:固定取值为
$(img-censor)
,不需要修改。 -
parameters:此项值是对图像审核功能参数进行base64编码而成。图像审核功能参数依然是个json字符串。
图像审核功能参数基本结构:
{ "antiporn" : {}, "terror" : {}, "ocr" : { "detect_direction" : "false", "language_type" : "CHN_ENG", "recognize_granularity" : "big" } }
可以为多个子服务的按需任意组合,也可以为单个子服务如“鉴黄”,此时参数写成
{ "antiporn" : {} }
图像审核服务支持的子服务列表有:
- ocr:通用文字识别
- face:人脸探测
- antiporn:色情识别
- politician:政治人物识别
- terror:暴恐识别
- public 公众人物识别
- disgust 恶心图识别
- watermark:水印二维码识别
- quality:图像质量识别 value为各底层服务参数,参照河图OCR通用文字识别服务入参。
详细的子服务请求参数及返回参数解释参见下文详细解释。
- url:固定取值为
-
请求头域
无
响应
- 响应头域 无
-
响应元素
参见各子服务的返回参数解释。
示例
-
请求示例
{ "antiporn": {}, "ocr": { "detect_direction": "false", "language_type": "CHN_ENG", "recognize_granularity": "big" } }
base64编码后
eyJhbnRpcG9ybiI6e30sIm9jciI6eyJkZXRlY3RfZGlyZWN0aW9uIjoiZmFsc2UiLCJsYW5ndWFnZV90eXBlIjoiQ0hOX0VORyIsInJlY29nbml6ZV9ncmFudWxhcml0eSI6ImJpZyJ9fQ==
填充到parameters中,发送的请求如下:
POST <ObjectName>?process HTTP/1.1
Host: <BucketName>.bj.bcebos.com
Date: <Date>
Authorization: <AuthorizationString>
Content-Type: application/json; charset=utf-8
Content-Length: <ContentLength>
{
"action" : {
"sync" : [{
"url" : "$(img-censor)",
"parameters" : "eyJhbnRpcG9ybiI6e30sIm9jciI6eyJkZXRlY3RfZGlyZWN0aW9uIjoiZmFsc2UiLCJsYW5ndWFnZV90eXBlIjoiQ0hOX0VORyIsInJlY29nbml6ZV9ncmFudWxhcml0eSI6ImJpZyJ9fQ==",
}
]
}
}
-
成功响应示例
HTTP/1.1 200 OK Date: Thu, 22 Jun 2017 07:30:56 GMT Content-Type: application/json; charset=utf-8 Content-Length: 237 Connection: keep-alive Server: BceBos x-bce-debug-id: MTAuNzUuNzguNDA6VGh1LCAyMiBKdW4gMjAxNyAxNTozMDo1NiBDU1Q6MTg1MDY5NDg3OQ== x-bce-request-id: 598f7e18-77fb-424a-bc68-95acb0644076 { "result" : { "antiporn" : { "result" : [{ "probability" : 0.000071, "class_name" : "色情" }, { "probability" : 0.000291, "class_name" : "性感" }, { "probability" : 0.999638, "class_name" : "正常" } ], "log_id" : 1853911322, "result_num" : 3 }, "ocr" : { "log_id" : 2471272194, "words_result_num" : 2, "words_result" : [{ "words" : " TSINGTAO" }, { "words" : "青島" } ] } }, "log_id" : 149811665151162 }
-
失败返回示例
{ "log_id": 149319909347709, "error_code": 216500, "error_msg": "unknown error" }
失败error_code解释:
错误码 错误信息 描述 216101 not enough param 参数不足 216102 service not support 输入了不支持的底层服务类型 216200 empty imge 没有图片Url 216500 unknown error 未知错误 282804 download image error 图片下载失败 282000 logic internal error 业务逻辑层错误
ocr
功能
用户向服务请求识别某张图中的所有文字。
请求参数
参数 | 是否必选 | 类型 | 可选值范围 | 说明 |
---|---|---|---|---|
language_type | 否 | string | CHN_ENG、ENG、POR、FRE、GER、ITA、SPA、RUS、JAP、KOR | 识别语言类型,默认为CHN_ENG。可选值包括:- CHN_ENG:中英文混合;- ENG:英文;- POR:葡萄牙语;- FRE:法语;- GER:德语;- ITA:意大利语;- SPA:西班牙语;- RUS:俄语;- JAP:日语;- KOR:韩语 |
detect_direction | 否 | boolean | true、false | 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:- true:检测朝向;- false:不检测朝向 |
detect_language | 否 | string | true、false | 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语) |
probability | 否 | string | true、false | 是否返回识别结果中每一行的置信度 |
返回参数
字段 | 是否必选 | 类型 | 说明 |
---|---|---|---|
direction | 否 | int32 | 图像方向,当detect_direction=true时存在。- -1:未定义,- 0:正向,- 1: 逆时针90度,- 2:逆时针180度,- 3:逆时针270度 |
log_id | 是 | uint64 | 唯一的log id,用于问题定位 |
words_result | 是 | array() | 识别结果数组 |
words_result_num | 是 | uint32 | 识别结果数,表示words_result的元素个数 |
+words | 否 | string | 识别结果字符串 |
probability | 否 | object | 识别结果中每一行的置信度值,包含average:行置信度平均值,variance:行置信度方差,min:行置信度最小值 |
返回示例
{
"log_id": 2471272194,
"words_result_num": 2,
"words_result":
[
{"words": " TSINGTAO"},
{"words": "青島睥酒"}
]
}
face
功能
- 检测请求图片中的人脸,返回人脸位置、72个关键点坐标、及人脸相关属性信息。
- 检测响应速度,与图片中人脸数量相关,人脸数量较多时响应时间会有些许延长。
- 典型应用场景:如人脸属性分析,基于人脸关键点的加工分析,人脸营销活动等。
- 五官位置会标记具体坐标;72个关键点坐标也包含具体坐标,但不包含对应位置的详细位置描述。
请求参数
无
返回参数
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
log_id | uint64 | 是 | 日志id |
result_num | uint32 | 是 | 人脸数目 |
result | object[] | 是 | 人脸属性对象的集合 |
+age | double | 否 | 年龄。face_fields包含age时返回 |
+beauty | double | 否 | 美丑打分,范围0-100,越大表示越美。face_fields包含beauty时返回 |
+location | object | 是 | 人脸在图片中的位置 |
++left | uint32 | 是 | 人脸区域离左边界的距离 |
++top | uint32 | 是 | 人脸区域离上边界的距离 |
++width | uint32 | 是 | 人脸区域的宽度 |
++height | uint32 | 是 | 人脸区域的高度 |
+face_probability | double | 是 | 人脸置信度,范围0-1 |
+rotation_angle | int32 | 是 | 人脸框相对于竖直方向的顺时针旋转角,[-180,180] |
+yaw | double | 是 | 三维旋转之左右旋转角[-90(左), 90(右)] |
+pitch | double | 是 | 三维旋转之俯仰角度[-90(上), 90(下)] |
+roll | double | 是 | 平面内旋转角[-180(逆时针), 180(顺时针)] |
+expression | uint32 | 否 | 表情,0,不笑;1,微笑;2,大笑。face_fields包含expression时返回 |
+expression_probability | double | 否 | 表情置信度,范围0~1。face_fields包含expression时返回 |
+faceshape | object[] | 否 | 脸型置信度。face_fields包含faceshape时返回 |
++type | string | 是 | 脸型:square/triangle/oval/heart/round |
++probability | double | 是 | 置信度:0~1 |
+gender | string | 否 | male、female。face_fields包含gender时返回 |
+gender_probability | double | 否 | 性别置信度,范围0~1。face_fields包含gender时返回 |
+glasses | uint32 | 否 | 是否带眼镜,0-无眼镜,1-普通眼镜,2-墨镜。face_fields包含glasses时返回 |
+glasses_probability | double | 否 | 眼镜置信度,范围0~1。face_fields包含glasses时返回 |
+landmark | object[] | 否 | 4个关键点位置,左眼中心、右眼中心、鼻尖、嘴中心。face_fields包含landmark时返回 |
++x | uint32 | 否 | x坐标 |
++y | uint32 | 否 | y坐标 |
+landmark72 | object[] | 否 | 72个特征点位置,示例图 。face_fields包含landmark时返回 |
++x | uint32 | 否 | x坐标 |
++y | uint32 | 否 | y坐标 |
+race | string | 否 | yellow、white、black、arabs。face_fields包含race时返回 |
+race_probability | double | 否 | 人种置信度,范围0~1。face_fields包含race时返回 |
+qualities | object | 否 | 人脸质量信息。face_fields包含qualities时返回 |
++occlusion | object | 是 | 人脸各部分遮挡的概率, [0, 1] (待上线) |
+++left_eye | double | 是 | 左眼 |
+++right_eye | double | 是 | 右眼 |
+++nose | double | 是 | 鼻子 |
+++mouth | double | 是 | 嘴 |
+++left_cheek | double | 是 | 左脸颊 |
+++right_cheek | double | 是 | 右脸颊 |
+++chin | double | 是 | 下巴 |
++blur | double | 是 | 人脸模糊程度,[0, 1]。0表示清晰,1表示模糊(待上线) |
++illumination | - | 是 | 取值范围在[0,255],表示脸部区域的光照程度(待上线) |
++completeness | - | 是 | 人脸完整度,[0, 1]。0表示完整,1表示不完整(待上线) |
++type | object | 是 | 真实人脸/卡通人脸置信度 |
+++human | - | 是 | 真实人脸置信度,[0, 1] |
+++cartoon | - | 是 | 卡通人脸置信度,[0, 1] |
返回示例
{
"result_num": 1,
"result": [
{
"location": {
"left": 90,
"top": 92,
"width": 111,
"height": 99
},
"face_probability": 1,
"rotation_angle": 6,
"yaw": 11.61234664917,
"pitch": -0.30852827429771,
"roll": 8.8044967651367,
"landmark": [
{
"x": 105,
"y": 110
},
...
],
"landmark72": [
{
"x": 88,
"y": 109
},
...
],
"gender": "male",
"gender_probability": 0.99358034133911,
"glasses": 0,
"glasses_probability": 0.99991309642792,
"race": "yellow",
"race_probability": 0.99960690736771,
"qualities": {
"occlusion": {
"left_eye": 0.000085282314103097,
"right_eye": 0.00001094374601962,
"nose": 3.2677664307812e-7,
"mouth": 2.6582130940866e-10,
"left_cheek": 8.752236624332e-8,
"right_cheek": 1.0212766454742e-7,
"chin": 4.2632994357028e-10
},
"blur": 4.5613666312237e-41,
"illumination": 0,
"completeness": 0,
"type": {
"human": 0.98398965597153,
"cartoon": 0.016010366380215
}
}
}
],
"log_id": 2418894422
}
antiporn
功能
色情识别。
请求参数
无
返回参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
confidence_coefficient | string | 是 | 结果是否确定,分为“确定”和“不确定”两种。 |
result_num | uint32 | 是 | 返回结果数目,即:result数组中元素个数。 |
result | array(array(double)) | 是 | 结果数组,每项内容对应一个分类维度的结果。 |
conclusion | string | 是 | 本张图片最终鉴定的结果,分为“色情”,“性感”,“正常”三种。 |
log_id | uint64 | 是 | 请求标识码,随机数,唯一。 |
其中元素的每项内容包含以下字段:
字段 | 类型 | 是否必须 | 说明 | 示例 |
---|---|---|---|---|
class_name | string | 是 | 分类结果名称 | 色情 |
probability | double | 是 | 分类结果置信度 | 0.89471650123596 |
返回示例
{
"result": [{
"probability": 0.000301,
"class_name": "色情"
},
{
"probability": 0.000054,
"class_name": " 性感"
},
{
"probability": 0.999645,
"class_name": "正常"
}],
"conclusion": "正常",
"log_id": 848999404,
"confidence_coefficient": "确定",
"result_num": 3
}
politician
功能
政治人物识别。
请求参数
无
返回参数
参数 | 子参数 | 必须 | 类型 | 是否必须 | 说明 |
---|---|---|---|---|---|
log_id | - | - | uint64 | 是 | 日志id |
result_num | - | - | uint32 | 是 | 实际检测到人脸数目(不大于max_face_num) |
result | - | - | object[] | 是 | |
- | location | - | object | 是 | 人脸在输入图片中的位置 |
- | - | left | uint32 | 是 | 人脸区域离左边界的距离 |
- | - | top | uint32 | 是 | 人脸区域离上边界的距离 |
- | - | width | uint32 | 是 | 人脸区域的宽度 |
- | - | height | uint32 | 是 | 人脸区域的高度 |
- | stars | - | object[] | 是 | 公众人物数组 |
- | - | name | string | 是 | 姓名 |
- | - | star_id | string | 是 | 人物id,全局唯一 |
- | - | probability | float | 是 | 相似度,[0, 1] |
返回示例
{
"log_id": 3268660173,
"result_num": 1,
"result": [
{
"location": {
"left": 132,
"top": 168,
"width": 238,
"height": 223
},
"stars": [
{
"name": "张三",
"star_id": "515617",
"probability": 0.9750030040741
}
]
}
]
}
terror
功能
暴恐识别
请求参数
无
返回参数
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
result | array(array(double)) | 是 | 暴恐置信度得分 |
log_id | uint64 | 是 | 请求标识码,随机数,唯一 |
result_coarse | object[] | 是 | 粗粒度得分结果 |
name | string | 是 | 粗粒度标签,包含两个标签:正常、暴恐 |
score | float | 是 | 对应标签的置信度得分,越高可信度越高 |
result_fine | object[ ] | 是 | 细粒度得分结果 |
name | string | 是 | 细粒度标签,包含9个标签:正常、警察部队、血腥、尸体、爆炸火灾、杀人、暴乱、暴恐人物、军事武器 |
score | float | 是 | 对应标签的置信度得分,越高可信度越高 |
返回示例
{
"errno": 0,
"msg": "success",
"data": {
"result": 0.0082325544208288,
"result_coarse": [
{
"name": "正常",
"score": 0.99176746606827
},
{
"name": "暴恐",
"score": 0.0082325544208288
}
],
"result_fine": [
{
"name": "正常",
"score": 0.98908758163452
},
{
"name": "警察部队",
"score": 0.0062405453063548
},
{
"name": "血腥",
"score": 0.0009653537417762
},
{
"name": "尸体",
"score": 0.001054480439052
},
{
"name": "爆炸火灾",
"score": 0.00011743687355192
},
{
"name": "杀人",
"score": 0.0011699661845341
},
{
"name": "暴乱",
"score": 0.000021190358893364
},
{
"name": "暴恐人物",
"score": 0.0010401027975604
},
{
"name": "军事武器",
"score": 0.00030337597127073
}
]
}
}
public
功能
公众人物识别
请求参数
参数 | 是否必选 | 类型 | 说明 |
---|---|---|---|
max_face_num | 否 | uint32 | 最多处理人脸数目,默认值1,最大值5 |
max_star_num | 否 | uint32 | 单人脸最多相似明星数,默认4 |
返回参数
参数 | 子参数 | 子参数 | 类型 | 必须 | 说明 |
---|---|---|---|---|---|
log_id | - | - | uint64 | 是 | 日志id |
result_num | - | - | uint32 | 是 | 实际检测到人脸数目(不大于max_face_num) |
result | - | - | object[] | 是 | |
- | location | - | object | 是 | 人脸在输入图片中的位置 |
- | - | left | uint32 | 是 | 人脸区域离左边界的距离 |
- | - | top | uint32 | 是 | 人脸区域离上边界的距离 |
- | - | width | uint32 | 是 | 人脸区域的宽度 |
- | - | height | uint32 | 是 | 人脸区域的高度 |
- | stars | - | object[] | 是 | 公众人物数组 |
- | - | name | string | 是 | 姓名 |
- | - | star_id | string | 是 | 人物id,全局唯一 |
- | - | probability | float | 是 | 相似度,[0, 1] |
返回示例
{
"log_id": 3268660173,
"result_num": 1,
"result": [
{
"location": {
"left": 132,
"top": 168,
"width": 238,
"height": 223
},
"stars": [
{
"name": "张三",
"star_id": "515617",
"probability": 0.9750030040741
}
]
}
]
}
disgust
功能
恶心图识别
请求参数
无
返回参数
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
log_id | uint64 | 是 | 请求标识码,随机数,唯一 |
result | double | 是 | 得分 |
返回示例
{
"result": 9.2708455667889E-7,
"log_id": 2977989308
}
watermark
功能
水印检测
请求参数
无
返回值
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
log_id | uint64 | 是 | 请求标识码,随机数,唯一 |
result_num | uint32 | 否 | 返回结果数目,即:result数组中元素个数 |
result | array(object) | 否 | 返回结果数组,每一项为一个检测出的结果 |
result中元素的每项内容包含以下字段:
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
location | object | 否 | 位置信息(左起像素位置、上起像素位置、像素宽、像素高) |
probability | double | 是 | 分类结果置信度[0-1.0] |
type | string | 是 | 返回结果的类型 (watermark、bar code、QR code) |
返回示例
{
"result": [{
"probability": 0.99872654676437,
"type": "watermark"
},
{
"probability": 0.98578763008118,
"type": "watermark"
}],
"log_id": 686882979,
"result_num": 2
}
quality
功能
图片质量
请求参数
无
返回参数
参数 | 子参数 | 类型 | 必须 | 说明 |
---|---|---|---|---|
log_id | - | uint64 | 是 | 日志id |
result | - | object[] | 是 | |
- | aesthetic | double | 是 | 美观度 |
- | clarity | double | 是 | 清晰度 |
返回示例
{
"result": {
"aesthetic": 0.26410301526388,
"clarity": 0.28039423624674
},
"log_id": 93316007
}