一种基于图像识别的表针时间判断方法

2022-09-21 07:55皮礼明
电脑知识与技术 2022年24期
关键词:表针秒针手表

皮礼明

(派博生命科技(深圳)有限公司,深圳 518000)

1 引言

智能手表的发展日新月异,从苹果iwatch到华为的血压手表Watch D,功能多种多样,在智能手机市场趋于饱和同质化的背景下,可穿戴设备作为结合了智能性和便携性的产物,是消费电子市场的下一个发展契机[1]。尤其是智能手表为代表的穿戴式设备,发展日新月异,但智能手表作为结合传统手表的升级,目前更多是充当手机的配件,且手表唯一不变的永恒属性就是时间。轻智能手表就是结合传统实体表针和表盘,融合智能芯片,既有传统手表的机械感,又可以连接手机与之交互,包括接收手表的运动数据,手表网络校时、倒计时等。但智能化的手表由于复杂度提升,非机芯专用驱动芯片、整体工艺不成熟等原因,导致会出现走时误差,这个误差相对传统手表要大得多,所以需要解决校时的问题。

在这一类手表中,由于硬件设计的不同,有的调时通过表冠手动调整指针,有的通过手机App 设置好时间,无线发送给手表,手表控制机芯调整指针到准确的时间。针对后者,通常会有三种方式校准:

(1)在校准前,让手表时分秒针都归到12点,手机App再把当前网络时间发送到手表,手表计算时分秒针需要移动的度数。这种方式的优点是手机App端可以一键操作,缺点是手表的调整时间由于每次都需要“归零”,导致调整用时会大大增加。

(2)人工在手机App端输入手表当前的时间,手机App计算手表当前时间与网络时间的偏差之后,发送偏差到手表,手表依据偏差调整当前的表针,这种方式的优点是表针运动时间少,缺点是还需要人工在手机App端输入手表的当前时间。

(3)在App 端设置一个虚拟表盘,通过手动顺时针或逆时针滑动表盘,手表指针跟随顺时针或逆时针转动,通过人眼识别手表指针指到了标准时间位置,停止滑动即可,此方案的问题是需要手动不断触摸虚拟表盘,且人眼同时紧紧盯住手表表针,用户操作体验差、效率低,还不及传统表利用表冠来调试。手表最终停止的位置依据人眼和虚拟表盘,误差可能较大。

针对目前轻智能手表自动校时的不足,在方法(2)的基础上提出了一种基于图像识别的方式来自动快速校时。可以利用手机的摄像头快速采集当前表盘的图像,替代人工输入当前表盘时间,继而手机App 解析出表盘上面表针的时间,本方法自动化程度更高,准确度高,满足实际应用的需求。

2 算法实现流程

实现表针的识别关键在于图像分割,图像分割是指将图像划分成互不相交的、有意义的子区域,在同一个区域的像素点具有一定的相关性,不同区域的像素点存在一定的差异性,即是对图片中有相同性质的像素赋予相同标签的过程[2]。通过图像识别的方式来识别表针时间,需要做表盘、时针、分针和/或秒针的目标识别,再计算出各表针相对表盘上参考时刻刻度线的偏移角度,最后转换为当前智能手表的时间信息。算法处理流程如图1。

图1 算法处理流程

图像的输入可以采用扫一扫的方式而不是拍照识别,一个主要原因是拍照识别需要用户主动触发,而用户主动触发的情况下,只会进行一次识别尝试,一旦没有识别清楚,用户的感受就会很差,另外由于手表一般是戴在手上的,用户另一只手操作手机,面对手机屏幕越来越大,几乎不可能单手操作聚焦、拍照等情况下,采用扫一扫方式可以大幅提高用户体验和智能程度。总体实现步骤如下:

2.1 获取图像

用户的扫一扫界面对准手表刻度盘扫描,尽量把表盘的圆心和12 点位置和手机端的虚拟位置重合,智能手机端会自动选取一张图像清晰的图片送入后续程序进行处理。其中,扫描过程结束,智能手机呈现给用户的是等待片刻校正进度条。这里我们选取市面常用的一款智能手表,其表盘图像如图2(a)所示。

图2 表针的分割

2.2 灰度化和顶帽变换

