本文介紹了調用接口審核圖片內容的方法。圖片審核幫助您檢測圖片中的風險或違規內容,具體包括以下場景:圖片智能鑒黃、圖片暴恐涉政、圖文違規、圖片二維碼、圖片不良場景、圖片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緩存等。
表 1. 場景說明
場景名稱描述檢測結果分類
圖片智能鑒黃檢測圖片是否包含色情、性感內容。正常、色情、性感
圖片暴恐涉政檢測圖片是否包含暴恐或涉政類內容。正常、血腥、爆炸煙光、特殊裝束、特殊標識、武器、涉政、打斗、聚眾、游行、車禍現場、旗幟、地標
圖文違規檢測圖片是否包含廣告和文字違規信息。正常、文字含涉政內容、文字含涉黃內容、文字含辱罵內容、文字含暴恐內容、文字含違禁內容、文字含其他垃圾內容、牛皮癬廣告、含二維碼、含小程序碼、其他廣告
說明 請根據實際情況,設置您需要的檢測分類。更多信息,請參見自定義機審標準
圖片二維碼檢測圖片是否包含二維碼或小程序碼。正常、含二維碼、含小程序碼
說明 請根據實際情況,設置您需要的檢測分類。更多信息,請參見自定義機審標準
圖片不良場景檢測圖片是否包含黑屏、黑邊、昏暗畫面、畫中畫、吸煙、車內直播等不良場景。正常、圖片中無內容(例如黑屏、白屏)、畫中畫、吸煙、車內直播
圖片logo檢測圖片是否包含logo信息,例如臺標,商標等。正常、含受管控的logo、含商標

QPS限制

本接口的單用戶QPS限制為50次/秒。超過限制,API調用會被限流,這可能會影響您的業務,請合理調用。

(異步檢測)請求參數

名稱類型是否必選示例值描述
bizTypeStringdefault該字段用于標識您的業務場景。您可以通過內容安全控制臺創建業務場景(具體操作,請參見自定義機審標準)。
scenesStringArray["porn"]指定檢測場景。取值:
  • porn:圖片智能鑒黃
  • terrorism:圖片暴恐涉政
  • ad:圖文違規
  • qrcode:圖片二維碼
  • live:圖片不良場景
  • logo:圖片logo
支持指定多個場景,例如,[“porn”, “terrorism”]表示對圖片同時進行智能鑒黃和暴恐攝政檢測。
說明 同時檢測多個場景的情況下,將按照每個場景的檢測圖片數量×每個場景的單價進行累加計費。
callbackStringhttp://www.aliyundoc.com

檢測結果回調通知您的URL,支持使用HTTP和HTTPS協議的地址。該字段為空時,您必須定時輪詢檢測結果。

callback接口必須支持POST方法、UTF-8編碼的傳輸數據,以及表單參數checksumcontent。內容安全按照以下規則和格式設置checksumcontent,調用您的callback接口返回檢測結果。
  • checksum:字符串格式,由用戶uid + seed + content拼成字符串,通過SHA256算法生成。用戶UID即阿里云賬號ID,可以在阿里云控制臺查詢。為防篡改,您可以在獲取到推送結果時,按上述算法生成字符串,與checksum做一次校驗。
    說明 用戶UID必須是阿里云賬號的UID,而不是RAM用戶的UID。
  • content:JSON字符串格式,請自行解析反轉成JSON對象。關于content結果的示例,請參見查詢檢測結果的返回示例。
說明 您的服務端callback接口收到內容安全推送的結果后,如果返回的HTTP狀態碼為200,則表示接收成功,其他的HTTP狀態碼均視為接收失敗。接收失敗時,內容安全將最多重復推送16次檢測結果,直到接收成功。重復推送16次后仍未接收成功,則不再推送,建議您檢查callback接口的狀態。
seedStringabc_123

隨機字符串,該值用于回調通知請求中的簽名。

由英文字母、數字、下劃線(_)組成,不超過64個字符。由您自定義,用于在接收到內容安全的回調通知時校驗請求由阿里云內容安全服務發起。

說明 當使用callback時,該字段必須提供。
cryptTypeStringSHA256使用回調通知時(callback),設置對回調通知內容進行加密的算法。內容安全會將返回結果(由用戶uid + seed + content拼接的字符串)按照您設置的加密算法加密后,再發送到您的回調通知地址。取值:
  • SHA256(默認):使用SHA256加密算法。
  • SM3:使用國密HMAC-SM3加密算法,返回十六進制的字符串,且字符串由小寫字母和數字組成。

    例如,abc經國密SM3加密后返回66c7f0f462eeedd9d1f2d46bdc10e4e24167c4875cf2f7a2297da02b8f4ba8e0

