一起學AI!MediaPipe 應用教學-單元(一)環境設定

一、簡介

Live ML anywhere」,一進入到MediaPipe 介紹網頁就能看到這行綜觀全文的標語,沒錯!MediaPipe 是Google於2019年發表的開源專案,此專案針對電腦視覺(Computer vision)提供了跨平台的相關應用。不論您是使用C++ 作為主要的開發語言,或是撰寫前端網頁的工程師,又或是擅長用Python處理資料的高手,都能依照自己喜歡的語言,找到對應的方法體驗與使用這強大的機器學習程式庫。

二、支援的語言與功能

透過下表我們可以找到每個語言與平台支援的功能,像是手機端支援最多功能的是Android,而使用C++語言開發的使用者能體驗到較多的功能。


AndroidiOSC++PythonJSCoral
Face Detection
Face Mesh 
Iris   
Hands 
Pose 
Holistic 
Hair Segmentation    
Object Detection  
Box Tracking   
Instant Motion Tracking     
Objectron   
KNIFT     
AutoFlip     
MediaSequence     
YouTube 8M





應用教學系列我們將採用Python這個程式語言來執行各個功能,那為什麼不是使用支援最多項目的C++呢?因為在電腦視覺的領域裡,支援最多應用框架與社群的正是 Python。其處理影像的教學內容也較其他語言來的多,重點是程式碼簡潔、邏輯易懂,相當適合初入門的使用者學習,可以很快地找到問題的答案。對於已經有一定了解的使用者,多半也是用 Python在著名的深度學習框架TensorflowPytorch 上,創造自己的辨識模型。基於上述原因,就讓我們使用 Python來進行 MediaPipe的各項功能吧!

三、安裝執行環境

如果您是有用過Python 的使用者,也有用過pip安裝過套件,可以參考官方的安裝說明,或依照自己習慣的方式安裝MediaPipe。

官方教學連結

您若是初學者或不是那麼熟的Python 使用者,可以參照接下來的教學。

小編強烈建議您使用Miniconda來建構您的環境,Miniconda可以建構虛擬環境,每個虛擬環境各自獨立。在執行每項專案的過程中,往往會有套件與套件之間版本相容的問題。例如A專案與B專案共同使用了一個套件名為numpy,A專案只能使用1.6以下的版本,而B專案則需要較新的版本,倘若用同一個環境執行,就會有擇一的問題。這時候若是A專案、B專案各自有獨立的環境,是不是就能解決這個問題呢!

1. 下載Miniconda

進入Miniconda下載頁面,依照自己的作業系統下載對應的軟體,Python版本的部份建議使用Python 3.X,因為Python 2已經不支援更新了。

小編的電腦是64位元的Windows電腦,Python版本選擇3.8,所以選擇Python 3.8後面的Miniconda3 Windows 64-bit下載。

2. 安裝Miniconda

下載完畢後安裝,這邊也以Windows作為示範,基本上安裝都是直接按下一步即可,除了遇到下圖的部份,請勾選藍框的選項,將其加入系統的環境變數中,之後就狂按下一步完成安裝吧!

安裝完畢後於電腦的搜尋上輸入「miniconda」,就能找到安裝好的軟體。

四、設定執行環境

1. 創建虛擬環境

開啟「Anaconda Prompt (Miniconda3)」,這是一個終端機的應用程式,我們會在這個終端機上輸入指令來創建虛擬環境與啟動虛擬環境。

接著我們來創建一個虛擬的環境,創建虛擬指令的規則如下:

A. 呼叫「conda」指令來執行與conda環境有關的功能,後續的指令碼須以空格隔開。

B. 在conda功能內有不少指令,其中「create」表示要創建一個虛擬環境。

C. 每個指令功能有著需要填入的參數,像是創建一個虛擬環境,您需要為這個環境命名,以便之後能依照名稱呼叫它,「-n」就是告訴create指令後方的英文是該虛擬環境的名稱。

D. 這段文字就是虛擬環境的名稱,您可以依照喜好命名,這邊以「mediapipe」作為示範名稱。

E. 您可以自由的調整虛擬環境內Python的版本,只要不要超過安裝Miniconda軟體時選的版本,基本上都給過,這邊選擇3.8,若想使用其他版本,可於「=」符號後方自行輸入版本號。

