一、前言
在物聯網工農業場景下有很多應用需要視覺技術來輔助完成應用開發,隨着AI技術的不斷髮展,AI應用的長尾細分領域越來越廣泛,在比如紡織業檢測瑕疵品、農業中蟲害檢測等等AI將大有可爲。爲此我們在HaaS物聯網開發板上做了很多AI的探索來幫助各行各業的開發者們來打造他們的AI應用場景。AIoT設備由於成本及應用場景的限制,硬件性能如CPU、內存、Flash等存在差異,怎麼樣讓端側也能充分發揮AI的能力,需要權衡硬件成本和雲端成本及應用場景來綜合決定,爲了讓開發者有更多選擇,我們在HaaS開發板上整合了雲端AI的能力,只要能上網就能有AI。今天就先給大家介紹如何利用雲端AI能力打造雲端釘一體的AI應用---老闆來了!一起來看看Demo效果吧!
HaaS AI之老闆來了
二、解決方案
看了上面的Demo,是不是很想了解一下整體是怎麼實現的呢?整體的方案如下圖所示:
如上面的解決方案,可以看到整個方案涉及到的模塊比較多,整個流程涉及:
a. Http Client向WiFi攝像頭請求JPEG數據;
b. OSS Client上傳JPEG圖片到OSS服務端;
c. JPEG解碼爲RGB565顯示在LCD屏幕;
d. AI Agent上報OSS Client獲取的OSS圖片鏈接給視覺平臺;
e. AI Agent獲取識別結果後根據結果決定是否通過Linkkit上報事件給物聯網平臺,以及觸發蜂鳴器報警;
f. IoT Studio根據配置規則決定是否將物聯網收到的事件通知到釘釘機器人;
g. 釘釘機器人發消息通知到綁定的羣組。
以上是整個Demo的基本流程,後續文章將通過拆解各個模塊來展示如何將這些模塊打通實現AI Demo的,HaaS100和HaaS EDU K1均有實現。
三、Demo體驗
3.1 下載代碼
參考《HaaS100快速開始》下載AliOS Things代碼。
3.2 代碼配置
3.2.1 HaaS100
如果使用HaaS100的板子,配置aos.mk如下:
配置Config.in文件如下:
3.2.2 HaaS EDU K1
如果使用HaaS EDU K1的板子,配置aos.mk如下:
配置Config.in文件如下:
3.2.3 AI Agent配置
整個Demo所有的雲端相關配置信息都在sdkconfig.h中進行配置即可,簡化你的操作。
OSS節點訪問配置
AI Agent涉及到oss對象存儲的密鑰信息。
視覺智能節點訪問配置
AI Agent的密鑰主要獲取到REGION_ID、ENDPOINT相關信息。
Linkkit三元組信息配置
在人臉比對成功後,需要通過IoT Studio平臺通知釘釘機器人,請在IoT Studio中獲取設備三元組信息。
WiFi攝像頭訪問配置
配置WiFi攝像頭的圖像流地址。
AI模型配置
當前支持多個AI模型,這裏選擇AI_TYPE_COMPARING_FACEBODY人臉比對模型。
對比照片路徑配置
人臉比對需要一張待對比照片,上傳後將路徑填入:
3.3 代碼編譯
$aos make distclean
$aos make ucloud_ai_demo@haas100 -c config
$aos make
3.4 代碼燒錄
如果是使用的Window燒錄工具參考《HaaS100快速開始》,燒錄的文件位於:
$./out/ucloud_ai_demo@haas100/binary/[email protected]
$./platform/mcu/haas1000/release/write_flash_tool/ota_bin/littlefs.bin
將文件[email protected]和littlefs.bin分別替換write_flash_gui/ota_bin/ota_rtos.bin和write_flash_gui/ota_bin/littlefs.bin。
如果使用的是docker環境參考《一步搞定AliOS Things開發環境安裝》4.3燒錄固件。
3.5 網絡連接
因爲HaaS開發板需要連接到雲端,因此需要連接到一個可以上外網的路由器,WiFi攝像頭也只能使用Station模式連接到同一臺路由器。
$netmgr -t wifi -c haas_test 12345678
3.6 識別結果響應
識別到後輸出置信度的值,人臉位置以及“boss is coming”字樣:
3.6.1 字幕提醒
在HaaS EDU K1的OLED上顯示:
OLED_Clear();
OLED_Show_String(24, 12, "Warning!!!", 12, 1);
OLED_Show_String(12, 36, "Boss is coming!", 12, 1);
OLED_Refresh_GRAM();
在HaaS 100的擴展屏上顯示:
graphics_draw_string("Warning!!!", 120, 100);
graphics_draw_string("boss is coming!!!", 100, 120);
3.5.2 蜂鳴器報警
在HaaS EDK上當檢測到老闆來了,同時觸發蜂鳴器報警。
beeper_start();
停止蜂蜜器報警:
beeper_stop();
四、總結
在HaaS開發板上整合了雲端多樣化的AI能力,通過AI Agent調用雲端AI接口,人臉比對僅僅是其中一個案例,通過學習該案例,您可以學習到在AIoT設備中如何從前端攝像頭數據輸入到後端輸出的完整流程,舉一反三地實現更多AI場景案例,期待您的作品。
五、開發者技術支持
如需更多技術支持,可加入釘釘開發者羣,或者關注微信公衆號
更多技術與解決方案介紹,請訪問阿里雲AIoT首頁https://iot.aliyun.com/