资讯 社区 文档 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

车辆分割(邀测)

车辆分割不再提供公有云邀测服务,若您仍需要使用车辆分割,您可以选择私有化部署,提交合作咨询联系我们。

接口描述

传入单帧图像,检测图像中的车辆,以小汽车为主,识别车辆的轮廓范围,与背景进行分离,返回分割后的二值图、灰度图,支持多个车辆、车门打开、后备箱打开、机盖打开、正面、侧面、背面等各种拍摄场景。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://aip.baidubce.com/rest/2.0/image-classify/v1/vehicle_seg

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image 和url二选一 string 0-255彩色图像(base64编码) 图像数据,Base64编码字符串,不超过4M。最短边至少50px,最长边最多4096px。支持图片格式:jpg/bmp/png。 注意:图片的base64编码是不包含图片头的,如(data:image/jpg;base64,)
url 和image二选一 string - 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少50px,最长边最大4096px,支持jpg/png/bmp格式,当image字段存在时url字段失效。
type string labelmap,scoremap 可以通过设置type参数,自主设置返回哪些结果图,避免造成带宽的浪费。
1)可选值说明:
labelmap - 二值图像,需二次处理方能查看分割效果
scoremap - 车辆前景灰度图
2)type 参数值可以是可选值的组合,用逗号分隔;如果无此参数默认输出全部3类结果图

注:返回的二值图像需要进行二次处理才可查看分割效果,示例代码如下;灰度图不用处理,直接解码保存图片即可

Python:

{
    import cv2
    import numpy as np
    import base64
    labelmap = base64.b64decode(res['labelmap'])    # res为通过接口获取的返回json
    nparr = np.fromstring(labelmap, np.uint8)
    labelimg = cv2.imdecode(nparr, 1)
    # width, height为图片原始宽、高
    labelimg = cv2.resize(labelimg, (width, height), interpolation=cv2.INTER_NEAREST)
    im_new = np.where(labelimg==1, 255, labelimg)
    cv2.imwrite('path/to/your/outputfile', im_new)
}

Java:

public static BufferedImage resize(BufferedImage img, int newW, int newH) {
    Image tmp = img.getScaledInstance(newW, newH, Image.SCALE_SMOOTH);
    BufferedImage dimg = new BufferedImage(newW, newH, BufferedImage.TYPE_INT_ARGB);

    Graphics2D g2d = dimg.createGraphics();
    g2d.drawImage(tmp, 0, 0, null);
    g2d.dispose();

    return dimg;
}

public static void convert(String labelmapBase64, int realWidth, int realHeight) {
    try {
	
        byte[] bytes = Base64.getDecoder().decode(labelmapBase64);
        InputStream is = new ByteArrayInputStream(bytes);
        BufferedImage image = ImageIO.read(is);
        BufferedImage newImage = resize(image, realWidth, realHeight);
        BufferedImage grayImage = new BufferedImage(realWidth, realHeight, BufferedImage.TYPE_BYTE_GRAY);
        for(int i= 0 ; i < realWidth ; i++){
            for(int j = 0 ; j < realHeight; j++){
                int rgb = newImage.getRGB(i, j);
                grayImage.setRGB(i, j, rgb * 255);  //将像素存入缓冲区
            }
        }
        File newFile = new File("gray.jpg");
        ImageIO.write(grayImage, "jpg", newFile);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

返回说明

返回参数

字段 是否必选 类型 说明
labelmap string 分割结果图片,base64编码之后的二值图像,单通道图片,需二次处理方能查看分割效果
scoremap string 分割后车辆前景的scoremap,归一到0-255,不用进行二次处理,直接解码保存图片即可,单通道图片。Base64编码后的灰度图文件,图片中每个像素点的灰度值 = 置信度 * 255,置信度为原图对应像素点位于车辆轮廓内的置信度,取值范围[0, 1]

返回示例

{
	"log_id": 716033439,
	"labelmap": "xxxx",
	"scoremap": "xxxx",
	"foreground": "xxxx"
}
上一篇
私有化部署方案
下一篇
车辆检测-高空版(邀测)