UFLD车道线检测集成入unity方法一

Posted AMOD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UFLD车道线检测集成入unity方法一相关的知识,希望对你有一定的参考价值。

1、用cmd复现python项目进行车道线检测

UFLD相关网址UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)_m0_46364958的博客-CSDN博客_ultra-fast-lanehttps://github.com/cfzd/Ultra-Fast-Lane-Detection-v2GitHub - cfzd/Ultra-Fast-Lane-Detection-v2: Ultra Fast Deep Lane Detection With Hybrid Anchor Driven Ordinal Classification (TPAMI 2022)Ultra-Fast-Lane-Detection:超快速的结构感知深路检测(ECCV2020)_ultra-fast-lane-数据集代码类资源-CSDN下载Ultra-Fast-Lane-Detection/INSTALL.md at master · cfzd/Ultra-Fast-Lane-Detection · GitHub车道线检测论文Ultra-Fast-Lane-Detection-master代码复现过程_小祥子ovo的博客-CSDN博客

主要看这个【Lane】 Ultra-Fast-Lane-Detection 复现_摇曳的树的博客-CSDN博客Ultra-Fast-Lane-Detection代码复现(车道线检测)_Flying Stone的博客-CSDN博客(2020ECCV)超快速的结构感知深度车道检测 论文+代码解读_Wincher_Fan的博客-CSDN博客

2.前期准备

Cuda 10.2    torch 1.7.0     torchvision 0.8.0    torchaudio 0.7.0

 环境搭建过程中的报错显示是libiomp5md.dll有重复

删除重复文件

执行test.py成功

3、 将cmd命令集成到python中

cmd命令为执行 demo文件

python demo.py configs/tusimple.py --test_model tusimple_18.pzhuzhu

使用方法:os.system("command")

参考网页python调用系统命令的6种方法_牛andmore牛的博客-CSDN博客_python 系统命令

新建一个.py文件  test.py

代码如下:

import os
os.system("activate lane-det")
os.system("f:")
os.system("cd Ultra-Fast-Lane-Detection-master")
os.system("python demo.py configs//tusimple.py --test_model tusimple_18.pth ")
#os.system("cd test && mkdir test1")

实际使用过程中,每次都会开启一个子进程,因此第2,3,4行无效,在控制台激活虚拟环境lane-det后,已经进入ufld文件夹,test.py只执行了第五行运行cmd命令。

结果与cmd命令完全相同

4.将cmd命令集成批处理文件(bat文件)

参考网站:在window使用bat批处理文件执行cmd命令 - 知乎

命令之间用&&隔开,把txt后缀修改成bat后缀,编码格式设置为ANSI

其中代码如下:

start cmd /k "activate lane-det&&f:&&cd Ultra-Fast-Lane-Detection-master&&python demo.py configs//tusimple.py --test_model tusimple_18.pth"

 5.unity中创建C#脚本调用sss.bat批处理文件

在Assets中右键creat创建C# script脚本,生成demo.cs

 demo.cs中代码参考网站:【Unity3d】在Unity3d中调用外部程序及批处理文件,写自动化编译脚本需要注意的地方_Unity3d_积木网(gimoo.net)

static bool ExecuteProgram(string exeFilename, string workDir, string args)

	System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
	info.FileName = exeFilename;
	info.WorkingDirectory = workDir;
	info.UseShellExecute = true;
	info.Arguments = args;
	info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

	System.Diagnostics.Process task = null;
	bool rt = true;
	try
	
		Debug.Log("ExecuteProgram:" + args);
		
		task = System.Diagnostics.Process.Start(info);
		if (task != null)
		
			task.WaitForExit(100000);
		
		else
		
			return false;
		
	
	catch (Exception e)
	
		Debug.LogError("ExecuteProgram:" + e.ToString());
		return false;
	 
	finally
	
		if (task != null && task.HasExited)
		
			rt = (task.ExitCode == 0);
		
	

	return rt;

报错并修改后得到代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class demo : MonoBehaviour

    // Start is called before the first frame update
    void Start()
    
		string s = "sss.bat";
		string s1 = "G:\\\\桌面";
		ExecuteProgram(s, s1,"0");
	

	static bool ExecuteProgram(string exeFilename, string workDir, string args)
	
		Debug.Log("ddd");
		System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
		info.FileName = exeFilename;
		info.WorkingDirectory = workDir;
		info.UseShellExecute = true;
		info.Arguments = args;
		info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;

		System.Diagnostics.Process task = null;
		bool rt = true;
		Debug.Log("ddd");
		try
		
			Debug.Log("ExecuteProgram:" + args);

			task = System.Diagnostics.Process.Start(info);
			if (task != null)
			
				task.WaitForExit(100000);
			
			else
			
				return false;
			
		
		catch (Exception e)
		
			Debug.LogError("ExecuteProgram:" + e.ToString());
			return false;
		
		finally
		
			if (task != null && task.HasExited)
			
				rt = (task.ExitCode == 0);
			
		

		return rt;
	
	// Update is called once per frame
	void Update()
    
		
	

将demo.cs文件挂到unity中

 点击中上运行,调用python成功

以上是关于UFLD车道线检测集成入unity方法一的主要内容,如果未能解决你的问题,请参考以下文章

车道线检测基于matlab Hough变换视频车道线检测 含Matlab源码 274期

车道线检测基于matlab Hough变换图片车道线检测 含Matlab源码 276期

模式识别基于 Hough变换视频车道线检测matlab源码

转载传统车道线检测-canny边缘检测-霍夫变换-完整代码(python)

计算机视觉——车道线(路沿)检测

带你读AI论文丨LaneNet基于实体分割的端到端车道线检测