offlineBooleanfalse指定檢測模式, 取值范圍:
  • true:表示近線檢測模式。近線檢測模式下,您提交的任務不保證能夠實時處理,但是可以排隊并在24小時內開始檢測。
  • false(默認):表示實時檢測模式。對于超過了并發路數限制的檢測請求會直接拒絕。
tasksJSONArray指定檢測對象,JSON數組中的每個元素是一個檢測任務結構體。最多支持100個元素,即每次提交100條內容進行檢測,支持100個元素的前提是需要將并發任務調整到100個以上。關于每個元素的具體結構描述,請參見task
表 2. task
名稱類型是否必選示例值描述
clientInfoJSONObject{"userId":"12023****","userNick":"Mike","userType":"others"}

客戶端信息,請參見公共參數中的公共查詢參數。

服務器會把全局的clientInfo和此處獨立的clientInfo合并。
說明 獨立的clientInfo優先級更高。
dataIdStringtest4lNSMdggA0c56MMvfYoh4e-1mwxpx檢測對象對應的數據ID。

由大小寫英文字母、數字、下劃線(_)、短劃線(-)、英文句號(.)組成,不超過128個字符,可以用于唯一標識您的業務數據。

urlStringhttps://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png
檢測對象的URL。
  • 公網HTTP/HTTPS URL,且長度不超過2048個字符。
  • 阿里云OSS提供的文件路徑。您需要先授權內容安全訪問OSS存儲空間,僅限相同區域的OSS空間。更多信息,請參見授權內容安全訪問OSS存儲空間

    文件路徑格式:oss://<bucket-name>.<endpoint>/<object-name>

extrasJSONObject額外調用參數。圖片審核場景下無需傳入該參數。
intervalInteger1截幀頻率,GIF圖、長圖檢測專用。
  • GIF圖可理解為圖片數組,interval參數指定了每隔多少張圖片抽取一幀進行檢測。只有該值存在時,才會對GIF進行截幀。
  • 長圖分為長豎圖和長橫圖。
    • 對長豎圖(高大于400像素(px),高寬比大于2.5),按照(高:寬)取整來計算總圖數,并進行切割。
    • 對長橫圖(寬大于400像素(px),寬高比大于2.5),按照(寬:高)取整來計算總圖數,并進行切割。

默認只會檢測GIF圖、長圖的第一幀,interval參數用于指示后臺在檢測時可按照該間隔跳著檢測,以節省檢測成本。

說明 interval需要與maxFrames參數組合使用。例如,設置interval為2、maxFrames為20,在檢測GIF圖、長圖時,將每間隔1幀檢測一次,最多檢測20幀,計費則按照實際檢測的數量計算。
maxFramesInteger20最大截幀數量,GIF圖、長圖檢測專用,默認值為1

interval*maxFrames小于GIF圖、長圖所包含的圖片幀數量時,截幀間隔自動修改為GIF圖、長圖所包含的圖片幀數/maxFrames,以提高整體檢測效果。

(異步檢測)返回數據

名稱類型示例值描述
codeInteger200錯誤碼,和HTTP狀態碼一致。

更多信息,請參見公共錯誤碼

msgStringOK請求信息的返回信息。
dataIdStringtest4lNSMdggA0c56MMvfYoh4e-1mwxpx檢測對象對應的數據ID。
說明 如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId
taskIdStringfdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695檢測任務的ID。
urlStringhttps://www.aliyundoc.com/tfs/TB1urBOQFXXXXbMXFXXXXXXXXXX-1442-257.png
檢測對象的URL。
  • 公網HTTP/HTTPS URL,且長度不超過2048個字符。
  • 阿里云OSS提供的文件路徑。您需要先授權內容安全訪問OSS存儲空間,僅限相同區域的OSS空間。更多信息,請參見授權內容安全訪問OSS存儲空間

    文件路徑格式:oss://<bucket-name>.<endpoint>/<object-name>

(異步檢測)示例

請求示例
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調用會被限流,這可能會影響您的業務,請合理調用。

(結果查詢)請求參數

名稱類型是否必選示例值描述
bodyJSONArray["fdd25f95-4892-4d6b-aca9-7939bc6e9baa-1486198766695"]要查詢的檢測任務的taskId列表。數組中的元素個數不超過100個。

您在提交檢測任務后,可以從返回數據中獲取檢測任務的taskId

