java对接七牛后台进行内容审核(鉴黄、敏感人物、暴恐)
關于七牛內容審核的介紹
在七牛的控制臺找到智能多媒體
接下來找到智能內容審核,可以看到一些審核數據情況,主要包含:鑒黃、暴恐、敏感人物
另外看一下API接口說明:
查看地址是:https://developer.qiniu.com/dora/api/4252/image-review
主要分為兩部分接口:新圖片和舊圖片。具體接口內容可點擊上面地址進去看,此處不作詳細介紹。
2、主動提交到七牛進行審核
顧名思義就是將現有的圖片提交到七牛進行審核,以下是實現代碼,我這里的例子只給出了傳圖片url的方式,當然也可以傳圖片的base64碼上去進行審核
以下是說明:
圖片資源。支持兩種資源表達方式:
以下是代碼演示:
public static JSONObject checkImage(String imageUrl) {//基礎參數拼接String url = "http://ai.qiniuapi.com/v3/image/censor";String host = "ai.qiniuapi.com";String body = "{ \"data\": { \"uri\": \""+imageUrl+"\" }, \"params\": { \"scenes\": [ \"pulp\", \"terror\", \"politician\" ] } }";String contentType = "application/json";String method = "POST";Auth auth = Auth.create(accessKey, secretKey);String qiniuToken = "Qiniu " + auth.signRequestV2(url, method, body.getBytes(), contentType);log.info("url={},body={},qiniuToken={}",url,body,qiniuToken);//頭部部分StringMap header = new StringMap();header.put("Host",host);header.put("Authorization",qiniuToken);header.put("Content-Type", contentType);Configuration c = new Configuration(Region.huadong());Client client = new Client(c);try {Response response = client.post(url, body.getBytes(), header, contentType);log.info("response result={}",response.bodyString());JSONObject checkResult = JSON.parseObject(response.bodyString());return checkResult;} catch (QiniuException e) {e.printStackTrace();}return null;}public static Map<String,Object> handleImageResult(String attach){JSONObject attachObj = JSON.parseObject(attach);String imageUrl = attachObj.getString("url");if (StringUtils.isNotBlank(imageUrl)){JSONObject checkResult = QiNiuYunUtil.checkImage(imageUrl);if (checkResult.getIntValue("code")==200){JSONObject imgResult = checkResult.getJSONObject("result");JSONObject scenes = imgResult.getJSONObject("scenes");//色情校驗JSONObject pulp = scenes.getJSONObject("pulp");if (ObjectUtils.isNotEmpty(pulp.get("details"))) {JSONObject detail = pulp.getJSONArray("details").getJSONObject(0);if(detail.getString("label").equals("pulp")){return ImmutableMap.of("errCode",1,"errMsg","圖片存在色情要素","responseCode",2001);}}//圖片鑒暴恐JSONObject terror = scenes.getJSONObject("terror");if(!StringUtils.equals(terror.getString("suggestion"),"pass")){return ImmutableMap.of("errCode",1,"errMsg","圖片存在暴恐要素","responseCode",2001);}//圖片敏感人物識別JSONObject politician = scenes.getJSONObject("politician");if(!StringUtils.equals(politician.getString("suggestion"),"pass")){return ImmutableMap.of("errCode",1,"errMsg","圖片敏感人物要素","responseCode",2001);}}}return ImmutableMap.of("errCode",0,"errMsg","通過","responseCode",2000);}3、增量審核七牛進行審核
換一種更好的理解方式就是:
我們上傳圖片到七牛的時候,七牛自動幫我們審核,如果圖片違規,七牛會自動禁掉,如果認定為需要復審,比如說一些性感圖片,不確定你們網站是否可以放,需要商戶自己處理審核結果。七牛的做法是,每一張圖片審核都通知到審核。
七牛增量審核適用于對上傳于七牛對象存儲的資源實時觸發內容審核的場景。開啟七牛增量審核后,能幫助您在秒級時間內審核新上傳的資源,并支持及時地對違規資源執行自動封禁,保障業務安全。
適用需求場景:
您有新資源上傳于七牛對象存儲
您需要在資源上傳后,實時觸發內容審核
您需要做審核的資源,無前綴要求 或者 屬于指定的前綴下
您需要對違規資源做自動封禁 或者 您有人力在審核完成后做審核結果復核
下面是介紹如何開通增量審核的地址:https://developer.qiniu.com/censor/manual/5922/incremental-audit#3
關于增量接口回調介紹可以參考以下地址:
https://developer.qiniu.com/censor/manual/5920/incremental-audit-callback
我這邊給大家看一下我的接收七牛通知的寫法:
接口層:
/*** 七牛圖片審核回調* @param param* @return*/@ResponseBody@RequestMapping("/checkFileCallBack.do")@NoneAuth@LogConfig(actionName = "七牛圖片審核回調")public ResponseVo checkFileCallBack(@RequestBody JSONObject param){try{log.info("checkFileCallBack param={}",param.toJSONString());this.commonService.checkFileCallBack(param);return ResponseVo.buildSuccessResponse();}catch (Exception e){log.error("checkFileCallBack e={}",e);return ResponseVo.buildFaildResponse();}}服務層:
/*** 處理審核結果* @param param*/@Overridepublic void checkFileCallBack(JSONObject param) {//圖片地址String inputKey = param.getString("inputKey");//空間String inputBucket = param.getString("inputBucket");//獲取審核項JSONObject item = (JSONObject) param.getJSONArray("items").get(0);//是否直接被禁用了boolean disable = item.getJSONObject("result").getBoolean("disable");boolean qiniuCheckFlag = false;if (disable){// 默友官方禁用或者刪除qiniuCheckFlag = true;}else{//查看審核結果,是否需要復核JSONObject checkResult = item.getJSONObject("result").getJSONObject("result");//處理結果int resultCode = checkResult.getIntValue("code");if (resultCode== HttpStatus.SC_OK){JSONObject scenesResult = checkResult.getJSONObject("scenes");//鑒黃JSONObject pulpResult = scenesResult.getJSONObject("pulp");String suggestion = pulpResult.getString("suggestion");//表示系統確認審核內容違規,建議您將其刪除。if (StringUtils.equals(suggestion,"block")){// 默友官方禁用或者刪除qiniuCheckFlag = true;}//圖片鑒暴恐JSONObject terrorResult = scenesResult.getJSONObject("terror");//表示系統確認審核內容違規,建議您將其刪除。suggestion = terrorResult.getString("suggestion");if (StringUtils.equals(suggestion,"block")){// 默友官方禁用或者刪除qiniuCheckFlag = true;//表示系統無法確認審核內容是否違規,建議您進行人工復核。}//圖片敏感人物識別JSONObject politician = scenesResult.getJSONObject("politician");suggestion = politician.getString("suggestion");if (StringUtils.equals(suggestion,"block")){// 默友官方禁用或者刪除qiniuCheckFlag = true;}//廣告識別JSONObject ads = scenesResult.getJSONObject("ads");if (null!=ads){suggestion = ads.getString("suggestion");if (StringUtils.equals(suggestion,"block")){// 默友官方禁用或者刪除qiniuCheckFlag = true;//表示系統無法確認審核內容是否違規,建議您進行人工復核。}}}else{String msg = checkResult.getString("msg");log.info("checkFileCallBack code={} msg={}",resultCode,msg);}}if (qiniuCheckFlag) {//更新文件記錄this.attachFilesService.qiniuCheckFile(inputKey,param.toJSONString());}}總結
以上是生活随笔為你收集整理的java对接七牛后台进行内容审核(鉴黄、敏感人物、暴恐)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英特尔 11 代酷睿桌面酷睿 i9-11
- 下一篇: 70句计算机英语,医务人员常用英语70句