1. 研究背景以及意义
研究数据表明,世界上约有百分之八的人患有色觉障碍,且色弱人群占比较大,主要表现为无法正常识别日常生活里的色彩或者对色彩的感知度较低。而色彩与人们的日常生活及生产关系极其紧密:衣、食、住、行都无法离开色彩,无法正确识别色彩会对日常生活带来极大不便甚至威胁到生命安全,如红绿色盲患者无法正常识别红绿灯。在此通过软件设计的办法,辅助色觉障碍群体对色彩快速且准确地进行色彩识别。本设计使用手机APP调用相机结合图像识别算法完成生活场景、图片或视频中物体的颜色识别,用户可以根据自己的视觉情况对相机进行个性化调节,以达到更好的视觉体验。
2. 市场调研分析
2.1. 痛点分析
通过调查取样研究表明,部分色觉障碍是遗传性疾病,男性发病率较高,相对之下女性发病率略低一些,表1统计数据2表明近视人群更易患色觉障碍 [1]。而对于部分既有色觉障碍又近视的人群来说,是有着极大生活困难的,市场上目前并未出现近视的色盲眼镜,这意味着近视和色盲色弱矫正二者之间是无法同时实现的。且戴色盲色弱矫正眼镜出门比较容易被遗忘,出行上解决问题的可能性较小。

Table 1. Comparison of incidence of myopia
表1. 近视发病率比较
2.2. 当前治疗发展分析
2.2.1. 色盲矫正镜
色觉障碍的矫正以改善和提高色觉障碍人对颜色的分辨能力为目标。后天性的色觉障碍可通过药物或者物理矫正可以达到较好的效果,先天性暂无最优解决方案,现在市场上针对色弱障碍群体的产品有色盲色弱矫正镜,但长期的佩戴易导致眼疲劳、眼睛痛等不良反应,可能会导致多种眼睛疾病。对于网上热卖一种色盲矫正镜的隐形眼镜,同时还会附赠色盲检查图谱和一副简易的测试镜。看似一戴就能解决问题,这里面其实是有猫腻的 [2]。而许多眼部疾病依靠当前世界的医疗技术并不能完全根治,有的甚至影响其他的器官,且对身体造成的伤害都是不可逆的。
2.2.2. 色盲色弱的基因治疗
色盲分为先天性和后天性。先天性色盲是由于视网膜锥体细胞内的红、绿、蓝三种感光色素部分或全部缺如所致。先天性色盲是X-性连锁隐性遗传疾病,色盲会遗传,会受父母基因的影响 [3]。2021年,AGTC公司对开发的两种AAV基因疗法候选药物进行评估,分别针对CNGB3和CNGA3基因突变的ACHM。该基因疗法旨在以AAV作为载体,携带功能完好的人类CNGB3或CNGA3基因,并通过视网膜下注射,使视锥细胞表达功能性基因,产生之前缺失的蛋白质来恢复视锥细胞的正常功能。有实验表明,在这两项试验的剂量递增部分中,ACHM患者的畏光得到改善,提示有生物活性依据 [4]。基因治疗已经在全色盲及其他遗传性视网膜疾病上取得突破,未来也将有新的成就有益于色盲患者。但是目前还处于临床试验状态,还不能完全确定其疗效与安全性,还存在着很多不稳定不安全因素。
2.3. 竞品分析
主要竞品是一款以数字图像处理为基础,辅以语音、导航等功能的智能手环,主要用于帮助色觉障碍患者解决出行途中识别红绿灯困难的问题。首先以数字图像处理技术为基础,对交通信号灯进行识别处理,再将结果发送给使用人 [5]。将摄像头对准红绿灯,产品在进行图像采集后会进入图像处理阶段,预处理结束后对红绿灯定位、判定颜色,最终将结果发送给使用人。在图像处理这方面,它与我们的真彩视界有着异曲同工之处。但前者是需要依附于智能手环,后者是依附于智能手机。都是会以语音或屏幕显示来展现最后的色彩识别结果。前者主要针对色觉障碍群体无法识别红绿灯问题,而后者是针对整个色觉障碍群体的日常生活需求。后者功能更为完善,可通过相册上传、拍摄或动态识别三种方式对生活里的色彩进行色彩识别,更具多样性。并且当前,智能手机几乎人人不离手,如影随形。
2.4. 市场前景与创新分析
本APP使用到的图像处理技术是OpenCV。它可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级且高效,并提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
应用图像处理技术解决辨色障碍人群的出行问题,一方面发挥了图像处理应用面宽广的优势,另一方面又满足了社会上的不便群体对更好生活的要求。它的成本不高,带来的效果却十分明显,将会大大改善色觉障碍群体生活的不便。同时,这种技术的应用还会带来更多对此技术的研究,起到实践的检验作用,对于技术的进步和发展有很大意义
而我们的APP需要与依附于智能手机。根据Strategy Analytics的最新研究表明,截止2022年10月,全球至少一半的人都拥有智能手机,而且现在出门随身携带手机已经是一件非常普遍的事情,生活已离不开手机。因而,用手机APP辅助色觉障碍群体辨色是非常有潜力和巨大的市场的。
2.5. 主要研究内容
由于我们的世界是五颜六色的色彩组成,很多色彩的融合能带给人们视觉的冲击,不同的色彩都给人以不同的心理感受。色觉障碍群体眼中的世界类似于正常人看黑白照片一样,充满了细腻的明暗层次,通过敏锐的明暗差异观察物体。色彩作为城市里的信息导视系统中最为直观元素,通常会使用色彩划分不同等级层级的信息,引导人们获取信息时的先后顺序,突出强调重要信息。因此在信息导视设计时,颜色的选择极为重要,但在色彩搭配上,设计师往往会忽略特殊群体——色觉障碍群体 [6]。本文设计的APP主要为辅助色觉障碍群体感受生活的绚丽多彩,便利他们的日常生活。
随着图像处理技术的快速发展,以传感器和图像处理算法为核心的色觉障碍矫正方法正在逐渐得到应用。APP通过将手机和摄像头进行一定的利用融合,作为色彩的传感器,手机摄像头硬件装置为辅助,且使用一定的软件算法来提高APP识别颜色的精确度。
3. 软件总体设计
3.1. APP需求分析
1) 功能上,真彩视界APP主要是对手机摄像头采集到的照片或视频流数据进行颜色区分,帮助色盲色弱人群认清颜色。同时,APP端在后期将增加学习功能,以答题的方式一次又一次的刺激色盲色弱群体对颜色的敏感神经,从而提高用户的对比视觉能力。
2) 性能上,真彩视界APP进行颜色识别时需进行较多的复杂运算(如色度比对、噪点去除等),尤其在对视频流进行处理的情况下,运算量成倍提升,这就需要我们开发者对代码进行优化尽可能减少用户手机的负担。
3) 技术难点上,由于现实生活中的颜色相当复杂,在颜色识别的过程中经常会受到光线、天气等的影响,这对开发造成了很大的困扰,所以需要优化软件算法使得程序达到一个不错的效果。
3.2. APP开发环境
1) 运行及开发环境
目前主流的移动端操作系统有Android和iOS,由于Android操作系统的开放性、开源性、完善和强大的开发工具的支持和用户的易用性等因素的综合考虑,决定在真彩视界APP设计中采用Android操作系统。
Android的系统架构采用了MVC分层架构的思想,如图1所示。从上层到底层共包括四层,分别是应用程序层、应用框架层、系统库和Android运行时的Linux内核。

