[发明专利]一种基于多线程的多目视觉相机同步采集方法在审
申请号: | 202110691476.4 | 申请日: | 2021-06-22 |
公开(公告)号: | CN113434304A | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 刘阳;王鹏;王彩红;吕庆佳;吕艳;温保岗;王腾森;高松;王烁;韩世军 | 申请(专利权)人: | 大连工业大学 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/54;G06F9/50;H04N5/04 |
代理公司: | 辽宁鸿文知识产权代理有限公司 21102 | 代理人: | 杨植 |
地址: | 116034 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 多线程 目视 相机 同步 采集 方法 | ||
1.一种基于多线程的多目视觉相机同步采集方法,其特征在于,所述的基于多线程的多目视觉相机同步采集方法包括以下步骤:
步骤1:加载环境
初始化相机管理模块、线程管理模块和相机动作控制模块,使用数组创建循环队列,动态开辟所需要大小的数组空间,并采用两个标记为来标记头和尾,采用数组实现循环,当走到数组结尾处,标记位再次更新,采用取模的操作来使其合法;通过创建循环队列来构建缓冲区和线程池;采用.net框架提供的线程管理器来进行线程管理,使应用程序根据自身需求利用多个线程;
步骤2:对多相机基本动作的操作
2.1多相机单一图像同步采集
针对步骤1中加载环境所创建的线程池,唤醒线程队列中的线程,通过线程队列中子线程和主线程的相互协调来实现多相机图像单一图像同步采集;包括:
2.1.1线程调取单一图像同步采集任务
采用主线程调用相机管理模块初始化相机,主线程进入应用系统临界区,占用线程执行所需的资源;多相机单一同步采集的命令以任务的方式添加到线程池的任务队列,线程队列中的子线程自动从任务队列调取任务执行;
2.1.2线程访问公共资源
针对步骤2.1.1中执行单一图像同步采集任务的子线程,执行任务过程中,采用原子性操作访问公共资源,其中,采用.NET框架提供的互斥锁机制,实现原子性操作,以合理利用公共资源,避免线程冲突;
2.1.3线程对单帧图像的获取和处理
针对步骤2.1.2中对公共资源进行原子性操作的子线程,并发调用相机动作控制模块,内部调用SDK工具包封装的单帧图像获取接口,经CPU的轮转调度算法,子线程向多相机发送捕捉信号,信号并发传递,获取的单帧图像;
采用记录时间戳的方法对获取的单帧图像进行处理,即把每一帧图像记录一个时间戳后入队步骤1中用数组创建的循环队列,按照时间顺序排序,取帧时,计算当前时间,结合帧率,根据时间戳把不合格帧全部出队丢掉,留下时间戳正确的帧分析以保证最新帧的采集,子线程获取的均为最新帧图像从而降低多相机采集单一图像的同步延迟;
2.1.4线程对单帧图像的回调
针对步骤2.1.3中存储单帧图像的循环队列,获取队列中最新同一帧图像,调用多线程的回调函数将同一帧图像返回到相机控制系统操控页面,从而达到多相机单一图像同步采集;
2.2多相机连续图像同步采集
针对步骤1中加载环境所创建线程池,唤醒线程队列中的线程,通过线程队列中子线程和主线程的相互协调来实现多相机图像同步采集;
2.2.1线程调取连续图像同步采集任务
采用主线程调用相机管理模块初始化相机,主线程进入应用系统临界区,占用线程执行所需的资源;多相机连续图像采集的命令以任务的方式添加到线程池中的任务队列,线程队列中的子线程自动从任务队列调取任务执行;
2.2.2线程访问公共资源
针对步骤2.2.1中执行单一图像同步采集任务的子线程,执行任务过程中,采用原子性操作访问公共资源;采用.NET框架提供的互斥锁机制,实现原子性操作,以合理利用公共资源,避免线程冲突;
2.2.3线程对帧对象的获取和处理
针对步骤2.2.2对公共资源进行原子性操作的子线程,并发调用相机动作控制模块,内部调用SDK工具包封装的连续图像的采集接口,获取帧对象;
采用生产者消费者的设计模式对帧对象进行处理,在内存空间中定义一个循环队列结构的公共资源空间,当作帧对象传输的缓冲区,提高多相机连续图像采集的鲁棒性;
2.2.4线程对连续图像的回调
针对步骤2.2.3中多线程处理完的帧对象,通过子线程调用回调函数进行回调,即反向传输到相机控制系统操控页面;同时子线程向应用程序发送完成指令并进入线程队列,线程队列中的子线程快速高效执行任务队列中连续图像同步采集的任务并重复执行步骤2.2.2、步骤2.2.3、步骤2.2.4,从而达到多相机连续图像同步采集;
步骤3:线程回收以及资源的释放
采用CLR管理分配和释放的托管资源,由.NET提供垃圾回收器自动回收,令主线程离开系统临界区,释放资源,并将缓冲区和线程池关闭。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连工业大学,未经大连工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110691476.4/1.html,转载请声明来源钻瓜专利网。