使用移动设备读取测试卡

文档序号:1409724 发布日期:2020-03-06 浏览:9次 >En<

阅读说明:本技术 使用移动设备读取测试卡 (Reading test cards using a mobile device ) 是由 G·纳胡姆 N·布勒尔 A·奥夫德 R·莫尼茨 于 2018-05-21 设计创作,主要内容包括:从移动设备接收输入图像。所述输入图像的一部分被确定为与测试卡相对应并且对所述输入图像的该部分应用图像变换。所述图像变换纠正所述输入图像的所述部分。基于经纠正的图像,识别所述测试卡包括结果的特定测试以及该测试的结果。(An input image is received from a mobile device. A portion of the input image is determined to correspond to a test card and an image transformation is applied to the portion of the input image. The image transformation corrects the portion of the input image. Based on the corrected image, a particular test of the test card including the results is identified along with the results of the test.)

使用移动设备读取测试卡

背景技术

1.技术领域

本文描述的主题大体涉及诊断测试,并且具体地涉及使用移动设备的相机读取这种测试的结果。

2.背景技术

许多医学测试以测试卡的形式产生结果。这些测试卡上的精确的标记指示实施的一个或多个测试的特定结果,为医疗专业人员提供信息以帮助诊断各种状况。现有技术涉及医疗专业人员手动解释测试卡,或者在专用测试站对测试卡进行处理。在许多情况下,测试站的数量有限,并且可能位于与相应的患者相距相当大的距离处。在某些情况下,测试站可能暂时不工作,或者测试站可能根本无法使用。

发明内容

根据各种实施例,通过计算设备和方法来解决上述和其他问题,该计算设备和方法用于通过使用由移动设备捕捉的图像来读取测试卡。在一个实施例中,计算设备通过从移动设备获取包括测试卡的输入图像来读取测试卡。计算设备确定图像(或者其一部分)是否包括测试卡,并且如果是,则应用图像变换以纠正输入图像(例如,以校正偏斜、图像之间的尺寸差异等)。计算设备还基于所纠正的输入图像来识别测试卡包括结果的特定测试和该测试的结果。在该方法的一个实施例中,基本上如上所述关于计算设备来读取测试卡。还公开了包括一起操作以读取测试卡的移动设备和诊断服务器两者的系统的实施例。

附图说明

图1是根据一个实施例的适合于使用移动设备读取测试卡的系统的高级框图。

图2是根据一个实施例的示出在图1的系统中使用的计算机的示例的高级框图。

图3是示出在图1中示出的移动设备的一个实施例的高级框图。

图4是示出在图1中示出的诊断服务器的一个实施例的高级框图。

图5是示出根据一个实施例的使用移动设备的相机提供测试结果的方法的流程图。

图6是示出根据一个实施例的识别包括测试卡的图像的一部分的方法的流程图。

图7是示出根据一个实施例的应用图像变换以辅助测试结果识别的方法的流程图。

具体实施方式

移动设备的存在已经变得几乎无处不在。现在,绝大多数人大部分时间在袋子或口袋中携带至少一个移动设备。这些设备的计算能力也不断提高,从而增加了它们可以提供的功能的范围。因此,在许多背景下,移动设备是未充分利用的资源。一种这样的背景是医学测试卡的读取。使医疗专业人员能够使用他们自己的移动设备容易地获取结果可以减少获取结果所需的时间。在由于故障或不够接近而无法使用专用测试卡读取器的场景下,这也可以提供结果。例如,移动设备可以用于读取可能与最近的配备有专用读取器的医院相距数英里的患者家中或医疗急救现场处的测试卡。

附图(图)和以下描述仅通过说明的方式描述了某些实施例。本领域技术人员将从以下描述中容易地认识到可以在不背离所描述的原理的情况下采用本文中示出的结构和方法的替代实施例。现在将参照数个实施例,在附图中示出这些实施例的示例。应注意在附图中可以尽可能地使用相似或相同的附图标记并且可以指示相似或相同的功能。

系统概述

图1示出了适于使用移动设备120读取测试卡110的系统100的一个实施例。如图所示,系统100包括经由网络170连接到诊断服务器130的一个或多个移动设备120。系统100的其他实施例包括不同的或附加的部件。另外,可以以与所描述的方式不同的方式在部件之间分配功能。例如,在各种实施例中,归因于诊断服务器130的一些或全部处理在移动设备120上本地执行。在本地执行所有处理的实施例中,诊断服务器130和网络170可以完全省略。

