/car/vehicle_recognition

1.接口描述

该 API 用于识别图片中车辆的品牌、车系、年款。

  • 图片要求:
    1. 格式为 JPG(JPEG),PNG
    2. 宽和高大于 128px,小于等于 6000px
    3. 小于等于 5 MB

请求方式

POST

请求 URL

https://cloudapi.deepfinch.com/car/vehicle_recognition

2.请求参数

字段 类型 必需 描述
file file 见下方注释 需上传的图片文件,上传本地图片进行检测时选取此参数
url string 见下方注释 图片网络地址,采用抓取网络图片方式时需选取此参数

请求参数 fileurl 二选一。
url 中若含有特殊字符,则需要对这些字符进行转义,所有中文和特殊字符必需以UTF-8编码转义。
目前支持 http/https 协议的网络地址。下载限时 5s,超时后仍未下载完成则属于失败。
参数 file 需把图片文件以 multipart/form-data 的形式放到 POST 消息体中。

3.返回参数

字段 类型 说明
request_id string 本次请求的id
status string 状态,正常为 OK
result object 识别结果

result字段

字段 类型 说明
region array 车辆位置坐标及置信度,顺序依次为左上x,y 右下x,y,置信度
vehicle object 车型信息

vehicle字段

字段 类型 说明
model string 车系信息
brand object 车辆品牌信息
type array 车型
id object 系统编码
score array 识别置信度
返回结果示例
{
    "request_id": "TIDc82a818e2a6e41f487ab6cc1ee32cc8e",
    "status": "OK",
    "result": {
        "region": [
            113,
            24,
            613,
            448,
            1
        ],
        "vehicle": {
            "model": "速腾 B",
            "brand": "大众",
            "score": 0.0779816210269928,
            "type": "轿车",
            "id": "1367"
        }
    }
}

4.错误码

状态码 status 字段 说明
400 INVALID_ARGUMENT 请求参数错误
400 DETECTION_FAILED 图片检测失败
400 DOWNLOAD_ERROR 网络地址图片获取失败
401 UNAUTHORIZED 未授权或授权失败
401 KEY_EXPIRED 账号过期
403 NO_PERMISSION 无调用权限
403 OUT_OF_QUOTA 调用次数超出限额
403 RATE_LIMIT_EXCEEDED 调用频率超出限额
404 NOT_FOUND 请求路径错误
500 INTERNAL_ERROR 服务器内部错误

备注: 以上40X系列错误描述请参考reason字段

输出样例
{
  "status": "INVALID_ARGUMENT",
  "reason": "must specify 'file' or 'url' argument",
  "request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e"
}

5.输入示例

  • Go
  • Java
  • PHP
  • Python
  • Ruby
  • ObjectC
  • Swift
curl --request POST \
  --url http://cloudapi.deepfinch.com/car/vehicle_recognition \
  --header 'content-type: multipart/form-data; boundary=---011000010111000001101001' \
  --header 'X-DF-API-ID: xxxxxxxxxxxxxxxxxxxx' \
  --header 'X-DF-API-SECRET: xxxxxxxxxxxxxxxxxxxx' \
  --form file=1.jpg

            
package main

import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "http://cloudapi.deepfinch.com/car/vehicle_recognition"

    payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n1.jpg\r\n-----011000010111000001101001--\r\n")

    req, _ := http.NewRequest("POST", url, payload)

    req.Header.Add("X-DF-API-ID", "xxxxxxxxxxxxxxxxxxxx")
    req.Header.Add("X-DF-API-SECRET", "xxxxxxxxxxxxxxxxxxxx")
    req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001")

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)

    fmt.Println(res)
    fmt.Println(string(body))

}

            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001");
RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n1.jpg\r\n-----011000010111000001101001--\r\n");
Request request = new Request.Builder()
  .url("http://cloudapi.deepfinch.com/car/vehicle_recognition")
  .post(body)
  .addHeader("X-DF-API-ID", "xxxxxxxxxxxxxxxxxxxx")
  .addHeader("X-DF-API-SECRET", "xxxxxxxxxxxxxxxxxxxx")
  .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001")
  .build();

Response response = client.newCall(request).execute();

            
addForm(array(
  'file' => '1.jpg'
), NULL);

$request->setRequestUrl('http://cloudapi.deepfinch.com/car/vehicle_recognition');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'X-DF-API-ID' => 'xxxxxxxxxxxxxxxxxxxx',
  'X-DF-API-SECRET' => 'xxxxxxxxxxxxxxxxxxxx'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();

            
import requests

url = "http://cloudapi.deepfinch.com/car/vehicle_recognition"

payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n1.jpg\r\n-----011000010111000001101001--\r\n"
headers = {
    'X-DF-API-ID': "xxxxxxxxxxxxxxxxxxxx",
    'X-DF-API-SECRET': "xxxxxxxxxxxxxxxxxxxx",
    'content-type': "multipart/form-data; boundary=---011000010111000001101001"
    }

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)

            
require 'uri'
require 'net/http'

url = URI("http://cloudapi.deepfinch.com/car/vehicle_recognition")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["X-DF-API-ID"] = 'xxxxxxxxxxxxxxxxxxxx'
request["X-DF-API-SECRET"] = 'xxxxxxxxxxxxxxxxxxxx'
request["content-type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n1.jpg\r\n-----011000010111000001101001--\r\n"

response = http.request(request)
puts response.read_body

            
#import 

NSDictionary *headers = @{ @"X-DF-API-ID": @"xxxxxxxxxxxxxxxxxxxx",
                           @"X-DF-API-SECRET": @"xxxxxxxxxxxxxxxxxxxx",
                           @"content-type": @"multipart/form-data; boundary=---011000010111000001101001" };
NSArray *parameters = @[ @{ @"name": @"file", @"value": @"1.jpg" } ];
NSString *boundary = @"---011000010111000001101001";

NSError *error;
NSMutableString *body = [NSMutableString string];
for (NSDictionary *param in parameters) {
    [body appendFormat:@"--%@\r\n", boundary];
    if (param[@"fileName"]) {
        [body appendFormat:@"Content-Disposition:form-data; name=\"%@\"; filename=\"%@\"\r\n", param[@"name"], param[@"fileName"]];
        [body appendFormat:@"Content-Type: %@\r\n\r\n", param[@"contentType"]];
        [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"fileName"] encoding:NSUTF8StringEncoding error:&error]];
        if (error) {
            NSLog(@"%@", error);
        }
    } else {
        [body appendFormat:@"Content-Disposition:form-data; name=\"%@\"\r\n\r\n", param[@"name"]];
        [body appendFormat:@"%@", param[@"value"]];
    }
}
[body appendFormat:@"\r\n--%@--\r\n", boundary];
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://cloudapi.deepfinch.com/car/vehicle_recognition"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                            completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                if (error) {
                                                    NSLog(@"%@", error);
                                                } else {
                                                    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                    NSLog(@"%@", httpResponse);
                                                }
                                            }];
[dataTask resume];

            
import Foundation

let headers = [
  "X-DF-API-ID": "xxxxxxxxxxxxxxxxxxxx",
  "X-DF-API-SECRET": "xxxxxxxxxxxxxxxxxxxx",
  "content-type": "multipart/form-data; boundary=---011000010111000001101001"
]
let parameters = [
  [
    "name": "file",
    "value": "1.jpg"
  ]
]

let boundary = "---011000010111000001101001"

var body = ""
var error: NSError? = nil
for param in parameters {
  let paramName = param["name"]!
  body += "--\(boundary)\r\n"
  body += "Content-Disposition:form-data; name=\"\(paramName)\""
  if let filename = param["fileName"] {
    let contentType = param["content-type"]!
    let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)
    if (error != nil) {
      print(error)
    }
    body += "; filename=\"\(filename)\"\r\n"
    body += "Content-Type: \(contentType)\r\n\r\n"
    body += fileContent
  } else if let paramValue = param["value"] {
    body += "\r\n\r\n\(paramValue)"
  }
}

let request = NSMutableURLRequest(url: NSURL(string: "http://cloudapi.deepfinch.com/car/vehicle_recognition")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()

            

results matching ""

    No results matching ""