• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    智能終端中面向人臉解鎖的相機(jī)優(yōu)化框架

    2021-04-20 06:33:08彭葉斌
    電子技術(shù)與軟件工程 2021年3期
    關(guān)鍵詞:傳輸速率內(nèi)核人臉

    彭葉斌

    (上海傳英信息技術(shù)有限公司 上海市 201203)

    1 問題背景

    人臉解鎖技術(shù)在安防,高校管理和金融等行業(yè)中使用越來越多[2][3],而在智能終端快速發(fā)展的今天,添加終端鎖是一個(gè)保障用戶信息安全的必要手段?,F(xiàn)在的終端解鎖方式主要有密碼鎖、圖案鎖、指紋解鎖,這些解鎖方式都各有優(yōu)缺點(diǎn)。比如密碼解鎖和圖案解鎖的解鎖步驟比較耗時(shí),指紋解鎖當(dāng)手指出汗或者有水時(shí)又很難解鎖,人臉解鎖的新技術(shù)就很好的改善了這些問題。隨著智能平臺(tái)在安防、終端等場(chǎng)景應(yīng)用越來越普及。基于Android 平臺(tái)的人臉解鎖應(yīng)用使用越來越廣泛,人臉解鎖速度的快慢會(huì)影響用戶的體驗(yàn)。目前學(xué)術(shù)界、智能終端行業(yè)中對(duì)人臉解鎖方案的優(yōu)化主要集中在算法方面[4][3]。

    人臉解鎖流程一般分為4 個(gè)階段:?jiǎn)?dòng)解鎖,圖像數(shù)據(jù)采集,SDK 人臉匹配和結(jié)束解鎖,如圖1 所示。

    (1)啟動(dòng)解鎖:按下電源鍵到人臉解鎖應(yīng)用打開相機(jī)。

    (2)圖像數(shù)據(jù)采集:人臉解鎖應(yīng)用打開相機(jī)到獲取到相機(jī)的圖像數(shù)據(jù)。

    (3)SDK 人臉匹配:把采集的圖像數(shù)據(jù)調(diào)用SDK 進(jìn)行人臉特征點(diǎn)對(duì)比識(shí)別人臉。

    (4)結(jié)束解鎖:比對(duì)成功后,系統(tǒng)界面解鎖流程。

    影響人臉解鎖性能主要有兩方面的因素:圖像數(shù)據(jù)采集和SDK人臉匹配。圖像數(shù)據(jù)采集是指相機(jī)打開圖像傳感器到獲取到圖像數(shù)據(jù)的過程。這個(gè)過程的速度與平臺(tái)的CPU 性能、相機(jī)傳感器的啟動(dòng)速度關(guān)系比較大。相同的硬件平臺(tái)和SDK 人臉?biāo)惴◣?,不同的圖像傳感器,人臉解鎖性能差異可能會(huì)比較大。主要原因是不同的圖像傳感器啟動(dòng)時(shí)需加載的參數(shù)不一樣,比如有的傳感器廠商的傳感器需要加載2000 多個(gè)寄存器,寫這些寄存器需要300 毫秒左右,對(duì)人臉解鎖性能影響較大。Android 智能終端中通常有比較多的相機(jī)應(yīng)用,比如人臉解鎖應(yīng)用、終端自帶的系統(tǒng)相機(jī)應(yīng)用和用戶下載安裝的一些三方相機(jī)應(yīng)用如美圖秀秀等。它們?cè)谙鄼C(jī)驅(qū)動(dòng)中使用的是同一套初始化參數(shù),圖像傳感器啟動(dòng)慢,影響人臉解鎖性能。人臉解鎖應(yīng)用相比其它的相機(jī)應(yīng)用,啟動(dòng)速度要求比較高,只需要灰度圖像。所以可以針對(duì)人臉解鎖應(yīng)用做一個(gè)輕量級(jí)的相機(jī)驅(qū)動(dòng),只需加載核心參數(shù)即可。但是目前的Android 框架,相機(jī)驅(qū)動(dòng)服務(wù)在打開相機(jī)傳感器時(shí)無法獲取到應(yīng)用相關(guān)信息,所以無法針對(duì)人臉解鎖應(yīng)用定制輕量級(jí)的相機(jī)驅(qū)動(dòng)。如果能夠在相機(jī)驅(qū)動(dòng)中獲取到人臉解鎖應(yīng)用的信息,則可以對(duì)人臉解鎖應(yīng)用設(shè)置一個(gè)快速模式,在圖像傳感器驅(qū)動(dòng)中只加載核心參數(shù)和提升I2C 傳輸速率,從而有效地提升人臉解鎖速度。

    2 設(shè)計(jì)思路

    Android8.0 開始相機(jī)驅(qū)動(dòng)中會(huì)有獨(dú)立的Server,比如MTK 平臺(tái)相機(jī)驅(qū)動(dòng)的Server 是CameraHalServer[5]。相機(jī)驅(qū)動(dòng)的CameraHal Server 與相機(jī)框架Server 即CameraServer 之間通過HIDL(Hardware Interface Definition Language)進(jìn)行通信。因?yàn)锳ndroid 相機(jī)框架CameraServer 是可以獲取到相機(jī)應(yīng)用信息(如應(yīng)用包名)的,基于這個(gè)特性,本文提出一種有利于提升人臉解鎖速度的相機(jī)優(yōu)化框架:

    (1)新建一個(gè)相機(jī)代理Server 如CamAgentServer,Camera Server 把獲取到的相機(jī)應(yīng)用信息通過HIDL 傳遞給CamAgentServer保存。

    (2)CameraHalServer 打開圖像傳感器前,先通過HIDL 獲取CamAgentServer 中保存的相機(jī)應(yīng)用信息。如果是人臉解鎖應(yīng)用,則設(shè)置圖像傳感器參數(shù)加載模式為快速模式。

    (3)CameraHalServer 把快速模式標(biāo)志設(shè)置給當(dāng)前需要打開的傳感器驅(qū)動(dòng),由傳感器驅(qū)動(dòng)文件通過IO 控制命令設(shè)置給內(nèi)核傳感器驅(qū)動(dòng)文件。

    (4)在內(nèi)核傳感器驅(qū)動(dòng)文件中如果是快速模式則加載核心參數(shù)并配置傳感器所能支持的最大I2C 傳輸速率,如果不是快速模式則加載普通參數(shù)。

    3 設(shè)計(jì)實(shí)現(xiàn)

    Android Camera 軟件框架可以分為四層:應(yīng)用層、框架層、庫層(HAL 層)和內(nèi)核層(Kernel 層)[1],如圖2 所示。

    (1)應(yīng)用層:面向客戶的層次,實(shí)現(xiàn)相機(jī)業(yè)務(wù)邏輯功能和UI顯示;

    (2)框架層:實(shí)現(xiàn)應(yīng)用和底層硬件邏輯分離,為應(yīng)用開發(fā)者提供API 接口;

    (3)HAL 層:硬件抽象層,將硬件行為與功能進(jìn)行封裝,為框架層提供接口;

    (4)Kernel 層:Kernel 層即為內(nèi)核層,硬件驅(qū)動(dòng)實(shí)現(xiàn),圖像數(shù)據(jù)采集和傳輸?shù)取?/p>

    3.1 Android Camera軟件原生框架實(shí)現(xiàn)方案

    如圖2 所示為 Android Camera 原生框架流程,人臉解鎖應(yīng)用打開相機(jī)分為3 個(gè)步驟:

    (1)人臉解鎖應(yīng)用調(diào)用框架打開相機(jī)。

    (2)CameraServer 接收到open 命令后通 過HIDL 接口與CameraHalServer 進(jìn)行通信。

    (3)CameraHalServer 通過IO 命令打開圖像傳感器加載初始化參數(shù),完成傳感器的啟動(dòng)。

    因?yàn)橄鄼C(jī)驅(qū)動(dòng)打開過程中,圖像傳感器無法區(qū)分是人臉解鎖應(yīng)用還是其它相機(jī)應(yīng)用,所以目前普遍的實(shí)現(xiàn)方案是圖像傳感器只使用一套初始化參數(shù),導(dǎo)致圖像傳感器啟動(dòng)耗時(shí)較長(zhǎng)。

    3.2 Android Camera軟件優(yōu)化框架實(shí)現(xiàn)方案

    如圖3 所示為Android Camera 優(yōu)化后的框架流程:

    (1)人臉解鎖應(yīng)用(FACE ID)調(diào)用框架打開相機(jī)。

    (2)新建一個(gè)相機(jī)代理服務(wù)CamAgentServer,提供設(shè)置相機(jī)應(yīng)用信息和獲取相機(jī)應(yīng)用信息的HIDL 接口。

    (3)如圖3 的步驟2,CameraServer 接收到應(yīng)用信息后通過HIDL 調(diào)用CamAgentServer 設(shè)置相機(jī)應(yīng)用信息的接口,把相機(jī)應(yīng)用信息保存在CamAgentServer 中。

    (4)如圖3 的步驟3,CameraServer 調(diào)過HIDL 調(diào)用Camera HalServer 去打開圖像傳感器。CameraHalServer 接收到命令后先執(zhí)行步驟4,即CamAgentServerEngine 調(diào)用CamAgentServer 獲取相機(jī)應(yīng)用信息的接口,獲取當(dāng)前應(yīng)用信息。如果是人臉解鎖應(yīng)用,則設(shè)置圖像傳感器參數(shù)加載模式為快速模式。如果不是人臉解鎖應(yīng)用,則設(shè)置圖像傳感器參數(shù)加載模式為普通模式。

    (5)如圖3 的步驟5,CameraHalServer 和內(nèi)核驅(qū)動(dòng)中新增一個(gè)傳感器參數(shù)加載模式接口,步驟4 中把傳感器參數(shù)加載模式通過IO 命令傳遞給內(nèi)核的傳感器驅(qū)動(dòng)文件。

    在內(nèi)核的驅(qū)動(dòng)文件Image Sensor 中把傳感器參數(shù)分為核心參數(shù)和基礎(chǔ)參數(shù)。其中核心參數(shù)是指針對(duì)人臉解鎖應(yīng)用定制的傳感器參數(shù)(OTP,AWB,Colour 等去除后的參數(shù)),而基礎(chǔ)參數(shù)則為原來的寄存器參數(shù)。如果是快速模式,則選擇傳感器參數(shù)為核心參數(shù),并且設(shè)置I2C 傳輸速率為傳感器所能支持的最大傳輸速率。如果是普通模式,則選擇傳感器參數(shù)為基礎(chǔ)參數(shù)。

    優(yōu)化后的人臉解鎖的流程圖如圖4。

    圖1:人臉解鎖流程

    圖2:Android Camera 原生框架控制流程

    圖3:Android Camera 優(yōu)化后框架控制流程

    圖4:優(yōu)化后的人臉解鎖流程

    通過把傳感器參數(shù)分為核心參數(shù)和基礎(chǔ)參數(shù),在人臉解鎖時(shí)加載核心參數(shù)可以減少傳感器寫參數(shù)的時(shí)間。其次通過提升傳感器I2C 傳輸速率,可以減少寫寄存器參數(shù)的時(shí)間。如使用1000Kbit/s的傳輸速率相比400Kbit/s 的傳輸速率可以減少50~100ms 的啟動(dòng)時(shí)間。通過上述優(yōu)化方案可以減少不同圖像傳感器因?yàn)榧虞d參數(shù)差異較大帶來的性能差異,從而有效的改善人臉解鎖的性能體驗(yàn)。

    4 實(shí)驗(yàn)數(shù)據(jù)

    如表1 所示,我們通過兩款不同的芯片,選擇2 顆不同的圖像傳感器做人臉識(shí)別的性能優(yōu)化,對(duì)比優(yōu)化前后的數(shù)據(jù)可以看出采用優(yōu)化方案后性能分別減少了201ms 和176ms,優(yōu)化率分別為33%和22%,優(yōu)化效果比較明顯。

    表1:實(shí)測(cè)人臉解鎖性能提升數(shù)據(jù)(單位ms)

    猜你喜歡
    傳輸速率內(nèi)核人臉
    萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    有特點(diǎn)的人臉
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    三國漫——人臉解鎖
    跨山通信中頻段選擇與傳輸速率的分析
    黑龍江電力(2017年1期)2017-05-17 04:25:16
    數(shù)據(jù)傳輸速率
    CHIP新電腦(2016年9期)2016-09-21 10:31:09
    新一代全球衛(wèi)星通信網(wǎng)絡(luò)將百倍提升傳輸速率
    馬面部與人臉相似度驚人
    乡城县| 门头沟区| 汶川县| 道真| 陇南市| 平定县| 化州市| 鹤峰县| 白银市| 南皮县| 连江县| 岳西县| 北流市| 岐山县| 安西县| 清新县| 安乡县| 娄底市| 五指山市| 咸丰县| 天气| 莫力| 华坪县| 九寨沟县| 汕头市| 达拉特旗| 社会| 南华县| 腾冲县| 咸宁市| 永顺县| 黄龙县| 武邑县| 临沧市| 南昌市| 峨边| 句容市| 马关县| 兴山县| 宽城| 太湖县|