人工智能APP-人臉識別Face Detection


近來,人工智能十分火熱,各類應用也越來越多。人工智能APP

人工智能需要大量數據作為燃料,還需要大量運算,會給人一種高深莫測的感覺。

實際上,AI也不是可望不可即的,因為很多企業都提供了API,多層的處理他們都解決了,我們需要只是調用結果,對人工智能的運用也是可以實現普及化的。

我們也可以利用APP Inventor結合各類API或插件(aix)的運用,使APP更聰明,是值得我們探究的!

人臉識別Face Detection        aia源碼與素材     aix擴展組件

主要是利用插件中的FaceDetection組件,將選擇的圖像上傳到服務器中進行檢測,並返回結果(JSON數據)。

再APP中利用返回的JSON數據,進行繪制識別結果的線條等等。

在AI2平台中導入項目A_SimpleFaceDetect1_0.aia,查看分析程序設計。

1、插件的應用

將下載解壓得到的aix擴展組件 cn.edu.scut.cs.mlx.aix導入到app inventor的項目中。

  

 

2、組件方法一覽

3、上傳圖片

1. 使用圖像選擇框等組件獲取JPG格式圖像文件的路徑
2. 調用UploadAndUseImage, 將圖像上傳到服務器
3. 上傳結束后, 產生ImageUploadFinished事件,此時可以通過GetUploadedImageURL獲取圖像的URL。如果URL為空,則表示上傳失敗。

注意:上傳的圖像必須為JPG格式,且大小<5MB。

如果不滿足條件,可以用畫布轉換格式,或TaifunImage等圖像處理插件將圖像縮小。

4、處理檢測結果

(1) 索引值index從1開始。
(2)GetDetectionBox返回的是一個四項的列表,包含物體包圍框的左上角坐標(xmin, ymin)和右下角坐標(xmax, ymax)。四個數字范圍都在[0, 1]之間。
(3) GetDetectionEncoding返回一個128維向量,可用於比較人臉的相似度。
(4)GetDetectionLandmarkPositions返回坐標(x, y)的列表, 范圍在[0, 1]之間。

5、獲得的原始JSON數據

(1)使用RawJSONData方法獲取原始JSON數據。每一張檢測到的人臉都有location, landmark和encoding數據。

 

[

   {

        "location": [

            0.4280155642023346,

            0.350187265917603,

            0.5680933852140078,

            0.552434456928839

        ],

        "landmark": {

            "top_lip":[

                [0.47470817120622566,0.4850187265917603],

                [0.48378728923476005,0.4794007490636704],

                ...

            ],

            "nose_tip":[...],

            "nose_bridge":[...],

            ...

        },

        "encoding": [

            -0.09882616251707077,

            0.03372788056731224,

            0.0321364663541317,

            -0.04331062361598015,

            -0.15623915195465088,

            -0.031561896204948425,

            -0.021884676069021225,

            -0.051772814244031906,

            0.17310640215873718,

            -0.16299796104431152,

            0.10914535820484161,

            ...

        ]

   },

   ...

]

 

(2)location為人臉包圍框的坐標數據。


按順序為左上坐標和右下坐標。
坐標0.4280155642023346等是歸一化后的結果,可以分別乘上
圖像的寬和高,得到以像素為單位的實際坐標。

(3)landmark為器官位置坐標數據,每一個器官有坐標列表:

"landmark": {
    "top_lip": [
        [0.47470817120622566, 0.4850187265917603],
        [0.48378728923476005, 0.4794007490636704],
        ...
    ],
    "nose_tip": [...],
    "nose_bridge": [...],
    ...
},

坐標0.47470817120622566, 0.4850187265917603等是歸一化后的結果,可以分別乘上圖像的寬和高,得到以像素為單位的實際坐標。

6、將相應的數據在畫布上畫線,繪制出檢測的結果

繪制五官輪廓效果

繪制人臉位置方框

練習任務:

理解程序邏輯設計代碼,嘗試修改實現:在下方的畫布2顯示繪制人臉的輪廓線條。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM