1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
| app.post('/checkImg',async (req, res) => { try { let form = new multiparty.Form(); form.uploadDir = './tempImgs'; form.parse(req, async (err, fields, files) => { if (!files || !files.file[0]) { console.log(files) console.log(fields) return res.send({ code: -1, msg: '请上传file图片资源(form-data格式)', data: {} }) } console.log('files.file[0]:', files.file[0]); if (files.file[0].size > 1024 * 1024 * 3) { return res.send({ code: -2, msg: '被检测图片最大3M', data: {} }) }; let imgReg = /\S+\.(png|jpeg|jpg)$/g; let originImgName = files.file[0].originalFilename || files.file[0].path; if (!imgReg.test(originImgName)) { return res.send({ code: -3, msg: '仅仅支持(png、jpeg、jpg)类型图片检测', data: {} }) } let img = await convert(files.file[0]); let model; model_fp = 'file://' + path.join("./", 'model/model.json'); tf.loadGraphModel(model_fp ).then(function(loadedModel) { model = loadedModel; let img = convert(files.file[0]); nsfw1 = new nsfw.NSFWJS(0, { size: 224 }); console.log(nsfw1.classify); let predictions = nsfw1.classify(img); const {isSafe, imgType} = isSafeContent(predictions); console.log('是否安全:', predictions, isSafe); res.send({ code: 0, msg: isSafe ? '图片合规' : '图片可能存在不合规的风险,请核查', data: { isSafe, imgType, predictions, } }) }).catch(function(error) { console.error('加载模型时出错:', error); }); }); } catch (error) { res.send({ code: -9, msg: '图片核查失败,请重试', data: {} }) } });
app.listen(3006,()=>{ console.log("图片鉴黄服务器启动成功!port:3006"); });
|