在免費的Oracle Cloud Ampere A1虛擬機上運行視覺AI是什麼體驗 – AI學習筆記20221221

小U把自己從零學習AI記錄在這個系列的筆記中。

之前學習coding和cyber security都沒有做這樣的記錄,覺得很可惜。

所以即使是很流水帳,很粗糙,甚至只有我自己能看懂,我都要把這次的歷程記錄下來

從YOUTUBE看到的有趣的視覺AI玩法

林亦LYi 分享很有趣的坐姿AI on mobile 項目。採用MoveNet on Tensorflow Lite 在手機上運行。項目於Github開源:https://github.com/linyiLYi/pose-monitor。 由於我沒有android開發經驗,即使有源碼也比較難入手,所以就上網找最簡單的視覺AI入門。

Nicholas Renotte 最多人觀看的長達5小時的視覺AI入門,辨識自定義的手勢。

十分詳盡容易明白。

超過一半的時間解釋如何build run Tensorflow object detection model的environment。雖然我的電腦也有GPU,但是有沒有能把這個繁複的開發環境設置過程省略,直接有out of the box,ready to play的方案?

 

雲端安裝視覺AI Framework和算法

碰巧我在Oracle cloud上玩弄VM。Oracle cloud除了流量慷慨(所以很多教學用來build VPN伺服器),最特別是提供4GPU 24GB RAM的Ampere A1 ARM VM。

碰巧我又發現這個Ampere A1的image有一個是“Tensorflow Optimzed”的Ubuntu鏡像。

這個影片exactly就是我想實現的方案:給他一個mp4,甚至一個url,就能自動幫我用Tensorflow 的 object detection model來出實時結果。

於是就往Ampere A1 CloudVM的方向走。

但是一栽進去才發現每那麼簡單。主要是用arm來跑tensorflow object detetion的網路資源和討論太少(因爲通常需要gpu,在amdx86上多)。導致很多網路的教程不能直接套用,連Tensorflow API的安裝也遇到網上Google不了的情況。

現在正在和ampere的support溝通,也在研究ampere自己提供的鏡像,看看run 視覺AI 物體辨識的環境和code是怎麼的。

待續。

 

20230130更新

接着上面的和Ampere support溝通,第一次support詢問我更多的詳情,我詳細地給他們提供了在Ampere A1 CloudVM安裝Tensorflow的問題:

他們回覆需要with a few extra steps to build and install the API,要我提供公司和項目詳情,再與我聯絡如何設定。

但我不會坐等他們,不如自己動手。

根據Oracle和Ampere的YouTube, 我根據Jupyter notebook的名稱“detect_video_altra”搜尋到了Ampere的Github頁面

https://github.com/AmpereComputing/terraform-oci-ampere-tensorflow

然後分析裏面的Terraform code,我找到了運行YouTube的docker鏡像,有三個:

果斷從源把docker image拉到自己的A1 VM。

 

成功在Cloud VM運行視覺AI

雖然github上面有三個鏡像,但是只有 oci_demo_ssd_mobilenet_v2 這一個的Jupyter Notebook不需要登錄密碼。

經過一段時間摸索,把這個docker image裏面的mldemos文件夾抽出來,放到自己的CloudVM上面,再拉了一段香港街景youtube作爲示範,成功運行ssdmobilenet和Yolo的視覺AI Object dectection:

視頻對比可見在Ampere A1 免費VM上運行ssdmobilenet可以做到基本流暢的物品判斷(延遲只有40~50ms,相當於20fps),但是當場景複雜和多物件的時候,明顯力不從心。例如下圖ssdmobilenet只”看到“ 2個人和一個書包:

如果用YoloV3算法,延遲去到了450ms,只有2fps,但是明顯見到YoloV3能”看到“的物體更多:

 

現時最新的Yolo算法是去到Yolov7,從Github上面的資料看,運行Yolov7要Pytorch而不是TensorFlow。怪不得TensorFlow 的Model zoo裏面竟然沒有大名鼎鼎的Yolo.

Oracle上也有提供免費的Ampere A1 Pytorch鏡像,但是並沒有預裝Yolov7,而且Pytorch和其他套件的版本很舊,根據Yolov7 Github 的安裝方法無法解決dependency version conflict的問題。

如果能在Ampere A1 運行Yolov7,那麼估計這個號稱最快最準的Yolo算法可以把免費的Oracle Cloud Ampere A1虛擬機的實用性再推上一個層次。

歡迎你的留言討論:

你可以一針見血

by Upsangel
Logo