日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Java

本文介紹了如何使用阿里云視覺智能開放平臺的Java SDK,具體包括SDK的安裝方法以及SDK代碼示例。

說明

阿里云視覺智能開放平臺各類目視覺AI能力SDK接入、接口使用或問題咨詢等,請通過釘釘群(23109592)加入阿里云視覺智能開放平臺咨詢群聯系我們。

該版本是升級版SDK只支持Java8及以上,如不滿足SDK版本所需環境要求請升級Java版本。如必須使用Java8以下版本請使用舊版Java(不推薦)

您可以根據使用不同服務,下載對應服務的SDK包。具體服務的SDK包名稱如下:

AI類目

SDK包名稱

SDK鏈接

Github鏈接

生成專區

aigen20240111

Aliyun Java SDK Aigen

aigen-20240111

人臉人體

facebody20191230

Aliyun Java SDK Facebody

facebody-20191230

文字識別

ocr20191230

Aliyun Java SDK OCR

ocr-20191230

商品理解

goodstech20191230

Aliyun Java SDK Goodstech

goodstech-20191230

內容審核

imageaudit20191230

Aliyun Java SDK Imageaudit

imageaudit-20191230

圖像識別

imagerecog20190930

Aliyun Java SDK Imagerecog

imagerecog-20190930

圖像生產

imageenhan20190930

Aliyun Java SDK Imageenhan

imageenhan-20190930

分割摳圖

imageseg20191230

Aliyun Java SDK Imageseg

imageseg-20191230

目標檢測

objectdet20191230

Aliyun Java SDK Objectdet

objectdet-20191230

視覺搜索

imgsearch20200320

Aliyun Java SDK Imgsearch

imgsearch-20200320

圖像分析處理

imageprocess20200320

Aliyun Java SDK Imageprocess

imageprocess-20200320

視頻理解

videorecog20200320

Aliyun Java SDK Videorecog

videorecog-20200320

視頻生產

videoenhan20200320

Aliyun Java SDK Videoenhan

videoenhan-20200320

視頻分割

videoseg20200320

Aliyun Java SDK Videoseg

videoseg-20200320

異步任務管理

viapi20230117

Aliyun Java SDK Viapi

viapi-20230117

人臉核身服務端20200910專用版本

facebody20200910

Aliyun Java SDK Facebody

facebody-20200910

準備工作

  • 在使用阿里云SDK前,確保您已經注冊阿里云賬號并生成訪問密鑰(AccessKey)。具體操作,請參見創建AccessKey

  • 已安裝視覺智能API相關服務Java SDK。

查看SDK版本

pom.xml文件中version的值以SDK獲取地址中的最新版本為準。您可以通過https://mvnrepository.com/artifact/com.aliyun/SDK包名稱查看不同服務SDK的版本。

例如,通過https://mvnrepository.com/artifact/com.aliyun/facebody20191230可以查看facebody20191230的版本。

安裝方法1:使用Maven(推薦)

如果您使用Maven管理Java項目,可以通過在pom.xml文件中添加Maven依賴安裝Java SDK。例如您需要人臉人體類目下的能力,您只需引入facebody20191230

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>facebody20191230</artifactId>
    <version>${aliyun.facebody.version}</version>
</dependency>

安裝方法2:在集成開發環境(IDE)中導入JAR文件

無論您使用Eclipse還是IntelliJ作為集成開發環境,都可以通過導入JAR文件的方式安裝Java SDK。

  • Eclipse安裝

    1. 將下載的xxx.jar及其依賴文件復制到您的項目文件夾中。

    2. 在Eclipse中打開您的項目,右鍵單擊該項目,選擇Properties

    3. 在彈出的對話框中,單擊Java Build PathLibrariesAdd JARs添加下載的JAR文件。

    4. 單擊Apply and Close

  • IntelliJ安裝

    1. 將下載的xxx.jar及其依賴文件復制到您的項目文件夾中。

    2. 在IntelliJ中打開您的項目,右鍵單擊xxx.jar,選擇Add as Library

    3. 單擊Apply,然后單擊OK

配置環境變量

配置環境變量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET

