图片智能打码

最近更新时间:2025-05-30 14:26:32

我的收藏

功能描述

识别图片中的车辆、人体等目标,返回目标位置信息并进行打码,该功能支持以下处理方式:
上传时处理
云上数据处理

授权说明

通过子账号使用时,需要在 授权策略 的 action 中添加对应的权限,CI 权限具体请参见 数据万象 action
上传时处理:授权策略中 action 设置为 cos:PutObject
云上数据处理:授权策略中 action 设置为 cos:PutObject(注意 PutObject 对应的 resource 为转存的文件)。

服务开通

使用该功能需提前开通数据万象,并 绑定存储桶

使用限制

图片格式:PNG、JPG、JPEG。
图片大小:不超过20M。
图片像素:长边不可超过7680像素。
接口超时时间:5秒。

费用说明

该接口为付费服务,产生的费用将由数据万象收取,将按调用情况产生以下部分功能用量及费用:
若开启了打码功能,将产生 基础图片处理费用,按输出图片的大小计费。
若开启人体识别,将产生 人体识别费用,按接口调用次数计费。
若开启人脸识别,将产生 人脸检测费用,按接口调用次数计费。
若开启车辆识别或车牌识别,将产生 汽车识别费用,按接口调用次数计费,(同时开启车辆车牌两项或仅开启其中一项,调用一次接口的识别次数均为1次);

接口请求示例

方式一:上传时处理

上传时处理方式支持您在上传时实现图片处理,您只需要在请求包头部中加入 Pic-Operations 项并设置好相应的识别打码参数,就可在图片上传时将原图和打码后的图片存入到 COS。
PUT /<ObjectKey> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Pic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.jpg","rule":"ci-process=ImageTargetRec&detect-type=car,face,plate,body&cover=1"}]}

方式二:云上数据处理

云上数据处理方式支持您对已存储在 COS 的图片进行相应处理操作,并将原图和打码后的图片存入到 COS。
POST /<ObjectKey>?image_process HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Authorization: Auth String
Pic-Operations: {"is_pic_info":1,"rules":[{"fileid":"test.jpg","rule":"ci-process=ImageTargetRec&detect-type=car,face,plate,body&cover=1"}]}
说明:
以上两种方式均不支持匿名请求。
Authorization:携带鉴权信息,用于验证请求的合法性的请求头,Pic-Operations 头部需签入签名信息中,详情请参见 请求签名 文档。
Pic-Operations 的值为 json 格式的字符串,具体参数见下方处理参数说明

请求参数说明

参数名称
描述
是否必选
类型
ObjectKey
对象的名称,例如 folder/sample.jpg。
String
image_process
仅在云上数据处理方式中需要,表示图片处理的参数,固定为image_process。
String
is_pic_info
是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0。
Int
rules
处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行图片处理。
Array
Pic-Operations 中的参数说明:
参数名称
描述
是否必选
类型
is_pic_info
是否返回原图信息,0 表示不返回原图信息,1 表示返回原图信息,默认为0。
Int
rules
处理规则,一条规则对应一个处理结果(目前支持五条规则),不填则不进行处理。
Array
rules(json 数组)中每一项具体参数如下:
参数名称
描述
是否必选
类型
bucket
存储结果的目标 bucket 名称,形如 BucketName-APPID,如果不指定的话默认保存到当前存储桶。
String
fileid
处理后文件的保存路径及名称。
fileidObjectKey 相同时,处理后的文件将覆盖原文件存储;不相同时将分别存储原文件和处理后文件。名称规则说明:
1. 名称需要经过URLEncode。
2. / 开头为绝对路径,例如 fileid 值为 /p2/test2.jpg 时,表示在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
3. 不以/开头为相对路径,例如 fileid 值为 p2/test2.jpg 时,表示在ObjectKey所在的文件夹中新建了一个 p2 文件夹,然后在 p2 文件夹中存储了一个文件名为 test2.jpg 的文件。
注意:请不要以 / 结尾,否则会产生空文件名。
String





rule
处理规则,其中包含参数:ci-processdetect-typecover
String
rule 中每一项具体参数说明如下:
参数名称
描述
是否必选
类型
ci-process
标识数据万象处理功能的字段,图片智能打码的值为:ImageTargetRec。
String
detect-type
识别类型,可选值:face(人脸),plate(车牌),body(人体),car(车辆),多个类型通过","分割。
默认值为:face,plate,表示同时识别人脸和车牌。
String
cover
该参数需要与 detect-type 联合使用,用于对识别出的目标进行打码,可选值:0(不打码),1(打码),默认值为:0。
Int

请求头

此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。

请求体

该请求无请求体。

接口响应示例

响应头

此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。

响应体

该响应体返回为 application/xml 数据,包含完整节点数据的内容展示如下:
HTTP/ 1.1 200 OK
Content-Type: application/xml
Content-Length: 414641
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-image
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****

