本文介紹了調用接口審核圖片內容的方法。圖片審核幫助您檢測圖片中的風險或違規內容,具體包括以下場景:圖片智能鑒黃、圖片暴恐涉政、圖文違規、圖片二維碼、圖片不良場景、圖片logo。
(圖片異步檢測)使用說明
業務接口:/green/image/asyncscan,表示圖片異步檢測。
您可以調用該接口創建圖片異步檢測任務。關于如何構造HTTP請求,請參見請求結構;您也可以直接選用已構造好的HTTP請求,更多信息,請參見SDK概覽。
- 計費信息:
該接口為收費接口。關于計費方式,請參見內容安全產品定價。
- 檢測超時:
同步檢測允許的最長檢測時間是6秒,如果檢測在該時間限制內沒有完成,系統會強制返回超時錯誤碼。如果您對實時性要求不高,可以選擇異步檢測,其他情況下請選擇同步檢測,同步檢測接口的調用相對簡單些。對于同步檢測接口的調用,建議您將超時時間設置為6秒。
- 返回結果:
異步檢測任務不會實時返回檢測結果,您需要通過callback或者輪詢的方式獲取檢測結果。檢測結果最長保留一小時。
- callback獲取檢測結果:提交異步檢測任務時,在請求參數中傳入callback參數,用來自動接收檢測結果,請參見(異步檢測)請求參數。
- 輪詢獲取檢測結果:提交異步檢測任務時,無需傳入callback參數;提交異步檢測任務后,調用結果查詢接口獲取檢測結果,請參見(圖片異步檢測結果查詢)使用說明。
- 圖片要求:
- 圖片鏈接支持以下協議:HTTP和HTTPS。
- 圖片支持以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。
- 圖片大小限制為20 MB以內(適用于同步和異步調用),高度或者寬度不能超過30,000像素(px),且圖像總像素不超過2.5億(px)。說明 其中,GIF格式的圖片,圖像總像素不超過4,194,304(px),高度或者寬度不能超過30,000像素(px)。
- 圖片下載時間限制為3秒內,如果下載時間超過3秒,返回下載超時。
- 圖片像素建議不低于256*256(px),像素過低可能會影響識別效果。
- 圖片檢測接口的響應時間依賴圖片的下載時間。請保證被檢測圖片所在的存儲服務穩定可靠,建議您使用阿里云OSS存儲或者CDN緩存等。
場景名稱 | 描述 | 檢測結果分類 |
---|---|---|
圖片智能鑒黃 | 檢測圖片是否包含色情、性感內容。 | 正常、色情、性感 |
圖片暴恐涉政 | 檢測圖片是否包含暴恐或涉政類內容。 | 正常、血腥、爆炸煙光、特殊裝束、特殊標識、武器、涉政、打斗、聚眾、游行、車禍現場、旗幟、地標 |
圖文違規 | 檢測圖片是否包含廣告和文字違規信息。 | 正常、文字含涉政內容、文字含涉黃內容、文字含辱罵內容、文字含暴恐內容、文字含違禁內容、文字含其他垃圾內容、牛皮癬廣告、含二維碼、含小程序碼、其他廣告 說明 請根據實際情況,設置您需要的檢測分類。更多信息,請參見自定義機審標準。 |
圖片二維碼 | 檢測圖片是否包含二維碼或小程序碼。 | 正常、含二維碼、含小程序碼 說明 請根據實際情況,設置您需要的檢測分類。更多信息,請參見自定義機審標準。 |
圖片不良場景 | 檢測圖片是否包含黑屏、黑邊、昏暗畫面、畫中畫、吸煙、車內直播等不良場景。 | 正常、圖片中無內容(例如黑屏、白屏)、畫中畫、吸煙、車內直播 |
圖片logo | 檢測圖片是否包含logo信息,例如臺標,商標等。 | 正常、含受管控的logo、含商標 |
QPS限制
本接口的單用戶QPS限制為50次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。
(異步檢測)請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
bizType | String | 否 | default | 該字段用于標識您的業務場景。您可以通過內容安全控制臺創建業務場景(具體操作,請參見自定義機審標準)。 |
scenes | StringArray | 是 | ["porn"] | 指定檢測場景。取值:
支持指定多個場景,例如, [“porn”, “terrorism”] 表示對圖片同時進行智能鑒黃和暴恐攝政檢測。說明 同時檢測多個場景的情況下,將按照每個場景的檢測圖片數量×每個場景的單價進行累加計費。 |
callback | String | 否 | http://www.aliyundoc.com | 檢測結果回調通知您的URL,支持使用HTTP和HTTPS協議的地址。該字段為空時,您必須定時輪詢檢測結果。 callback接口必須支持POST方法、UTF-8編碼的傳輸數據,以及表單參數checksum和content。內容安全按照以下規則和格式設置checksum和content,調用您的callback接口返回檢測結果。
說明 您的服務端callback接口收到內容安全推送的結果后,如果返回的HTTP狀態碼為200,則表示接收成功,其他的HTTP狀態碼均視為接收失敗。接收失敗時,內容安全將最多重復推送16次檢測結果,直到接收成功。重復推送16次后仍未接收成功,則不再推送,建議您檢查callback接口的狀態。 |
seed | String | 否 | abc_123 | 隨機字符串,該值用于回調通知請求中的簽名。 由英文字母、數字、下劃線(_)組成,不超過64個字符。由您自定義,用于在接收到內容安全的回調通知時校驗請求由阿里云內容安全服務發起。 說明 當使用callback時,該字段必須提供。 |
cryptType | String | 否 | SHA256 | 使用回調通知時(callback),設置對回調通知內容進行加密的算法。內容安全會將返回結果(由用戶uid + seed + content 拼接的字符串)按照您設置的加密算法加密后,再發送到您的回調通知地址。取值:
|
offline | Boolean | 否 | false | 指定檢測模式, 取值范圍:
|
tasks | JSONArray | 是 | 指定檢測對象,JSON數組中的每個元素是一個檢測任務結構體。最多支持100個元素,即每次提交100條內容進行檢測,支持100個元素的前提是需要將并發任務調整到100個以上。關于每個元素的具體結構描述,請參見task。 |
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
clientInfo | JSONObject | 否 | {"userId":"12023****","userNick":"Mike","userType":"others"} | 客戶端信息,請參見公共參數中的公共查詢參數。 服務器會把全局的clientInfo和此處獨立的clientInfo合并。 說明 獨立的clientInfo優先級更高。 |
dataId | String | 否 | test4lNSMdggA0c56MMvfYoh4e-1mwxpx | 檢測對象對應的數據ID。 由大小寫英文字母、數字、下劃線(_)、短劃線(-)、英文句號(.)組成,不超過128個字符,可以用于唯一標識您的業務數據。 |
url | String | 是 | https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png | 檢測對象的URL。
|
extras | JSONObject | 否 | 額外調用參數。圖片審核場景下無需傳入該參數。 | |
interval | Integer | 否 | 1 | 截幀頻率,GIF圖、長圖檢測專用。
默認只會檢測GIF圖、長圖的第一幀,interval參數用于指示后臺在檢測時可按照該間隔跳著檢測,以節省檢測成本。 說明 interval需要與maxFrames參數組合使用。例如,設置interval為2、maxFrames為20,在檢測GIF圖、長圖時,將每間隔1幀檢測一次,最多檢測20幀,計費則按照實際檢測的數量計算。 |
maxFrames | Integer | 否 | 20 | 最大截幀數量,GIF圖、長圖檢測專用,默認值為1。 當 |
(異步檢測)返回數據
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 錯誤碼,和HTTP狀態碼一致。 更多信息,請參見公共錯誤碼。 |
msg | String | OK | 請求信息的返回信息。 |
dataId | String | test4lNSMdggA0c56MMvfYoh4e-1mwxpx | 檢測對象對應的數據ID。 說明 如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId。 |
taskId | String | fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695 | 檢測任務的ID。 |
url | String | https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png | 檢測對象的URL。
|
(異步檢測)示例
http(s)://[Endpoint]/green/image/asyncscan
&<公共請求參數>
{
"scenes": [
"porn"
],
"tasks": [
{
"dataId": "test4lNSMdggA0c56MMvfYoh4e-1mwxpx",
"url": "https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png"
}
]
}
{
"code": 200,
"msg": "OK",
"requestId": "95AD868A-F5D2-4AEA-96D4-E0273B8E074C",
"data": [
{
"code": 200,
"msg": "OK",
"dataId": "test4lNSMdggA0c56MMvfYoh4e-1mwxpx",
"taskId": "fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695",
"url": "https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png"
}
]
}
(圖片異步檢測結果查詢)使用說明
業務接口:/green/image/results,表示查詢圖片異步檢測結果。
您可以調用該接口查詢圖片異步檢測任務的結果。關于如何構造HTTP請求,請參見請求結構;您也可以直接選用已構造好的HTTP請求,更多信息,請參見SDK概覽。
- 計費信息:
該接口不計費。
- 查詢超時:建議您將查詢間隔設置為30秒(即在提交異步檢測任務,并獲取taskId30秒后查詢結果)。說明 當offline參數設置為true時,表示查詢有效期為24小時;當offline參數設置為false,表示taskId查詢有效期為1小時,默認設置為false。
QPS限制
本接口的單用戶QPS限制為50次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。
(結果查詢)請求參數
名稱 | 類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
body | JSONArray | 是 | ["fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695"] | 要查詢的檢測任務的taskId列表。數組中的元素個數不超過100個。 您在提交檢測任務后,可以從返回數據中獲取檢測任務的taskId。 |
(結果查詢)返回數據
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
code | Integer | 200 | 錯誤碼,和HTTP狀態碼一致。 更多信息,請參見公共錯誤碼。 |
msg | String | OK | 請求信息的返回信息。 |
dataId | String | uuid-xxxx-xxx-1234 | 檢測對象對應的數據ID。 說明 如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId。 |
taskId | String | img4wlJcb7p4wH4lAP3111111-123456 | 檢測任務的ID。 |
url | String | http://www.aliyundoc.com/xxx.jpg | 檢測對象的URL。
|
storedUrl | String | http://www.aliyundoc.com | 如果用戶開啟了證據轉存到OSS存儲空間的功能,并且檢測任務符合配置的規則,則會把圖片轉存到用戶的OSS存儲空間中,并返回對應的HTTP URL。 |
extras | JSONObject | {"hitLibInfo":[{"context":"好看視頻","libCode":"2144002","libName":"預發測試廣告相似文本庫a"}]} | 額外附加信息。 圖文違規(ad)場景中,該參數可能返回以下內容。 hitLibInfo:如果圖片中的文字命中了自定義文本庫,則返回命中的文本庫信息。格式為數組,具體結構描述,請參見hitLibInfo。 |
results | JSONArray | 返回結果。調用成功時(code=200),返回結果中包含一個或多個元素。每個元素是個結構體,具體結構描述,請參見result。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
scene | String | terrorism | 圖片檢測場景,和調用請求中的場景對應。取值:
|
label | String | sexy | 檢測結果的分類。不同檢測場景的結果分類不同,具體如下:
|
sublabel | String | 如果檢測場景包含智能鑒黃(porn)和暴恐涉政(terrorism),則該字段可以返回檢測結果的細分類標簽。 該字段默認不會返回。如果有需要,請加入釘群(釘群號:35573806),聯系產品技術專家進行咨詢。 | |
suggestion | String | block | 建議您執行的后續操作。取值:
|
rate | Float | 91.54 | 置信度分數,取值范圍:0(表示置信度最低)~100(表示置信度最高)。 如果suggestion為pass,則置信度越高,表示內容正常的可能性越高;如果suggestion為review或block,則置信度越高,表示內容違規的可能性越高。 重要 建議您參考suggestion和label(或者部分接口返回的sublabel)結果用于內容違規判定。 |
frames | JSONArray | 如果待檢測圖片因為過長被截斷,該參數返回截斷后的每一幀圖像的臨時訪問地址。具體結構描述,請參見frame。 | |
hintWordsInfo | JSONArray | {"hintWordsInfo":[{"context":"敏感詞"}]} | 圖片中含有廣告時,返回圖片中廣告文字命中的風險關鍵詞信息。格式為數組,具體結構描述,請參見hintWordsInfo。 說明 只有圖文違規(ad)場景會返回該結果。 |
qrcodeData | StringArray | ["http://www.aliyundoc.com/01ZZOliO"] | 圖片中含有二維碼時,返回圖片中所有二維碼包含的文本信息。 說明 只有圖片二維碼(qrcode)場景會返回該結果。 |
qrcodeLocations | JSONArray | 返回圖片中識別到的二維碼的坐標信息,關于具體的結構描述,請參見qrcodeLocation。 | |
programCodeData | JSONArray | 圖片中含有小程序碼時,返回小程序碼的位置信息,具體結構描述,請參見programCodeData。 說明 只有圖片二維碼(qrcode)場景會返回該結果,且必須已經開啟小程序碼識別。 | |
logoData | JSONArray | 識圖片中含有logo時,返回識別出來的logo信息,具體結構描述,請參見logoData。 說明 只有圖片logo(logo)場景會返回該結果。 | |
sfaceData | JSONArray | 圖片中包含暴恐識涉政內容時,返回識別出來的暴恐涉政信息,具體結構描述,請參見sfaceData。 說明 只有圖片暴恐涉政(terrorism)場景會返回該結果。 | |
ocrData | StringArray | xxxx | 識別到的圖片中的完整文字信息。 說明 默認不返回。如果需要該結果,請聯系商務經理。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
rate | Float | 89.85 | 置信度分數,取值范圍:0~100,置信度越高表示檢測結果的可信度越高。建議您不要在業務中使用該分數。 |
url | String | http://www.aliyundoc.com/xxx-0.jpg | 被截斷的圖片的臨時訪問URL,地址有效期是5分鐘。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 11.0 | 以圖片左上角為坐標原點,小程序碼區域左上角到y軸距離,單位:像素。 |
y | Float | 0.0 | 以圖片左上角為坐標原點,小程序碼區域左上角到x軸距離,單位:像素。 |
w | Float | 402.0 | 小程序碼區域寬度,單位:像素。 |
h | Float | 413.0 | 小程序碼區域高度,單位:像素。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
type | String | TV | 識別出的logo類型,取值為TV(臺標)。 |
name | String | xxx臺 | 識別出的logo名稱。 |
x | Float | 140 | 以圖片左上角為坐標原點,logo區域左上角到y軸距離,單位:像素。 |
y | Float | 68 | 以圖片左上角為坐標原點,logo區域左上角到x軸距離,單位:像素。 |
w | Float | 106 | logo區域寬度,單位:像素。 |
h | Float | 106 | logo區域高度,單位:像素。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 49 | 以圖片左上角為坐標原點,人臉區域左上角到y軸距離,單位:像素。 |
y | Float | 39 | 以圖片左上角為坐標原點,人臉區域左上角到x軸距離,單位:像素。 |
w | Float | 97 | 人臉區域寬度,單位:像素。 |
h | Float | 131 | 人臉區域高度,單位:像素。 |
faces | JSONArray | [{"name":"命中人名","rate":91.54,"id":"AliFace_0123****"}] | 識別出的人臉信息,具體結構如下:
|
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
context | String | 好看視頻 | 文字命中的自定義文本內容。 |
libCode | String | 123456 | 文字命中的自定義文本內容對應的庫code。 |
libName | String | abc | 文字命中的自定義文本內容對應的庫名稱。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
context | String | 好看視頻 | 文字命中的風險關鍵詞內容。 |
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
x | Float | 11.0 | 以圖片左上角為坐標原點,二維碼區域左上角到y軸距離,單位:像素。 |
y | Float | 0.0 | 以圖片左上角為坐標原點,二維碼區域左上角到x軸距離,單位:像素。 |
w | Float | 402.0 | 二維碼區域寬度,單位:像素。 |
h | Float | 413.0 | 二維碼區域高度,單位:像素。 |
qrcode | String | http://www.aliyundoc.com/0.ZZOliO | 識別到的二維碼鏈接。 |
(結果查詢)示例
http(s)://[Endpoint]/green/image/results
&<公共請求參數>
[
"fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695"
]
{
"msg": "OK",
"code": 200,
"data": [
{
"msg": "OK",
"code": 200,
"dataId": "test4lNSMdggA0c56MMvfYoh4e-1mwxpx",
"extras": {
},
"results": [
{
"rate": 99.63,
"suggestion": "block",
"label": "sexy",
"scene": "porn"
},
{
"label": "politics",
"rate": 91.54,
"scene": "terrorism",
"sfaceData": [
{
"faces": [
{
"id": "AliFace_0001234",
"name": "命中人名",
"rate": 91.54
}
],
"h": 131,
"w": 97,
"x": 49,
"y": 39
}
],
"suggestion": "block"
},
{
"extras": {
"qrcodes": "http://www.aliyundoc.com/0.ZZOliO",
"npx": "72.01",
"hitCustomLibCode": "8012345000",
"hitCustomLibName": "自定義圖庫名",
"hitLibInfo": [
{
"context": "命中的文本",
"libCode": "123456",
"libName": "文本庫名"
}
]
},
"programCodeData": [
{
"w": 402.0,
"h": 413.0,
"x": 11.0,
"y": 0.0
}
],
"frames": [
{
"rate": 89.85,
"url": "http://www.aliyundoc.com/xxx-0.jpg"
},
{
"rate": 68.06,
"url": "http://www.aliyundoc.com/xxx-1.jpg"
}
],
"rate": 99.91,
"suggestion": "block",
"label": "ad",
"scene": "ad"
},
{
"rate": 99.91,
"suggestion": "block",
"label": "drug",
"scene": "live"
},
{
"qrcodeData": [
"http://www.aliyundoc.com/01ZZOliO"
],
"rate": 99.91,
"suggestion": "review",
"label": "qrcode",
"scene": "qrcode"
},
{
"logoData": [
{
"name": "xxx臺",
"type": "TV",
"x": 140,
"y": 68,
"w": 106,
"h": 106
}
],
"rate": 99.9,
"suggestion": "block",
"label": "TV",
"scene": "logo"
}
],
"taskId": "fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695",
"url": "https://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png"
}
],
"requestId": "69B41AE8-1234-1234-1234-12D395695D2D"
}