更多

    【 AI 平民化】1 分鐘製人臉辨識.二:軟件篇

    kaWing
    kaWing
    從事科技教育報導逾十年,見證香港電子學習及STEM的興起和轉變,近期關注AI及特殊教育。

    PS5 遙控器 直接連 Netflix YouTube Spotify Disney+ 多個串流平台

    PlayStation 5 主機將於 11 月 19 日推出,隨之而來的有周邊設備,其中之一是遙控器。過往不少人也會把 PlayStation 當作為播放平台,而現時會將流行的內容全連結主機中。昨日 PlayStation.Blog 就公佈,遙控器將支援多項熱門數碼媒體內容。

    科學角度討論 全人教育發展

    昨日香港懸掛八號風球,但隨疫情期間新常態形成,《 2020 全人發展論壇 ── 從情緒支援及教育科技講起 》如期改在網上舉行,當中數位參與研討者能真實講解香港教育所面對的複雜現況,雖然此論壇不是政策公告,但值得熱心理解教育的相關人士聆聽和參與,從而對未來有更整體和清晰的觀感。

    Facebook 明禁「勸阻接種疫苗廣告」

    觀感和取態是兩面刀,一直鮮有立場的 Facebook 早前公佈政策,明確訂定將禁止「勸阻接種疫苗廣告」。另一方面,所有接種廣告需獲得授權及提供付款人資料。此項活動將率先在美國執行,並預計會推廣至全球。

    前文談及硬件的準備,本文先準備系統,認識一下辨識流程和程式結構,並且為測試作最後準備。

    系統準備

    這個人臉辨識習作所用的軟件不多,只有作業系統本身、所用的編程語言、用來儲存辨識對象資料的資料庫、提供辨識功能和影像處理的函式庫,和經已預先訓練好用來辨識人臉的分類器檔案便足夠。

    作業系統和預載程式

    本文的所使用的作業系統是 Raspberry Pi 官方的作業系統最新版本 Raspbian Buster ,編程語言是 Python 3.7 ,而資料庫就使用 SQLite ,這些都是 Raspbian Buster 已經預先安裝好的,所以只要從官方網站載備有桌面界面和一些推薦程式的「 Raspbian Buster with desktop and recommended software 」,燒錄到 microSD 卡上,就可以立即應用。
    因為我們所用的是 USB Web Cam ,所以也不需要在作業系統做額外設定。

    下載「 Raspbian Buster with desktop and recommended software 」就有齊 Python 3.7 和 SQLite 資料庫。
    下載「 Raspbian Buster with desktop and recommended software 」就有齊 Python 3.7 和 SQLite 資料庫。

    影像處理的函式庫

    影像處理和進行人臉辨識上,我們使用著名的 OpenCV 函式庫。而因為我們要打算使用 Python 3 來編寫程式,所以就要安裝附有 Python 3 介面的 OpenCV 。安裝工作只要開啟 Terminal 程式,輸入以下兩句便能簡單完成:

    sudo apt-get update && sudo apt-get upgrade
    sudo apt-get install python3-opencv python3-picamera python3-numpy python3-pil

    人臉辨識三步曲

    人臉辨識有三個階段,分別就是收集數據、訓練辨識器和運用訓練好的辨識器來進行辨識。在下一篇文章我們會詳細解釋每個階段實際做了甚麼。
    1362_p022_flowchat

    下載習作程式

    準備好系統之後,我們就可以進行人臉辨識測試了。為了讓大家能順利操作,只要下載相關以下兩組檔案執行,大概只要 1 分鐘就可以按照教學完成人臉辨識操作。

    1. Face Recognition sample with opencv-python

    此程式由 Mickey 所撰寫,為這次示範特意製作簡潔的程式碼供大家免費下載使用。這個習作主要分為四個程式:

    • setup.py : 為這次習作做準備工作,只要執行一次就夠,主要是建立用來儲存辨識對象編號和姓名的資料表;
    • recordface_webcam.py : 收集辨識對象的臉部圖像資料;
    • trainer.py : 訓練辨識器;
    • detector_webcam.py : 運用辨識器來辨識鏡頭前的人。這是一個簡單的單線程程式,容易理解但效能不好。

    網址:按此

    1. 按下綠色的「 Clone or download 」按鈕;
    1. 按下綠色的「 Clone or download 」按鈕;

    2. 按下「 Download ZIP 」按鈕。完成下載後解壓檔案放到「 ~/Documents 」目錄裡整理起來較容易;
    2. 按下「 Download ZIP 」按鈕。完成下載後解壓檔案放到「 ~/Documents 」目錄裡整理起來較容易;

    2. Haar Cascade 分類器檔案

    人臉分類方式有根據眼、眉、嘴、鼻等器官的特徵,以及相互之間幾何關係作檢測標準,當中會進行階層式分類( Cascade )。 選用 Haar Cascade ,一方面是 OpenCV 範例中已經附有一批已訓練好、針對不同辨識對象的 Haar Cascade 分類器,而且操作簡單效能好,在程式中指定所用的 classifiers XML 檔案,就能快速檢測影像中的物件,例如人臉辨識。本文就選用了「 haarcascade_frontalface_default.xml 」這個正面人臉分類器。
    網址:haarcascade_frontalface_default.xml

    1. 右擊「 RAW 」按鈕;2. 選擇「 Save Link As... 」將檔案儲存在 setup.py 同一目錄裡。
    1. 右擊「 RAW 」按鈕;2. 選擇「 Save Link As… 」將檔案儲存在 setup.py 同一目錄裡。

    次號預告

    這一篇我們已經準備好系統和所需的程式,「 1 分鐘製人臉辨識」第三部我們就實際試試收集人臉、訓練辨識器和進行辨識,了解人臉辨識過程中做了甚麼,還會簡介一下如何透過多線程方式來提升人臉辨識的效能。萬勿錯過。

    延伸閱讀

    https://www.pcmarket.com.hk/2019/10/02/ai%e5%b9%b3%e6%b0%91%e5%8c%96-1%e5%88%86%e9%90%98%e8%a3%bd%e4%ba%ba%e8%87%89%e8%be%a8%e8%ad%98-%e4%b8%80-%e5%99%a8%e6%9d%90%e7%af%87/
    https://www.pcmarket.com.hk/2019/10/06/ai%e5%b9%b3%e6%b0%91%e5%8c%96-1%e5%88%86%e9%90%98%e8%a3%bd%e4%ba%ba%e8%87%89%e8%be%a8%e8%ad%98-%e4%b8%89-%e9%81%8b%e7%94%a8%e7%af%87/

    您會感興趣的內容

    相關文章