立功科技嵌入式平臺“軟”實力——二維碼算法篇
二維碼不僅給人們生活帶來便捷,在工業(yè)領域也被廣泛應用。如何在嵌入式硬件中開發(fā)二維碼功能?本文將為大家介紹ZLG二維碼識別算法,教大家在ZLG硬件平臺中快速搭建具備良好識別效果的二維碼。
本文引用地址:http://butianyuan.cn/article/201912/407844.htm二維碼的本質就是根據(jù)某種約定的編碼方式,將一段文本信息轉換為一個能夠被解碼識別的圖片。因為二維碼只是一種編碼方式,是一種信息的載體,可見二維碼用途的關鍵不在于二維碼,而在于如何定義這段文本信息,約定好文本信息的用途。當前,二維碼支付功能已經改變了我們的生活方式,出行不再需要帶上現(xiàn)金,就能夠通過二維碼乘公交、搭地鐵、打出租車、付停車費和超市購物付款等等。由于QR碼具有信息容量大、可靠性高和保密防偽性強等特點,常見的二維碼支付均采用QR碼。
接下來將對ZLG二維碼算法進行介紹,分別闡述ZLG二維碼算法特點、接口調用方法、可實現(xiàn)平臺與性能及效果展示。
一、二維碼算法特點
由于二維碼支付相關領域的迅速發(fā)展,ZLG針對性的進行了二維碼識別算法的研發(fā)和優(yōu)化,目前ZLG二維碼算法庫僅提供QR碼接口的調用。QR碼識別算法特點如下:
l 以算法庫的形式提供,支持多平臺移植,可在現(xiàn)有硬件上使用,大大節(jié)省成本;
l 算法調用簡單,方便開發(fā)人員快速實現(xiàn)QR碼識別功能;
l 同時支持手機屏幕條碼和紙質條碼,適用范圍廣;
l 識別速度快,針對手機支付場景的優(yōu)化,可實現(xiàn)閃付;
l 支持手機碎屏QR碼識別,貼合實際使用的場景。
二、二維碼接口調用
ZLG二維碼算法庫目前提供文件列表為: aw_qrcode.h、 libqr.a或libqr.so。算法調用方式簡單,僅需要算法初始化、解碼和內存釋放三個步驟,QR碼算法頭文件“aw_qrcode.h”接口如下:
我們以基于AWorks系統(tǒng)的M7系列平臺為例,成功調用ZLG二維碼算法之前,需要準備的工作如下:
保證能夠獲取到攝像頭的視頻幀數(shù)據(jù)(不同平臺可以有不同的實現(xiàn)方式,linux系統(tǒng)可以通過opencv獲取圖像幀數(shù)據(jù)),并且轉為單通道的灰度圖。例如,基于AWorks系統(tǒng)的M7平臺demo使用如下接口獲取RGB565格式的圖像。
由于獲取到的圖像為RGB565格式,需要轉換為單通道灰度圖,接口如下:
至此,準備工作已經完成,算法所需要的灰度圖數(shù)據(jù)已經得到。接下來進行算法調用,二維碼識別接口調用存在三個步驟。
首先,使用算法初始化接口實現(xiàn)內存的初始化操作:
接著,即可通過QR碼解碼接口實現(xiàn)二維碼圖像解碼操作,指針 imgData指向的地址即為灰度圖像存放的地址。
最后,釋放初始化過程中分配的內存:
基于AWorks系統(tǒng)的M7平臺調用二維碼算法偽代碼如下:
三、ZLG算法合作模式及平臺支持
ZLG二維碼算法可以以SDK包的形式免費開放給各位工程師,只需使用ZLG嵌入式核心板(硬件平臺)即可快速開發(fā)出具備商用性能的二維碼識別應用。算法原則上可以支持基于AWorks和Linux系統(tǒng)的所有硬件平臺。目前,主要測試了基于AWorks系統(tǒng)的M7系列平臺,及基于Linux系統(tǒng)的A7和A8系列平臺的相關性能,并通過提供靜態(tài)庫或動態(tài)庫的方式供使用。
各平臺算法性能如下表:
四、效果展示
基于cortex-m7系列M1052-M16F128AWI -T平臺的二維碼識別demo配有4.3寸液晶顯示屏, 以類似于手機掃碼的體驗,快速識別QR碼,顯示識別的結果。效果如下所示:
視頻中分別展示了基于AWorks系統(tǒng)的cortex-m7硬件平臺、普通連續(xù)掃碼情形下的紙質和屏幕碼識別、自動感應(通過感應到掃碼操作來觸發(fā)算法,屏幕亮暗用來模擬補光燈亮滅)掃碼情形下的紙質和屏幕碼識別,以及碎屏情況下的屏幕碼識別。
M1052-M16F128AWI-T產品圖片:
五、關于算法庫獲取
關于算法庫的獲取可以咨詢ZLG立功科技與ZLG致遠電子相關市場人員。
評論