更多

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

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

    Signal 快速上手 簡易設定兼快手開 group

    潮流興社交移民,但小編認為這不是單純移民持有單一國籍的想法。現時的狀況比較像是多了一個電視台,當巿場上有多一個平台可供選擇支持的話,只要大家樂意支持,就有機會促進巿場良性競爭,日後也可就個人情況使用,多一個機會實行 Work-life balance ,何樂而不為。事實上,科技世界的新服務往往比舊服務更能徹底改進。過往香港科技界亦曾發生,由 ICQ 轉至 msn messenger ,再轉至 Signal ,改變始於起動,而且現實也許沒有想像中困難和緩慢。

    WhatsApp 提示用戶新私隱條款 2 月 8 日生效 用戶必須向 Facebook 分享資料才能繼續使用

    WhatsApp 於 1 月 4 日公佈更改私隱條款,雖然現在網頁中強調保護私隱,但接著續說 WhatsApp 是 Facebook 的一員,因此 WhatsApp 會與所屬的成員公司共享資訊。換句說話, WhatsApp 與 Facebook 正式 Connect,資料按照眾多條款下會被共用,而作為用家的你有選擇嗎?

    2021 科技教育趨勢

    2020 年初談及科技教育路向發展是關於 STEM 的普及化,而 AI 會加以推動,於編排上一切有跡可尋;只是 2020 年一切不完全符合預期,全球步伐隨著疫情發展均備受挑戰,教育正是其中之一;但每次有危亦會有機,本文正嘗試回顧 2020 ,並展望 2021 年的科技教育趨勢。

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

    系統準備

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

    作業系統和預載程式

    本文的所使用的作業系統是 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/

    您會感興趣的內容

    相關文章