Figure 1. Android system architecture diagram
图1. Android系统架构图
2) 第三方库
本APP是在OpenCV的官方SDK的环境下开发的,OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
OpenCV用C++语言编写,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令,如今也提供对于C#、Ch、Ruby,GO的支持。
3) 开发工具
由于OpenCV的底层是用C++语言编写,而在本APP中的安卓开发是用Java语言编写的,所以我们需要使用一些开发工具使得Java能与本地的C++语言进行交互。
JNI,JNI全名Java Native Interface,即Java本地接口,作用是使得Java与本地其他类型语言(如C、C++)交互,通俗点讲就是在Java代码里调用C、C++等语言的代码或C、C++代码调用Java代码。
NDK,NDK全名Native Development Kit,是Android的一个工具开发包,作用是快速开发C、C++的动态库,并自动将so和应用一起打包成APK,通俗点讲就是通过NDK在Android中使用JNI与本地代码(如C、C++)交互。注意NDK是属于Android的,与Java并无直接关系。关于NDK的特点见图2所示:
3.3. APP软件功能设计
真彩视界APP功能主要包括图片识别、视频动态识别和练习系统三个功能。后续会增加交流社区的功能。采用软件调用硬件相结合的方式进行软件的设计,以实现对色彩的识别。图3为软件的功能流程图。
颜色识别算法分为以下六个步骤:
1) 预处理:获取图片R值和G值最高的像素点,以此为基准调整图片,减小相机误差。
2) 色彩模型转换:将图片转成HSV色彩模型。
3) 二值化:遍历所有像素点,根据色度、亮度、饱和度对图片进行二值化。
4) 去除噪点:通过膨胀操作和腐蚀操作去除噪点。
5) 轮廓描绘:描绘出二值图中白色部分轮廓。
6) 轮廓拟合:处理轮廓对应的点集,合并同属一条直线的像素点。
3.3.1. 图片颜色识别功能
用户可选择自行拍摄或通过手机相册上传至软件中图4示例,软件则以极快的速度对图片进行图像预处理,将RGB模型转换为HSV模型,并对图片进行滤波去噪点,再通过二值化算法对照片进行轮廓提取,用线条进行边框拟合,从而能够识别出物体的大致轮廓,从而更精确地完成对图片色彩的采集与识别 [7]。
点击上传界面的加号,便可以选择相册、拍照、取消。选择到相册时,规定了相册选择照片的一些属性。打开相册中所有的图片,最大的选择数量是8,最少必须选择一个图片方可继续,最多可以有四个照片一排,可多选照片,选中确定以后会进行结果回调。伪代码如下:
if点击上传+号
if选择相册
相册选择照片,点击确定,进行色彩识别
//至少选择1张照片,至多选择8张照片,每排4张。后台进行预处理识别后,会进行反馈
elseif选择拍照上传
会进入拍照模式,进行周围环境的拍摄,点击确定,进行色彩识别
//对于图片拍摄效果不满意,可以选择删除,重新进行获取
else if 选择取消
会退回到最开始的主界面
else if选择动态识别
点击会自动进入识别页面,摄像头对着哪里,就可以识别其中的颜色
else不进行其他操作
3.3.2. 动态识别功能
用户可通过动态拍摄至软件中。对采集到的动态流数据的色彩进行区分。对动态数据进行分帧处理,再进行识别算法分析各个帧数的色彩。可以满足用户不同需求。
在图像处理中,一般不会直接对图像进行RGB处理,因其与人类视觉的感知相差较大,易失真和周围环境的干扰,因此RGB并不能好好区分颜色。而HSV重新影射了RGB模型,也更有视觉直观性,常用于表示色彩空间,这就与软件所需要的技术非常匹配。其中H为色调、S为饱和度、V为亮度,H和S用于表示颜色信息,图像像素的亮度V单独作为一个参数,故可直接忽略明暗度,只关心颜色,对于此时色彩识别轮廓勾勒的情况下,是非常适用的。
4. 系统测试
4.1. 软件页面测试
打开软件,首先看到的是欢迎界面,在此界面可选择图片颜色识别或是动态颜色识别,如图5所示。进入图片颜色识别后,可以在此界面选择调用手机摄像头立马拍摄一张照片进行识别,或是进入手机相册选择一张照片进行识别,如图4所示。进入动态颜色识别后,会调用手机摄像头进行动态的颜色识别。
以下是关于软件测试页面功能按钮的测试用例,详情如表2。

