一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种摄像头模组多线程检测方法及装置与流程

2022-04-13 19:16:39 来源:中国专利 TAG:


1.本发明涉及图像检测技术领域,特别涉及一种摄像头模组多线程检测方法及装置。


背景技术:

2.现阶段摄像头模组从低阶摄像头到高阶摄像头,生产工艺、检测手段要求越来越复杂,因此摄像头模组厂在生产摄像头模组的过程中需要涉及到很多检测测试,其中包括oc(光学中心)、pod(坏点)、pog(脏污)、shading(亮度yshading和颜色colorshading,其中包括rgshading,bgshading和ggshading)、ob(dark shading)、fpn(黑场和白场线条)、rts noise等测试,而在这个过程中其测试手段往往决定了其生产效率。传统上的测试是先点亮摄像头,曝光到一定范围内抓图然后做相关测试,这种方式往往存在uph(单位小时的产量)低的问题。
3.为此,需要一种能够有效提高检测效率的摄像头模组多线程检测方法及装置。


技术实现要素:

4.本发明的目的之一在于提供一种摄像头模组多线程检测方法,能够有效提高摄像头模组的检测效率。
5.为了解决上述技术问题,本技术提供如下技术方案:
6.一种摄像头模组多线程检测方法,包括如下步骤:
7.s1、根据测试场景选择对应的子测试项;
8.s2、设置子测试项的运行时间阈值以及其参数;
9.s3、根据选择的子测试项在预设的曝光环境下自适应提取预设帧数的原始图像,再转换为预设格式的图像数据;
10.s4、多线程调用各个子测试项,进行子测试项的检测;
11.s5、各线程运行结束或超出子测试项的运行时间阈值则终止线程。
12.基础方案原理及有益效果如下:
13.现有的摄像头模组检测都是完成一项检测再进行下一项检测,这样测试很方便,同时对操作的要求较低,故一直沿用,但是效率低的缺点一直存在。本方案中,根据测试场景选择对应的子测试项,可以让多个子测试项同时进行测试,为每一子测试项设置运行时间阈值以及其参数,可以确保各个子测试项能够正常运行,而且,通过运行时间阈值可以避免某个子测试项长时间运行,防止对测试资源的长期占用。由于各个子测试项需要的原始图像的帧数、图像数据的格式不尽相同,因此,自适应提取预设帧数的原始图像,再转换为预设格式的图像数据,可以在多个子测试项同时进行测试的情况下,为每一个子测试项针对性采集合适的检测数据。最后,在完成上述准备工作后,多线程调用各个子测试项,进行子测试项的检测,也就是同时对各子测试项进行检测,能够有效节约时间。
14.综上,本方案可以多线程自适应处理摄像头模组的通用检测,能够在运行时间上
得到很大的改善,有效提高检测效率,便于摄像头模组厂进行快捷方便的检测。
15.进一步,所述步骤s2中,还包括:采集各子测试项的参数以及对应线程正常运行结束的实际运行时间,将各子测试项的参数以及实际运行时间作为训练样本,将训练样本输入bp神经网络模型进行训练,得到训练完成的bp神经网络模型;将设置的参数输入训练完成的bp神经网络模型,获取对应子测试项的预测运行时间,将预测运行时间作为运行时间阈值。
16.传统的单项测试中每项测试的时间是固定的,即每个测试的运行时间是一致的。本优选方案会在各线程运行结束时终止线程,换句话说,当测试完毕,即使没有达到固定时间,也会终止线程,更为灵活。而且,根据一定样本数对bp神经网络模型进行训练,然后将设置的参数输入训练完成的bp神经网络模型,获取对应子测试项的预测运行时间,这样,各个子测试项的运行时间阈值,是根据各线程的测试情况动态调整,在某一线程测试时间久时可以终止该线程,减少对uph的影响。相比于使用固定的运行时间阈值,适应性更好。
17.进一步,还包括如下步骤:
18.s6、获取各子测试项的测试结果;
19.s7、分析各子测试项测试结果,根据测试结果统计测试不良的个数。
20.进一步,还包括如下步骤:
21.s8、判断子测试项测试不良个数是否为0;
22.若子测试项测试不良个数为0,转跳到步骤s9;
23.若子测试项测试不良个数大于1则直接返回错误结果,终止测试;
24.若子测试项测试不良个数等于1,重新获取对应的图像数据单独进行检测,返回该子测试项的测试结果,再次判断测试不良个数是否为0,若是转跳到步骤s9;否则返回错误结果,终止测试;
25.s9、若返回的测试结果无测试不良则检测通过。
26.在子测试项测试不良个数等于1时,进行二次的检测,可以提高一次良率和减少误判率,如果检测结果还是测试不良则说明该子测试项确实存在问题,否则该子测试项判断无误。
27.进一步,所述s1步骤中,选择相同色温、相同照度且相同曝光的子测试项。
28.本发明的目的之二在于,提供一种摄像头模组多线程检测装置,包括:
29.环境设置单元,用于根据选择的子测试项设置曝光环境;
30.图像提取单元,用于根据选择的子测试项自适应获取帧数n的原始图像并转换为预设格式的图像数据,其中n≥1且n为正整数;
31.参数配置单元,用于根据选择的子测试项配置各自的图像检测参数,参数为m组,m≥2且m为正整数;
32.估算单元,用于根据选择的子测试项确定每个图像检测单元的运行时间,设置其图像检测单元的运行时间阈值和线程;
33.检测线程单元,用于多线程调用各个图像检测单元,运行图像检测单元;
34.图像检测单元,用于根据选择的子测试项对格式转换后的图像数据进行检测。
35.本方案中,通过环境设置单元根据选择的子测试项设置曝光环境,可以保证选择的子测试项在相同的曝光环境下。
36.由于各个子测试项需要的原始图像的帧数、图像数据的格式不尽相同,因此,图像提取单元自适应提取帧数n的原始图像,再转换为预设格式的图像数据,可以在多个子测试项同时进行测试的情况下,为每一个子测试项针对性采集合适的检测数据。估算单元设置其图像检测单元的运行时间阈值;可以避免某个测试项长时间运行,防止对测试资源的长期占用。检测线程单元多线程调用各个图像检测单元进行子测试项的检测,也就是同时对各子测试项检测,能够有效节约时间。综上,本方案可以多线程自适应处理摄像头模组的通用检测,能够在运行时间上得到很大的改善,有效提高检测效率,便于摄像头模组厂进行快捷方便的检测。
37.进一步,所述还包括线程处理单元,用于在图像检测单元执行时间超过其运行时间阈值或执行完线程时,获取图像检测单元的测试结果,并关闭检测线程单元。
38.传统的单项测试中采用每项测试固定时间的方式进行,即每个测试的运行时间是一致的。本优选方案中,线程处理单元会在各线程运行结束或超出子测试项的运行时间阈值时终止线程,换句话说,当测试完毕,即使没有达到固定时间,也会终止线程,更为灵活,运行时间超出运行时间阈值,终止线程,可以避免某个测试项长时间运行,防止对测试资源的长期占用。
39.进一步,所述还包括分析单元:用于根据各个线程图像检测单元的测试结果进行图像数据分析,统计其子测试项的测试不良个数。
附图说明
40.图1为实施例一一种摄像头模组多线程检测方法的流程图;
41.图2为实施例一一种摄像头模组多线程检测装置的逻辑框图。
具体实施方式
42.下面通过具体实施方式进一步详细说明:
43.实施例一
44.如图1所示,本实施例的一种摄像头模组多线程检测方法,包括如下步骤:
45.s1、根据测试场景选择对应的子测试项。例如根据项目场景及客户需求指定其子测试项,黑场下一般需要测试ob、fpn、pod甚至rts noise,白场下一般需要测试oc、pod、pog、shading、fpn。
46.s2、设置子测试项的运行时间阈值以及其相对应的参数。由于各子测试项的运行时间跟摄像头芯片分辨率有关,即跟图像数据有关,不同子测试项的运行时间阈值不同。例如,对于12meg摄像头,oc测试光学中心和shading测试时间都应小于0.5秒,pod白场卡坏点和fpn检测线条测试时间都应小于1秒,pog脏污测试时间应小于2秒。而对于低阶或高阶摄像头也会不一样,例如针对高阶摄像头(16meg及以上,16m\30m\48m\64m\108m等):oc\shading\fpn时间在1.5秒以内;pod在2秒以内;pog在3秒以内;例如针对低阶摄像头(16meg以下):oc\shading\fpn时间在1秒以内;pod在1.5秒以内;pog在1.5秒左右;本实施例中具体的运行时间阈值可以在项目调试阶段在上位机界面上进行设置。
47.各子测试项的相关参数设置包括很多,比如oc需要设置其芯片pixel大小、光学中心与物理中心的距离阈值;shading需要设置卡框大小、亮度范围、rgshading和bgshading
范围、四角亮度差等;pod需要设置白场卡坏点浓度、坏点类型和坏点个数等;pog需要设置各视场阈值、边缘和四角阈值等;fpn线条则需要设置横向、纵向相邻线条差值;ob则需要设置卡框大小、各通道最大阈值和最小阈值等;同时各测试项的图像数据类型不尽相同,例如oc用的是bmp数据,shading用的是raw10数据;pog用的是多张bmp数据融合等。
48.s3、根据选择的子测试项在预设的曝光环境下自适应提取预设帧数的原始图像,再转换为预设格式的图像数据并储存在相应的内存单元中。选择曝光环境,例如白场下,则需要合适的光源,例如d50,色温5100
±
100k,亮度1000
±
100lux,点亮摄像头选择合适曝光,一般g通道设置为150~200左右;再例如黑场下,直接盖上黑板测试。
49.具体的,抓取图像数据时,从测试盒采集一帧或多帧原始图像(根据子测试项而选择采集几帧);然后根据选择的子测试项去转化对应格式。
50.原始图像一般会是mipi raw10\yuv422 8bit\yuv422 10bit等格式。
51.例如,oc:将原始图像转成bmp之后再转成灰度图;
52.shading:将原始图像转成raw10;
53.pod:将原始图像转成raw10再转成raw8;
54.pog:通过2或3帧原始图像转成bmp;
55.fpn:原始图像转成raw10;
56.ob:通过2或3或4帧原始图像转成raw10。
57.s4、多线程调用各个子测试项,进行子测试项的检测。例如烧录项目一般需要开启如下线程的子测试项进行测试:
58.白场:oc/shading/pod/pog/fpn/lsc,
59.黑场:pod/fpn/ob。
60.再例如不烧录项目一般需要开启如下线程的子测试项进行测试:
61.白场:oc/shading/pod/pog/fpn,
62.黑场:pod/fpn/ob。
63.s5、各线程运行结束或超出子测试项的运行时间阈值则终止线程;
64.s6、获取各子测试项的测试结果;
65.s7、分析各子测试项测试结果,根据测试结果统计测试不良的个数。具体的,各个子测试项测试不良的判断标准需要预先设定,然后通过分析各测试项的错误日志进行测试不良个数的统计。
66.例如,fpn线条不良:分为横向线条和纵向线条,在图像中会出现卡1条线条、2条线条、4条线条、8条线条、16条线条的情况,会通过对比前后列、上下行的整体像素值,判断像素值是否超出设定的阈值来得到结果,同时保存存在线条的行或列信息;
67.oc光学中心:计算出图像实际的中心坐标,然后与物理坐标进行比较,如果不一致为不良,比如一张8000*6000分辨率的图,物理坐标就是理论中心(4000,3000),光学中心计算出来为3800,4100,然后比较光学中心和物理中心的距离;
68.pod:计算整张图存在的坏像素,如果坏像素超出所设定的阈值,就会记录其坏点类型、坐标,和保存并标记坏像素的图。
69.s8、判断子测试项测试不良个数是否为0;如果子测试项测试不良个数为0,转跳到步骤s9;如果子测试项测试不良个数大于1则直接返回错误结果,终止测试;如果子测试项
测试不良个数等于1,重新获取其对应的图像数据并单独进行检测,并返回该子测试项的测试结果,再次判断测试不良个数是否为0,若是转跳到步骤s9;否则返回错误结果,终止测试。为了提高一次良率和减少误判率,进行二次的检测,如果检测结果还是测试不良则说明该子测试项确实测试不良,否则该子测试项判断无误。这里对整个项目而言是提高了效率,进而提高uph。在其他实施例中,还统计同时运行的各线程中,出现子测试项测试不良个数等于1,重新检测后测试不良个数为0的重复测试次数,将重复测试次数超过第一阈值标记为满足第一条件,当运行相同子测试项的线程达到一定次数后,例如100次,可根据实际情况设置,判断出现第一条件次数与总次数的占比是否超过第二阈值,若超过,生成更换子测试项的提醒。可以提醒重新选择不同的子测试项,再由重新选择的子测试项进行多线程检测,便于排除检测时产生干扰等隐性问题造成的测试不良。
70.s9、如果依次返回的测试结果无测试不良则检测通过。
71.基于一种摄像头模组多线程检测方法,本实施例还提供一种摄像头模组多线程检测装置,如图2所示,包括:
72.环境设置单元,用于根据选择的子测试项设置曝光环境,例如白场测试设置好合适的色温和照度,然后曝光到合适的亮度,黑场测试时场景全黑,保证不漏光。
73.图像提取单元,用于根据选择的子测试项自适应获取帧数n的原始图像并转换为预设格式的图像数据,其中n≥1且n为正整数。
74.参数配置单元,用于根据选择的子测试项配置各自的图像检测参数,参数为m组,m≥2且m为正整数,m代表m个线程,也就是子测试项的个数。
75.估算单元,用于根据选择的子测试项确定每个图像检测单元的运行时间,设置其图像检测单元的运行时间阈值和线程。
76.检测线程单元,用于多线程调用各个图像检测单元,运行图像检测单元。
77.图像检测单元,用于根据选择的子测试项对格式转换后的图像数据进行检测。
78.线程处理单元,用于在图像检测单元执行时间超过其运行时间阈值或执行完线程时,获取图像检测单元的测试结果,并关闭检测线程单元;
79.分析单元:用于根据各个线程图像检测单元的测试结果进行图像数据分析,统计其子测试项的测试不良个数,根据测试不良个数做相应反馈。
80.具体的,如果子测试项的测试不良个数大于1则直接返回错误结果测试终止;如果子测试项的测试不良个数等于1,重新抓取其对应的图像数据,并由图像检测单元单独进行检测,并返回该子测试项的测试结果,再次判断测试不良个数是否大于或等于1,若是则终止测试;如果依次返回的测试结果无测试不良则检测通过。
81.例如某12.5meg项目,分辨率为4080*3072,白场测试需要测试oc、shading、pod、pog、fpn,在相同的环境下设置好相关参数和运行时间阈值等信息,对比不采用多线程自适应的方式,根据统计学发现本实施例的方案运行时间约1.867秒,而不采用此方式所运行的时间约4.913秒,时间相差3秒多,运行速率明显改善,进而大大提高其uph。
82.例如某12.5meg项目,分辨率为4080*3072,黑场测试需要测试ob、pod、fpn,在相同的环境下设置好相关参数和运行时间阈值等信息,对比不采用多线程自适应的方式,根据统计学发现本实施例的方案运行时间约1.473秒,而不采用此方式所运行的时间约4.233秒,时间相差约2.76秒,运行速率明显改善,进而大大提高其uph。
83.如上所述,本实施例提供的一种多线程自适应图像检测方法及装置,通过多线程自适应处理高阶和低阶摄像头模组的通用检测方式,能够在运行时间上得到很大的改善,便于摄像头模组厂进行快捷方便的检测。而且模组厂需要烧录的或不烧录项目的通用检测项目都可以按此方案进行多线程检测,迭代性强,将来涉及到的通用测试项都可以扩展进来。
84.在实际过程中可能会用到一个或多个子测试项,都可以根据实际调整,在高阶和低阶摄像头项目都可通用,在手机、车载、医疗等领域也都可用,灵活性高。
85.实施例二
86.本实施例与实施例一的区别在于,本实施例方法的s2步骤中,还包括采集各子测试项的参数以及对应线程正常运行结束的实际运行时间,将各子测试项的参数以及实际运行时间作为训练样本,将训练样本输入bp神经网络模型进行训练,得到训练完成的bp神经网络模型;将设置的参数输入训练完成的bp神经网络模型,获取对应子测试项的预测运行时间,将预测运行时间作为运行时间阈值。
87.在子测试项的运行时间跟摄像头芯片分辨率有关的基础上,本实施例中,各个子测试项的运行时间阈值,还根据各线程的测试情况做动态的精细化的调整,即在根据摄像头芯片分辨率确定的大范围下,进一步缩小范围,这样可以使运行时间阈值与对应的子测试项贴合度更高,运行时间阈值不会设置得过短导致测试无法正常进行,运行时间阈值也不会设置得过长影响测试效率,进而可以提高其uph。
88.本实施例的摄像头模组多线程检测装置,使用上述方法。
89.实施例三
90.本实施例与实施例二的区别在于,本实施例方法的s1步骤中,选择相同色温、相同照度且相同曝光的子测试项。本实施例的多线程测试通过对各子测试项特性(色温、照度曝光、图像格式,帧数,运行时间阈值,以及子测试项参数)的搭配与设置,可以确保同时运行的多个子测试项不会产生冲突,避免对测试效率产生影响。在其他实施例中,还可以统计各子测试项超出运行时间阈值的概率,选择概率大于预设值,相同色温、相同照度且相同曝光的子测试项进行多线程检测,可以进一步提高效率。
91.以上的仅是本发明的实施例,该发明不限于此实施案例涉及的领域,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本技术给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本技术的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本技术要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献