由于彩色图像包含R、G、B 三个分量,而灰度化是使得R、G、B三个分量相等的过程,灰度图像中的一个像素仅有一种采样颜色,其灰度是位于黑色与白色之间的灰度颜色,灰度值大的像素点比较亮,反之比较暗,像素值最大为255(表示白色),像素值最小为0(表示黑色)。输入图像灰度化之后,用于不均匀光照的影响,为了后面二值化处理更方便,这里需要对灰度图像进行增强,图像增强在预处理过程中一直占据着重要地位[3]。这里我们可以采用顶帽变换(即灰度图像减去开运算后的图像)的方法,增强黑背景下的亮图像。

2.3 二值化和最大连通域

二值化是图像分割的一种最简单的方法。图像二值化就是将数字图像转化为二值黑白像素的矩阵形式,将某些区域从背景中分离出来,为后续图像的边缘提取及其他图像处理奠定基础[4]。二值化可以把灰度图像转换成二值图像,每一个像素的取值只有0 或1,把大于某个临界灰度值的像素灰度设为1(黑色),把小于这个临界值的像素灰度设为0(白色),这样就可以得到一个黑白图像,二值化后的效果如图2(b)所示。为了把表针从图像中分割出来,采用的方法是计算图像中最大连通域方法,因为时分秒针是围绕一个轴心连接的,最大连通域是一种常用的图像分割方法,一般方法是对图形查找轮廓,这里找到表针为最大轮廓,也就是最大连通域,这样就把表针单独分离出来,去除了图像中一些背景噪声,依据表针轴得到表的圆心,这个圆心就是表针坐标系的圆心,对后续的表针的角度的准确计算有重要作用,同时对直线的判断有作用,计算了最大连通域后的效果如图2(c)所示。

2.4 直线检测及时分秒针判断

利用霍夫变换检测图像的直线,霍夫变化寻找直线可以更好地减少图像背景噪声。霍夫变换也可以检测圆弧、抛物线等。图像空间的一个点(x0,y0),可以通过y0=kx0+b来表示,转换到参数空间就是:b=y0-kx0,图像空间的一个点就和参数空间的一条直线一一对应,假如图像空间中有两条直线,那么对应参数空间就有两个峰值点。在参数空间相交的直线最多的点,就是需要找的对应图像空间的直线。一般我们用极坐标方式来表示这个参数空间:r=xcosθ+ysinθ,这样图像空间的每个点(x,y)就对应极坐标空间(r,θ)的正弦曲线,在极坐标空间中检测曲线相交的点来确定图像空间中的直线。图3 是经过霍夫变化检测到三条直线,同时标记检测出来的直线的首尾两点。根据直线的长短判断出时针、分针和秒针。

图3 时分秒针判断

2.5 时分秒时间计算

依据霍夫变换得到的三条直线方程,可以利用反三角计算出相应的角度,利用角度就可以推算出时间,市针、分针、秒针对应的时间。计算公式分表为:

小时计算公式:

分针计算公式:

秒针计算公式:

输入图像得到的三条直线方程,反三角计算得到时针是275°,分钟228°,秒针108°,继而通过时证、分钟和秒针计算公式得到时间是9点38分18秒。注意这里的时分秒取整各不相同,时针最小分辨率是1,计算得到的结果直接向下取整,分针和秒针最小分辨率是0.5,计算得到的结果直接四舍五入。

3 结束语

通过图像识别的方式快速准确识别出常规表盘的指针的实际时间,相当于把传统的手表进行了数字和信息化升级,这种识别方法可以拓展更广泛的应用,随着物联网的发展,底层数字化是必经之路,目前进行更多是把传统的设备升级改造成智能化的设备,但智能设备带来的可能是频繁的充电、质感的下降等,所以智能化的升级需要考虑交互及用户的使用,未来在物联网的发展浪潮中,会有更多基于图像识别的方法,来提升用户的交互体验。

猜你喜欢
表针秒针手表
可收线型多功能万用表的研制
时间很小
秒针匆匆
是谁拿了手表
谁偷走了手表?
基于机器视觉的表针自动码垛系统
手表
秒针真奇妙
小目标成就大事业
12点得一起吃饭