Table 2. Page function button test
表2. 页面功能按钮测试
4.2. 图片颜色识别测试
图片识别测试,用户可选择本地图片或拍照一张,选择完成后系统会调用识别算法读取图片中的相应的颜色并将其二值化,然后将二值化的图片去除噪点,然后再画出相应颜色的轮廓并将画好后的图片展示出来,让用户能更精确地识别颜色,方便色觉障碍群体使用。如图6所示。
以下是关于照片识别功能测试的测试用例,详情如表3。

Table 3. Photo recognition function test
表3. 照片识别功能测试
4.3. 视频动态颜色识别测试
视频动态识别,该功能主要是对手机摄像头采集到的视频流数据进行颜色区分,其实现原理是先将视频分帧,然后对每一帧进行图片识别的算法以达到动态的目的。识别过程中会对识别边框进行划分,并将识别后的颜色反馈用户,协助用户进行一定的处理。如图7所示。
以下是关于视频识别功能测试的测试用例,详情如表4。

Table 4. Video recognition function test
表4. 视频识别功能测试
5. 结语
通过以上对色觉障碍群体可使用的产品的研究和相关的市场调查,并通过设计开发手机APP辅助色觉障碍群体辨色是可行的,也能在更大程度上帮助到色觉障碍群体。但对于混合场景下的色彩识别在技术上、周围环境的安全性、软件的反应速度上还是有着极大的攻克难度。需要更加精确的识别算法来完成更为复杂的场景图片。目前软件已可精准识别出红绿两种颜色(红绿色盲占色盲群体基数最大),并进行显示告知使用者,对于其他色彩的识别还在完善之中。在后续工作中,将工作重心提到图像识别算法和功能完善上。
基金项目
本篇论文获得项目编号为202211654171武汉商学院2022年度大学生创新创业训练项目《真彩视界》的研究资助。
NOTES
*通讯作者。