(結果查詢)返回數據

名稱類型示例值描述
codeInteger200錯誤碼,和HTTP狀態碼一致。

更多信息,請參見公共錯誤碼

msgStringOK請求信息的返回信息。
dataIdStringuuid-xxxx-xxx-1234檢測對象對應的數據ID。
說明 如果在檢測請求參數中傳入了dataId,則此處返回對應的dataId
taskIdStringimg4wlJcb7p4wH4lAP3111111-123456檢測任務的ID。
urlStringhttp://www.aliyundoc.com/xxx.jpg
檢測對象的URL。
  • 公網HTTP/HTTPS URL,且長度不超過2048個字符。
  • 阿里云OSS提供的文件路徑。您需要先授權內容安全訪問OSS存儲空間,僅限相同區域的OSS空間。更多信息,請參見授權內容安全訪問OSS存儲空間

    文件路徑格式:oss://<bucket-name>.<endpoint>/<object-name>

storedUrlStringhttp://www.aliyundoc.com如果用戶開啟了證據轉存到OSS存儲空間的功能,并且檢測任務符合配置的規則,則會把圖片轉存到用戶的OSS存儲空間中,并返回對應的HTTP URL。
extrasJSONObject{"hitLibInfo":[{"context":"好看視頻","libCode":"2144002","libName":"預發測試廣告相似文本庫a"}]}額外附加信息。

圖文違規(ad)場景中,該參數可能返回以下內容。

hitLibInfo:如果圖片中的文字命中了自定義文本庫,則返回命中的文本庫信息。格式為數組,具體結構描述,請參見hitLibInfo

resultsJSONArray返回結果。調用成功時(code=200),返回結果中包含一個或多個元素。每個元素是個結構體,具體結構描述,請參見result
表 3. result
名稱類型示例值描述
sceneStringterrorism圖片檢測場景,和調用請求中的場景對應。取值:
  • porn:圖片智能鑒黃
  • terrorism:圖片暴恐涉政
  • ad:圖文違規
  • qrcode:圖片二維碼
  • live:圖片不良場景
  • logo:圖片logo
labelStringsexy檢測結果的分類。不同檢測場景的結果分類不同,具體如下:
  • 圖片智能鑒黃(porn)結果分類:
    • normal:正常
    • sexy:性感
    • porn:色情
  • 圖片暴恐涉政(terrorism)結果分類:
    • normal:正常
    • bloody:血腥
    • explosion:爆炸煙光
    • outfit:特殊裝束
    • logo:特殊標識
    • weapon:武器
    • politics:涉政
    • violence:打斗
    • crowd:聚眾
    • parade:游行
    • carcrash:車禍現場
    • flag:旗幟
    • location:地標
    • drug:涉毒
    • gamble:賭博
    • others:其他
  • 圖文違規(ad)結果分類:
    • normal:正常
    • ad:其他廣告
    • politics:文字含涉政內容
    • porn:文字含涉黃內容
    • abuse:文字含辱罵內容
    • terrorism:文字含暴恐內容
    • contraband:文字含違禁內容
    • spam:文字含其他垃圾內容
    • npx:牛皮癬廣告
    • qrcode:含二維碼
    • programCode:含小程序碼
  • 圖片二維碼(qrcode)結果分類:
    • normal:正常
    • qrcode:含二維碼
    • programCode:含小程序碼
  • 圖片不良場景(live)結果分類:
    • normal:正常
    • meaningless:圖片中無內容(例如黑屏、白屏)
    • PIP:畫中畫
    • smoking:吸煙
    • drivelive:車內直播
    • drug:涉毒
    • gamble:賭博
  • 圖片logo(logo)結果分類:
    • normal:正常
    • TV:含受管控的logo
    • trademark:含商標
sublabelString如果檢測場景包含智能鑒黃(porn)和暴恐涉政(terrorism),則該字段可以返回檢測結果的細分類標簽。

該字段默認不會返回。如果有需要,請加入釘群(釘群號:35573806),聯系產品技術專家進行咨詢。

suggestionStringblock建議您執行的后續操作。取值:
  • pass:結果正常,無需進行其余操作。
  • review:結果不確定,需要進行人工審核。
  • block:結果違規,建議直接刪除或者限制公開。