<UploadResult>
<OriginalInfo>
<Key>ra.jpg</Key>
<Location>peter-cq-1251704708.cos.ap-chongqing.myqcloud.com/ra.jpg</Location>
<ImageInfo>
<Md5>ed874e261c9c82a2dadff9252c11e5ae</Md5>
<Format>PNG</Format>
<Width>1080</Width>
<Height>971</Height>
<Quality>100</Quality>
<Ave>0x836b53</Ave>
<FrameCount>1</FrameCount>
<BitDepth>8</BitDepth>
<VerticalDpi>37</VerticalDpi>
<HorizontalDpi>37</HorizontalDpi>
</ImageInfo>
<ETag>"ed874e261c9c82a2dadff9252c11e5ae"</ETag>
</OriginalInfo>
<ProcessResults>
<Object>
<Key>test.jpeg</Key>
<Location>peter-cq-1251704708.cos.ap-chongqing.myqcloud.com/test.jpeg</Location>
<Format>png</Format>
<Md5>eb501719fb03eeaf162f81adb32f56dc</Md5>
<Width>1080</Width>
<Height>971</Height>
<Size>698349</Size>
<Quality>80</Quality>
<FrameCount>1</FrameCount>
<BitDepth>8</BitDepth>
<VerticalDpi>37</VerticalDpi>
<HorizontalDpi>37</HorizontalDpi>
<ETag>"eb501719fb03eeaf162f81adb32f56dc"</ETag>
</Object>
</ProcessResults>
<ImgTargetRecResult>
<FaceDetailInfos>
<State>Success</State>
<FaceDetailInfo>
<X>219</X>
<Y>89</Y>
<Width>520</Width>
<Height>748</Height>
</FaceDetailInfo>
</FaceDetailInfos>
<CarDetailInfos>
<State>Failed</State>
<ErrorCode>NoResult</ErrorCode>
<ErrorMsg>can't rec enable info.</ErrorMsg>
</CarDetailInfos>
<BodyDetailInfos>
<State>Success</State>
<BodyDetailInfo>
<X>1</X>
<Y>15</Y>
<Width>1071</Width>
<Height>949</Height>
</BodyDetailInfo>
</BodyDetailInfos>
<PlateDetailInfos>
<State>Failed</State>
<ErrorCode>NoResult</ErrorCode>
<ErrorMsg>can't rec enable info.</ErrorMsg>
</PlateDetailInfos>
</ImgTargetRecResult>
</UploadResult>
具体的数据内容如下:
节点名称(关键字)
父节点
描述
类型
UploadResult
保存结果的容器。
Container
OriginalInfo
UploadResult
原图的信息,具体信息可参考。
Container
ProcessResults
UploadResult
结果图的信息。
Container
ImgTargetRecResult
UploadResult
识别的结果信息。
Container
OriginalInfo 节点的内容:
节点名称(关键字)
父节点
描述
类型
Key
OriginalInfo
原图文件名。
String
Location
OriginalInfo
图片路径。
String
ImageInfo
OriginalInfo
原图图片信息。
Container
ETag
OriginalInfo
原图 ETag 信息。(若处理结果图覆盖原图则为结果图 ETag 信息)
String
ImageInfo 节点的内容:
节点名称(关键字)
父节点
描述
类型
Format
ImageInfo
图片格式。
String
Width
ImageInfo
图片宽度。
Int
Height
ImageInfo
图片高度。
Int
Quality
ImageInfo
图片质量。
Int
Ave
ImageInfo
图片主色调,格式为:0xRRGGBB (RR、GG、BB都是十六进制数,表示红、绿、蓝三种颜色)
String
Orientation
ImageInfo
图片旋转角度,取值为1-8的整数:
1:旋转0°
2:水平翻转
3:旋转180°
4:垂直翻转
5:顺时针旋转90°+水平翻转
6:顺时针旋转90°
7:顺时针旋转90°+垂直翻转
8:逆时针旋转90°
Int
FrameCount
ImageInfo
图片的帧数。静态图为1,动图为对应的帧数。
Int
BitDepth
ImageInfo
图片的位深。
Int
VerticalDpi
ImageInfo
图片的垂直DPI。
Int
HorizontalDpi
ImageInfo
图片的水平DPI。
Int
Md5
ImageInfo
图片的Md5值。
String
ProcessResults 节点的内容:
节点名称(关键字)
父节点
描述
类型
Object
ProcessResults
每一个图片处理结果。
Container
Object 节点的内容:
节点名称(关键字)
父节点
描述
类型
Key
Object
文件名。
String
Location
Object
图片路径。
String
Format
Object
图片格式。
String
Width
Object
图片宽度。
Int
Height
Object
图片高度。
Int
Size
Object
图片大小。
Int
Quality
Object
图片质量。
Int
ETag
Object
处理结果图 ETag 信息。
String
FrameCount
Object
图片的帧数。静态图为1,动图为对应的帧数。
Int
BitDepth
Object
图片的位深。
Int
VerticalDpi
Object
图片的垂直DPI。
Int
HorizontalDpi
Object
图片的水平DPI。
Int
Md5
Object
图片的Md5值。
String
ImgTargetRecResult节点的内容:
节点名称(关键字)
父节点
描述
类型
FaceDetailInfos
ImgTargetRecResult
人脸识别的坐标信息,仅在 detect-type 包含 face 时返回。
Container
CarDetailInfos
ImgTargetRecResult
车辆识别的坐标信息,仅在 detect-type 包含 car 时返回。
Container
BodyDetailInfos
ImgTargetRecResult
人体识别的坐标信息,仅在 detect-type 包含 body 时返回。
Container
PlateDetailInfos
ImgTargetRecResult
车牌识别的坐标信息,仅在 detect-type 包含 plate 时返回。
Container
说明:
一张图最多可以检测100个结果(所有目标总和)。
FaceDetailInfos、CarDetailInfos、BodyDetailInfos、PlateDetailInfos节点详情:
节点名称(关键字)
父节点
描述
类型
FaceDetailInfo
FaceDetailInfos
单个人脸坐标信息。
Container
CarDetailInfo
CarDetailInfos
单个车辆坐标信息。
Container
BodyDetailInfo
BodyDetailInfos
单个人体坐标信息。
Container
PlateDetailInfo
PlateDetailInfos
单个车牌坐标信息。
Container
State
FaceDetailInfos、CarDetailInfos、BodyDetailInfos、PlateDetailInfos
单个类型的识别状态:Sucess(识别到目标),Failed(未识别到目标)。
String
FaceDetailInfo、CarDetailInfo、BodyDetailInfo、PlateDetailInfo节点详情:
节点名称(关键字)
描述
类型
X
识别框左上角 X 轴坐标。
int
Y
识别框左上角 Y 轴坐标。
int
Width
识别框宽度值。
int
Height
识别框高度值。
int
ErrorCode
识别状态异常码,仅在 State 为 Failed 时返回。
String
ErrorMsg
识别状态异常文字描述,仅在 State 为 Failed 时返回。
String

