每天都在汆肉中醒来青梅,好男人www在线观看,少妇无码自慰毛片久久久久久,国产欧美另类久久久精品丝瓜

登錄注冊(cè)
新聞 資訊 金融 知識(shí) 財(cái)經(jīng) 理財(cái) 科技 金融 經(jīng)濟(jì) 產(chǎn)品 系統(tǒng) 連接 科技 聚焦
首頁(yè) > 金融 > > 正文

開(kāi)源丨基于邊緣 AI+TencentOS Tiny的智能安防系統(tǒng)

2021-03-12 17:01:07來(lái)源:互聯(lián)網(wǎng)

本文轉(zhuǎn)載于極術(shù)社區(qū)

極術(shù)專欄:Arm技術(shù)博客

作者:鄭亞斌丨Arm中國(guó)生態(tài)技術(shù)市場(chǎng)經(jīng)理

一、概述

隨著邊緣計(jì)算和深度學(xué)習(xí)領(lǐng)域的不斷發(fā)展,越來(lái)越多的端側(cè) AI 設(shè)備開(kāi)始出現(xiàn)在我們的視野中。本次提出的這一方案著眼于邊緣計(jì)算與深度學(xué)習(xí)場(chǎng)景,提出了一款應(yīng)用于無(wú)人值守倉(cāng)儲(chǔ)、居民社區(qū)或危險(xiǎn)禁入?yún)^(qū)域的智能監(jiān)控方案,具有成本低、功耗低等優(yōu)勢(shì)。此處以人體檢測(cè)為例,對(duì)于長(zhǎng)時(shí)間徘徊于某區(qū)域的行人進(jìn)行智能識(shí)別,并且將異常現(xiàn)象及時(shí)上報(bào)云端,從而實(shí)現(xiàn)邊緣 AI,TencentOS Tiny 以及騰訊云完美結(jié)合的智能安防案例。

二、系統(tǒng)創(chuàng)新點(diǎn)

1. 本系統(tǒng)采用了 TencentOS Tiny 這一物聯(lián)網(wǎng)實(shí)時(shí)操作系統(tǒng)來(lái)實(shí)現(xiàn)片上資源的智能化管理。一方面,它可以靈活高效的管理系統(tǒng)的片上資源,為系統(tǒng)并發(fā)執(zhí)行多個(gè)任務(wù)提供了基礎(chǔ) ;另一方面,搭載 TencentOS Tiny 的端側(cè)系統(tǒng)可以方便的與騰訊云對(duì)接,依托于騰訊云的豐富資源為端云結(jié)合帶來(lái)了更多的可能性。

2. 本系統(tǒng)搭載了Tensorflow Lite Micro 超低功耗 AI 推理框架以及 Arm CMSIS-NN 加速庫(kù)。Tensorflow Lite Micro 是 Tensorflow 針對(duì)微控制器應(yīng)用場(chǎng)景所設(shè)計(jì)的 AI 推理框架。它占用的資源少,運(yùn)行時(shí)內(nèi)存最低只需要 16KB。并且它依托于Tensorflow 平臺(tái)強(qiáng)大的技術(shù)生態(tài),使得更多開(kāi)發(fā)者可以方便的集成、使用 AI 算法。Tensorflow Lite Micro 通過(guò)使能 Arm 開(kāi)源加速庫(kù) CMSIS-NN ,為端側(cè)帶來(lái)人工智能的新活力。

CMSIS-NN:

https://www.keil.com/pack/doc/CMSIS/NN/html/index.html

3. 目前 Tensorflow Lite Micro 及 CMSIS-NN 組件已經(jīng)合并到 TencentOS Tiny GitHub 倉(cāng)庫(kù),其中提供了 Tensorflow Lite Micro 源碼以及針對(duì) Arm Cortex-M 系列的 MDK lib 庫(kù)文件,可以方便開(kāi)發(fā)者集成到 MCU 開(kāi)發(fā)環(huán)境中。

Tensorflow Lite Micro 及 CMSIS-NN:

https://github.com/Tencent/TencentOS-tiny/tree/master/components/ai/tflite_micro