测试卡110是诊断测试结果的可视记录。为了说明的目的,图1示出了三个测试卡110。然而,实际上,在任何给定时间,在移动设备120附近可以存在任意数量的测试卡。尽管使用了术语“卡”,但这不应被用来限制测试卡110的结构。在各种实施例中,测试卡110包括印刷的文件、盒式磁带、磁带、测试套件、凝胶卡等。在一个实施例中,测试卡110包括TOX/SEETM尿液测试面板、GEENIUSTM HIV测试套件和ID-SYSTEMTM凝胶卡。本领域技术人员将认识到在不脱离本公开的原理或范围的情况下,系统100可以读取其他测试卡110。

在各种实施例中,移动设备120是由用户携带或佩戴的包括相机的设备,诸如,智能电话、平板计算机、个人数字助理、MP3播放器、智能手表、智能眼镜、具有附接的相机的安全眼镜、头戴式相机等等。代替其他类型的移动设备或除了其他类型的移动设备之外,还可以使用被设计为提供移动设备120的所描述的功能的专用移动测试读取器。尽管为了说明的目的在图1中示出了三个移动设备120,但是,实际上,系统100可以包括任何数量的移动设备。在一个实施例中,用户(例如,医疗专业人员)在他们自己的移动设备120上安装应用程序(“app”),该应用程序提供所描述的功能。

在一个实施例中,用户使用移动设备120捕捉测试卡110的图像。可以无需使用任何特殊的安装设备或以其他方式在捕捉图像之前准备测试卡来捕捉图像。然后将图像发送到诊断服务器130(例如,经由网络170)。诊断服务器130分析图像以确定测试卡110指示的测试结果。诊断服务器130的实施例在下文中参考图4更详细地描述。

返回参考图1,一旦分析了图像,诊断服务器130将测试结果发送到移动设备120(例如,经由网络170),移动设备120向用户显示测试结果。因此,用户可以使用移动设备120来确定由测试卡110指示的测试结果。通过使用用户可能已经携带的移动设备120,相对于依赖于专用图像捕捉设备(例如,扫描站、用于安装测试卡的设备附件等)的系统,可以方便地并且廉价地获取测试结果。移动设备120的实施例在下文中参考图3更详细地描述。

再次参考图1,网络170使得系统100的部件能够互相通信。在一个实施例中,网络170使用标准通信技术和/或协议,并且可以包括互联网。因此,网络170可以包括使用诸如以下技术的链路:以太网、802.11、全球微波接入互通性(WiMAX)、2G/3G/4G移动通信协议、数字用户线(DSL)、异步传输模式(ATM)、无线带宽技术、PCI快速高级交换(ExpressAdvanced Switching)等。类似地,在网络170上使用的联网协议可以包括:多协议标签交换(MPLS)、传输控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、简单邮件传送协议(SMTP)、文件传送协议(FTP)等等。可以使用包括二进制形式的图像数据(例如,便携式网络图形(PNG))、超文本标记语言(HTML)、可扩展标记语言(XML)等的技术和/或格式来表示在网络110上交换的数据。另外,可以使用常规加密技术(诸如,安全套接层(SSL)、传输层安全(TLS)、虚拟专用网(VPNs)、互联网协议安全(IPsec)等)对所有或一些链路进行加密。在另一个实施例中,替代上述的那些或除了上述的那些之外,网络170上的实体可以使用定制的和/或专用的数据通信技术。

图2是示出适于在系统100中使用的计算机200的一个实施例的高级框图。示出了耦合至芯片组204的至少一个处理器202。芯片组204包括存储控制器集线器250和输入/输出(I/O)控制器集线器255。存储器206和图形适配器213耦合到存储控制器集线器250,并且显示设备218耦合到图形适配器213。存储设备208、键盘210、定点设备214和网络适配器216耦合到I/O控制器集线器255。计算机200的其他实施例具有不同的架构。例如,在一些实施例中,存储器206直接耦合到处理器202。

存储设备208包括一个或多个非暂时性计算机可读存储介质,诸如,硬盘驱动器、光盘只读存储器(CD-ROM)、DVD或固态存储设备。存储器206保存由处理器202使用的指令和数据。定点设备214与键盘210结合使用以将数据输入到计算机系统200中。图形适配器213在显示设备218上显示图像和其他信息。在一些实施例中,显示设备218包括用于接收用户输入和选择的触摸屏功能。网络适配器216将计算机系统200耦合到网络110。计算机200的一些实施例具有与图2所示的那些不同的或附加的部件。例如,诊断服务器130可以由一起操作以提供所述功能的多个计算机200形成。作为另一个示例,移动设备120可以是智能电话并且包括提供屏幕键盘210和定点设备214功能的触摸屏。

