Carla 使用神经网络训练自动驾驶车辆---仿真测试部分

Carla 使用神经网络训练自动驾驶车辆—仿真测试部分

还是这个图

在这里插入图片描述
前两篇已经采集好了数据、训练好了模型,这一章就可以将模型预测结果直接接入carla仿真环境中:

import random
import atexit
import config
import torch
import numpy as np
import cv2
import carla
from model import Model
from carla_base import Carla

class Autopilot(Carla):
    def __init__(self, model, model_state):
        super().__init__(False, 10)
        self.model = model
        self.model_state = model_state
        self.main()
    
    def main(self):
        run = True
        model = self.model
        vehicle = self.vehicle
        model_state = torch.load(self.model_state)
        model.load_state_dict(model_state)
        model.eval()
        
        while run:
            if self.frame is not None:    
                if vehicle.is_at_traffic_light():
                    traffic_light = vehicle.get_traffic_light()
                    traffic_light.set_state(carla.TrafficLightState.Green)
                    
                cv2.imshow('"q" - exit', cv2.resize(self.frame, (config.WIDTH, config.HEIGHT)))
                if cv2.waitKey(10) & 0xFF == ord('q'):
                    break

                self._control_vehicle(model, vehicle)
    
    def _control_vehicle(self, model, vehicle):
        data = cv2.cvtColor(self.frame, cv2.COLOR_BGR2RGB)
        data = cv2.resize(data, (200, 66))
        data = torch.tensor(data).reshape(1, 3, 66, 200).float()
        with torch.no_grad():
            out = model(data).reshape(1)
            vehicle.apply_control(carla.VehicleControl(throttle=0.2, steer=float(out[0])))

if __name__ == '__main__':
    Autopilot(Model(), 'autopilot-carla\model_state.pth')

这样的话,小车就可以在carla中自动驾驶了

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值