当先锋百科网

首页 1 2 3 4 5 6 7

「脱离」 (disengagement),在自动驾驶系统中是一个重要的指标。

是指当自动驾驶汽车遇到故障,脱离自动驾驶模式,改为人类驾驶员接管车辆的情况。

很多人认为「脱离」次数越少,就能说明一个自动驾驶系统能力越强。因此,以往的研究都会把「脱离」当作是故障来排除掉。

但最近,UC伯克利的研究人员却「以毒攻毒」,直接用这样的数据来训练机器人,预测未来何时将发生脱离事件

 

研究人员称它为LaND——从「脱离」中学会导航。

 

研究人员表示,通过这样的方法得到的结果,要比传统的强化学习、模仿学习都要强。

「开」着小车取数据

老规矩,先来看下训练数据。

既然伯克利的这项研究是想「以毒攻毒」,那么就必须收集出现故障时的那些数据。

于是,研究人员用一辆Clearpath Jackal机器人做测试。

先让这个机器人自己在路上「跑」,若是遇到如下三种情况则视为出故障,即开到人行道的两侧或撞到草丛等物体。

 

当出现故障的情况后,机器人就会进入「脱离」状态,人类研究员便用遥控器,把它重新置于有效位置,以便让它再次自主行进。

 

然后研究人员把在这些过程中,从机器人摄像头等传感器获取的图像等数据收集起来,作为训练数据。

投喂到神经网络做预测

拿到数据,就要开始训练了。

目的就是用这些数据,来预测机器人在未来是否会脱离

 

具体的神经网络长这样。

 

神经网络先使用MobileNetV2,对输入的图像观测值进行处理,紧接着是一系列的全连接层

这些图像层的输出,将作为递归神经网络LSTM的初始隐含状态(hidden state),依次处理机器人未来的每一个动作,并输出相应的预测脱离概率。

预测可视化的结果如下:

 

在众多可选路径中,颜色越深(红),则表明脱离的概率越高。

性能优于传统方法

最后,研究人「我要出轨了」!伯克利的这个AI,可以预测机器人何时将脱离

「脱离」 (disengagement),在自动驾驶系统中是一个重要的指标。

是指当自动驾驶汽车遇到故障,脱离自动驾驶模式,改为人类驾驶员接管车辆的情况。

很多人认为「脱离」次数越少,就能说明一个自动驾驶系统能力越强。因此,以往的研究都会把「脱离」当作是故障来排除掉。

但最近,UC伯克利的研究人员却「以毒攻毒」,直接用这样的数据来训练机器人,预测未来何时将发生脱离事件

 

研究人员称它为LaND——从「脱离」中学会导航。

 

研究人员表示,通过这样的方法得到的结果,要比传统的强化学习、模仿学习都要强。

「开」着小车取数据

老规矩,先来看下训练数据。

既然伯克利的这项研究是想「以毒攻毒」,那么就必须收集出现故障时的那些数据。

于是,研究人员用一辆Clearpath Jackal机器人做测试。

先让这个机器人自己在路上「跑」,若是遇到如下三种情况则视为出故障,即开到人行道的两侧或撞到草丛等物体。

 

当出现故障的情况后,机器人就会进入「脱离」状态,人类研究员便用遥控器,把它重新置于有效位置,以便让它再次自主行进。

 

然后研究人员把在这些过程中,从机器人摄像头等传感器获取的图像等数据收集起来,作为训练数据。

投喂到神经网络做预测

拿到数据,就要开始训练了。

目的就是用这些数据,来预测机器人在未来是否会脱离

 

具体的神经网络长这样。

 

神经网络先使用MobileNetV2,对输入的图像观测值进行处理,紧接着是一系列的全连接层

这些图像层的输出,将作为递归神经网络LSTM的初始隐含状态(hidden state),依次处理机器人未来的每一个动作,并输出相应的预测脱离概率。

预测可视化的结果如下:

 

在众多可选路径中,颜色越深(红),则表明脱离的概率越高。

性能优于传统方法

最后,研究人员拿这种「以毒攻毒」的方法,与其它两种传统方法做对比,分别是模仿学习强化学习

在对比实验中,三种方法所采用的数据都是一致的,实验结果如表所示。

 

非常明显,当机器人在2.3公里长、从未走过的人行道中行进时,强化学习方法平均每2米就会脱离一次,模仿学习则是平均每13.4米就会脱离一次。

而伯克利提出的「以毒攻毒」方法,效果非常显著——平均每87.5米才会脱离一次。

作者介绍

这项研究的作者均来自UC伯克利。

 

论文一作叫Gregory Kahn,是UC伯克利EECS的一名博士生。主要研究目标是开发算法,使机器人能够在现实世界中操作。

 

Pieter Abbeel

Pieter Abbeel是这项研究的另一位作者,目前在UC伯克利担任BAIR实验室的联合主任。

他的研究致力于建立更加智能的系统,其实验室推动了深度强化学习、深度模仿学习、深度非监督式学习、迁移学习、元学习、学会学习,以及研究人工智能对社会的影响。

员拿这种「以毒攻毒」的方法,与其它两种传统方法做对比,分别是模仿学习强化学习

在对比实验中,三种方法所采用的数据都是一致的,实验结果如表所示。

 

非常明显,当机器人在2.3公里长、从未走过的人行道中行进时,强化学习方法平均每2米就会脱离一次,模仿学习则是平均每13.4米就会脱离一次。

而伯克利提出的「以毒攻毒」方法,效果非常显著——平均每87.5米才会脱离一次。

作者介绍

这项研究的作者均来自UC伯克利。

 

论文一作叫Gregory Kahn,是UC伯克利EECS的一名博士生。主要研究目标是开发算法,使机器人能够在现实世界中操作。

 

Pieter Abbeel是这项研究的另一位作者,目前在UC伯克利担任BAIR实验室的联合主任。

他的研究致力于建立更加智能的系统,其实验室推动了深度强化学习、深度模仿学习、深度非监督式学习、迁移学习、元学习、学会学习,以及研究人工智能对社会的影响。

 

 

 

道翰天琼CiGril机器人API

道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:

  1. 在平台注册账号
  2. 登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
  3. 在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。

开始接入

请求地址:http://www.weilaitec.com/cigirlrobot.cgr

请求方式:post

请求参数:

参数

类型

默认值

描述

userid  

String  

平台注册账号

appid  

String  

平台创建的应用id

key  

String  

平台应用生成的秘钥

msg  

String  

""

用户端消息内容

 

接口连接示例:http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552

注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。

示例代码JAVA:


import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class apitest {

    
    private static String opUrl(String urlStr)
    {        
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try
        {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setReadTimeout(5 * 10000);
            conn.setConnectTimeout(5 * 10000);
            conn.setRequestMethod("POST");
            if (conn.getResponseCode() == 200)
            {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1)
                {
                    baos.write(buf, 0, len);
                }
                baos.flush();
                String result = baos.toString();
                return result;
            } else
            {
                throw new Exception("服务器连接错误!");
            }

        } catch (Exception e)
        {
            e.printStackTrace();
        } finally
        {
            try
            {
                if (is != null)
                    is.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }

            try
            {
                if (baos != null)
                    baos.close();
            } catch (IOException e)
            {
                e.printStackTrace();
            }
            conn.disconnect();
        }
        return "";
    }
    
    
    public static void main(String args []){        
            //msg参数就是传输过去的对话内容。            
            System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
            
    }
}