计算机200适于执行计算机程序模块以提供本文所述的功能。如本文所使用的,术语“模块”是指用于提供指定功能的计算机程序指令或其他逻辑。因此,可以用硬件、固件或软件或其组合来实现模块。在一个实施例中,由可执行计算机程序指令形成的程序模块被存储在存储设备208上,被加载到存储器206中,并由处理器202执行。

示例系统

图3示出了移动设备120的一个实施例。如图所示,移动设备120包括相机310、网络接口320、显示器330和本地数据存储340。移动设备120的其他实施例包括不同的或附加的部件。例如,在其中移动设备120在本地执行图像处理和分析的实施例中,可以省略网络接口320。

相机310捕捉移动设备120的周围的图像。在一些实施例中,用户启动测试卡读取器应用程序,其提示用户拍摄包括测试卡110的照片。替代地,用户可以使用相机应用程序来拍摄测试卡的照片,并然后选择要分析的照片(例如,通过将其加载到测试卡读取应用程序中)。在移动设备120包括闪光灯的一个实施例中,如果由相机(或另一个传感器)检测到的总体亮度低于阈值,则相机310自动使用闪光灯。在另一个实施例中,用户可以选择是否应当使用闪光灯(例如,使用在显示器330上提供的控件)。尽管移动设备120被示为仅具有单个相机310,但是本领域技术人员将认识到,移动设备可以具有多个相机。例如,许多智能手机具有前置摄像头和后置摄像头两者。当使用这种移动设备120时,可以向用户提供控件(例如,屏幕上的按钮)以在可用相机之间进行选择。

网络接口320将移动设备120耦合到网络170。网络接口320在网络170上传输输出数据(例如,由相机310捕捉的图像)并接收输入数据(例如,从测试卡的图像读取的结果)。然后,所接收的数据被路由到移动设备120的适当的一个或多个部件(例如,测试卡读取器应用程序)。在各种实施例中,网络接口320包括以下中的一项或多项:Wi-Fi网络连接(例如,使用基于802.11的协议)、移动数据连接(例如,使用3G、4G、4G-LTE等)或BluetoothTM连接。在多个网络连接可用的一些实施例中,移动设备120(例如,在显示器330上)提供控件使用户能够选择要使用哪个网络接口。在其他实施例中,(例如,基于连接的强度和/或相应的网络速度)自动选择连接。本领域技术人员将认识到可以使用其他类型的网络连接。

显示器330向用户呈现信息,诸如,关于如何获取测试卡的适当的图像的指令以及通过分析测试卡的图像获取的结果。在一实施例中,显示器330是触摸屏。测试卡读取器应用程序在显示器330上呈现用于获取图像的用户界面。例如,显示器330可以呈现告诉用户拍摄测试卡的照片的指令。然后,用户轻敲控件以打开相机界面,该界面显示相机310当前正在获取的预览。在选择另一个控件(或第二次选择相同的控件)时,捕捉图像。

在一个实施例中,一旦捕捉到图像,就将其在显示器330上呈现给用户以供查看。显示器330还包括一对控件,一个控件用于提交图像以用于分析,且另一个控件用于丢弃图像并捕捉另一个图像。如果用户选择提交控件,则将图像发送到诊断服务器130进行分析(或者在本地执行分析的实施例中,发送到移动设备120的分析部件)。相反,如果用户选择丢弃控件,则再次显示相机预览,并且用户可以捕捉新图像。

本地数据存储340包括一个或多个计算机可读存储介质(例如,硬盘驱动器、闪存等),其存储用作测试卡读取过程的一部分的软件和数据。在一个实施例中,本地数据存储340存储测试卡读取器应用程序、由相机310捕捉的图像以及从诊断服务器130接收的测试结果。图像和测试结果可以在使用后短时间内被加密和/或删除,以防止未经授权的访问和复制。在其他实施例中,该内容中的一些或全部位于其他地方(例如,在诊断服务器130或云存储设施处),并经由网络170访问。

图4示出了诊断服务器130的一个实施例。如图所示,诊断服务器130包括模板匹配子系统410、图像处理子系统420、测试识别子系统430、结果识别子系统440、模板存储450和结果存储460。诊断设备130的其他实施例包括不同的或附加的部件。另外,可以以与所描述的方式不同的方式在部件之间分配功能。例如,尽管模板存储450和结果存储460被示为单独的部件,但是可以由单个数据存储提供相应的功能。作为另一示例,可以省略结果存储460,结果被存储在远程数据库中或存储在从其接收图像的移动设备120上。

