车道检测
车道检测是计算机视觉和自动驾驶领域的一项关键技术,旨在识别和跟踪道路上的车道线。这个任务对于实现车辆的自动驾驶和辅助驾驶系统至关重要,因为它能够帮助车辆理解其在道路上的位置,保持车道,并执行如车道保持、车道变换等操作。
本示例使用 PyTorchTrainingJob 训练一个车道检测模型。
准备
在项目中创建一个名为 lanedet
、大小 50 GiB 以上的 PVC,然后创建一个同样名为 lanedet
的 Notebook 挂载该 PVC(镜像类型和模板不限)。
进入 Notebook 或远程连接到 Notebook,启动一个终端,执行以下命令以克隆 t9k/examples
仓库:
cd ~
git clone https://github.com/t9k/examples.git
继续执行以下命令以从 kaggle 下载 TuSimple 数据集并解压,其中 kaggle.json
文件需要登录 kaggle 获取。完整的操作步骤可以参阅博客 How to Download Kaggle Datasets on Ubuntu。
pip install kaggle
# 在浏览器中登录 kaggle,在账户设置页面创建新的 token 以生成 kaggle.json 文件,将其上传到 Notebook
mkdir ~/.kaggle
mv kaggle.json ~/.kaggle
kaggle datasets download manideep1108/tusimple
unzip tusimple.zip
训练
使用如下 YAML 配置文件创建 PyTorchTrainingJob 以启动训练。该 PyTorchTrainingJob 创建 2 个副本,每个副本启动 2 个进程,每个进程使用 1 个 GPU。
kubectl create -f examples/lanedet/t9k/job.yaml
通过以下命令查看训练过程中打印的日志:
export POD=$(kubectl get pj lanedet -o jsonpath="{.status.tasks[0].replicas[0].name}")
kubectl logs $POD -f
训练共进行 100 个 epoch,每个 epoch 结束时进行验证(使用测试图像作为验证集),计算准确率、假阳性率和假阴性率。训练完成之后,模型文件将保存到 output/TuSimple/0/*/
路径下。训练花费约 3 小时,最终准确率可以达到约 0.94。