重要
  • 阿里云賬號AccessKey擁有所有API的訪問權限,建議您使用RAM用戶進行API訪問或日常運維,具體操作,請參見創建RAM用戶

  • 請不要將AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。

  • Linux和macOS系統配置方法

    1. 在IntelliJ IDEA中打開終端Terminal。

    2. 執行以下命令,配置環境變量。

      <access_key_id>需替換為您RAM用戶的AccessKey ID,<access_key_secret>替換為您RAM用戶的AccessKey Secret。如果后續需要進行更多權限相關的配置,具體操作請參見使用RAM Policy控制訪問權限

      export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> 
      export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>
  • Windows系統配置方法

    新建環境變量文件,添加環境變量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并寫入已準備好的AccessKey ID和AccessKey Secret。然后重啟Windows系統。本操作以Windows 10為例進行說明。

    1. 打開文件資源管理器,在此電腦上右鍵單擊屬性。

    2. 在右側導航欄,單擊高級系統配置

    3. 系統屬性對話框的高級頁簽下,單擊環境變量

    4. 環境變量對話框中,單擊新建(W)image.png

    5. 在彈出的新建系統變量對話框中,添加環境變量ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET,并寫入已準備好的AccessKey ID和AccessKey Secret。

    6. 重啟Windows系統,使配置生效。

SDK示例

本文以RecognizeBankCard為例。

文件在上海地域OSS

說明

每個類目的訪問域名與對應地域的開通詳情,請參見訪問域名

package com.aliyun.sample;

// 1、這里只是以ocr下的RecognizeBankCard能力為例,其他能力請引入相應類目的包和相關類。包名可參考本文檔上方的SDK包名稱,能力名可參考對應API文檔中的Action參數。例如您想使用通用分割,其文檔為http://bestwisewords.com/document_detail/151960.html,可以知道該能力屬于分割摳圖類目,能力名稱為SegmentCommonImage,那么您需要將代碼中ocr20191230改為imageseg20191230,將RecognizeBankCard改為SegmentCommonImage。
import com.aliyun.ocr20191230.models.RecognizeBankCardResponse;
import com.aliyun.tea.*;

public class Sample {

    /**
    * 使用AK&SK初始化賬號Client
    * @param accessKeyId
    * @param accessKeySecret
    * @return Client
    * @throws Exception
    */
    // 這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類
    public static com.aliyun.ocr20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        /*
          初始化配置對象com.aliyun.teaopenapi.models.Config
          Config對象存放AccessKeyId、AccessKeySecret、endpoint等配置
         */
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
            .setAccessKeyId(accessKeyId)
            .setAccessKeySecret(accessKeySecret);
        
        // 2、訪問的域名。注意:這個地方需要求改為相應類目的域名,參考:http://bestwisewords.com/document_detail/143103.html
        config.endpoint = "ocr.cn-shanghai.aliyuncs.com";
        
        // 3、這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類
        return new com.aliyun.ocr20191230.Client(config);
    }

    public static void main(String[] args) throws Exception {
      
        // 4、"YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET" 的生成請參考http://bestwisewords.com/document_detail/175144.html
        // 如果您用的是RAM用戶(子賬號)AccessKey,還需要為RAM用戶(子賬號)授予權限AliyunVIAPIFullAccess,請參考http://bestwisewords.com/document_detail/145025.html
        // 這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類

        // 創建AccessKey ID和AccessKey Secret,請參考http://bestwisewords.com/document_detail/175144.html。
        // 如果您使用的是RAM用戶的AccessKey,還需要為RAM用戶授予權限AliyunVIAPIFullAccess,請參考http://bestwisewords.com/document_detail/145025.html。
        // 從環境變量讀取配置的AccessKey ID和AccessKey Secret。運行代碼示例前必須先配置環境變量。
        com.aliyun.ocr20191230.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
      
        // 5、這里只是以ocr下的RecognizeBankCard為例,其他能力請使用相應類目的包和類,具體入參設置需要參考具體能力的文檔
        com.aliyun.ocr20191230.models.RecognizeBankCardRequest recognizeBankCardRequest = new com.aliyun.ocr20191230.models.RecognizeBankCardRequest()
            .setImageURL("http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/ocr/RecognizeBankCard/yhk1.jpg");
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
          
            // 6、這里只是以ocr下的RecognizeBankCard為例,其他能力請使用相應類目的包和類,注意,recognizeBankCardWithOptions方法名也需要改成對應能力的方法名。方法名是根據能力名稱按照一定規范形成的,如能力名稱為SegmentCommonImage,對應方法名應該為segmentCommonImageWithOptions。
            RecognizeBankCardResponse resp = client.recognizeBankCardWithOptions(recognizeBankCardRequest, runtime);
            // 獲取整體結果。部分能力會輸出url鏈接,通過toJSONString轉換后可能有編碼問題,但是通過單個字段獲取是沒問題的。
            System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(resp)));
            // 獲取單個字段,這里只是一個例子,具體能力下的字段需要看具體能力的文檔
            System.out.println(resp.getBody().getData().getCardNumber());
        } catch (com.aliyun.tea.TeaException teaException) {
            // 獲取整體報錯信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
            // 獲取單個字段
            System.out.println(teaException.getCode());
        }
    }
}