模板匹配子系统410将捕捉的图像与一个或多个模板进行比较以确定是否存在测试卡。在各种实施例中,模板识别特定类的凝胶卡所共有的特征。例如,一类凝胶卡可以包括六个相邻的样品储存器,下面有各种文本框(例如,识别与每个储存器和结果对应的特定测试)。因此,当沿着测试卡的平面的法线(即“正面”)查看时,相应的模板可以识别这些功能中的每个功能及其相对位置。

在一个实施例中,模板匹配子系统410接收图像(例如,由移动设备120的相机310捕捉的图像)和预期将呈现哪类测试卡的指示。该指示可以是硬编码的(对于被设计用于单类测试卡的系统)或者与图像一起接收(例如,基于用户选择)。模板匹配子系统410应用特征识别算法来生成匹配数据(例如,预测到与模板中的特征对应的图像中的感兴趣的区域的指示以及图像包括期望的类别的测试卡的概率)。这种算法的示例包括:尺度不变量特征变换(Scale-Invariant Feature Transform)(SIFT)、快速视网膜关键点(Fast RetinaKeypoint)(FREAK)、二进制稳健不变可扩展关键点(Binary Robust Invariant ScalableKeypoints)(BRISK)和快速定向和简短旋转(Oriented FAST and Rotated BRIEF)(ORB)。这些算法的共同特征是它们试图解释图像中特征的比例和对准的变化,以识别已知特征(在这种情况下,是测试卡类别的特征)。

在其他实施例中,模板匹配子系统410将图像与多个模板进行比较,每个模板对应于不同类别的测试卡(例如,可以有针对TOX/SEETM尿液测试面板,GENEIUSTM HIV测试套件和ID-SYSTEMTM凝胶卡中的每一个的模板)。在一个这种实施例中,模板匹配子系统410生成对每个模板的匹配度,并选择与最接近的匹配对应的测试卡类别。在另一个实施例中,至少一些情况(例如,两个或更多个模板导致匹配度在彼此的阈值内的情况)使模板匹配子系统410向用户呈现可能匹配的列表以供选择。

图像处理子系统420接收图像和对应的匹配数据(或其子集),该图像和匹配数据指示被预测为与在模板中定义的特征对应的感兴趣的区域。在各种实施例中,图像处理子系统420基于匹配数据确定应用于图像的一个或多个变换。这种变换的示例包括裁剪、亮度调整、对比度调整、调整大小、旋转和偏斜校正。通过应用这些变换,图像处理子系统420产生经纠正的图像,该经校正的图像近似于在假设的理想条件下(例如,以固定距离、以均匀照明、完美对焦以及以与测试卡的平面的法线对齐的摄影轴)拍摄的测试卡的照片的样子。例如,如果测试卡类别在垂直线上包括四个相同的框,则这些框在图像中的外观可以用于估计所需的旋转(基于框中心与图像边缘之间的角度)、偏斜校正(基于透视效果产生的框的侧面之间的角度)和调整大小(基于框的大小)。

在一些实施例中,使用迭代算法(诸如随机样本一致性(RANSAC))来识别几何变换的组合,其最佳地解释了模板图像中的特征位置与输入图像中的对应位置之间的差异。RANSAC的一个优点是它对异常值具有鲁棒性。因此,由模板匹配子系统410生成的特征集不需要完美以产生可靠的拟合。在一个实施例中,算法的输出包括指示经纠正的图像的质量的度量(例如,以足够的精度来准确地再现原始测试卡以产生准确结果的可能性有多大)。如果经纠正的图像的质量低于阈值,则拒绝该图像,并且通知用户分析失败(例如,使用户能够提交新图像)。替代地,可以将通知发送到相机310,相机310自动捕捉新图像。可以循环该过程,直到已经接收到足够质量的图像或达到退出条件(诸如,一定数量的失败尝试、用户选择“停止”选项或者图像具有低于第二阈值的质量度量(指示用户已经停止将相机对准测试卡))。

在一些实施例中,图像变换不改变基本像素值。替代地,通过更改像素的几何坐标来旋转图像、调整图像大小和/或偏斜图像。例如,如果给定的测试卡有相隔一英寸的两条线,并且输入图像具有被确定为与这些特征匹配并且相隔对应于半英寸的数个像素的两条线,则图像处理子系统可以更改像素的坐标以使每条线之间的间距加倍。因此,如从模板期望的,经纠正的图像将具有相距一英寸的两条线。本领域技术人员将理解可以如何改变像素的坐标以实现各种图像变换。

