写点什么

基于 javacv 的人脸识别和图片内容审核方案

作者:WYT
  • 2023-11-15
    北京
  • 本文字数:1427 字

    阅读完需:约 5 分钟

1、人脸识别方案



2、上传图片内容审查方案

3、最近做一个创业团队项目,人脸识别方案使用的是开源方案,踩了一些坑,尤其是加载模型文件的时候路径问题,项目采用 spring boot,放在 resources 下面加载人脸识别模型文件会找不到,暂时放到了程序包中,代码如下:


/** * 人脸检测 */@Slf4j@Configurationpublic class FaceDetectUtil {
//放在resource下面不生效 private static CascadeClassifier faceCascade = new CascadeClassifier("/haarcascade_frontalface_default.xml");
/** * 检查是否有人脸 * @param imgUrl * @return */ public boolean checkFace(String imgUrl){ try { URL url = new URL(imgUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setDoOutput(true); conn.connect();
InputStream is = conn.getInputStream(); byte[] data = new byte[is.available()]; is.read(data);
// Read the image into a Mat using OpenCV Mat image = opencv_imgcodecs.imdecode(new Mat(data), Imgcodecs.IMREAD_UNCHANGED); Mat grayImage = new Mat(); opencv_imgproc.cvtColor(image, grayImage, opencv_imgproc.COLOR_BGR2GRAY);
// 进行人脸检测 RectVector faces = new RectVector(); faceCascade.detectMultiScale(grayImage, faces);
// 判断是否检测到人脸 if (faces.size() > 0) { return true; } else { return false; } } catch (Exception e) { log.error("error", e); } return true; }
/** * 是否来源于网络图片 * @param imagePath * @return */ public static boolean isInternetImage(String imagePath) { try { // 使用Apache Tika解析图像文件的元数据 URL url = new URL(imagePath); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setDoOutput(true); conn.connect(); InputStream inputStream = conn.getInputStream();
Parser parser = new AutoDetectParser(); ContentHandler textHandler = new ToTextContentHandler(); Metadata metadata = new Metadata();
parser.parse(inputStream, textHandler, metadata, new ParseContext());
// 检查元数据中是否包含关于图像来源的信息 String sourceInformation = metadata.get("Image Source"); if (sourceInformation != null && sourceInformation.toLowerCase().contains("internet")) { return true; }
inputStream.close(); } catch (Exception e) { log.error("error", e); }
return false; }}
复制代码

有哪位做过类似的需求,如果有什么好的方案可以在评论区回复一下,感谢!

用户头像

WYT

关注

还未添加个人签名 2019-12-06 加入

还未添加个人简介

评论

发布
暂无评论
基于javacv的人脸识别和图片内容审核方案_人脸识别_WYT_InfoQ写作社区