室内定位APP开发
基于OCR技术的室内定位APP开发
随着我国经济的不断发展、人民生活水平的日益提高,各种室内场所也趋向于大型化、复杂化,例如图书馆、医院、大型超市、高铁站、地下车库等,在大型室内环境下的定位需求也随之产生。不同于GPS、北斗卫星定位系统等室外定位系统,室内定位系统是移动应用领域的一大挑战。
基于OCR技术的室内定位系统,是通过建立室内的标志物上的文字信息与其对应坐标的数据库,使得用户在GPS信号弱的室内,也可以享受较为精确的定位服务。通过手机上的APP对室内标志物的文字信息进行拍照,如店铺名、路牌、展品介绍等,APP中接入的OCR识别引擎会识别图中的文字信息,然后传输到服务器,在数据库中对文字信息进行检索和匹配,匹配成功后返回坐标,并在APP上以地图和坐标点的形式显示位置。
一、室内定位APP的系统分析
1.1定位APP系统架构
软件的架构需要UI组件、UI处理组件、百度OCR引擎、高德地图SDK、数据访问组件等。UI组件用来显示用户界面,百度OCR引擎提供文字识别服务,高德地图提供地图源,软件通过数据访问组件和数据库交换信息。此外,还需考虑到通信、运行管理以及系统安全性等方面的问题。软件架构如图1所示。
1.2室内定位APP主要功能模块
室内定位APP主要包括6大功能模块。
(1)注册模块:注册方式为手机号或者邮箱注册,点击获取验证码来验证手机号或者邮箱的正确性,防止恶意注册或错误注册。验证成功后需要设置登录密码,填写两次且两次密码相同才算注册成功,然后自动登录系统,无需再次输入账号和密码,同时系统将注册信息传输到服务器端,插入用户表中。
(2)登录模块:用户需要输入账号和密码,如果不记得密码的话可以点击“忘记密码”,验证手机号或者邮箱后可以重置密码。点击登录后,登录信息会传输到数据库中进行比对,完全正确才能进入主界面。
(3)设置模块:在主界面中点击齿轮图标后会进入设置界面,可以在设置中选择修改密码、地图管理、是否允许管理员进行消息推送、是否允许WiFi下自动下载最新版本软件、清除缓存以及退出登录等功能。其中,地图管理是指可以下载指定城市的地图,这样可以节省流量,不必每次打开软件后都要联网接收地图资源。
(4)OCR识别模块:点击顶部搜索栏右侧的相机图标后,软件会打开系统相机进行拍照,然后自动调用百度OCR引擎进行识别,识别出的文字显示出来后,用户可以选择手动修改文字,修改好后上传至服务器,或者直接上传。
(5)地图模块:使用高德提供的地图,根据服务器返回的坐标信息,在地图上显示当前位置。
(6)历史记录模块:在主界面点击时钟图标后会进入历史记录界面,可以看到用户定位的记录,包括时间、地点和OCR识别的文字信息。
1.3定位APP系统流程
打开软件后点击搜索框右侧的相机图标,打开手机相机,拍摄照片后,系统会调用百度OCR引擎识别照片中的文字,识别失败会提示用户重新拍摄清晰的照片,识别成功后系统会将识别出的文字显示出来,让用户检查是否正确,若有错误可以选择手动修改文字,无错误则直接上传至服务器,然后在数据库中进行查询和匹配,匹配失败就会返回到拍照界面,提示用户重新选择标志物,匹配成功则会返回坐标值,然后系统调用高德地图源,显示室内地图和坐标点,一次室内定位完成。
二、APP设计的主要技术
2.1数据库设计
本系统在服务器端的MySQL数据库中创建数据库表,根据不同的数据格式,将数据分为用户登录数据、用户行为数据以及位置坐标数据3大类进行存储。用户登录数据包括用户的登录账号和密码等信息,由于这类数据相当重要,不应以明文的方式存储在数据库中,通过使用MySQL的AES_ENCRYPT函数加密数据,因为加密后的数据比较难看,所以再使用to_base64函数转码数据,将加密后的用户信息存储在数据库中。
用户行为数据包括用户使用该软件进行室内定位的时间、OCR识别出的文本、用户修改后的文本以及定位后的位置坐标。该数据内容供用户在历史记录中查看,用户可自行删除。
位置坐标数据包括室内环境下特征物上的文字信息以及对应的坐标值。通过匹配用户上传的字符串,返回坐标,用于在手机客户端显示当前所在位置并在地图上进行标注。
2.2调用OCR接口
该软件使用百度的OCR进行文字识别,百度的OCR服务免费,不过每天有次数的限制,但对于学生项目来说够用。首先,在百度AI开放平台中进入控制台,找到文字识别的产品服务,创建应用后填写相关信息,获得AK、SK。然后,下载license文件,在项目中如果直接用AK、SK明文调用百度的OCR,很不安全,可能会被别人反编译之后获得用户的AK、SK,而license文件集成了AK、SK,放在项目中可以防止别人破解。之后,再下载百度OCR的Android SDK,添加进项目中。准备工作完成后就可以开始调用百度的OCR接口了。在需要进行识别的页面所在的文件中创建根据License文件初始化OCR实例的函数,并在onCreate()方法中调用。接下来新建一个可以存放OCR的识别方法的类RecognizeService,在onActivityResult方法中,调用刚刚新建的类的recAccurateBasic方法,此方法接收3个参数,分别是context、拍照获取的图片路径和在RecognizeService类中定义的监听接口,在onResult方法中,返回的result字符串即为识别结果的json字符串,只需要对JSON进行解析就能得到识别结果。
2.3获取室内地图服务
该软件使用高德提供的地图服务。在高德开放平台中进入控制台,创建应用,获取API KEY,下载Android平台下的地图SDK文件,将解压后的jar包导入工程中。开发环境配置好后,在工程的“AndroidManifest.xml”文件中添加用户KEY和所需要的权限,在布局xml文件中添加地图控件,创建地图Activity,管理地图生命周期。
总结
本文基于Android平台设计并开发了基于OCR技术的室内定位APP,为室内定位提供了一个新的解决方案。现阶段比较成熟的室内定位方案,是需要基础设施的,比如室内部署密集的接入点或者基站,例如各种传感器,信号接收装置,信号发射器等,成本较高,且需要维护设备。而基于OCR技术的室内定位方案的成本是很低的,并不需要各种用来定位的设备,较为麻烦的只是第一步,建立坐标库。将室内标志物上的文字信息提取出来,并建立坐标库。这的确是不小的工作量,但是随着OCR技术和人工智能技术的发展,未来可能只需用无人机将室内所有场景拍摄下来,然后系统便可以自动整理出图片并匹配其对应的坐标,导入数据库中,这样就可以大大降低工作量,甚至可以打开摄像头,通过录像的方式来实现室内的实时定位。作为一种无需传感器的室内定位方案,它可以给我们提供更多的创新想法和研究方向。
以上就是我们深圳市组创微电子有限公司为您介绍的基于OCR技术的室内定位APP开发技术。如果您有智能电子产品的软硬件功能开发需求,可以放心交给我们,我们有丰富的电子产品定制开发经验,可以尽快评估开发周期与IC价格,也可以核算PCBA报价。我们是多家国内外芯片代理商:松翰、应广、杰理、安凯、全志、realtek,有MCU、语音IC、蓝牙IC与模块、wifi模块。我们的拥有硬件设计与软件开发能力。涵盖了电路设计、PCB设计、单片机开发、软件定制开发、APP定制开发、微信公众号开发、语音识别技术、蓝牙wifi开发等。还可以承接智能电子产品研发、家用电器方案设计、美容仪器开发、物联网应用开发、智能家居方案设计、TWS耳机开发、蓝牙耳机音箱开发、儿童玩具方案开发、电子教育产品研发。
- 返回顶部