假设经纠正的图像具有足够的质量,则测试识别子系统430对其进行分析以识别卡上具有哪个测试或哪些测试的结果。在一个实施例中,测试识别子系统430使用支持向量机(例如,LIBSVM或开放源代码计算机视觉类库(OpenCV))来识别测试卡上具有哪个测试或哪些测试的结果。支持向量机是机器学习模型,已在人类监督下对支持向量机进行训练以对输入图像进行分类。例如,如果测试卡的第一区域可以具有一组测试标识符中的任何一个(例如,字符串、符号等),则支持向量机(一旦经过训练)可以基于在第一区域中找到哪个标识符来区分测试。在这个示例中,可以将经纠正的图像的与测试卡的第一区域相对应的部分(而不是整个经纠正的图像)传递到支持向量机,支持向量机然后确定执行了哪个测试。本领域技术人员将认识到,支持向量机可以使用各种各样的标志来确定测试卡上具有哪个测试或哪些测试的结果。

结果识别子系统440识别由测试识别子系统430识别的一个或多个测试的结果。在一个实施例中,因为一类中的测试卡具有基本统一的格式并且图像已经被纠正,所以测试标识符的位置也提供了对应的结果的位置。例如,如果测试卡包括用于测试标识符和测试结果的相邻框,则可以通过分析相邻框来找到特定标识的测试的结果(由测试标识子系统430确定)。支持向量机可以再次用于通过分析对应图像的对应部分来确定结果。

本领域技术人员将理解,不同的测试将具有不同的结果标志。因此,一旦已经(例如,通过测试识别子系统430)识别了特定测试,则该信息可以用于辅助由结果识别子系统440执行的分析。例如,测试卡的结果区域可以包括针对阴性结果的特定形状(例如,单条线、十字、空心圆等),和针对阳性结果的不同的形状(例如,一对线、十字、实心圆等)。相似地,对于产生数字输出的测试,结果区域可以包含数字(例如,胆固醇水平、抗体计数等)。因此,结果识别子系统440仅需要考虑所识别的测试可能产生的那些结果。

在一些实施例中,结果识别子系统440还为所识别的结果产生一定程度的确定性。在一个这种实施例中,如果确定性低于阈值,则丢弃结果。附加地或替代地,结果连同确定性指示一起返回给移动设备120,以呈现给用户。因此,用户可以做出关于结果的可靠性的知情决定,并决定是否应该拍摄另一张照片。

模板存储450包括一个或多个计算机可读存储介质,一个或多个计算机可读存储介质存储由模板匹配子系统410使用的模板。因为模板被独立地用于识别特定类别的测试卡,所以可以通过将对应的模板添加到模板存储450中来扩展系统以与新类别的测试卡一起使用。在一个实施例中,模板存储450是诊断服务器130内的硬盘驱动器。在其他实施例中,模板存储450位于其他地方,诸如在可以通过网络170访问的云存储设施处。

结果存储460包括一个或多个计算机可读存储介质,一个或多个计算机可读存储介质存储由图像处理子系统420生成的结果(例如,图像的已处理部分)、由结果识别子系统440生成的结果(例如,诊断测试的结果,该结果被添加到患者的文件中)或两者。在一个实施例中,结果存储460是诊断服务器130内的硬盘驱动器。在其他实施例中,结果存储460位于其他地方,诸如在可以通过网络170访问的云存储设施处。本领域技术人员将认识到,可以使用各种安全预防(诸如,加密和访问控制)来保护患者隐私并确保遵守当地的法律和法规。

示例方法

图5示出了使用移动设备120的相机310提供测试结果的方法500的一个实施例。图5将方法500的步骤归于诊断服务器130。然而,一些或所有步骤可以由其他实体执行。另外,一些实施例可以并行执行步骤,以不同顺序执行步骤,或者执行不同步骤。例如,可以由移动设备120执行方法的一些或全部。

在图5所示的实施例中,方法500开始于诊断服务器130接收510图像。然后,诊断服务器识别520与给定类的测试卡相对应的图像的部分。应注意,图像的部分可以是整个图像或其子集。如前所述,类别可以是预期类别(例如,硬编码到诊断服务器130中的类别)、请求的类别(例如,从包括图像的移动设备120接收到的请求中指示的类别)或基于图像的分析从若干个类别中选择的类别。一种用于识别520与给定的类别的测试卡相对应的图像的部分的方法在下文参考图6被更详细地描述。

