【邀测痘痣斑检测】痘痣斑你分的清楚吗?
756665228 发布于2020-04-14 18:07 浏览:333 回复:11
5
收藏
最后编辑于2020-05-19

【邀测痘痣斑检测】痘痣斑你分的清楚吗?

接口属于邀测阶段,请自行提交工单申请哦

接口文档 https://ai.baidu.com/ai-doc/FACE/4k84adsyp

所需相关JAR

fastjson
lombok
hutool

所涉及的其他Java对象

https://www.kancloud.cn/ydxiaoshuai/baiduai/1636101

能力介绍
业务能力 通过AI技术对图片中的人脸进行痘、斑、痣的检测和识别

痘痘检测:支持对图像中的人脸进行痘痘、痘印检测和高精度识别
斑点检测:支持对图像中的人脸进行斑点检测和高精度识别
痣检测:支持对图像中的人脸进行痣检测和高精度识别

对于第一次接触百度AI的开发者们。建议先看 接入指南  https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3

代码运行演示

代码演示Java代码

package cn.medicalbeauty;

import cn.JFrameSample;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.http.HttpUtil;
import cn.xsshome.taip.util.FileUtil;
import com.alibaba.fastjson.JSON;
import com.baidu.aip.util.Base64Util;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * @author 小帅丶
 * @className MedicalBeautySample
 * @Description //TODO
 * @Date 2020/4/9-15:11
 **/
public class MedicalBeautySample {

    private static String accessToken = "";//接口信息获取的AccessToken
    private static String image_type = "BASE64";//演示使用图片BASE64请求
    private static String appid = "";//自己应用的APPID

    public static void main(String[] args) throws Exception {

        String filePath = "F://testimg//doudou.jpg";
        //痘斑痣检测接口
        String result = getAcnespotmole(filePath);
        System.out.println(result);
    }


    /**
     * @Author 小帅丶
     * @Description 痘斑痣检测接口
     * @Date  2020/4/9 15:31
     * @param filePath 文件路径
     * @return java.lang.String
     **/
    public static String getAcnespotmole(String filePath) throws Exception{
        String imageBase64 = Base64Util.encode(FileUtil.readFileByBytes(filePath));
        String image = imageBase64;

        MedicalBeautyRequest request = new MedicalBeautyRequest();
        request.setAppid(appid);
        request.setImage(image);
        request.setImage_type(image_type);

        String result = HttpUtil.post(MedicalBeautyConts.FACE_ACNESPOTMOLE_URL+"?access_token="+accessToken, JSON.toJSONString(request));
        System.out.println(result);
        getReact(filePath, JSON.parseObject(result, MedicalBeautyAcnespotmoleResponse.class));
        return result;
    }

    /**
     * @Author 小帅丶
     * @Description 给图片增加框
     * @Date  2020/2/27 13:11
     * @param filePath 图片路径
     * @param bean 包含坐标的对象 x-left y-top width-width height-height
     * @return void
     **/
    public static void getReact(String filePath,MedicalBeautyAcnespotmoleResponse bean) throws Exception{
        BufferedImage image = ImageIO.read(new File(filePath));
        Graphics g = image.getGraphics();;
        List acne_list = bean.getResult().getFace_list().get(0).getAcne_list();
        List speckle_list = bean.getResult().getFace_list().get(0).getSpeckle_list();
        List mole_list = bean.getResult().getFace_list().get(0).getMole_list();
        Font font = new Font("微软雅黑", Font.ITALIC, 16);
        //痘信息
        for (int i = 0; i < acne_list.size(); i++) {
            g.setColor(Color.BLUE);
            int width  = (int)acne_list.get(i).getRight()-(int)acne_list.get(i).getLeft();
            int height = (int)acne_list.get(i).getBottom()-(int)acne_list.get(i).getTop();
            g.drawRect((int)acne_list.get(i).getLeft(), (int)acne_list.get(i).getTop(),width, height);
        }
        //斑信息
        for (int i = 0; i < speckle_list.size(); i++) {
            g.setColor(Color.GREEN);
            int speckleWidth  = (int)speckle_list.get(i).getRight()-(int)speckle_list.get(i).getLeft();
            int speckleHeight = (int)speckle_list.get(i).getBottom()-(int)speckle_list.get(i).getTop();
            g.drawRect((int)speckle_list.get(i).getLeft(), (int)speckle_list.get(i).getTop(),speckleWidth, speckleHeight);
        }
        //痣信息
        for (int i = 0; i < mole_list.size(); i++) {
            g.setColor(Color.MAGENTA);
            int width  = (int)mole_list.get(i).getRight()-(int)mole_list.get(i).getLeft();
            int height = (int)mole_list.get(i).getBottom()-(int)mole_list.get(i).getTop();
            g.drawRect((int)mole_list.get(i).getLeft(), (int)mole_list.get(i).getTop(),width, height);
        }
        g.setFont(font);
        g.setColor(Color.white);
        g.drawString(acne_list.size()+"个痘,"+speckle_list.size()+"个斑,"+mole_list.size()+"个痣",0,20);
        FileOutputStream out = new FileOutputStream("F://testimg//medicalbeauty//111.jpg");//输出图片的地
        ImageIO.write(image, "jpeg", out);
        new JFrameSample("F://testimg//medicalbeauty//111.jpg");
    }

    
}