4. 本系統(tǒng)將邊緣 AI 和 TencentOS Tiny 結(jié)合,面向區(qū)域安防管理,提出了一種新的端云系統(tǒng)架構(gòu)。通過(guò)對(duì)系統(tǒng)的驗(yàn)證并配合詳細(xì)的用戶移植文檔,讓整個(gè)系統(tǒng)具備在多領(lǐng)域多場(chǎng)景的可遷移性與易用性。

系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖:

單個(gè) TencentOS Tiny 內(nèi)部結(jié)構(gòu)圖:

系統(tǒng) Demo 展示:

設(shè)備檢測(cè)的正確率與模型設(shè)計(jì)和模型訓(xùn)練息息相關(guān)。經(jīng)過(guò)測(cè)試,采用 Tensorflow Lite Micro 官方 github 中的 Person Detection 模型開(kāi)發(fā)的行人檢測(cè)例程,其檢測(cè)正確率達(dá)到 84%。端側(cè)檢測(cè)到行人后,MCU 將有關(guān)行人的數(shù)據(jù)上傳到云端,云端根據(jù)收到的信息來(lái)喚醒其他高性能設(shè)備,進(jìn)一步獲取更加詳實(shí)的真實(shí)數(shù)據(jù)。

相比與傳統(tǒng)的社區(qū)管理員通過(guò)大量連接高清攝像頭的屏幕來(lái)完成社區(qū)安全管理的方法相比,這種基于 TencentOS Tiny 和 CMSIS-NN 的端云協(xié)同智能安防系統(tǒng)僅會(huì)在端側(cè)檢測(cè)到行人后才會(huì)觸發(fā)相應(yīng)事件。這不僅減輕了管理員的工作負(fù)擔(dān),更重要的是端側(cè)實(shí)現(xiàn)的智能化應(yīng)用將極大的節(jié)省系統(tǒng)帶寬,提升系統(tǒng)響應(yīng)的同時(shí)也降低了成本,是一種綜合能力較強(qiáng)的解決方案。

三、系統(tǒng)移植概述

我們已將相關(guān)代碼和文檔開(kāi)源至官方主倉(cāng)庫(kù),開(kāi)發(fā)者可以按照指南進(jìn)行移植和應(yīng)用。

1. 準(zhǔn)備目標(biāo)硬件(開(kāi)發(fā)板 / 傳感器 / 模組)

開(kāi)發(fā)板 :NUCLEO-L496ZG,MCU 為 STM32L496ZG

Camera :獲取 RGB 圖像,本例程使用 OV2640 攝像頭

通信模組 :負(fù)責(zé) MCU 與云端之間的通信,本例程選用的樂(lè)鑫 ESP8266

2.準(zhǔn)備系統(tǒng)軟件

參考 TencentOS Tiny 基于 Keil 的移植教程進(jìn)行移植。

為了方便初始化 MCU 外設(shè),后續(xù)要繼續(xù)使用 STM32CubeMX 軟件,請(qǐng)確保正確安裝。在系統(tǒng)移植完成后,工程可以進(jìn)行線程任務(wù)切換,通過(guò)串口打印“hello world”,表明基礎(chǔ) Keil 工程代碼準(zhǔn)備完畢。

準(zhǔn)備 Tensorflow Lite Micro 組件。

基于 Keil 的移植教程:

https://github.com/Tencent/TencentOS-tiny/blob/master/doc/10.Porting_Manual_for_KEIL.md

本次我們使用 Tensorflow Lite Micro 推理框架來(lái)實(shí)現(xiàn)行人檢測(cè)任務(wù),用戶可以直接采用主倉(cāng)庫(kù)中 TencentOS-tinycomponentsai flite_micro 路徑下對(duì)應(yīng)的lib 庫(kù)文件來(lái)集成到系統(tǒng)中,然后調(diào)用相關(guān)的 API 即可將 AI 組件部署在 MCU 平臺(tái)上。

制作 lib 庫(kù)文件以及能使 CMSIS NN 加速。

請(qǐng)參考 Tensorflow Lite Micro 組件使用說(shuō)明。

使用說(shuō)明:

https://github.com/Tencent/TencentOS-tiny/blob/master/components/ai/tflite_micro/TFlite_Micro_Component_User_Guide.md

3. 系統(tǒng)移植流程

在獲得基礎(chǔ)工程后,我們首先移植驅(qū)動(dòng)代碼

添加與本例程相關(guān)的 Necluo STM32L496RG 的攝像頭驅(qū)動(dòng)代碼 ( 此處采用官方倉(cāng)庫(kù)中的驅(qū)動(dòng)代碼)

Necluo STM32L496RG 的攝像頭驅(qū)動(dòng)代碼:

https://github.com/Tencent/TencentOS-tiny/tree/master/board/NUCLEO_STM32L496ZG/BSP/Hardware/Src

重寫 mcu_init 函數(shù)中的 DCMI 幀中斷回調(diào)函數(shù)。值得注意的是,當(dāng)使用 CubeMX 重新配置外設(shè)并生成代碼時(shí),代碼需要寫在 CubeMx 生成的注釋語(yǔ)句內(nèi),這樣添加的代碼才不會(huì)被覆蓋。如下所示,代碼添加在 /* USER CODE BEGIN 4 / 和 / USER CODE END 4 */ 注釋語(yǔ)句之間 :

添加 LCD 程序顯示攝像頭圖像 :

將 Tensorflow Lite Micro 的模型和數(shù)據(jù)接入代碼添加到工程中,同時(shí)添加

TencentOS-tinycomponentsai flite_microKEIL etarget.c

TencentOS-tinycomponentsai flite_microARM_CortexM4_lib tensorflow_lite_micro.lib

模型和數(shù)據(jù)接入代碼:

https://github.com/Tencent/TencentOS-tiny/tree/master/examples/tflitemicro_person_detection

最后關(guān)閉 Keil 的 Microlib 庫(kù),include 相關(guān)的文件

注 :最下方的路徑為

調(diào)整優(yōu)化等級(jí)和指定 tflite_micro 的 debug 信息輸出串口 :

其中宏 NUCLEO_STM32L496ZG 指定 Nucleo STM32L496 的 hlpuart1 為系統(tǒng)printf 函數(shù)的輸出串口,具體定義在 Nucleo STM32L496 BSP 文件夾中的mcu_init.c 中 。

至此 Tensorflow Lite Micro 已經(jīng)成功的移植到 MCU 平臺(tái)中,可以開(kāi)始設(shè)計(jì)與行人檢測(cè)有關(guān)的應(yīng)用層代碼。

設(shè)計(jì)圖像預(yù)處理函數(shù)。在本例程中,模型的輸入為灰度圖,為完成攝像頭獲取的 RGB 圖像到灰度圖轉(zhuǎn)換,需要解析出 RGB565 像素格式中 R、G、B 通道的數(shù)據(jù),再根據(jù)公式計(jì)算出單個(gè)像素點(diǎn)的灰度,具體代碼如下 :

編寫行人檢測(cè)線程任務(wù)函數(shù) :

應(yīng)用程序主體若在 10 幀中檢測(cè)到超過(guò)半數(shù)的人像,就判定為異常并上報(bào)云端。根據(jù)實(shí)際的測(cè)試結(jié)果,執(zhí)行一幀圖像推理耗時(shí)約 633ms。

在 MCU 端處理完行人檢測(cè)后,MCU 與云端建立數(shù)據(jù)連接并傳輸數(shù)據(jù)。部分代碼如下 :

4. 騰訊物聯(lián)網(wǎng)開(kāi)發(fā)平臺(tái) - 騰訊連連小程序開(kāi)發(fā)

為了方便用戶實(shí)時(shí)查看端側(cè)上傳的信息(是否有異常報(bào)警、人流量計(jì)數(shù)等)以及控制設(shè)備端發(fā)出報(bào)警提示,我們利用騰訊云 IoT Explorer 開(kāi)發(fā)平臺(tái),開(kāi)發(fā)騰訊連連小程序。

開(kāi)發(fā)過(guò)程如下,登錄騰訊云開(kāi)發(fā)平臺(tái) :