返回参考图5,诊断服务器130应用530图像变换(或多个图像变换)以纠正图像的部分。如前所述,在一个实施例中,图像变换产生经纠正的图像,该经纠正的图像近似于在假设的理想条件下(例如,以固定距离、以均匀照明、完美对焦以及以与测试卡的平面的法线对齐的摄影轴)拍摄的测试卡的照片。一种应用530图像变换的方法在下文参考图7被更详细地描述。

再次参考图5,诊断服务器130识别540与测试卡相对应的特定测试(或多个特定测试)。在各种实施例中,诊断服务器130使用支持向量机来基于经纠正的图像内的某些位置处发现的标识(或其他特征)识别540测试卡包括哪个(或哪些)测试的结果。支持向量机分析经纠正的图像的与指示哪个或哪些测试被查询的测试卡上的位置相对应的部分。例如,一个简单的测试卡可以在左侧包括一列,其中进行的任何测试用一组字符表示。因此,支持向量机可以分析经纠正的图像的显示该列的部分,并基于该位置处存在的字符来识别进行的测试。在一个实施例中,诊断服务器130计算每个测试标识的置信度,并且标记低于阈值置信度的任何标识以用于进一步的动作(例如,向用户报告为失败,呈现给用户用于手动确认,存储以在计算测试结果的最终输出的置信度中使用,等等)。

一旦已经识别540出特定测试,诊断服务器130就基于经纠正的图像确定550该测试的结果。如前所述,在各种实施例中,诊断服务器130可以基于测试卡的类别的结构(例如,如由相对应的模板所指示的)来识别经纠正的图像的哪个部分包括结果。支持向量机解释在经纠正的图像的该部分中存在的任何标识或其他标记以确定550测试结果。在一个实施例中,诊断服务器130还产生结果的置信水平。置信水平可以基于以下项中的一项或多项:经纠正的图像的部分与结果的预期标志之间的相似度;以及识别540测试的置信度;以及原始图像中识别的特征与模板的匹配程度。

诊断服务器130将结果发送560到移动设备120。在一个实施例中,移动设备120在其显示器330上将结果呈现给用户。在其他实施例中,诊断服务器130还将计算出的置信水平发送到移动设备120。在一个这样的实施例中,移动设备在显示器330上显示结果和相对应的置信水平。因此,如果用户确定置信水平不足,则用户可以捕获新的图像并将新的图像提供用于分析以尝试获得更大的确定性。在另一个这样的实施例中,移动设备120提供使用户能够选择最小置信水平的控件,并且如果结果的置信水平低于该阈值,则显示错误消息(例如,“无法读取测试卡,请重试”)。本领域技术人员将认识到可以处理结果并在移动设备120处显示该结果的各种方式。

图6示出了识别包括测试卡的输入图像的一部分的方法520的一个实施例(例如,作为图5所示的方法500的一部分)。图6将方法520的步骤归于模板匹配子系统410。然而,一些或所有步骤可以由其他实体执行。另外,一些实施例可以并行执行步骤,以不同顺序执行步骤,或者执行不同步骤。

在图6所示的实施例中,方法520开始于模板匹配子系统410获得610给定类别的测试卡的模板(例如,通过从模板存储450加载模板)。如前所述,可以将测试卡的类别硬编码到模板匹配子系统410中或设置为参数(例如,由提供图像的移动设备120的用户来选择)。在考虑多于一个模板的实施例中,顺序地或并行地获得610每个模板。因此,方法520可以应用于被选择以供进一步处理的具有最佳匹配(例如,具有最高概率的匹配)的每个模板。

模板匹配子系统410定位620在输入图像中的可能与模板中定义的特征相对应的特征中。例如,如果模板指示测试卡类别包括用于测试标识符和结果的一系列框,则模板匹配子系统410可以将输入图像中的任何四边形识别为潜在匹配特征。在各种实施例中,模板匹配子系统410为输入图像中的每个点提取特征向量,并将该特征向量与用于识别模板的感兴趣的区域或点的特征向量进行比较。如果从输入图像中提取的特征向量与来自模板的特征向量匹配,则输入图像中的对应位置被临时确定为由模板定义的感兴趣的区域或点的实例。因此,模板匹配子系统410生成图像中的一组位置对以及定义在模板中的对应的区域或点。在一个实施例中,对输入图像的空间导数执行该分析。这有效地标识了不同颜色或强度的区域之间的边界(例如,对象的边缘)。因此,该分析对于输入图像中的亮度、色彩平衡等方面的变化是鲁棒的,因为该分析集中于所描绘的对象的轮廓,而不是对对象本身的描绘。

