国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

            阿里云人臉?biāo)阉髯罴褜?shí)踐

            發(fā)布時(shí)間:2021-12-02 點(diǎn)擊數(shù):826

            Step By Step

            1、pom.xml
            <dependencies>
                    <!--添加oss相關(guān)依賴--> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.10.2</version> </dependency> <!--java核心庫--> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.8</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.52</version> </dependency> <!-- 人臉識(shí)別相關(guān)API --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-facebody</artifactId> <version>1.0.8</version> </dependency> </dependencies>
            2、完整的Java Code Sample
            import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.CannedAccessControlList; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.profile.DefaultProfile; import com.google.gson.Gson; import com.aliyuncs.facebody.model.v20191230.*; import java.io.File;
            
            public class SearchFaceDemo { // yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。viapi絕大部分api目前僅支持上海區(qū)域oss,所以這里需要?jiǎng)?chuàng)建上海區(qū)域bucket,Endpoint填寫為https://oss-cn-shanghai.aliyuncs.com。 static String ossEndpoint = "https://oss-cn-shanghai.aliyuncs.com"; static String bucketName = "<oss bucket>"; static String ossDir = "facepics"; // 在oss bucket下面手動(dòng)創(chuàng)建的文件夾 // 阿里云賬號(hào)AccessKey擁有所有API的訪問權(quán)限,風(fēng)險(xiǎn)很高。強(qiáng)烈建議您創(chuàng)建并使用RAM用戶進(jìn)行API訪問或日常運(yùn)維,請(qǐng)登錄RAM控制臺(tái)創(chuàng)建RAM用戶。 static String accessKeyId = "<ak>"; static String accessKeySecret = "<sk>"; // 創(chuàng)建OSSClient實(shí)例。 static OSS ossClient = new OSSClientBuilder().build(ossEndpoint, accessKeyId, accessKeySecret);
            
                private static DefaultProfile profile = DefaultProfile.getProfile("cn-shanghai", accessKeyId, accessKeySecret);
                private static IAcsClient client = new DefaultAcsClient(profile);
            
                public static void main(String[] args) { // 1、人臉查找數(shù)據(jù)準(zhǔn)備 String dbName = "group1"; String wangfei1 = "C:\\Users\\Administrator\\Desktop\\新建文件夾\\face1.jpg"; String wangfei2 = "C:\\Users\\Administrator\\Desktop\\新建文件夾\\face2.jpg"; String jingtian1 = "C:\\Users\\Administrator\\Desktop\\新建文件夾\\jingtian1.jpeg"; String jingtian2 = "C:\\Users\\Administrator\\Desktop\\新建文件夾\\jingtian2.jpeg"; // 2、創(chuàng)建FaceDB //        createFaceDbRequest(dbName); // 3、添加人臉樣本 //        String entityId1 = "wangfei"; //        String entityId2 = "jingtian"; // //        addFaceEntity(dbName, entityId1); //        addFaceEntity(dbName, entityId2); // 4、為樣本添加人臉圖片,注意本部分將圖片url地址添加到:ExtraData參數(shù) //        addFace(dbName,entityId1,uploadPicGetUrl(wangfei1)); //        addFace(dbName,entityId1,uploadPicGetUrl(wangfei2)); //        addFace(dbName,entityId2,uploadPicGetUrl(jingtian1)); //        addFace(dbName,entityId2,uploadPicGetUrl(jingtian2)); // 5、查詢目前人臉庫的樣本情況 //        listFaceEntities(dbName, 0); // 6、人臉?biāo)阉?人臉?biāo)阉鞴δ芸梢愿鶕?jù)輸入圖片,在數(shù)據(jù)庫中搜索并返回相似的人臉圖片數(shù)據(jù)。) searchFace(dbName,uploadPicGetUrl(wangfei1),2);
            
                } /**
                 * 向oss上傳文件,返回公共可讀的oss 圖片地址
                 * @param filePath  圖片本地路徑
                 * @return oss url
                 */ public static String uploadPicGetUrl(String filePath)
                { // 創(chuàng)建PutObjectRequest對(duì)象。 // 依次填寫B(tài)ucket名稱(例如examplebucket)、Object完整路徑(例如exampledir/exampleobject.txt)和本地文件的完整路徑。Object完整路徑中不能包含Bucket名稱。 // 如果未指定本地路徑,則默認(rèn)從示例程序所屬項(xiàng)目對(duì)應(yīng)本地路徑中上傳文件,這里在ossbucket下面創(chuàng)建目錄facepics用于存儲(chǔ)上傳的圖片 File file = new File(filePath);
                    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ossDir+"/" + file.getName(), new File(filePath)); // 如果需要上傳時(shí)設(shè)置存儲(chǔ)類型和訪問權(quán)限,請(qǐng)參考以下示例代碼。 ObjectMetadata metadata = new ObjectMetadata(); // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString()); metadata.setObjectAcl(CannedAccessControlList.PublicRead); //為了方便獲取的文件的公網(wǎng)讀路徑,這里設(shè)置文件的訪問權(quán)限為公共讀 putObjectRequest.setMetadata(metadata); // 上傳文件。 ossClient.putObject(putObjectRequest); return "https://" + bucketName + ".oss-cn-shanghai.aliyuncs.com" + "/"+ossDir+"/" + file.getName();
                } /**
                 * 創(chuàng)建人臉數(shù)據(jù)庫
                 * @param dbName 數(shù)據(jù)庫名稱
                 */ private static void createFaceDbRequest(String dbName)
                {
                    CreateFaceDbRequest createFaceDbRequest = new CreateFaceDbRequest();
                    createFaceDbRequest.setName(dbName); try {
                        CreateFaceDbResponse response = client.getAcsResponse(createFaceDbRequest);
                        System.out.println("創(chuàng)建人臉數(shù)據(jù)庫:");
                        System.out.println(new Gson().toJson(response));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 查看數(shù)據(jù)庫列表
                 */ private static void listFaceDbs()
                {
                    ListFaceDbsRequest listFaceDbsRequest = new ListFaceDbsRequest(); try {
                        ListFaceDbsResponse response = client.getAcsResponse(listFaceDbsRequest);
                        System.out.println("查看數(shù)據(jù)庫列表: ");
                        System.out.println(new Gson().toJson(response));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 添加人臉樣本
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param entityId 實(shí)體ID
                 */ private static void addFaceEntity(String dbName, String entityId)
                {
                    AddFaceEntityRequest addFaceEntityRequest = new AddFaceEntityRequest();
                    addFaceEntityRequest.setDbName(dbName);
                    addFaceEntityRequest.setEntityId(entityId); try{
                        AddFaceEntityResponse addFaceEntityResponse = client.getAcsResponse(addFaceEntityRequest);
                        System.out.println("添加人臉樣本:");
                        System.out.println(new Gson().toJson(addFaceEntityResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 查詢?nèi)四槝颖?
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param entityId 實(shí)體ID
                 */ private static void getFaceEntity(String dbName, String entityId)
                {
                    GetFaceEntityRequest getFaceEntityRequest = new GetFaceEntityRequest();
                    getFaceEntityRequest.setDbName(dbName);
                    getFaceEntityRequest.setEntityId(entityId); try{
                        GetFaceEntityResponse getFaceEntityResponse = client.getAcsResponse(getFaceEntityRequest);
                        System.out.println("查詢?nèi)四槝颖荆?);
                        System.out.println(new Gson().toJson(getFaceEntityResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 查詢?nèi)四槝颖玖斜?
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param Offset 起始記錄
                 */ private static void listFaceEntities(String dbName, Integer Offset)
                {
                    ListFaceEntitiesRequest listFaceEntitiesRequest = new ListFaceEntitiesRequest();
                    listFaceEntitiesRequest.setDbName(dbName);
                    listFaceEntitiesRequest.setOffset(Offset); try{
                        ListFaceEntitiesResponse listFaceEntitiesResponse = client.getAcsResponse(listFaceEntitiesRequest);
                        System.out.println("查詢?nèi)四槝颖玖斜恚?);
                        System.out.println(new Gson().toJson(listFaceEntitiesResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 更新人臉樣本
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param entityId 實(shí)體ID
                 * @param labels 標(biāo)簽名稱
                 */ private static void updateFaceEntity(String dbName, String entityId, String labels)
                {
                    UpdateFaceEntityRequest updateFaceEntityRequest = new UpdateFaceEntityRequest();
                    updateFaceEntityRequest.setDbName(dbName);
                    updateFaceEntityRequest.setEntityId(entityId);
                    updateFaceEntityRequest.setLabels(labels); try{
                        UpdateFaceEntityResponse updateFaceEntityResponse = client.getAcsResponse(updateFaceEntityRequest);
                        System.out.println("更新人臉樣本:");
                        System.out.println(new Gson().toJson(updateFaceEntityResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 刪除人臉樣本
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param entityId 實(shí)體ID
                 */ private static void deleteFaceEntity(String dbName, String entityId)
                {
                    DeleteFaceEntityRequest deleteFaceEntityRequest = new DeleteFaceEntityRequest();
                    deleteFaceEntityRequest.setDbName(dbName);
                    deleteFaceEntityRequest.setEntityId(entityId); try{
                        DeleteFaceEntityResponse deleteFaceEntityResponse = client.getAcsResponse(deleteFaceEntityRequest);
                        System.out.println("刪除人臉樣本:");
                        System.out.println(new Gson().toJson(deleteFaceEntityResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 添加人臉數(shù)據(jù)
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param entityId 實(shí)體ID
                 * @param imageUrl 人臉圖片地址,必須是同Region的OSS的圖片地址。人臉必須是正面無遮擋單人人臉。
                 */ private static void addFace(String dbName, String entityId, String imageUrl)
                {
                    AddFaceRequest addFaceRequest = new AddFaceRequest();
                    addFaceRequest.setDbName(dbName);
                    addFaceRequest.setEntityId(entityId);
                    addFaceRequest.setImageUrl(imageUrl);
                    addFaceRequest.setExtraData(imageUrl);// 注意,此處將圖片地址保持到ExtraData中,為后續(xù)查詢提供方便 try{
                        AddFaceResponse addFaceResponse = client.getAcsResponse(addFaceRequest);
                        System.out.println("添加人臉數(shù)據(jù):");
                        System.out.println(new Gson().toJson(addFaceResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 搜索人臉
                 * @param dbName 數(shù)據(jù)庫名稱
                 * @param imageUrl 圖片URL地址。必須是同Region的OSS地址。
                 */ private static void searchFace(String dbName, String imageUrl, Integer limit)
                {
                    SearchFaceRequest searchFaceRequest = new SearchFaceRequest();
                    searchFaceRequest.setDbName(dbName);
                    searchFaceRequest.setImageUrl(imageUrl);
                    searchFaceRequest.setLimit(limit); try{
                        SearchFaceResponse searchFaceResponse = client.getAcsResponse(searchFaceRequest);
                        System.out.println("搜索人臉:");
                        System.out.println(new Gson().toJson(searchFaceResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 刪除數(shù)據(jù)庫
                 * @param dbName 數(shù)據(jù)庫名稱
                 */ private static void deleteFace(String dbName, String faceId)
                {
                    DeleteFaceRequest deleteFaceRequest = new DeleteFaceRequest();
                    deleteFaceRequest.setDbName(dbName);
                    deleteFaceRequest.setFaceId(faceId); try{
                        DeleteFaceResponse deleteFaceResponse = client.getAcsResponse(deleteFaceRequest);
                        System.out.println("刪除人臉:");
                        System.out.println(new Gson().toJson(deleteFaceResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 刪除數(shù)據(jù)庫
                 * @param dbName 數(shù)據(jù)庫名稱
                 */ private static void deleteFaceDb(String dbName)
                {
                    DeleteFaceDbRequest deleteFaceDbRequest = new DeleteFaceDbRequest();
                    deleteFaceDbRequest.setName(dbName); try{
                        DeleteFaceDbResponse deleteFaceDbResponse = client.getAcsResponse(deleteFaceDbRequest);
                        System.out.println("刪除數(shù)據(jù)庫:");
                        System.out.println(new Gson().toJson(deleteFaceDbResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                } /**
                 * 人臉對(duì)比
                 * @param imageURLA 待對(duì)比圖片URL地址A
                 * @param imageURLB 待對(duì)比圖片URL地址B
                 */ private static void compareFace(String imageURLA, String imageURLB)
                {
                    CompareFaceRequest compareFaceRequest = new CompareFaceRequest();
                    compareFaceRequest.setImageURLA(imageURLA);
                    compareFaceRequest.setImageURLB(imageURLB); try{
                        CompareFaceResponse compareFaceResponse = client.getAcsResponse(compareFaceRequest);
                        System.out.println("人臉對(duì)比:");
                        System.out.println(new Gson().toJson(compareFaceResponse));
                    } catch (ServerException e) {
                        e.printStackTrace();
                    } catch (ClientException e) {
                        System.out.println("ErrCode:" + e.getErrCode());
                        System.out.println("ErrMsg:" + e.getErrMsg());
                        System.out.println("RequestId:" + e.getRequestId());
                    }
                }
            }
            3、查詢結(jié)果
            extraData對(duì)應(yīng)的值即為對(duì)應(yīng)樣本人臉的原始圖片地址。
            搜索人臉:
            {"requestId":"60981448-DC3B-518D-82B1-7**********","data":{"matchList":[{"faceItems":[{"faceId":"9770860","score":1.0,"extraData":"https://taro-shangai.oss-cn-shanghai.aliyuncs.com/facepics/face1.jpg","entityId":"wangfei"},{"faceId":"9770861","score":0.7668418,"extraData":"https://taro-shangai.oss-cn-shanghai.aliyuncs.com/facepics/face2.jpg","entityId":"wangfei"}],"location":{"x":217,"y":110,"width":170,"height":233}}]}}
            4、使用說明
            如果對(duì)1:N人臉查找流程使用有疑問,建議可以重點(diǎn)參考:阿里云視覺智能開放平臺(tái)--人臉識(shí)別使用教程或者人臉?biāo)阉鹘坛?/a>