更多

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

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

    Facebook 與多間機構 合作推青年身心抗疫服務

    疫情第N波,病毒和環境不斷改變,身心也需要作出調整。疫情期間需要口罩、勤洗手等實質個人護理外,也需要心靈上調整。過往本地有新生康復會推出身心靈( 330 )一系列網上資料,現在 Facebook 與多間機構聯合推出「 #HearForYou同行計劃 」。

    Facebook 對用戶轉發舊聞發出提醒

    在資訊爆發的年代,隨著人們面對大量訊息,而部份處理資訊的人面對訊息確實心有餘力而不足,其中一種情況是轉發舊聞。只是在疫情期間,這行為或會增加人們的心理負擔。 Facebook 面對此問題,添加一項小功能,當分享文章超過九十天,會立即向用戶進行提醒,有望轉發內容質素有所提升。

    Google 推出新認證計劃 發展新聞行業

    Google 以科技為核心,由科技著眼的新聞會有不一樣的角度,例如更注重客觀數據,展示新意念或無圖的抽像新聞時也可用 VR 等技術加入視覺描述,甚至打造出一個全新平台,由個人為主導,而再不需要由各大企業聾斷的媒體新聞事業,描繪如此美好,但這樣的計劃或平台是否沒有其他問題?

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

    系統準備

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

    作業系統和預載程式

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

    相關文章