屬於「老男人」的TFboys:TensorFlow Lite+AoE-基於深度學習的駕駛安全之路

AoE
( AI on Edge , https://github.com/didi/AoE ) 是滴滴開源的終端側 AI 集成運行時環境 ( IRE )。git

隨着人工智能技術快速發展,近幾年涌現出了許多運行在終端的高性能推理框架,例如 TensorFlow Lite,在實時性、安全性上給開發者帶來更多支持和選擇,極大的優化了用戶的使用體驗,但當咱們想要在終端側落地一些具體的 AI 業務時,會發現有些不得不面對的問題:github

除了要作推理框架選型,還須要關注數據預 / 後處理邏輯的穩定性,模型分發使用時的包大小、數據安全等問題。這也正是 AoE 的設計初衷,但願完善模型生產到落地應用鏈路上的各個環節,提供整套的工具支撐體系,幫助開發者在終端輕鬆部署 AI 模型。如下咱們經過滴滴內部一個具體實例應用,介紹 AoE 如何搭檔 TensorFlow Lite ,讓終端側 AI 開發變得更加簡單。算法

案例背景

滴滴普惠安全產品技術團隊經過手機傳感器數據的實時分析,創建了精準、可量化的駕駛行爲識別能力,以此爲基礎刻畫精細的安全畫像,創建全方位的集駕駛安全、騎行安全、異常檢測、流程化策略爲一體的識別解決方案,爲用戶提供精準、便捷的安全應用體系。藉助 Google 的深度學習框架 TensorFLow ,咱們對算法進行改造優化,極大地提高模型的識別效率和準確率。安全

模型介紹

經過 TensorFlow 來搭建卷積神經網絡( Convolutional Neural Network,CNN )流式處理手機傳感器數據,實時識別司機危險駕駛行爲。微信

AoE_flow.png

基於手機傳感器識別行車狀態,有不少問題須要處理:網絡

  • 不一樣機型間數值差別
  • 手機姿態變化致使的模型環境變化校準
  • 晃動致使的模型誤觸發
  • 實時數據量大,計算複雜度高
  • ...

以數據差別校準爲例,因爲不一樣設備間傳感器數據差別較大,會影響模型最終效果,須要對其進行校準,保證模型輸入數據的一致性。框架

經過自研機型校準濾波算法的處理,不一樣的機型能夠獲得一致的數據表現。工具

IMG_5959(20191126-161021).JPG

AoE的接入使用

穩定性考慮

如前面介紹,咱們在數據交給 TensorFlow Lite 執行推理先後,有不少的數據處理邏輯,出於性能和算法保密性考慮,咱們把濾波算法等處理邏輯放在 Native 層實現。性能

衆所周知,Android 平臺開發一個重要的問題是機型適配,一旦應用在某款機型上面崩潰,形成的體驗損害是巨大的。有數據代表,由於性能問題,移動 App 天天流失的活躍用戶佔比 5 %,這些流失的用戶,6 成的用戶選擇了沉默,再也不使用應用,3 成用戶改投競品,剩下的用戶會直接卸載應用。所以,對於一個用戶羣龐大的移動應用來講,保證任什麼時候候App主流程的可用性是一件最基本、最重要的事情。讓 Native 操做運行在獨立進程中,同時保證了推理的穩定性和主進程的穩定性,即偶然性的崩潰不會影響後續的推理操做,且主進程任什麼時候候不會崩潰。學習

安全性考慮

TensorFlow 訓練出的 pb 模型文件和轉換在 TensorFlow Lite 使用的 tflite 文件,能夠比較方便的看到網絡層信息,在終端側分發應用時,沒法有效保障數據資產安全。
AoE 提供了文件加密機制,方便對模型文件進行快速解密,同時支持自定義加解密算法,示意圖以下:

aoes.png

數據加密方案

  • 文件加密
    首先自選數據加密方案對模型文件進行加密(AoE 內置 AES 加密),生成一個加密文件
  • 生成頭文件
    AoE 對加密文件添加 21 byte 的文件頭,分別表示文件加密方案的版本,加密文件的文件長度以及加密文件的 MD5
  • 字節混淆
    指定一個步長(如 1024 byte),從加密文件頭進行遍歷,將讀取數據切片的特定位(一般是第一位)與文件頭片斷裏的字節依次互換。以此混淆了文件原信息。

數據解密方案

與加密對應的解密模塊,經過已知的步長、置換位索引、加密私鑰等信息配套的對文件進行信息重建和解析,獲得源文件,AoE 之內存態運行,直接將模型源文件裝載進推理框架進行執行。

經過這樣簡單的文件加密規則,既能保障加密實現的高效運行,又能在不一樣場景下拓展支持多套算法方案。

上線效果

基於 TensorFlow 的優化改造,大大下降了咱們算法開發和維護的成本。模型集成 AoE 在滴滴乘客端、司機端上線應用後,沒有出現一例因推理執行致使應用主進程崩潰的 Case,穩定支持了多個版本加密模型在 APP 中的集成使用。

總結展望

咱們團隊會持續完善終端側 AI 落地的工具支撐體系,特別是對被普遍使用的 TensorFlow 的支持,幫助開發者輕鬆部署模型,更好的賦能業務。

底圖.jpg
添加小助手微信進入AOE開源交流羣
IMG_6228(20191213-110108).JPG

相關文章
相關標籤/搜索