步驟一 :新建產(chǎn)品

步驟二 :跟據(jù)場(chǎng)景和應(yīng)用定義數(shù)據(jù)模板

設(shè)備端上傳只讀數(shù)據(jù) :

1.行人檢測(cè) :設(shè)備端檢測(cè)到行人時(shí),標(biāo)志位置為 1

2.異常停留報(bào)警 :當(dāng)設(shè)備端持續(xù)檢測(cè)到行人時(shí),觸發(fā)異常停留報(bào)警,標(biāo)志位置為 1

3.行人計(jì)數(shù) :當(dāng)設(shè)備端的行人檢測(cè)結(jié)果從無(wú)人變化為有人時(shí),人流量計(jì)數(shù)值 +1

設(shè)備端接收控制指令 :

報(bào)警提示 :當(dāng)用戶看到有異常停留時(shí),可以控制設(shè)備端發(fā)出報(bào)警提示,也可以關(guān)閉報(bào)警提示

步驟三 :編輯小程序的面板

由于目前騰訊連連提供的模板較少,暫時(shí)使用按鈕顯示設(shè)備狀態(tài)信息。

步驟四 :設(shè)備調(diào)試

將產(chǎn)品 ID、密鑰、設(shè)備號(hào)等信息填入設(shè)備端程序

移植基于 TencentOS Tiny 的 AT 組件和 ESP8266 適配的 SAL 框架

設(shè)備端編寫上行和下行數(shù)據(jù)處理程序

四、結(jié)語(yǔ)

我們提出了一種基于邊緣 AI+TencentOS Tiny 的新架構(gòu),雖然在用戶前端還有很多改進(jìn)的空間,但通過(guò)對(duì)整體方案的驗(yàn)證并且配合詳細(xì)的用戶移植文檔,使我們的工作具備了可遷移性和擴(kuò)展性,同時(shí)也實(shí)現(xiàn)了 TencentOS Tiny 對(duì)于人工智能領(lǐng)域的支持。未來(lái)我們會(huì)繼續(xù)完善 Tensorflow Lite Micro 組件并不斷更新應(yīng)用,致力于豐富整個(gè)TencentOS Tiny 以及 Arm 生態(tài)。隨著越來(lái)越多的廠商采用 Arm Cortex-M55 和Ethos-U NPU IP 方案,相信未來(lái)端側(cè) AI 的應(yīng)用會(huì)更加廣闊。

TencentOS Tiny AI 組件 :

https://github.com/Tencent/TencentOS-tiny/tree/master/components/ai/tflite_micro

Arm Cortex-M4 :

https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m4

Arm Cortex-M55 :

https://www.arm.com/products/silicon-ip-cpu/cortex-m/cortex-m55

Arm Ethos-U55 :

https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u55

Arm Ethos-U65 :

https://www.arm.com/products/silicon-ip-cpu/ethos/ethos-u65

TensorFlow Lite for Microcontrollers :https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/micro

五、致謝

感謝 TencentOS Tiny 以及 TensorFlow 開(kāi)源社區(qū)團(tuán)隊(duì)的大力支持,感謝個(gè)人開(kāi)發(fā)者鄧可笈,楊慶生和劉恒言的貢獻(xiàn)。

https://aijishu.com/a/1060000000188831

關(guān)鍵詞: 開(kāi)源 基于 邊緣 AI

推薦內(nèi)容

熱點(diǎn)
39熱文一周熱點(diǎn)
主站蜘蛛池模板: 龙陵县| 嘉义市| 德兴市| 得荣县| 眉山市| 长垣县| 泰和县| 建平县| 清原| 思茅市| 纳雍县| 古丈县| 石台县| 迁安市| 习水县| 安义县| 大厂| 东兴市| 木兰县| 巴塘县| 平陆县| 泌阳县| 霍山县| 湖口县| 蚌埠市| 奈曼旗| 交城县| 伊金霍洛旗| 开远市| 曲水县| 淳化县| 郁南县| 乐安县| 乌拉特前旗| 盖州市| 汉沽区| 凤翔县| 潮州市| 旌德县| 昌平区| 大姚县|