iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
AI & Data

[Computer Vision] 電腦視覺下的人臉系列 第 5

[Day5] Face Detection - 使用Google ML Kit (Android)

Google ML Kit
reference: ithome - Google更新行動機器學習開發套件ML Kit,不再依賴Firebase雲端開發平臺

Google ML Kit (前身為Firebase ML-Kit)是由Google所開發的機器學習開發套件:

  1. 主要提供在行動裝置上的應用程式開發機器學習技術 (iOS和Android)
  2. 可以在行動裝置上離線使用機器學習運算,避免敏感資料外洩

本文開始

註:由於Google ML Kit是目前新的解決方案,不建議使用Firebase ML Vision sdk;本文撰寫會使用ML Kit,不會使用到任何Firebase的功能,請留意差別

在Android上開發

使用套件一定都是要讀官方文件、或是官方Samples。這裡我們就直接使用官方提供的Samples來實際使用看看吧!

  1. 準備好Android Studio開發環境

  2. 下載Google在Github上的ML Kit Vision Quickstart Sample,下載下來後是壓縮檔(.zip),請解壓縮vision-quickstart專案到你喜歡的目錄下

  3. 開啟Android Studio,開啟剛才的專案vision-quickstart
    ml_kit_import
    開啟之後如果遇到gradle版本與java版本不符或其他錯誤問題,請自行搜尋google或留言在下面,我會儘快回覆

  4. 開啟之後會需要等待Gradle進行專案初始化,完成後應該會看到BUILD SUCCESSFUL這個工程師都愛的句子
    有關ML Kit sdk的API說明,Google這份文件說的很清楚,這邊只就其中幾個重點提一下:

    • 初始化臉部辨識最主要的物件
      # com/google/mlkit/vision/demo/java/facedetector/FaceDetectorProcessor.java #47行
      detector = FaceDetection.getClient(faceDetectorOptions);
      
      其中的faceDetectorOptions有幾個參數
      • setLandmarkMode:會產生人臉關鍵點標示
      • setContourMode:會用線標示人臉的"形狀"
    • 在進行即時攝影機人臉偵測時,把解析度調到480 x 360可以有很明顯的辨識速度提升
    • ML Kit是會預先下載到手機上的,透過手機的資源來做運算;因此手機在安裝完App後是可以不用網路來做辨識的
  5. 打開右上角的AVD Manager -> 點選跳出視窗左下角的「Create Virtual Device」->選擇Phone、Pixel 2、System image選Oreo(API Level 26),沒有安裝請先點Download、Configuration欄位打開Advanced Settings,選Front=Webcam0這樣才可以使用攝影機
    ml_kit_avd_manager

    ml_kit_avd_1

    ml_kit_avd_2

    ml_kit_avd_3

  6. 建立完AVD後,點選列表中Pixel 2 API 26旁的啟動按鈕
    ml_kit_avd_4

  7. 在主畫面應該會看到模擬器啟動了,接下來讓我們打包App吧!
    ml_kit_home

  8. 點選主畫面上方的Build -> Select Build Variant,跳出的視窗中,在Active Build Variant選擇debug
    ml_kit_build_select

    ml_kit_build_select_1

  9. 等待Build過程,你可以熟悉一下手機模擬器的一些操作...完成後,請點選右上角的Run 'app'
    ml_kit_run
    註:如果你的"手機"進入螢幕保護程式(畫面全黑),請點選上方功能列的電源按鈕解鎖即可
    ml_kit_power

  10. 開啟畫面後:

我們用Java版的ML試看看
ml_kit_emu_1

選擇LivePreviewActivity
ml_kit_emu_2

進入畫面後,先選擇Face Detection
ml_kit_emu_3

點選左邊的切換鏡頭圖示,如果前面你有開啟設定AVD Emulator的前鏡頭,應該會看到:
ml_kit_emu_4
轉一下手機
ml_kit_emu_5

把你的臉靠近鏡頭,應該會看到你被標示了
ml_kit_emu_6

改一下設定(右下角的齒輪圖示):

  • Detection Info: Hide detection info打開
  • Face Detection:
    • Landmark mode選擇All landmarks (只標示主要五官位置)
    • Contour mode選擇No Contours
    • Classification mode選擇All classifications (辨識臉部的基本表情與眼睛是否開啟)
    • Minimum face size改成0.05 (避免辨識需要太靠近鏡頭,讓臉部比例小一點也可以辨識)

ml_kit_emu_7

可以看到戴上口罩也可以成功偵測,Google ML Kit的辨識效果也不差。你也試著玩看看其他設定吧!

如果是使用Mac開發的人就See you tomorrow~


上一篇
[Day4] Face Detection - 使用Google Cloud Vision API
下一篇
[Day6] Face Detection - 使用Google ML Kit (iOS)
系列文
[Computer Vision] 電腦視覺下的人臉30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言