模板匹配子系统410将输入图像中的特征与模板中的特征进行匹配630,以确定相关性分数。相关性分数指示输入图像包括与模板相对应的类别的测试卡的可能性。在各种实施例中,模板匹配子系统410首先确定是否可能图像中的特征与模板中的每个特征之间的映射不需要两次使用图像中的任何特征。然后模板匹配子系统410确定图像中的特征的几何布置是否与模板一致。

例如,如果模板包括彼此相邻的三个大小一致的框,并且图像中仅有的框状特征形成三角形并且相隔很大的距离,则真正匹配的概率(以及因此相关性分数)低。相反,图像中包括三个对齐的框状特征,这些特征与模板之间的仅有的区别是尺寸不均匀,并且它们是梯形而不是框,则相关性分数将为高(因为这很可能对应于测试卡与相机成一定角度,并且容易解决)。在一个实施例中,通过应用RANSAC算法,将可能的图像变换的参数(例如,调整大小、偏斜和旋转)用作变量,来确定相关性分数。因为RANSAC对离群值具有鲁棒性,所以即使已识别的若干对图像位置和感兴趣的区域/点为假阳性,该算法仍会以很高的匹配概率收敛于一组变换参数。例如,即使在模板中的单个特征与输入图像的部分之间的匹配可能不确定的情况下,整个集合的相关性分数仍可能足够高以证明在读取测试卡时依靠该算法。本领域技术人员可以认识到确定相关性分数的其他方式。

在各种实施例中,不管确定的具体方式如何,如果相关性分数超过阈值,则模板匹配子系统410将图像的对应部分识别640为包括测试卡。例如,在一个实施例中,使用图像的高通滤波版本来确定相关性分数。因此,仅边缘有助于相关性分数,而均匀区域则被忽略。结果,当输入图像和模板未对齐时,相关性分数迅速朝零下降。因此,可以使用相对低的相关性分数(例如0.25)作为阈值,并且仍然可靠地区分匹配和不匹配。在一些实施例中,与特定结果无关的标记(例如,制造商或提供商徽标)被用作附加的验证检查。一旦识别出潜在的匹配(例如,相关性分数超过阈值),就在若该匹配是真实匹配则该匹配将会在的位置处寻找徽标。可以通过以将输入图像与整个测试卡的模板进行比较的方式相似的方式将期望找到徽标的图像的区域与徽标模板进行比较,来确定徽标的辅助相关性分数。如果在预期位置处找到徽标,则确认匹配。如果没有在预期位置处找到徽标,则拒绝潜在匹配。本领域技术人员可以认识到可以确定徽标存在于期望位置中的其他方式。

在其他实施例中,将匹配程度呈现给用户(例如,通过将消息发送回移动设备120),该用户可以请求进行分析或提供新图像。在另外的实施例中,使用其他方法。例如,可以自动接受高于第一阈值的匹配,而可以将第一阈值和第二阈值之间的匹配呈现给用户以进行确认,而自动拒绝低于第二阈值的匹配并且告知用户没有找到匹配。

图7示出了应用图像变换以辅助测试结果识别的方法530的实施例(例如,作为图5所示的方法500的一部分)。图7将方法530的步骤归于图像处理子系统420。然而,一些或所有步骤可以由其他实体执行。另外,一些实施例可以并行执行步骤,以不同顺序执行步骤,或者执行不同步骤。例如,一些实施例在裁剪图像之前校正偏斜和/或照明度。作为另一个示例,一些实施例省略裁剪和调整大小的步骤。

在图7所示的实施例中,方法530开始于图像处理子系统420从输入图像中裁剪出图像的包括测试卡的部分(例如,由模板匹配子系统410确定)。在各种实施例中,图像处理子系统420裁剪710输入图像,使得剩余部分具有固定的形状(例如,正方形、具有预定的边长之间的比率的矩形等),而没有去除输入图像对应于测试卡的任何部分。在一个这样的实施例中,图像处理子系统420去除尽可能多的输入图像,而不去除对应于(或可以对应于)测试卡的任何部分。在其他实施例中,图像处理子系统420留下其确定不是测试卡的最小边界宽度。不管用于裁剪710的准确方法,图像处理子系统420将图像的剩余部分调整大小720为预定大小。本领域技术人员将认识到可以裁剪输入图像并调整其大小的其他方式。

在各种实施例中,输入图像的裁剪和调整大小使诊断服务器130能够解决用于捕捉图像的相机与测试卡之间的距离差异,而实质上不影响从测试卡读取的结果的可靠性。在一个实施例中,可以使用在五厘米和三十厘米之间的距离捕捉的图像,而实质上不影响可靠性。在另一个实施例中,可以使用在五厘米和二十厘米之间的距离捕捉的图像,而对可靠性没有实质性影响。在其他实施例中,取决于相机的属性,可以使用其他距离范围而对可靠性没有实质性影响。

