亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        MediaPipe“面部網(wǎng)格”識別

        2023-06-06 11:02:47牟曉東
        電腦報 2023年21期
        關鍵詞:關鍵點程序檢測

        牟曉東

        MediaPipe是一個機器學習(MachineLearning)視覺算法工具庫,我們已經(jīng)體驗過它的手勢識別與跟蹤功能,它的“面部網(wǎng)格”(FaceMesh)識別應用可以快速地從圖像或視頻畫面中進行人臉的3D網(wǎng)格重建,實時檢測人臉的468個關鍵點以及10個瞳孔關鍵點。

        你可以對比GitHub中這張標注有478個關鍵點的人臉模型網(wǎng)格可視化示意圖(https://github.com/google/mediapipe/blob/master/mediapipe/modules/face_geometry/data/canonical_face_model_uv_visualization.png),了解面部各個關鍵點,比如上嘴唇的中上為0、鼻子的中間為2、眉心處為8,臉的正中頂端是10、底端下巴尖為152,左右兩側則分別為234和454……每一組相鄰的三個標注點均通過連線構成一個三角形,因此被稱為“面部網(wǎng)格”(如圖1)。

        下面我們分別測試對靜態(tài)圖像文件和攝像頭監(jiān)控畫面中的人臉進行“面部網(wǎng)格”識別的效果。

        1.識別圖像文件的人臉

        首先,導入OpenCV和MediaPipe庫模塊:“importcv2”、“importmediapipeasmp”;接著,調(diào)用與配置人臉關鍵點的檢測模型,建立變量mp_face_mesh,賦值為“mp.solutions.face_mesh”;再建立變量model,賦值為“mp_face_mesh.FaceMesh(static_image_mode=True,refine_landmarks=True,max_num_faces=5,min_detection_confidence=0.5,min_tracking_confidence=0.5,)”;其中的“static_image_mode”參數(shù)的值為True表示檢測模式為靜態(tài)圖像(檢測視頻時應該設置為False),“refine_landmarks”參數(shù)的值為True表示對嘴唇、眼睛和瞳孔等關鍵點進行精細定位,“max_num_faces”參數(shù)表示每次最多檢測的人臉數(shù)目為5;“min_detection_confidence”和“min_tracking_confidence”參數(shù)的值均為0.5,分別表示置信度和追蹤的閾值(越接近1越精準)。

        然后,進行人臉面部網(wǎng)格可視化函數(shù)和可視化樣式的導入:建立變量mp_drawing,賦值為“mp.solutions.drawing_utils”;建立變量mp_drawing_styles,賦值為“mp.solutions.drawing_styles”。再建立變量img,賦值為“cv2.imread('persons.jpg')”,利用OpenCV讀入當前目錄中的圖像文件persons.jpg;建立變量img_RGB,賦值為“cv2.cvtColor(img,cv2.COLOR_BGR2RGB)”,作用是轉換圖像模式(從BGR轉為RGB);建立變量results,賦值為“model.process(img_RGB)”,作用是將轉換為RGB模式后的圖像輸入至面部網(wǎng)格模型,此時可再添加一條“print("檢測到人臉的數(shù)目為:",len(results.multi_face_landmarks))”語句來輸出顯示檢測到幾張有效的人臉。

        接下來,進行人臉面部網(wǎng)格的整體輪廓、眼眉、眼眶、嘴唇以及瞳孔的繪制。建立變量annotated_image并賦值為“img.copy()”,作用是復制生成副本圖像文件;如果檢測到人臉(“ifresults.multi_face_landmarks:”),則開始遍歷每一張人臉:“forface_landmarksinresults.multi_face_landmarks:”,通過調(diào)用“mp_drawing.draw_landmarks”并修改其中的參數(shù)分別來繪制“tesselation”曲面細分、“contours”外形(包括眼眉、眼眶和嘴唇)和“iris”瞳孔,其中各參數(shù)均保持默認的可視化樣式即可,而且三次調(diào)用“mp_drawing.draw_landmarks”的模式幾乎完全相同,只需要修改對應項目的參數(shù)值。最后,添加新圖像文件生成保存的語句:“cv2.imwrite('result.jpg',annotated_image)”,并將程序保存為“[01]Static_Faces.py”(如圖2)。

        準備四張靜態(tài)圖像文件分別進行測試:第一張是不戴眼鏡和口罩的單人正面照,經(jīng)程序檢測后正確識別并標注了臉的整體輪廓、眼眉、眼眶、瞳孔(雙眼以紅色和綠色進行區(qū)分)以及嘴唇;第二張是戴眼鏡和口罩的單人正面照,程序同樣也進行了正確識別,包括口罩所遮擋的鼻子、嘴唇等臉的下半部均做了“猜想”式標注;第三張是多人正面照,程序識別并標注了四張人臉的面部網(wǎng)格,嘴唇或眼睛等個別位置有一定的誤差,有遮擋的“半張臉”并未進行標注;第四張是多人側面照,三張人臉均識別并在遮擋的一側也進行了“猜想”式標注,效果非常理想(如圖3)。

        2.識別攝像頭監(jiān)控畫面中的人臉

        由于人臉“面部網(wǎng)格”識別部分的代碼幾乎完全相同,所以先將“[01]Static_Faces.py”復制粘貼為“[02]Camera_Faces.py”,來進行代碼的修改:從開始庫模塊的導入到調(diào)用與配置人臉關鍵點的檢測模型部分,只需將變量model中的“static_image_mode”參數(shù)值設置為False;然后,新定義一個名為get_frame(img)的函數(shù),作用是處理攝像頭監(jiān)控中的每一幀畫面,將之前從變量img_RGB存儲BGR至RBG轉換后的圖像,一直到調(diào)用“mp_drawing.draw_landmarks”繪制人臉的各部分區(qū)域,最后再通過“returnimg”返回處理好的圖像。

        程序的后半部分代碼是讀取攝像頭監(jiān)控畫面、調(diào)用函數(shù)get_frame(img)來處理單幀圖面、熱鍵q響應程序退出等操作代碼(包括釋放攝像頭資源及關閉窗口),不再一一贅述(如圖4)。

        運行程序進行各種測試,包括正面的裸眼直視、戴眼鏡、戴口罩、加小人偶“同鏡”以及張嘴、小幅度的偏頭等,程序?qū)θ四樀拿娌烤W(wǎng)格識別效果也都還不錯(如圖5)。

        猜你喜歡
        關鍵點程序檢測
        聚焦金屬關鍵點
        肉兔育肥抓好七個關鍵點
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        試論我國未決羈押程序的立法完善
        人大建設(2019年12期)2019-05-21 02:55:44
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        小波變換在PCB缺陷檢測中的應用
        創(chuàng)衛(wèi)暗訪程序有待改進
        国产精品一区二区三区免费视频| 一区二区三区在线观看视频免费 | 亚洲最稳定资源在线观看| 亚洲av手机在线观看| 免费观看a级毛片| 成人片黄网站色大片免费观看cn | 免费无遮挡禁18污污网站| 国产精品公开免费视频| 国产一区二区三区资源在线观看| 精品国产一区二区三区久久女人| 漂亮人妻被强中文字幕乱码 | 久久青青草原一区网站| 亚洲国产精品久久久久久无码| 亚洲旡码a∨一区二区三区| 久久道精品一区二区三区| 久亚洲一线产区二线产区三线麻豆| 无码国产精品一区二区av| 亚洲av一宅男色影视| 国产成人精品男人的天堂网站| 可以直接在线看国产在线片网址| 最新日本一道免费一区二区 | 国产成人77亚洲精品www| 国产av在线观看91| 精品无码久久久久久久久| 国产高潮国产高潮久久久| 国产自精品在线| 国产成人自拍视频播放| 青春草在线视频免费观看| 狠狠狠色丁香婷婷综合激情| 日韩人妻免费一区二区三区| 亚洲最新无码中文字幕久久| 少妇脱了内裤让我添| 国产丰满乱子伦无码专| 日韩av天堂一区二区| 无码av天堂一区二区三区| 久久人人做人人妻人人玩精| 国产激情小视频在线观看| 成人免费无遮挡在线播放| 国产人成午夜免电影观看| 国产午夜精品av一区二区三| 真人抽搐一进一出视频|