rateFloat91.54置信度分數,取值范圍:0(表示置信度最低)~100(表示置信度最高)。
如果suggestionpass,則置信度越高,表示內容正常的可能性越高;如果suggestionreviewblock,則置信度越高,表示內容違規的可能性越高。
重要 建議您參考suggestionlabel(或者部分接口返回的sublabel)結果用于內容違規判定。
framesJSONArray如果待檢測圖片因為過長被截斷,該參數返回截斷后的每一幀圖像的臨時訪問地址。具體結構描述,請參見frame
hintWordsInfoJSONArray{"hintWordsInfo":[{"context":"敏感詞"}]}圖片中含有廣告時,返回圖片中廣告文字命中的風險關鍵詞信息。格式為數組,具體結構描述,請參見hintWordsInfo
說明 只有圖文違規(ad)場景會返回該結果。
qrcodeDataStringArray["http://www.aliyundoc.com/01ZZOliO"]圖片中含有二維碼時,返回圖片中所有二維碼包含的文本信息。
說明 只有圖片二維碼(qrcode)場景會返回該結果。
qrcodeLocationsJSONArray返回圖片中識別到的二維碼的坐標信息,關于具體的結構描述,請參見qrcodeLocation
programCodeDataJSONArray圖片中含有小程序碼時,返回小程序碼的位置信息,具體結構描述,請參見programCodeData
說明 只有圖片二維碼(qrcode)場景會返回該結果,且必須已經開啟小程序碼識別。
logoDataJSONArray識圖片中含有logo時,返回識別出來的logo信息,具體結構描述,請參見logoData
說明 只有圖片logo(logo)場景會返回該結果。
sfaceDataJSONArray圖片中包含暴恐識涉政內容時,返回識別出來的暴恐涉政信息,具體結構描述,請參見sfaceData
說明 只有圖片暴恐涉政(terrorism)場景會返回該結果。
ocrDataStringArrayxxxx識別到的圖片中的完整文字信息。
說明 默認不返回。如果需要該結果,請聯系商務經理。
表 4. frame
名稱類型示例值描述
rateFloat89.85置信度分數,取值范圍:0~100,置信度越高表示檢測結果的可信度越高。建議您不要在業務中使用該分數。
urlStringhttp://www.aliyundoc.com/xxx-0.jpg被截斷的圖片的臨時訪問URL,地址有效期是5分鐘。
表 5. programCodeData
名稱類型示例值描述
xFloat11.0以圖片左上角為坐標原點,小程序碼區域左上角到y軸距離,單位:像素。
yFloat0.0以圖片左上角為坐標原點,小程序碼區域左上角到x軸距離,單位:像素。
wFloat402.0小程序碼區域寬度,單位:像素。
hFloat413.0小程序碼區域高度,單位:像素。
表 6. logoData
名稱類型示例值描述
typeStringTV識別出的logo類型,取值為TV(臺標)。
nameStringxxx臺識別出的logo名稱。
xFloat140以圖片左上角為坐標原點,logo區域左上角到y軸距離,單位:像素。
yFloat68以圖片左上角為坐標原點,logo區域左上角到x軸距離,單位:像素。
wFloat106logo區域寬度,單位:像素。
hFloat106logo區域高度,單位:像素。
表 7. sfaceData
名稱類型示例值描述
xFloat49以圖片左上角為坐標原點,人臉區域左上角到y軸距離,單位:像素。
yFloat39以圖片左上角為坐標原點,人臉區域左上角到x軸距離,單位:像素。
wFloat97人臉區域寬度,單位:像素。
hFloat131人臉區域高度,單位:像素。
facesJSONArray[{"name":"命中人名","rate":91.54,"id":"AliFace_0123****"}]識別出的人臉信息,具體結構如下:
  • name:字符串類型,相似人物的名稱。
  • rate:浮點數類型,置信度分數,取值范圍:0(表示置信度最低)~100(表示置信度最高)。置信度越高表示人物識別結果的可信度越高。
  • id:字符串類型,人臉ID。
表 8. hitLibInfo
名稱類型示例值描述
contextString好看視頻文字命中的自定義文本內容。
libCodeString123456文字命中的自定義文本內容對應的庫code。
libNameStringabc文字命中的自定義文本內容對應的庫名稱。
表 9. hintWordsInfo
名稱類型示例值描述
contextString好看視頻文字命中的風險關鍵詞內容。
表 10. qrcodeLocation
名稱類型示例值描述
xFloat11.0以圖片左上角為坐標原點,二維碼區域左上角到y軸距離,單位:像素。
yFloat0.0以圖片左上角為坐標原點,二維碼區域左上角到x軸距離,單位:像素。
wFloat402.0二維碼區域寬度,單位:像素。
hFloat413.0二維碼區域高度,單位:像素。
qrcodeStringhttp://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"
}