日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

import com.arcsoft.face.EngineConfiguration;
import com.arcsoft.face.FaceEngine;
import com.arcsoft.face.FaceInfo;
import com.arcsoft.face.FunctionConfiguration;
import com.arcsoft.face.enums.DetectMode;
import com.arcsoft.face.enums.DetectOrient;
import com.arcsoft.face.enums.ErrorInfo;
import com.arcsoft.face.enums.ImageFormat;
import com.arcsoft.face.toolkit.ImageFactory;
import com.arcsoft.face.toolkit.ImageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import JAVAx.annotation.PostConstruct;
import java.io.File;
import java.util.ArrayList;
import java.util.List;


/**
 * 虹軟人臉識(shí)別
 * 用于 檢測(cè)上傳頭像圖片是否是 人臉
 * 不是 終止上傳  返回提示信息
 * */
@Service
public class FaceEngineService {

    private static final Logger LOGGER = LoggerFactory.getLogger(FaceEngineService.class);

    /*  下面是在獲取 虹軟人臉識(shí)別第三方的配置信息  */
    @Value("${arcsoft.Appid}")
    private String appid;

    @Value("${arcsoft.sdkKey}")
    private String sdkKey;

    @Value("${arcsoft.libPath}")
    private String libPath;

    private FaceEngine faceEngine;

    @PostConstruct //這里作init初始化 @PostConstruct作用 在springboot中所有Bean初始化完成后 執(zhí)行 init方法
    public void init() {
        // 激活并且初始化引擎
        // 下面的代碼是將 虹軟官方提供的代碼做封裝 就直接將人臉識(shí)別代碼段拷貝
        // 此代碼在紅軟下載SDK 的 ArcSoft_ArcFace_Java_windows_x64_V3.0samplecode 里
        // 要下載虹軟SDK  window 和 linux 兩種系統(tǒng)中運(yùn)行的版本
        // 每個(gè)項(xiàng)目都得注冊(cè)新的SDK 進(jìn)行下載  并注冊(cè)新用戶 將用戶信息配置到 springboot配置文件中
        // 人臉識(shí)別技術(shù)采用虹軟開放平臺(tái)實(shí)現(xiàn)(免費(fèi)的)。官網(wǎng):https://www.arcsoft.com.cn/
        // 使用虹軟平臺(tái)需要先注冊(cè)開發(fā)者賬號(hào):https://ai.arcsoft.com.cn/ucenter/user/userlogin
        /**
         * 進(jìn)入到libs目錄,需要將arcsoft-sdk-face-3.0.0.0.jar安裝到本地倉(cāng)庫:
         * mvn install:install-file -DgroupId=com.arcsoft.face -DartifactId=arcsoft-sdk-face -Dversion=3.0.0.0 -Dpackaging=jar -Dfile=arcsoft-sdk-face-3.0.0.0.jar
         * 安裝成功后,即可通過maven坐標(biāo)引用了:
         *
         * <dependency>
         *     <groupId>com.arcsoft.face</groupId>
         *     <artifactId>arcsoft-sdk-face</artifactId>
         *     <version>3.0.0.0</version>
         *     <!--<scope>system</scope>-->
         *     <!--如果沒有安裝到本地倉(cāng)庫,可以將jar包拷貝到工程的lib下面下,直接引用-->
         *     <!--<systemPath>${project.basedir}/lib/arcsoft-sdk-face-3.0.0.0.jar</systemPath>-->
         * </dependency>
         * */
        FaceEngine faceEngine = new FaceEngine(libPath);
        int activeCode = faceEngine.activeOnline(appid, sdkKey);
        if (activeCode != ErrorInfo.MOK.getValue() && activeCode != ErrorInfo.MERR_ASF_ALREADY_ACTIVATED.getValue()) {
            LOGGER.error("引擎激活失敗");
            throw new RuntimeException("引擎激活失敗");
        }

        //引擎配置
        EngineConfiguration engineConfiguration = new EngineConfiguration();
        //IMAGE檢測(cè)模式,用于處理單張的圖像數(shù)據(jù)
        engineConfiguration.setDetectMode(DetectMode.ASF_DETECT_MODE_IMAGE);
        //人臉檢測(cè)角度,全角度
        engineConfiguration.setDetectFaceOrientPriority(DetectOrient.ASF_OP_ALL_OUT);

        //功能配置
        FunctionConfiguration functionConfiguration = new FunctionConfiguration();
        functionConfiguration.setSupportAge(true);
        functionConfiguration.setSupportFace3dAngle(true);
        functionConfiguration.setSupportFaceDetect(true);
        functionConfiguration.setSupportFaceRecognition(true);
        functionConfiguration.setSupportGender(true);
        functionConfiguration.setSupportLiveness(true);
        functionConfiguration.setSupportIRLiveness(true);
        engineConfiguration.setFunctionConfiguration(functionConfiguration);

        //初始化引擎
        int initCode = faceEngine.init(engineConfiguration);

        if (initCode != ErrorInfo.MOK.getValue()) {
            LOGGER.error("初始化引擎出錯(cuò)!");
            throw new RuntimeException("初始化引擎出錯(cuò)!");
        }

        this.faceEngine = faceEngine;
    }

    /**
     * 檢測(cè)圖片是否為人像
     *
     * @param imageInfo 圖像對(duì)象
     * @return true:人像,false:非人像
     */
    public boolean checkIsPortrait(ImageInfo imageInfo) {
        /*
        * 這些都是紅軟提供的對(duì)象
        * 需要自己定義下面 判斷 用于返回?cái)?shù)據(jù)的操作
        * */
        // 定義人臉列表
        List<FaceInfo> faceInfoList = new ArrayList<FaceInfo>();
        // faceEngine.detectFaces 檢測(cè)人臉核心方法
        faceEngine.detectFaces(imageInfo.getImageData(), imageInfo.getWidth(), imageInfo.getHeight(), ImageFormat.CP_PAF_BGR24, faceInfoList);
        return !faceInfoList.isEmpty();
        // 取反值判斷  檢測(cè)到圖片中人臉不為空,表明圖片有人臉
    }

    public boolean checkIsPortrait(byte[] imageData) {
        return this.checkIsPortrait(ImageFactory.getRGBData(imageData));
    }

    public boolean checkIsPortrait(File file) {
        return this.checkIsPortrait(ImageFactory.getRGBData(file));
    }

}

分享到:
標(biāo)簽:微服 架構(gòu)
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定