JFrameSample(图片显示到窗口中的一个工具类)

import javax.swing.*;
import java.awt.*;
/**
 * @author 小帅丶
 * @className JFrameSample
 * @Description 窗口显示对象
 * @Date 2020/3/9-9:46
 **/
public class JFrameSample extends JFrame{
    /**
     * @Author 小帅丶
     * @Description 显示图片
     * @Date  2020/3/9 10:21
     * @param filePath 图片路径
     * @return
     **/
    public JFrameSample(String filePath){
        setTitle("处理后的图片");
        ImageIcon imageIcon = new ImageIcon(filePath);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setSize(imageIcon.getIconWidth(),imageIcon.getIconHeight());
        setResizable(false);
        getContentPane().setLayout(null);
        JPanel panel = new ImagePanel(filePath,imageIcon);
        panel.setBounds(0,0,imageIcon.getIconWidth(),imageIcon.getIconHeight());
        getContentPane().add(panel);
        setVisible(true);
    }
    class ImagePanel extends JPanel{
        String filePathNew = null;
        ImageIcon imageIconNew = null;
        public ImagePanel(String filePath,ImageIcon imageIcon) {
            filePathNew = filePath;
            imageIconNew = imageIcon;
        }
        @Override
        public void paint(Graphics g) {
            super.paint(g);
            g.drawImage(imageIconNew.getImage(), 0, 0, imageIconNew.getIconWidth(),imageIconNew.getIconHeight(),this);
        }
    }
}

小程序截图

想体验一下 微信扫码下面的小程序码 进去选择 医美特效-痘痣斑检测

应用场景

智能医美
支持上传或配合采集工具实时拍摄照片,后对皮肤光滑度及质量进行深度分析,实现对肤质光滑度的档位输出

互动娱乐
可用于各类短视频产品,或互动营销方案中提供趣味的体验

收藏
点赞
5
个赞
共11条回复 最后由羊驼001回复于2020-05-19 11:10
#12羊驼001回复于2020-05-19 11:10:19

up

0
#11羊驼001回复于2020-05-06 11:56:33

up

0
#10羊驼001回复于2020-04-22 12:38:03

厉害厉害

0
#9通付交流平台回复于2020-04-18 23:48:00

大神 您好 请问哪里有语音对话的资源啊

 

0
#8ZengZhuoqi回复于2020-04-17 06:59:09

大佬大佬,小白甘拜下风

0
#7TZLGKE回复于2020-04-16 13:41:09

人像特效及医美7大全新能力开放邀测啦 https://ai.baidu.com/forum/topic/show/958701

0
#6756665228回复于2020-04-16 11:41:04
#4 何必固執回复
没有 .net的对接嘛

接口是HTTP协议的。基本大多数语言都支持HTTP协议的

2
#5蓝兰兰111回复于2020-04-16 10:37:47

赞,很厉害

0
#4何必固執回复于2020-04-16 08:55:57

没有 .net的对接嘛

0
#3wangwei8638回复于2020-04-15 18:00:16

赞一个

0
#2汽车199101回复于2020-04-15 16:00:41

大佬又出新了

0
TOP
切换版块