Foxtable(狐表)用户栏目专家坐堂 → 文字、图片自动审核(鉴别色情|恶心|政治|等等),该怎么做?


  共有10317人关注过本帖树形打印复制链接

主题:文字、图片自动审核(鉴别色情|恶心|政治|等等),该怎么做?

帅哥哟,离线,有人找我吗?
zhangjian222200
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
文字、图片自动审核(鉴别色情|恶心|政治|等等),该怎么做?  发帖心情 Post By:2017/9/15 11:49:00 [只看该作者]

如题:

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/15 11:57:00 [只看该作者]

要调用api

 

https://cloud.baidu.com/product/imagecensoring

 

 

[此贴子已经被作者于2017/9/15 16:07:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/9/15 15:15:00 [只看该作者]

百度的先用后付,很好,网址:https://cloud.baidu.com/product/imagecensoring

能帮指导下怎么用么?
文档网址:http://ai.baidu.com/docs#/ImageCensoring-Java-SDK/top

创建应用后,可以选择下图中的sdk,

图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017091515502333.png
图片点击可在新窗口打开查看




[此贴子已经被作者于2017/9/21 18:37:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/15 16:01:00 [只看该作者]

获取token

 

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=jGn8mcvbkGFBFSBM4xXQyGoF&client_secret=MkrFL3WANutt9o7XiDe3hzlg8PIp4Qxb

 

得到token 24.864d8f6c5046ba8fa0bc3ee503583c10.2592000.1508053325.282335-10146214

 

执行代码,获取信息

 

Dim bmp As new Bitmap("d:\test.jpg")
Dim ms As new System.Io.MemoryStream()
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)

Dim arr(ms.Length) As Byte
ms.Position = 0
ms.Read(arr, 0, ms.Length)
ms.Close()

Dim strbase64 As String = Convert.ToBase64String(arr)
bmp.dispose
msgbox("读取图片完毕")

Dim body As String = "{""image"":""" & strbase64 & """,""scenes"":[""ocr"",""face"",""public"",""politician"",""antiporn"",""terror"",""webimage""],""sceneConf"":{""ocr"":{""recognize_granularity"":""big"",""language_type"":""CHN_ENG"",""detect_direction"":""true"",""detect_language"":""true""},""antiporn"":{}}}"
Dim token As String = "24.864d8f6c5046ba8fa0bc3ee503583c10.2592000.1508053325.282335-10146214"
Dim req = System.Net.WebRequest.Create("http://aip.baidubce.com/api/v1/solution/direct/img_censor?access_token=" & token)
req.Method = "POST"
req.ContentType = "application/json; charset=UTF-8"
Dim aryBuf As Byte() = Encoding.UTF8.GetBytes(body)
req.ContentLength = aryBuf.Length
Dim writer = req.GetRequestStream()
writer.Write(aryBuf, 0, aryBuf.Length)
writer.Close()
writer.Dispose()
Dim pos = req.GetResponse
msgbox("获取数据完毕")

Dim stm As System.IO.Stream = pos.GetResponseStream()
Dim reader As New System.IO.StreamReader(stm)
Dim str As String = reader.ReadToEnd
pos.Close
stm.Close
reader.close

Dim jo As JObject = Jobject.Parse(str)
msgbox(jo.ToString)

[此贴子已经被作者于2017/9/15 16:03:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/9/15 16:17:00 [只看该作者]

我把上传图片页面代码、处理图片页面代码和js贴出来了。楼上代码应该放哪?(现有的图片审核是在js里面处理的)

图片上传页代码:
Dim e As RequestEventArgs = args(0)                            '注册第7页,上传照片
Dim wb As New weui
If e.PostValues.Count = 0 Then
    wb.AddTopTips("","toptip1","") '用于显示动态错误提示
    
    wb.AddForm("","form1","valid_images.htm")
    With wb.AddInputGroup("form1","ipg1","展示照(选择1张靓照即可)") '文件上传(1个)
        With.AddUploader("up1","",False)
        .AllowDelete = True '允许用户删除图片
        .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
    End With
End With
With wb.AddInputGroup("form1","ipg22","生活照(选择3张以上靓照)") '带图片浏览的文件上传(最少4个)
    With.AddUploader("up4","",True) 'True表示允许一次上传多个文件
    .AllowDelete = True '允许删除
    .Incremental = True '允许 重复选择文件或连续拍照
    .ScaleWidth = 400 '自动压缩图片宽度为400个像素,高度等比例压缩
End With
End With
With wb.AddButtonGroup("form1","btg1",True)
    .Add("btn1", "提交", "button").Attri-bute= "on-click='validit_images()'" '调用js函数上传
End With
wb.AddToast("","tst1", "正在上传",1)
wb.AddToast("","tst2", "上传成功",0)
wb.AddToast("","tst3", "上传失败",0).Icon= "warn"

wb.AppendHTML("<script src='./lib/ajax-form_images.js'></script>") '引入脚本文件
e.WriteString(wb.Build) '生成网页
End If

图片处理页面:
Dim e As RequestEventArgs = args(0)                             '验证页面(照片)
Dim wb As New weui

Dim NewName As String '应该是照片的新名字
Dim drbianh As String = e.Cookies("drbianhao") '为cookie传递数据
Dim dr As DataRow = DataTables("会员资料").sql-Find("会员编号 = '" & drbianh & "'")

If dr IsNot Nothing Then                           '测试代码:msgbox(e.PostValues("isr"))
    For Each key As String In e.Files.Keys
        If key = "up1" Then
            For Each fln As String In e.Files(key)
                'msgbox(0)
                Dim ext As String = fln.Split(".")(1)
                NewName = Format(Date.Now, "yyyyMMddHHmmss") & Rand.Next(10000,99999) & "." & ext
                e.SaveFile(key, fln, "e:\web\zsz\d\" & Format(Date.Today, "yyyyMM") & "\" & NewName)
                dr("展示照") &= iif(dr.IsNull("展示照"), "", vbcrlf) & Format(Date.Today, "yyyyMM") & "\" & NewName
            Next
        End If
    Next
    For Each key1 As String In e.Files.Keys
        If key1 = "up4" Then
            For Each fln1 As String In e.Files(key1)
                Dim ext1 As String = fln1.Split(".")(1)
                NewName = Format(Date.Now, "yyyyMMddHHmmss") & Rand.Next(10000,99999) & "." & ext1
                e.SaveFile(key1, fln1, "e:\web\shz\d\" & Format(Date.Today, "yyyyMM") & "\" & NewName)
                dr("生活照") &= iif(dr.IsNull("生活照"), "", vbcrlf) & Format(Date.Today, "yyyyMM") & "\" & NewName
            Next
        End If
    Next
    dr.save()              '保存
    e.WriteString("OK") '生成网页
Else
    e.WriteString("没有找到会员行!请重新登录,再试!")
End If

js代码:
function validit_images(){
  var v1 = docu-ment.get-ElementById("up1_thumbnails").get-ElementsByTagName("li").length;
  var v2 = docu-ment.get-ElementById("up4_thumbnails").get-ElementsByTagName("li").length;
  //alert(v1 + " " + v2);

var frm = docu-ment.get-ElementById("form1");
var frmdata = new FormData(frm);
if (frm.incremental) {
    var fluds = frm.get-ElementsByClassName("weui_uploader_input");
    for (var idx = 0; idx < fluds.length; idx++) {
        var files = fluds[idx].Files;
        if (files) {
            for (var i = 0; i < files.length; i++) {
                alert(files[i].blobFile);
                var fln = files[i].blobFile
                if (typeof(fln) == "undefined") {
                    //alert("照片格式不正确");
                    showTopTips("toptip1","照片格式不正确!",2000);
                    return false;
                }
                fln = fln.substring(fln.lastIndexOf(".") + 1).toLowerCase();
                switch (fln) {
                case "jpg":
                case "jpeg":
                case "png":
                case "gif":
                case "bmp":
                    break;
                default:
                    //alert("照片格式不正确");
                    showTopTips("toptip1","照片格式不正确!",2000);
                    return false;
                }
            }
        }
    }
}

 if(v1 < 1){
  showTopTips("toptip1","请选择1张展示照上传!",2000);
  return false;
  }
 if(v1 > 1){
  showTopTips("toptip1","展示照只可以上传1张!",2000);
  return false;
  }
 if(v2 < 3){
  showTopTips("toptip1","请选择3张以上生活照上传!",2000);
  return false;
  }
 if(v2 > 9){
  showTopTips("toptip1","生活照最多可以上传9张!",2000);
  return false;
  }
  show("tst1",2000);
  var result = submitAjaxForm('form1','afterSubmit');
}
function afterSubmit(result){
  hide("tst1");
 if (result=='OK') {
  show("tst2");
  location="success.htm";
  }
 else{
    show("tst3",2000);
  }
}
[此贴子已经被作者于2017/9/15 16:25:44编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/15 17:30:00 [只看该作者]

写在 e.SaveFile 的后面。

 

你保存图片以后,把图片发过去验证,如果验证是错误的,就把图片删除,同时返回信息告知用户。


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/9/16 19:07:00 [只看该作者]

看了4楼代码,然后在百度创建了一个应用,截图如下:(创建网址:https://cloud.baidu.com/product/imagecensoring
如何把里面的AppID、API Key、Secret Key,放在4楼给出的代码里?


图片点击可在新窗口打开查看此主题相关图片如下:qq图片2017091618595666.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/17 16:23:00 [只看该作者]

先获取token(一个月有效)具体看帮助文档,参考如何获取token。

 

红色代码就是你要替换的东西

 

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=jGn8mcvbkGFBFSBM4xXQyGoF&client_secret=MkrFL3WANutt9o7XiDe3hzlg8PIp4Qxb

 

得到token 24.864d8f6c5046ba8fa0bc3ee503583c10.2592000.1508053325.282335-10146214


 回到顶部
帅哥哟,离线,有人找我吗?
zhangjian222200
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1553 积分:11003 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2017/9/21 12:10:00 [只看该作者]

4楼代码

1.最后一句:jo.ToString,是返回的检测结果吗?

2.红色部分看不懂,是将文字识别、人脸识别、图像审核,都包含进来了吗?
Dim body As String = "{""image"":""" & strbase64 & """,""scenes"":[""ocr"",""face"",""public"",""politician"",""antiporn"",""terror"",""webimage""],""sceneConf"":{""ocr"":{""recognize_granularity"":""big"",""language_type"":""CHN_ENG"",""detect_direction"":""true"",""detect_language"":""true""},""antiporn"":{}}}"
[此贴子已经被作者于2017/9/21 12:18:56编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 12:23:00 [只看该作者]

你需要什么,你就合成什么,参考

 

 

请求参数

参数 类型 是否必须 说明
image string 图像数据,base64编码,不能与imgUrl并存
imageUrl string 图像Url,不能与image并存,不需要urlEncode
scenes array Y 指定本次调用的模型服务,以字符串数组表示。元素含义如下:
ocr:通用文字识别
politician:政治敏感识别
antiporn:色情识别
terror:暴恐识别
webimage:网络图片文字识别
disgust:恶心图像识别
watermark:广告检测
quality:图像质量检测
scenesConf object N 对文字识别服务,支入参的特殊设置,若不填则使用默认设置。jsonObject说明:
key为要设置入参的服务类型,取值如下:
1、ocr:通用文字识别
2、webimage:网络图片文字识别
value为各模型服务参数,详情请参照百度AI官网“文字识别具体接口文档


 回到顶部
总数 48 1 2 3 4 5 下一页