Baidu Smart Cloud Portrait Segmentation Case Teaching: Back-End-Java realisiert die ID-Karten-Porträtsegmentierung und die Änderung der Hintergrundfarbe

Darstellungen

 

 

 

① Gehen Sie zu  Baidu Smart Cloud – Intelligent Era Infrastructure  und suchen Sie nach „Portrait Segmentation“. Nach der Authentifizierung mit echtem Namen können Sie kostenlose Testzeiten erhalten

②Access_token abrufen

String accessToken = "[access_token]"

Hier müssen Sie zu einer anderen Schnittstelle gehen, um Access_token zu erhalten. Holen Sie sich das Tutorial: https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu

Um hier Ärger zu vermeiden, verwende ich Postman, um Access_token abzurufen

 

 ③Füllen Sie das Access_token in den folgenden Code ein. Ändern Sie den Pfad der Bilddatei in den von Ihnen benötigten Pfad. Die im Code benötigten Werkzeugklassen können direkt über die URL im Kommentar heruntergeladen werden

Der folgende Code stammt aus dem Entwicklungsdokument zur Porträtsegmentierung von Baidu. Ich habe eine kleine Änderung vorgenommen.

/**
 * 人像分割
 */
public class Main {

    /**
     * 重要提示代码中所需工具类
     * FileUtil,Base64Util,HttpUtil,GsonUtils请从
     * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
     * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
     * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
     * https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
     * 下载
     */
    public static String body_seg() {

        String url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg";
        try {
            // 本地文件路径
            String filePath = "D:/AAfile/2.jpg";
            byte[] imgData = FileUtil.readFileByBytes(filePath);
            String imgStr = Base64Util.encode(imgData);
            String imgParam = URLEncoder.encode(imgStr, "UTF-8");
            String param = "image=" + imgParam;

            // 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
            String accessToken = "[access_token]";//这里需要去另一个接口获取一下access_token
            String result = HttpUtil.post(url, accessToken, param);
            Map mapTypes = JSON.parseObject(result);//将返回的json转化为map
            String a = String.valueOf(mapTypes.get("foreground"));//这里获取到的是处理后的base64
            File file = new File("D:/AAfile/baidu2.jpg");//新建文件作为处理后图片
            StreamUtils.base64ToFile(a,file);//将base64转为文件
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }


    public static void main(String[] args) {
        Main.body_seg();
    }
}

Ich denke du magst

Origin blog.csdn.net/qq_70143756/article/details/129422835
Empfohlen
Rangfolge