一种基于虚拟摄像头的视觉应用开发方法及系统与流程

文档序号:36918082发布日期:2024-02-02 21:45阅读:20来源:国知局
一种基于虚拟摄像头的视觉应用开发方法及系统与流程

本技术涉及辅助驾驶,具体涉及一种基于虚拟摄像头的视觉应用开发方法及系统。


背景技术:

1、随着汽车电气化和智能化的发展,汽车使用的摄像头数量快速增加,如前视主摄像头、前视广角摄像头以及前视窄角摄像头等。

2、目前,围绕汽车使用的摄像头所开发的基于视觉的驾驶辅助应用也快速发展落地,例如avm(around view monitor,360影视),apa(auto parking assis,自动泊车辅助系统),dms(driver monitor system,驾驶员监控系统),lka(lane keeping assist,车道保持辅助),oms(occupancy monitoring system,成员监视系统)等。这些驾驶辅助应用在实际的开发过程中需要严苛的实车开发环境,但由于一些条件限制,往往难以保证充分的实车开发环境,如:1.由于生产排期原因,在项目中早期,缺少车辆用于开发和测试;2.由于部分测试车无法取得许可进行路测,因此不能获取足够多的数据用于应用开发和测试;3.由于保密原因,部分主机厂在新车解密前不会提供实际车辆进行开发和测试。

3、因此上述方案中,应用开发者往往无法获得实车开发环境,导致驾驶辅助的项目推进困难。


技术实现思路

1、有鉴于此,本技术实施例提供一种基于虚拟摄像头的视觉应用开发方法及系统,能够让使用摄像头的视觉类应用在没有真实硬件的环境下,获得与真实环境接近的开发环境,大大提升开发效率,加块项目落地。

2、第一方面,本技术提供了一种基于虚拟摄像头的视觉应用开发方法,所述方法应用于一种基于虚拟摄像头的视觉应用开发系统中,所述系统包括用户层sdk模块、虚拟摄像头驱动模块、摄像头数据应用模块;

3、所述方法包括:

4、用户层sdk模块获取车辆环境视频流,并对所述车辆环境视频流进行解码,以获取所述车辆环境视频流的原始图像数据;

5、所述用户层sdk模块将所述原始图像数据注入至所述虚拟摄像头驱动模块的输入缓冲区;

6、所述虚拟摄像头驱动模块对所述原始图像数据进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区;

7、所述摄像头数据应用模块从所述输出缓冲区内获取转换后的图像数据,以基于转换后的图像数据进行视觉应用开发。

8、根据上述技术手段,本技术采用用户层sdk模块、虚拟摄像头驱动模块、摄像头数据应用模块模拟真实的视觉应用开发环境,能让使用摄像头的视觉类应用,如车辆360度全景影像系统avm、自动代客泊车系统apa、驾驶员监控系统dms、车道保持辅助系统lka、乘员监控系统oms等在没有真实硬件的环境下,获得跟真实环境接近的开发环境,能大大提升开发效率,加块项目落地。

9、结合第一方面,在一种实施方式中,在所述用户层sdk模块获取车辆环境视频流之前,所述方法还包括:

10、用户层sdk模块获取用户输入的配置文件;所述配置文件包括输入数据源、解码后的图像格式、解码后的图像分辨率以及解码的视频帧率;所述输入数据源为本地视频文件或网络视频流。

11、根据上述技术手段,本技术支持多种输入数据源,包括但不限于网络视频流,本地视频文件等;针对视觉应用的需求,可以快速调整输入数据源的参数来达到应用需求,而不必受制于真实的硬件性能,从而可以评估应用在各种硬件配置下的性能。

12、结合第一方面,在一种实施方式中,所述用户层sdk模块获取车辆环境视频流,并对所述车辆环境视频流进行解码,以获取所述车辆环境视频流的原始图像数据,包括:

13、所述用户层sdk模块根据所述输入数据源,获取所述车辆环境视频流;

14、所述用户层sdk模块根据所述解码后的图像格式、所述解码后的图像分辨率以及所述解码的视频帧率,通过所述用户层sdk模块内的视频解码器对所述车辆环境视频流进行解码,以获取所述车辆环境视频流的原始图像数据。

15、根据上述技术手段,用户层sdk模块提供标准应用程序供用户使用,用户执行这个程序的时候,可以指定如下参数:输入数据源、解码后的图像格式、解码后的图像分辨率以及解码的视频帧率,并根据输入数据源、解码后的图像格式、解码后的图像分辨率以及解码的视频帧率,对车辆环境视频流进行解码,扩大了应用场景。

16、结合第一方面,在一种实施方式中,所述用户层sdk模块将所述原始图像数据注入至所述虚拟摄像头驱动模块的输入缓冲区,包括:

17、所述用户层sdk模块调用v4l2接口,接入所述虚拟摄像头驱动模块提供的虚拟摄像头输入节点,以将所述原始图像数据注入至所述虚拟摄像头驱动模块的输入缓冲区。

18、结合第一方面,在一种实施方式中,所述虚拟摄像头驱动模块对所述原始图像数据进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区,包括:

19、所述虚拟摄像头驱动模块根据所述摄像头数据应用模块中的应用,获取输出端格式要求;所述应用包括车辆360度全景影像系统avm、自动代客泊车系统apa、驾驶员监控系统dms、车道保持辅助系统lka以及乘员监控系统oms中的至少一者;

20、将所述原始图像数据按照所述输出端格式要求进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区。

21、结合第一方面,在一种实施方式中,所述将所述原始图像数据按照所述输出端格式要求进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区,包括:

22、当所述原始图像数据的图像格式及图像分辨率,与输出端所要求的图像格式及图像分辨率相同时,则通过所述虚拟摄像头驱动模块内的dma单元将所述原始图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区;

23、当所述原始图像数据的图像格式及图像分辨率,与输出端所要求的图像格式及图像分辨率不同时,则通过所述虚拟摄像头驱动模块内的格式转换单元与缩放单元对所述原始图像数据进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区。

24、根据上述技术手段,该虚拟摄像头驱动模块内还包括dma单元、格式转换单元与缩放单元,根据输入缓冲区的图像格式及图像分辨率以及输出端所要求的图像格式及图像分辨率进行选择;从而将输入缓冲区的图像格式及图像分辨率按照输出端所要求的图像格式及图像分辨率转换后填充到虚拟摄像头驱动模块的输出缓冲区。

25、结合第一方面,在一种实施方式中,所述摄像头数据应用模块从所述输出缓冲区内获取转换后的图像数据,包括:

26、所述摄像头数据应用模块调用v4l2接口,接入所述虚拟摄像头驱动模块提供的虚拟摄像头输出节点,以从所述输出缓冲区内获取转换后的图像数据。

27、根据上述技术手段,该输出缓冲区内转换后的图像数据,可以被摄像头数据应用模块中的应用获取并应用;对于应用来说,操作虚拟摄像头输出节点跟操作真实摄像头输出节点没有任何区别,此时应用可以专注于本身的业务逻辑,而不用关心数据来源的差异。

28、第二方面,本技术提供了一种基于虚拟摄像头的视觉应用开发系统,所述系统用于实现如上所述的一种基于虚拟摄像头的视觉应用开发方法,所述系统包括用户层sdk模块、虚拟摄像头驱动模块、摄像头数据应用模块;

29、所述用户层sdk模块,用于获取车辆环境视频流,并对所述车辆环境视频流进行解码,以获取所述车辆环境视频流的原始图像数据;还用于将所述原始图像数据注入至所述虚拟摄像头驱动模块的输入缓冲区;

30、所述虚拟摄像头驱动模块,用于对所述原始图像数据进行转换,并将转换后的图像数据填充至所述虚拟摄像头驱动模块的输出缓冲区;

31、所述摄像头数据应用模块,用于从所述输出缓冲区内获取转换后的图像数据,以基于转换后的图像数据进行视觉应用开发。

32、第三方面,本技术提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的一种基于虚拟摄像头的视觉应用开发方法。

33、第四方面,本技术提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的一种基于虚拟摄像头的视觉应用开发方法。

34、本技术提供的技术方案可以包括以下有益效果:

35、首先,用户层sdk模块获取车辆环境视频流,并对该车辆环境视频流进行解码,以获取该车辆环境视频流的原始图像数据;此时,用户层sdk模块将该原始图像数据注入至该虚拟摄像头驱动模块的输入缓冲区;之后,虚拟摄像头驱动模块对该原始图像数据进行转换,并将转换后的图像数据填充至该虚拟摄像头驱动模块的输出缓冲区;最后,摄像头数据应用模块从该输出缓冲区内获取转换后的图像数据,以基于转换后的图像数据进行视觉应用开发。上述方案采用用户层sdk模块、虚拟摄像头驱动模块、摄像头数据应用模块模拟真实的视觉应用开发环境,能让使用摄像头的视觉类应用,如车辆360度全景影像系统avm、自动代客泊车系统apa、驾驶员监控系统dms、车道保持辅助系统lka、乘员监控系统oms等在没有真实硬件的环境下,获得跟真实环境接近的开发环境,能大大提升开发效率,加块项目落地;

36、此外,本技术支持多种输入数据源,包括但不限于网络视频流,本地视频文件等;针对视觉应用的需求,可以快速调整输入数据源的参数来达到应用需求,而不必受制于真实的硬件性能,从而可以评估应用在各种硬件配置下的性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1