需要修改的地方均在上述代碼注釋中標明,總結如下:

  1. 引入包的時候,需要引入相應類目的包和相關類。包名可參考上文SDK包名稱,能力名稱可參考對應API文檔中的Action參數。

    例如,您想使用通用分割能力,通過通用分割API文檔可知該能力屬于分割摳圖類目(imageseg20191230),能力名稱為SegmentCommonImage,您需要將代碼中的ocr20191230改為imageseg20191230,將RecognizeBankCard改為SegmentCommonImage。

  2. 訪問的域名一定要修改為相應類目的域名,如果域名類目不匹配會報錯InvalidAction.NotFound。關于域名詳情,請參見訪問域名

  3. Client類需要使用相應類目的包下的Client類。

  4. Request和Response需要使用相應類目的包和類。

  5. 調用Client的方法時,方法名需要改成對應能力的方法名。方法名是根據能力名稱按照一定規范形成的。例如,能力名稱為SegmentCommonImage,對應方法名應為segmentCommonImageWithOptions。

文件在本地或可訪問的URL

重要

與文件在同地域的區別在于需要使用xxxAdvanceRequest,文件是以Stream形式通過ImageURLObject參數傳入。

package com.aliyun.sample;

// 1、這里只是以ocr下的RecognizeBankCard能力為例,其他能力請引入相應類目的包和相關類。包名可參考本文檔上方的SDK包名稱,能力名可參考對應API文檔中的Action參數。例如您想使用通用分割,其文檔為http://bestwisewords.com/document_detail/151960.html,可以知道該能力屬于分割摳圖類目,能力名稱為SegmentCommonImage,那么您需要將代碼中ocr20191230改為imageseg20191230,將RecognizeBankCard改為SegmentCommonImage。
import com.aliyun.ocr20191230.models.RecognizeBankCardResponse;
import com.aliyun.tea.*;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

public class Sample {

    /**
    * 使用AK&SK初始化賬號Client
    * @param accessKeyId
    * @param accessKeySecret
    * @return Client
    * @throws Exception
    */
    // 這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類
    public static com.aliyun.ocr20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        /*
          初始化配置對象com.aliyun.teaopenapi.models.Config
          Config對象存放 AccessKeyId、AccessKeySecret、endpoint等配置
         */
        com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
            .setAccessKeyId(accessKeyId)
            .setAccessKeySecret(accessKeySecret);
      
        // 2、訪問的域名。注意:這個地方需要求改為相應類目的域名,參考:http://bestwisewords.com/document_detail/143103.html
        config.endpoint = "ocr.cn-shanghai.aliyuncs.com";
      
        // 3、這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類
        return new com.aliyun.ocr20191230.Client(config);
    }

    public static void main(String[] args) throws Exception {
      
        // 4、"YOUR_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_SECRET" 的生成請參考http://bestwisewords.com/document_detail/175144.html
        // 如果您是用的子賬號AccessKey,還需要為子賬號授予權限AliyunVIAPIFullAccess,請參考http://bestwisewords.com/document_detail/145025.html
        // 這里只是以ocr為例,其他能力請使用相應類目的包下面的Client類
        
        // 創建AccessKey ID和AccessKey Secret,請參考http://bestwisewords.com/document_detail/175144.html。
        // 如果您使用的是RAM用戶的AccessKey,還需要為RAM用戶授予權限AliyunVIAPIFullAccess,請參考http://bestwisewords.com/document_detail/145025.html。
        // 從環境變量讀取配置的AccessKey ID和AccessKey Secret。運行代碼示例前必須先配置環境變量。
        com.aliyun.ocr20191230.Client client = Sample.createClient(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
        // 場景一,使用本地文件
        // InputStream inputStream = new FileInputStream(new File("/tmp/bankCard.png"));
        // 場景二,使用任意可訪問的url
        URL url = new URL("https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/ocr/RecognizeBankCard/yhk1.jpg");
        InputStream inputStream = url.openConnection().getInputStream();
      
        // 5、這里只是以ocr下的RecognizeBankCard為例,其他能力請使用相應類目的包和類,具體入參設置需要參考具體能力的文檔
        com.aliyun.ocr20191230.models.RecognizeBankCardAdvanceRequest recognizeBankCardAdvanceRequest = new com.aliyun.ocr20191230.models.RecognizeBankCardAdvanceRequest()
            .setImageURLObject(inputStream);
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        try {
          
            // 6、這里只是以ocr下的RecognizeBankCard為例,其他能力請使用相應類目的包和類,注意,recognizeBankCardAdvance方法名也需要改成對應能力的方法名。方法名是根據能力名稱按照一定規范形成的,如能力名稱為SegmentCommonImage,對應方法名應該為segmentCommonImageAdvance。
            RecognizeBankCardResponse resp = client.recognizeBankCardAdvance(recognizeBankCardAdvanceRequest, runtime);
            // 獲取整體結果。部分能力會輸出url鏈接,通過toJSONString轉換后可能有編碼問題,但是通過單個字段獲取是沒問題的。
            System.out.println(com.aliyun.teautil.Common.toJSONString(TeaModel.buildMap(resp)));
            // 獲取單個字段,這里只是一個例子,具體能力下的字段需要看具體能力的文檔
            System.out.println(resp.getBody().getData().getCardNumber());
        } catch (com.aliyun.tea.TeaException teaException) {
            // 獲取整體報錯信息
            System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
            // 獲取單個字段
            System.out.println(teaException.getCode());
        }
    }
}

