图像审核服务接口

接口描述

此接口用于请求图像审核服务。图像审核服务是百度智能云对外提供的图像智能审核服务,支持对图像的多个维度进行审核,包括色情识别、暴恐识别、政治敏感识别、恶心图识别、广告识别等。

说明:使用本接口需要先在控制台开通图像审核服务,详情请参见开通图像审核服务

请求

  • 请求语法

    POST <ObjectKey>?process HTTP/1.1
    Host: <BucketName>.bj.bcebos.com
    Date: <Date>
    Authorization: <Authorization_String>
    Content-Type: application/json; charset=utf-8
    Content-Length: <Content_Length>
    
    {
        "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通用文字识别服务入参。

    详细的子服务请求参数及返回参数解释参见下文详细解释。

  • 请求头域

响应

  • 响应头域

  • 响应元素

    参见各子服务的返回参数解释。

示例

  • 请求示例
{
    "antiporn": {},
    "ocr": {
        "detect_direction": "false",
        "language_type": "CHN_ENG",
        "recognize_granularity": "big"
    }
}

base64编码后
eyJhbnRpcG9ybiI6e30sIm9jciI6eyJkZXRlY3RfZGlyZWN0aW9uIjoiZmFsc2UiLCJsYW5ndWFnZV90eXBlIjoiQ0hOX0VORyIsInJlY29nbml6ZV9ncmFudWxhcml0eSI6ImJpZyJ9fQ==

填充到parameters中,发送的请求如下:

POST <ObjectKey>?process HTTP/1.1
Host: <BucketName>.bj.bcebos.com
Date: <Date>
Authorization: <Authorization_String>
Content-Type: application/json; charset=utf-8
Content-Length: <Content_Length>

{
    "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
}