java 集成百度face sdk

1、登錄注冊百度云賬號

按照要去注冊申請百度離線sdk測試賬號,個人賬戶可以申請兩個免費(fèi)測試賬號(https://cloud.baidu.com/doc/FACE/s/Ol0rre5u5)

2、下載百度人臉離線sdk windows-java版

image.png

根據(jù)自己電腦32位還是64位選擇相應(yīng)模塊

3、開始集成

3.1 新建立一個基于java8的maven工程,在最外層加入13個dll,如下圖所示

image.png

3.2 在src->main->java目錄下添加如下代碼:

image.png

3.3 把models和opencv-jar目錄copy到工程跟目錄下

image.png

3.4 添加opencv-320.jar依賴,pom中添加如下配置

<dependency>
    <groupId>org</groupId>
    <artifactId>opencv-320</artifactId>
    <version>3.2.0</version>
    <scope>system</scope>
    <systemPath>${pom.basedir}/opencv-jar/opencv-320.jar</systemPath>
</dependency>

<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <includeSystemScope>true</includeSystemScope>

3.5 添加dll依賴File->Project Structure

image.png

Library-> + > Java - > 先建立的工程目錄 -> OK

勾選native Library Location 如下圖:

image.png

modules->Dependencies-> + ->Java -> Library 選擇剛添加的Library


image.png

至此idea能跑起基層Face sdk的工程 但是打包后,找不到BaiduApi.dll
同時提醒,opencv-jar一定要如我上面方式添加,如果添加Library方式,在打包的時候找不到opencv-jar

4 打包及jar包執(zhí)行

4.1 打包

maven -> package

4.2 jar包執(zhí)行問題

打包后執(zhí)行jar文件 返現(xiàn)找不到BadiduApi.dll,這個時候把13個dll放到 windows/system32 目錄下
有人會想指定java.labrary.path的方式指定 dll目錄,但是會包 BaiduFaceApi依賴的 類庫找不到的問題
原因:在face.java static 靜態(tài)代碼塊如下代碼

    // ********* 以下為系統(tǒng)加載庫文件及opencv **********
    static {
        /*  加載dll */
        System.loadLibrary("BaiduFaceApi");
        System.loadLibrary("opencv_java320");
    }

這代碼標(biāo)識只加載兩個dll, 所以建議 直接把13個dll放到windowns/system32 目錄下

4.3 這樣打包執(zhí)行,還會報找不到model的問題

先建立一個文件夾,把項目里的models和license目錄copy到該目錄


image.png

修改代碼:

   @PostConstruct
    private void init() {
        int res = face.sdkInit(modelPath);
        if (res != 0) {
            System.out.printf("sdk init fail and error =%d\n", res);
            return;
        }
    }

指定modelpath 為剛新建立目錄

在執(zhí)行java -jar xxx.jar 工程完美運(yùn)行!

但是還有個問題需要提醒:在jar結(jié)束的時候,要釋放BaiduFaceApi的native內(nèi)存

    @PreDestroy
    private void destroy() {
        face.sdkDestroy();
    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容