請於終端機輸入上述指令,並按下「Enter」執行這行創建Python版本3.8,名稱為mediapipe的虛擬環境指令。

接著系統會說創建這個環境需要順便安裝一些相依的軟體,並要求您的同意,請輸入「y」,輸入小寫的y後並按下「Enter」同意安裝。

安裝過程中會邊下載相關套件邊安裝,所以需要一點時間,安裝完成後會跳出提示視窗,如下圖所示:

2. 啟動虛擬環境與跳出虛擬環境說明

上一張圖內的黃框提示了啟動與關閉虛擬環境所要輸入的指令,若是想啟動某個虛擬環境,需要使用「activate」,跳出則用「deactivate」,詳細說明如下圖:

A. 執行conda相關指令必要的起手式。

B. 依照想要啟動或是跳出虛擬環境選擇「activate」或「deactivate」。

C. 若是要啟動虛擬環境,需要再指定「虛擬環境的名稱」,若是跳出則不用加上虛擬環境名稱。

請輸入啟動虛擬環境的指令,若是您有設定不同的名稱,請以自己的名稱為主。以下示範的虛擬環境名稱為「mediapipe」,指令輸入完畢後請按下「Enter」。

啟動虛擬環境後,可以看到輸入指令的那一行開頭從 (base)變成 (mediapipe),或是變成您設定的虛擬環境名稱。這表示現在所處的是您自己設定的虛擬環境,任何在之後輸入的安裝指令或變更動作,都不會影響到原來的環境 (base)

往後開啟「Anaconda Prompt (Miniconda3)」後,都要記得先下「conda activate 虛擬環境名稱」指令進入虛擬環境,若想離開目前的虛擬環境可以使用「conda deactivate」。

3. 安裝MediaPipe

確認進入虛擬環境後,就可以開始安裝MediaPipe,請輸入如下圖指令:

A. 「pip」是一個Python的套件管理工具,在創建虛擬環境的時候有安裝一些相依的軟體,pip就是其中一個。我們將透過pip這個工具從網路上下載mediapipe。

B. 「install」是pip的安裝指令,當您輸入「pip install 要下載的軟體名稱」時,pip會到網路上的指定位置尋找軟體並安裝。

C. 想要下載安裝的軟體名稱。

輸入指令之後請按下「Enter」。

使用MediaPipe的功能有需要用到其他套件,安裝MediaPipe的過程中,pip也會去下載其他相依的套件,完成後如下圖所示:

五、結語

執行完上述動作後,即完成了環境的建置。在剛剛一系列的安裝過程當中雖然繁瑣,但我們會發現安裝套件的時候,不一定只會安裝單獨的套件,若是像MediaPipe這種有需要其他套件來協助的大型套件,通常就會安裝一些附帶的套件。就像安裝Miniconda時所描述的,若是大套件A附帶的小套件版本與另一個B套件衝突的話,那就沒戲唱了,所以虛擬環境真的是不錯的選擇。

關於虛擬環境的相關指令,可以查看Miniconda的官方網站,其實還有不少提供虛擬環境方案的軟體,有興趣的話可以上網自行Google。

之後的單元將會呼叫我們安裝好的MediaPipe套件,來執行各項在Python這個程式語言能執行的功能,那我們下篇文章見!

六、附錄

之後我們會處理Python程式碼的部份,所以會需要「文字編輯器」,我們會將程式碼貼在編輯器裡修改或撰寫新的程式碼。文字編輯器其實不是什麼新東西,能輸入文字並儲存或開檔案的都是文字編輯器,例如Windows 的記事本。

但一個好的文字編輯器,特別是程式設計師專用的文字編輯器,會有不少強大的功能,特別是文字顏色的部份,如下圖:

是不是右邊的可讀性較好了,撇開其他好用功能不說(自動補全程式碼….),至少有顏色能讓您修改的過程中不那麼眼花撩亂,當然這並不是必要的,您可以自己斟酌,小編推薦的文字編輯器有:

1. Visual Studio Code

2. Atom

3. Sublime Text

4. Notepad++

針對上述的文字編輯器,網路上有相當多的教學能讓您參考,包含如何擴充其他功能,例如除錯、程式補全或是直接執行。功能最多的是Visual Studio Code,相對較陽春的是Notepad++,就依照自己的喜好選擇吧!當然~若是使用Windows 的記事本也可以,Respect!