Является ли мой способ поиска изображения по существующим изображениям в моем приложении clarifai правильным? - PullRequest
0 голосов
/ 27 апреля 2019

Я хочу найти изображение по существующим изображениям в моем приложении clarifai, используя мой код.

Я вызываю Clarifai API из моего кода Java и получаю ответ успешно.

Однако я не получаю действительный URL изображения в ответ.Кто-нибудь может направить меня на случай, если я что-то не так делаю?

мой код Java указан ниже

public List<String> startClarifaiCall() {

    List<String> imageURLList = new ArrayList<String>();
    int resultSize = 0;
    String clarifaiURLImage = "";
    ClarifaiClient client = new ClarifaiBuilder("4d9d30e02e5c4caaa4eb5cf2d18a28c2").buildSync();
    ClarifaiResponse<SearchInputsResult> clarifaiResponse = 
            client.searchInputs(
                    SearchClause.matchImageVisually(
                            ClarifaiImage.of("http://kathycooperfloorcloths.com/images/artfloorlargebluesuzanni.jpg")))
            .getPage(1).executeSync();
    System.out.println("Response JSON: "+ clarifaiResponse.rawBody());
    if(clarifaiResponse.isSuccessful()) {

        System.out.println("responce success: "+clarifaiResponse.getStatus().description());
        System.out.println("responce code: "+clarifaiResponse.getStatus().statusCode());
        SearchInputsResult inputsResult = clarifaiResponse.get();
        resultSize = inputsResult.searchHits().size();
        System.out.println("resultSize: "+resultSize);
        for ( SearchHit searchHit : inputsResult.searchHits()) {

            System.out.println("searchHit id: "+searchHit.input().id());
            System.out.println("searchHit score: "+searchHit.score());
            clarifaiURLImage = searchHit.input().inputValue().toString();
            //clarifaiURLImage = "image\":{\"url\":\"https://s3.amazonaws.com/clarifai-api/img3/prod/small/0649bfb9dbd74c969f8227719abf8f56/a10468ad49606451bd2881d1deba8476\"}";
            clarifaiURLImage = clarifaiURLImage.substring(clarifaiURLImage.indexOf("https"), clarifaiURLImage.lastIndexOf('}'));
            System.out.println("searchHit ClarifaiURLImage: "+clarifaiURLImage);
            if(searchHit.score()>=0.7) {

                imageURLList.add(clarifaiURLImage);
            }
        }
        System.out.println("\n");
    } else {

    System.out.println("responce failure: "+clarifaiResponse.getStatus().description());
    System.out.println("error details: "+clarifaiResponse.getStatus().errorDetails());
    }
    return imageURLList;
}

Я получил вывод ниже.Но URL-адрес изображения не действительная ссылка на изображение:

responce success: Ok

responce code: 10000

resultSize: 3

searchHit id: 3abd65d787a9486cad467e0d33bd2214

searchHit score: 0.71550095

searchHit ClarifaiURLImage: https://s3.amazonaws.com/clarifai-api/img3/prod/small/0649bfb9dbd74c969f8227719abf8f56/a10468ad49606451bd2881d1deba8476


searchHit id: e36bd9a71fc54de4acd39b511aca5e3c

searchHit score: 0.7147794

searchHit ClarifaiURLImage: https://s3.amazonaws.com/clarifai-api/img3/prod/small/0649bfb9dbd74c969f8227719abf8f56/4ee2739d9dbed1358298aa9e9a65a422


searchHit id: 8b543b3639ed440185b0886a5a3a6001

searchHit score: 0.71341443

searchHit ClarifaiURLImage: https://s3.amazonaws.com/clarifai-api/img3/prod/small/0649bfb9dbd74c969f8227719abf8f56/15a31caa8d3cbdc65e4e7a63a242ffb9

Может ли кто-нибудь помочь в случае, если я что-то не так делаю.

...