图像处理子系统420确定730用于捕捉图像的相机的焦轴与测试卡的平面的法线之间的角度差。在一个实施例中,图像处理子系统420将在图像中识别出的潜在特征与测试卡模板进行比较以确定730角度差。例如,测试卡上平行或垂直的线在图像中收敛的程度可以用来确定角度差。作为另一个示例,测试卡上的特征的相对大小以及那些特征在图像中出现的大小也可以用于确定730角度差。

已经确定730角度差之后,图像处理子系统420对图像应用740偏斜校正。在一些实施例中,图像处理子系统420确定将应用740以补偿角度差的偏斜校正量。换句话说,在校正了偏斜之后,图像将近似于在角度差为零(即,如果相机直接对准测试卡)的情况下看上去的样子。在一个实施例中,图像处理子系统420可以校正多达四十五度的角度差,而不会实质上损害从测试卡读取的结果的可靠性。在另一个实施例中,可以校正多达二十度的角度差,而对可靠性没有实质性影响。在其他实施例中,可以校正其他范围的角度差而不会实质上影响可靠性。

图像处理子系统420也基于图像确定750照明度。在一个实施例中,图像处理子系统计算图像中每个像素的平均强度,以确定750总体照明度。图像处理子系统420然后应用760亮度校正以将图像标准化为标准亮度。在相关实施例中,图像处理子系统420还对图像应用对比度调整。例如,在照明度低的情况下,增加图像的对比度可以有助于将感兴趣的特征与测试卡的背景区分开。

因此,图7中所示的方法530的实施例产生具有标准属性组的测试卡的经纠正的图像。这使得识别测试卡上的特定测试和对应的结果更简单,从而增加读取的结果的可靠性。

其他注意事项

以上描述的一些部分从算法过程或操作方面描述了实施例。这些算法描述和表示通常由数据处理领域中的技术人员用来有效地将它们的工作有效传达给本领域中的其他技术人员。尽管从功能上、计算上或逻辑上描述了这些操作,然而这些操作被理解为由包括指令的计算机程序实现,以由处理器或等效的电路、微代码等来执行。此外,将功能性操作的布置称为子系统也已被多次证明是方便的,而不失一般性。

如本文中使用的对“一个实施例”或“实施例”的任何引用意味着联系该实施例而描述的特定的元件、特征、结构、或特性被包括在至少一个实施例中。在本说明书中的不同位置处出现短语“在一个实施例中”不一定全都指同一个实施例。

可以使用表述“耦合”和“连接”及其派生词来描述一些实施例。应当理解,这些术语不旨在作为彼此的同义词。例如,一些实施例可以使用术语“连接”来描述,以指示两个或更多个元件彼此直接物理接触或电接触。在另一个示例中,一些实施例可使用术语“耦合”来描述,以指示两个或更多个元件彼此直接物理接触或电接触。然而,术语“耦合”还可以指两个或更多个元件彼此未直接接触,但仍然彼此进行合作或交互。实施例不限于该上下文。

如本文所使用的,术语“包括(comprises)”、“包括(comprising)”、“包含(includes)”、“包含(including)”、“具有(has)”、“具有(having)”或其任何其他变形意在覆盖非排他性包括。例如,包括元件的列表的过程、方法、制品、或装置并不一定限于这些元件,而是可以包括没有被明确列出或对于这样的过程、方法、制品、或装置而言固有的其他元件。此外,除非明确陈述相反情况,“或”指的是包容性的或,并不是指排他性的或。例如,条件A或B满足以下任何一项:A是真(或存在)并且B是假(或不存在),A是假(或不存在)并且B是真(或存在),以及A和B两者都是真(或存在)。

此外,“一”或“一个”的使用被用于描述本文的实施例的元件和部件。这仅仅是为了方便,并且给出本发明的一般含义。这种描述应该被理解为包括一个或至少一个,并且单数也包括复数,除非显然其意指其他含义。

在阅读了本公开之后,本领域技术人员将理解用于使用移动设备读取测试卡的系统和过程的另外的替代结构和功能设计。因此,尽管已经示出和描述了特定的实施例和应用,但是应当理解,所描述的主题不限于本文所公开的精确构造和部件,并且可以对本文所公开的方法和装置的布置、操作和细节进行将对本领域技术人员而言显而易见的各种修改、改变和变化。本发明的范围仅由所附权利要求书限制。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像处理装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!