本文介紹了調用介面審核圖片內容的方法。圖片審核協助您檢測圖片中的風險或違規內容,具體包括以下情境:圖片智能鑒黃、圖片暴恐涉政、圖文違規、圖片二維碼、圖片不良情境、圖片logo。
(圖片非同步檢測)使用說明
業務介面:/green/image/asyncscan,表示圖片非同步檢測。
您可以調用該介面建立圖片非同步檢測任務。關於如何構造HTTP請求,請參見請求結構;您也可以直接選用已構造好的HTTP請求,更多資訊,請參見SDK概覽。
- 計費資訊:
該介面為收費介面。關於計費方式,請參見Alibaba Content Security Service產品定價。
- 檢測逾時:
同步檢測允許的最長檢測時間是6秒,如果檢測在該時間限制內沒有完成,系統會強制返回逾時錯誤碼。如果您對即時性要求不高,可以選擇非同步檢測,其他情況下請選擇同步檢測,同步檢測介面的調用相對簡單些。對於同步檢測介面的調用,建議您將逾時時間設定為6秒。
- 返回結果:
非同步檢測任務不會即時返回檢測結果,您需要通過callback或者輪詢的方式擷取檢測結果。檢測結果最長保留一小時。
- callback擷取檢測結果:提交非同步檢測任務時,在請求參數中傳入callback參數,用來自動接收檢測結果,請參見(非同步檢測)請求參數。
- 輪詢擷取檢測結果:提交非同步檢測任務時,無需傳入callback參數;提交非同步檢測任務後,調用結果查詢介面擷取檢測結果,請參見(圖片非同步檢測結果查詢)使用說明。
- 圖片要求:
圖片連結支援以下協議:HTTP和HTTPS。
圖片支援以下格式:PNG、JPG、JPEG、BMP、GIF、WEBP。
圖片大小限制為20 MB以內(適用於同步和非同步呼叫)。
圖片下載時間限制為3秒內,如果下載時間超過3秒,返回下載逾時。
圖片像素建議不低於256*256(px),像素過低可能會影響識別效果。
圖片檢測介面的回應時間依賴圖片的下載時間。請保證被檢測圖片所在的儲存服務穩定可靠,建議您使用阿里雲OSS儲存或者CDN緩衝等。
情境名稱 | 描述 | 檢測結果分類 |
圖片智能鑒黃 | 檢測圖片是否包含色情、性感內容。 | 正常、色情、性感 |
圖片暴恐涉政 | 檢測圖片是否包含暴恐或涉政類內容。 | 正常、血腥、爆炸煙光、特殊裝束、特殊標識、武器、涉政、打鬥、聚眾、遊行、車禍現場、旗幟、地標 |
圖文違規 | 檢測圖片是否包含廣告和文字違規資訊。 | 正常、文字含涉政內容、文字含涉黃內容、文字含辱罵內容、文字含暴恐內容、文字含違禁內容、文字含其他垃圾內容、牛皮癬廣告、含二維碼、含小程式碼、其他廣告 說明 請根據實際情況,設定您需要的檢測分類。更多資訊,請參見自訂機審標準。 |
圖片二維碼 | 檢測圖片是否包含二維碼或小程式碼。 | 正常、含二維碼、含小程式碼 說明 請根據實際情況,設定您需要的檢測分類。更多資訊,請參見自訂機審標準。 |
圖片不良情境 | 檢測圖片是否包含黑屏、黑邊、昏暗畫面、畫中畫、吸煙、車內直播等不良情境。 | 正常、圖片中無內容(例如黑屏、白屏)、畫中畫、吸煙、車內直播 |
圖片logo | 檢測圖片是否包含logo資訊,例如台標,商標等。 | 正常、含受管控的logo、含商標 |
QPS限制
本介面的單使用者QPS限制為50次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。
(非同步檢測)請求參數
名稱 | 類型 | 是否必選 | 樣本值 | 描述 |
bizType | String | 否 | default | 該欄位用於標識您的業務情境。您可以通過Alibaba Content Security Service控制台建立業務情境(具體操作,請參見自訂機審標準)。 |
scenes | StringArray | 是 | ["porn"] | 指定檢測情境。取值:
支援指定多個情境,例如, [“porn”, “terrorism”] 表示對圖片同時進行智能鑒黃和暴恐攝政檢測。說明 同時檢測多個情境的情況下,將按照每個情境的檢測圖片數量×每個情境的單價進行累加計費。 |
callback | String | 否 | http://www.aliyundoc.com | 檢測結果回調通知您的URL,支援使用HTTP和HTTPS協議的地址。該欄位為空白時,您必須定時輪詢檢測結果。 callback介面必須支援POST方法、UTF-8編碼的傳輸資料,以及表單參數checksum和content。Alibaba Content Security Service按照以下規則和格式設定checksum和content,調用您的callback介面返回檢測結果。
說明 您的服務端callback介面收到Alibaba Content Security Service推送的結果後,如果返回的HTTP狀態代碼為200,則表示接收成功,其他的HTTP狀態代碼均視為接收失敗。接收失敗時,Alibaba Content Security Service將最多重複推送16次檢測結果,直到接收成功。重複推送16次後仍未接收成功,則不再推送,建議您檢查callback介面的狀態。 |
seed | String | 否 | abc_123 | 隨機字串,該值用於回調通知請求中的簽名。 由英文字母、數字、底線(_)組成,不超過64個字元。由您自訂,用於在接收到Alibaba Content Security Service的回調通知時校正請求由阿里雲Alibaba Content Security Service服務發起。 說明 當使用callback時,該欄位必須提供。 |
cryptType | String | 否 | SHA256 | 使用回調通知時(callback),設定對回調通知內容進行加密的演算法。Alibaba Content Security Service會將返回結果(由使用者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 | 公網HTTP/HTTPS URL,且長度不超過2048個字元。 |
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 | 公網HTTP/HTTPS URL,且長度不超過2048個字元。 |
(非同步檢測)樣本
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 | 公網HTTP/HTTPS URL,且長度不超過2048個字元。 |
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),則該欄位可以返回檢測結果的細分類標籤。 該欄位預設不會返回。 | |
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"
}