
小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虛擬機的實用性再推上一個層次。