OpenVino on Google Colaboratory
Google Colaboratory是什麼 ?
現在資料科學或是人工智慧(包含機器學習等)的話題正熱,而想要投入這些領域研究或開發應用的人也愈來愈多,也因為在這個領域上 Python 有著非常強大的生態系,所以也順勢把這個程式語言的熱門度持續推高(可參考 TIOBE 的排名)。然而,雖然 Python 程式語言上手容易,但因為在資料科學或機器學習的應用上,用到了大量第三方函式庫(例如:NumPy / SciPy、TensorFlow、Keras 等),在百家爭鳴、各有優勢、甚至是各種系統或硬體相依綁定的情況下,一個所謂「資料科學家」的工作環境,肯定會讓新手村的人把它搞成像一盤義大利麵一樣…
當然你可以使用 virtualenv、container、開 VM(有錢就是任性)等方式讓上述情況不會失控,但這又讓進入核心學習前,必須先修更多「基礎」了。這也說明了為什麼許多雲端平台的供應商都會提供適合 data science 或 deep learning 的虛擬機器映像檔了吧!
如果說有個環境可以讓你不用在一開始安裝一大堆軟體、不挑作業系統、能夠立即實驗/實作資料科學或機器學習專案、有著像 Jupyter Notebook 這樣的互動式環境、在學習時不用預花太多成本(例如雲端虛擬機器費用)、如果還能支援加速硬體(如:GPU)或是自定環境的話,是不是會讓你有更大的動力把資料科學或是機器學習學得更好呢?
開始使用 Google Collaboratory
Google Colaboratory (以下簡稱 Google Colab)是一個基於 Jupyter Notebook 的免費服務(須註冊一個 Google 帳號、其餘部份至少撰文的此刻仍是免費),所以如果你曾經用過 Jupyter Notebook 來學習 Python 的話,那應該不必特別學習就能立即上手這個服務了,就算有些不熟悉,第一次使用的歡迎 notebook 也有完整的教學文件,有不會用的地方讀一下就可以了。
OpenVino Workshop on Google Collaboratory
基於Google Colab, OpenVino 提供數個已經架構好的環境,以及設計好的課程 (workshop),讓使用者可以很快的可以進行練習,看到結果。且因為是在自己的帳號中開啟,猶如系統中,user mode 和 kernel mode的概念。使用者可以根據本身的需要進行修改,執行,而不會竄改到原本文中的架構。使用者並可隨時放棄原本更改的內容,以reset方式還原原本課程內容。
- OpenVino 安裝及使用python來執行object detection, segmentation, 及Benchmark範例的workshop
2. TF2.0 遷移式學習來訓練Mobilenet v2 及轉換IR的workshop2. TF2.0 遷移式學習來訓練Mobilenet v2 及轉換IR的workshop
3. 練習OPENVINO Accuracy Check Tool和 Post Optimization Tool的Workshop
OpenVino™ TOOLKIT DL STREAMER 介紹
Deep Learning Streamer (DL Streamer) – 是基於GStreamer的串流分析框架(frameworks),並用於構建媒體分析的圖形組件。 DL Streamer可以通過OpenVINO™工具包的英特爾®發行版安裝程序進行安裝。其開源版本可在GitHub上獲得。
關於OpenVino DL Streamer:
英特爾®OpenVINO™工具包深度學習(DL)流媒體,現已成為默認設置的一部分安裝包
使開發人員能夠跨英特爾®架構創建和部署優化的流媒體分析管道從邊緣到雲端
最佳的管道互操作性,以及使用GStreamer *多媒體框架
什麼是GStreamer?為什麼OpenVino要使用 GStreamer?
GStreamer是用於創建流媒體應用程序的框架。基本設計來自俄勒岡大學研究生院的視頻管道以及DirectShow的一些想法。
GStreamer的開發框架使編寫任何類型的流多媒體應用程序成為可能。 GStreamer框架旨在簡化編寫處理音頻或視頻或兩者的應用程序的過程。它不僅限於音頻和視頻,而且可以處理任何類型的數據流。流水線設計的開銷要比應用的濾波器引起的開銷小。這使GStreamer成為設計甚至對延遲有高要求的高端音頻應用程序的良好框架。
GStreamer最明顯的用途之一就是使用它來構建媒體播放器。 GStreamer已經包括用於構建媒體播放器的組件,該組件可以支持多種格式,包括MP3,Ogg / Vorbis,MPEG-1 / 2,AVI,Quicktime,mod等。但是,GStreamer不僅限於一個媒體播放器。它的主要優點是可以將可插拔組件混合並匹配到任意管道中,從而可以編寫完整的視頻或音頻編輯應用程序。
該框架基於此,將提供各種編解碼器和其他功能的插件。插件可以鏈接並安排在管道中。該管道定義了數據流。管道也可以使用GUI編輯器進行編輯,並另存為XML,這樣就可以以最少的精力製作管道庫。
GStreamer的核心功能是為插件,數據流和媒體類型處理/協商提供框架。它還提供了使用各種插件編寫應用程序的API。
具體來說,GStreamer提供
- 多媒體應用程序的API
- 插件架構
- 管道架構
- 媒體類型處理/協商的機制
- 同步機制
- 超過250個插件提供了1000多個元素
- 工具組
GStreamer插件可以分為
- 協議處理
- 來源:用於音頻和視頻(涉及協議插件)
- 格式:解析器,格式化器,復用器,解復用器,元數據,字幕
- 編解碼器:編碼器和解碼器
- 濾鏡:轉換器,混音器,效果器,...
- 接收器:用於音頻和視頻(涉及協議插件)
GStreamer打包成
- gstreamer:核心軟件包
- gst-plugins-base:基本的示例性元素集
- gst-plugins-good:LGPL下的一組高質量插件
- gst-plugins-ugly:一組高質量的插件,可能會帶來發行問題
- gst-plugins-bad:一組需要更高質量的插件
- gst-libav:一組包裝libav以進行解碼和編碼的插件
- 其他一些包
gstreamer 使用範例:
OpenVino 基於gstreamer所開發出的深度學習插件,在相同的框架下,確保開發人員所開發出來的深度學習應用很容易的布置在邊緣以及雲端的裝置上。
- Try out OpenVIno DL Streamer Samples on your own
- OpenVino DL Streamer API Reference
- OpenVino DL Streamer on GStreamer elements properties
- OpenVIno DL Streamer Tutorial
本文所使用到的網址資料如下
- Intel OpenVino
- Gstreamer Org.
https://gstreamer.freedesktop.org/documentation/index.html?gi-language=c
- 透過 Google Colaboratory 學習使用 Python 做機器學習等科學計算
評論