需要修改的地方均在上述代碼注釋中標明,總結如下:

  1. 引入包的時候,需要引入相應類目的包和相關類。包名可參考上文SDK包名稱,能力名稱可參考對應API文檔中的Action參數。

    例如,您想使用通用分割能力,通過通用分割API文檔可知該能力屬于分割摳圖類目(imageseg20191230),能力名稱為SegmentCommonImage,您需要將代碼中的ocr20191230改為imageseg20191230,將RecognizeBankCard改為SegmentCommonImage。

  2. 訪問的域名一定要修改為相應類目的域名,如果域名類目不匹配會報錯InvalidAction.NotFound。關于域名詳情,請參見訪問域名

  3. Client類需要使用相應類目的包下面的Client類。

  4. Request和Response需要使用相應類目的包和類。

  5. 調用Client的方法時,方法名需要改成對應能力的方法名。方法名是根據能力名稱按照一定規范形成的。例如,能力名稱為SegmentCommonImage,對應方法名應該為segmentCommonImageAdvance。

常見問題

調用報錯如何解決?

如果您的調用出現報錯,請先嘗試升級SDK包到最新版本,最新版本請參考各類目SDK鏈接。如果您的程序中同時引入了多個類目的包,可以先嘗試將這些包都升級到最新版本,避免版本之間的包沖突問題。也有可能是引入的包和您已經在使用的包發生沖突,可先通過Maven依賴分析工具解決包沖突問題。

OpenAPI界面顯示的最新包在Maven倉庫中找不到如何解決?

如果您發現OpenAPI界面顯示的最新版本的包,在Maven倉庫中找不到,這是因為新版本的包剛剛發布,倉庫同步可能會有延遲,如果遇到版本不存在的情況,請稍后再試或使用Maven倉庫中的最新版本。

該SDK是否可以用于Android開發?

可以。Android端調用請參考Android端直接調用

Java升級版SDK默認不忽略證書,HTTPS請求下缺少證書會報錯應如何解決?

報錯信息

image

解決方案

升級版SDK中可以通過在Client中設置OpenAPI的請求協議,Client設置的優先級高于默認設置。更多關于忽略證書的信息,請參見HTTPS 請求配置

文件在本地或可訪問的URL場景下,使用xxxAdvanceRequest類引入SDK報錯,應如何解決?

報錯信息

Exception in thread "main" java.lang.NoSuchMethodError: com.aliyun.credentials.Client.getCredential()Lcom/aliyun/credentials/models/CredentialModel;
    at com.aliyun.teaopenapi.Client.doRequest(Client.java:814)
    at com.aliyun.teaopenapi.Client.callApi(Client.java:1083)
    at com.aliyun.openplatform20191219.Client.authorizeFileUploadWithOptions(Client.java:46)
    at com.aliyun.facebody20191230.Client.compareFaceAdvance(Client.java:894)
    at com.test.CompareFace.main(CompareFace.java:56)

解決方案

該報錯是由于出現依賴沖突導致,您需要將credentials包更新到最新版即可,依賴如下最新SDK。

<!-- https://mvnrepository.com/artifact/com.aliyun/credentials-java -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>credentials-java</artifactId>
    <version>0.3.0</version>
</dependency>

技術支持

如果以上方法未能解決您的問題,請通過搜索釘釘群號(23109592)加入阿里云視覺智能開放平臺咨詢群聯系我們,屆時會有專業的技術人員與您對接解決問題。