错误码

该请求操作无特殊错误信息,常见的错误信息请参见 错误码 文档。

实际案例

请求

POST /car.jpeg?image_process HTTP/1.1
Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.com
Date: Wed,18 Jan 2017 16:17:03 GMT
Authorization: Auth String
Pic-Operations: {"is_pic_info":1, "rules":[{"fileid":"cover_test.jpeg","rule":"ci-process=ImageTargetRec&detect-type=car,face,plate,body&cover=1"}]}
Content-Length: 414641

响应

HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 414641
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-image
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****

<UploadResult>
<OriginalInfo>
<Key>car.jpeg</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/car.jpeg</Location>
<ImageInfo>
<Md5>ed874e261c9c82a2dadff9252c11e5ae</Md5>
<Format>JPEG</Format>
<Width>1080</Width>
<Height>971</Height>
<Quality>100</Quality>
<Ave>0x836b53</Ave>
<FrameCount>1</FrameCount>
<BitDepth>8</BitDepth>
<VerticalDpi>37</VerticalDpi>
<HorizontalDpi>37</HorizontalDpi>
</ImageInfo>
<ETag>"ed874e261c9c82a2dadff9252c11e5ae"</ETag>
</OriginalInfo>
<ProcessResults>
<Object>
<Key>cover_test.jpeg</Key>
<Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/cover_test.jpeg</Location>
<Format>png</Format>
<Md5>eb501719fb03eeaf162f81adb32f56dc</Md5>
<Width>1080</Width>
<Height>971</Height>
<Size>698349</Size>
<Quality>80</Quality>
<FrameCount>1</FrameCount>
<BitDepth>8</BitDepth>
<VerticalDpi>37</VerticalDpi>
<HorizontalDpi>37</HorizontalDpi>
<ETag>"eb501719fb03eeaf162f81adb32f56dc"</ETag>
</Object>
</ProcessResults>
<ImgTargetRecResult>
<FaceDetailInfos>
<State>Success</State>
<FaceDetailInfo>
<X>219</X>
<Y>89</Y>
<Width>520</Width>
<Height>748</Height>
</FaceDetailInfo>
</FaceDetailInfos>
<CarDetailInfos>
<State>Failed</State>
<ErrorCode>NoResult</ErrorCode>
<ErrorMsg>can't rec enable info.</ErrorMsg>
</CarDetailInfos>
<BodyDetailInfos>
<State>Success</State>
<BodyDetailInfo>
<X>1</X>
<Y>15</Y>
<Width>1071</Width>
<Height>949</Height>
</BodyDetailInfo>
</BodyDetailInfos>
<PlateDetailInfos>
<State>Failed</State>
<ErrorCode>NoResult</ErrorCode>
<ErrorMsg>can't rec enable info.</ErrorMsg>
</PlateDetailInfos>
</ImgTargetRecResult>
</UploadResult>