国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt5界面附源碼

這篇具有很好參考價值的文章主要介紹了基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt5界面附源碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、人臉識別

人臉識別是一門比較成熟的技術。

它的身影隨處可見,刷臉支付,信息審核,監(jiān)控搜索,人臉打碼等。

更多的時候,它是方便了我們的生活,足不出戶,就可以實現(xiàn)各種 APP 的實名認證,信息審核。

一些公司,也都有對內部員工開放的刷臉支付系統(tǒng),不用帶手機,不用帶工卡,帶著一張或美麗或帥氣的臉龐,就可以在公司內部「買買買,刷刷刷」。

二、人臉打碼

除了這些常規(guī)操作,還可以對視頻里的特定人物進行打碼。

對于視頻,人工后期的逐幀處理,打碼任務無疑是個「體力活」。

但如果結合臉識別技術,那這個任務就會簡單很多。

本文從原理出發(fā),講解人臉識別技術的視頻打碼應用。

過濾視頻的敏感人物,就這么簡單!

三、人臉識別技術

人臉識別技術包涵了多種算法,整個流程大致如下:

??? 使用檢測技術,檢測出人臉位置。
??? 使用 landmark 技術,檢測出人臉關鍵點。
??? 根據(jù)人臉位置和人臉關鍵點,裁剪出人臉區(qū)域,并根據(jù)關鍵點將人臉圖片進行矯正,得到「標準臉」。
??? 計算「標準臉」的人臉特征向量。
??? 與「人臉庫」的人臉特征向量比對,計算向量的距離,找到最接近的人,輸出人臉識別結果。


1、人臉檢測

輸入:原始的可能含有人臉的圖像。

輸出:人臉位置的 bounding box。

這一步一般我們稱之為“人臉檢測”(Face Detection),人臉檢測算法,可以使用的庫有很多,例如 OpenCV、dlib、face_recognition、RetianFace、CenterFace 等等。

太多了,數(shù)不過來。

當然,自己用 yolo 、ssd 這類經(jīng)典的檢測算法,自己實現(xiàn)一個也是可以的。
2、人臉裁剪及矯正

輸入:原始圖像 + 人臉位置 bounding box。

輸出:“校準”過的只含有人臉的圖像。

這一步需要使用 landmark 算法,檢測人臉中的關鍵點,然后根據(jù)這些關鍵點對人臉做對齊校準。

所謂的關鍵點,就是下圖所示的綠色的點,通常是眼角的位置、鼻子的位置、臉的輪廓點等等。

有了這些關鍵點后,我們就可以把人臉“校準”,或者說是“對齊”。

解釋就是原先人臉可能比較歪,這里根據(jù)關鍵點,使用仿射變換將人臉統(tǒng)一“擺正”,盡量去消除姿勢不同帶來的誤差。這一步我們一般叫 Face Alignment 。
3、人臉特征

輸入:校準后的單張人臉圖像。

輸出:一個向量表示。

這一步就是使用深度卷積網(wǎng)絡,將輸入的人臉圖像,轉換成一個向量的表示。這個向量就是人臉的特征,例如:

這密密麻麻的 128 維的向量,就是一張人臉的特征,你也可以叫做人臉的編碼。

提取特征這種事,卷積神經(jīng)網(wǎng)絡很在行。

舉個例子,VGG16 是深度學習中一個比較簡單的基本模型。

輸入卷積神經(jīng)網(wǎng)絡的是圖像,經(jīng)過一系列卷積后,全連接分類得到類別概率。

整個過程是這樣的:

其實,卷積神經(jīng)網(wǎng)絡不斷的進行卷積,下采樣,這就是一個提取特征的過程,最后通過全鏈接層得到類別概率。

人臉特征提取,我們也可以這么操作。我們可以去掉全連接層,用計算的特征(一般就是卷積層的最后一層,e.g. 圖中的conv5_3)來當作提取的特征進行計算。

與分類任務不同的是,最后使用的 loss 損失函數(shù)是不同的。

在理想的狀況下,我們希望“向量表示”之間的距離就可以直接反映人臉的相似度:

??? 對于同一個人的人臉圖像,對應的向量的歐幾里得距離應該比較小。
??? 對于不同人的人臉圖像,對應的向量之間的歐幾里得距離應該比較大。

所以,每個人臉的類別中心,應該盡可能遠一些,這樣才能用于區(qū)別不同的人。

人臉常用的 loss 有 center loss 、 arcface loss 等。

人臉識別類似于,細粒度的分類。

訓練過分類任務的,應該都知道。

訓練人和豬的二分類,很好訓練,因為人和豬的特征差別很明顯。

但訓練男人和女人的二分類,就要難一些,因為男人和女人的特征很相近。

為了更好區(qū)分男人和女人,就需要使用類別中心間距大的損失函數(shù)。

人臉識別,更是一種細粒度的區(qū)分,都是人,但你要區(qū)分出張三、李四、王二麻。

4、人臉識別

人臉識別,一般是需要建立一個「檢索庫」。

簡單解釋一下,我們要識別張三、李四、王二麻。

那么,我們就要選張三、李四、王二麻每個人的 10 張(自己定)圖片。

然后使用我們訓練好的人臉特征模型,提取每個人的人臉特征。

這樣每個人,就都有 10 個人臉特征了,這就是一個「檢索庫」。

需要識別的圖片,提取人臉特征后,依次與檢索庫已有的人臉特征去比對,投票選出最接近的人。

四、人臉打碼

人臉識別技術原理清楚了,我們就可以使用這個技術,給仝卓打碼。

可以看到,人臉識別技術涉及到的算法較多,自己依次實現(xiàn)是需要時間的。

但這,難不倒身為優(yōu)秀「調包俠」的我。

開源的第三方庫有很多,比如 mediapipe。

里面集成了人臉檢測、人臉識別等接口。

使用人臉識別技術,對這一小段視頻,給人臉進行打碼。

整理一下思路:

首先,我們使用 opencv 這類的程序處理視頻,只能處理畫面,不能處理聲音。

所以,需要先將音頻保存,再將處理好的視頻和音頻進行合成,這樣既保證了畫面打碼,又保證了聲音還在。

這塊可以使用mediapipe實現(xiàn)。

視頻演示:

基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt

import cv2
import mediapipe as mp


class FaceDetector:
    def __init__(self):
        self.mp_face_detection = mp.solutions.face_detection
        self.mp_drawing = mp.solutions.drawing_utils

    def rectangle(self, image, mosaic_level):
        success = False
        cv2.imwrite('middle_pic/before_handle.jpg', image)
        with self.mp_face_detection.FaceDetection(
                min_detection_confidence=0.5) as face_detection:

            # Flip the image horizontally for a later selfie-view display, and convert
            # the BGR image to RGB.
            # image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
            image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
            # To improve performance, optionally mark the image as not writeable to
            # pass by reference.
            image.flags.writeable = False
            results = face_detection.process(image)

            # Draw the face detection annotations on the image.
            image.flags.writeable = True
            image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
            if results.detections:
                for detection in results.detections:
                    h, w, c = image.shape

                    xmin = int(detection.location_data.relative_bounding_box.xmin * w)
                    ymin = int(detection.location_data.relative_bounding_box.ymin * h)
                    width = int(detection.location_data.relative_bounding_box.width * w)
                    height = int(detection.location_data.relative_bounding_box.height * h)
                    xmax = xmin + width
                    ymax = ymin + height
                    if xmax > w:
                        width = w - xmin
                    if ymax > h:
                        height = h - ymin

                    self.do_mosaic(image, xmin, ymin, width, height, int(mosaic_level * 0.2 * width))
                    # 畫矩形框
                    # image = cv2.rectangle(image, (xmin, ymin), (xmin + width, ymin + height), (0, 255, 0), 2)
                    success = True
                    cv2.imwrite('middle_pic/after_handle.jpg', image)

            return image, success

    # 正規(guī)馬賽克
    def do_mosaic(self, img, x, y, w, h, neighbor):
        """
        :param rgb_img
        :param int x :  馬賽克左頂點
        :param int y:  馬賽克左頂點
        :param int w:  馬賽克寬
        :param int h:  馬賽克高
        :param int neighbor:  馬賽克每一塊的寬
        """
        for i in range(0, h, neighbor):
            for j in range(0, w, neighbor):
                rect = [j + x, i + y]
                color = img[i + y][j + x].tolist()  # 關鍵點1 tolist
                left_up = (rect[0], rect[1])
                x2 = rect[0] + neighbor - 1  # 關鍵點2 減去一個像素
                y2 = rect[1] + neighbor - 1
                if x2 > x + w:
                    x2 = x + w
                if y2 > y + h:
                    y2 = y + h
                right_down = (x2, y2)
                cv2.rectangle(img, left_up, right_down, color, -1)  # 替換為為一個顏值值

        return img

基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt5界面附源碼

后續(xù)又加入登陸注冊功能:

基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt5界面附源碼文章來源地址http://www.zghlxwxcb.cn/news/detail-432482.html

項目下載:https://download.csdn.net/download/babyai996/87731913

到了這里,關于基于深度學習mediapipe的人臉打碼人臉模糊教程pyqt5界面附源碼的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 畢設--基于深度學習的人臉識別(詳細步驟+代碼)

    最近閑來無事,想寫一個本人畢設基于深度學習的人臉識別文章。我主要利用兩個不同的神經(jīng)網(wǎng)絡進行實現(xiàn),分別是一個簡單三層的卷積神經(jīng)網(wǎng)絡和結構復雜的VGG16神經(jīng)網(wǎng)絡,并比對了兩種網(wǎng)絡訓練出的模型的識別效果。從最終的結果來看,與預想的一樣結構更復雜的VGG16的效

    2024年01月19日
    瀏覽(30)
  • 計算機競賽 基于深度學習的人臉表情識別

    計算機競賽 基于深度學習的人臉表情識別

    ?? 優(yōu)質競賽項目系列,今天要分享的是 基于深度學習的人臉表情識別 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 面部表情識別技術源于1971年心理學家Ekman和Friesen的一項研究,他們提出人類主要有

    2024年02月10日
    瀏覽(860)
  • 基于深度學習的人臉表情識別 計算機競賽

    基于深度學習的人臉表情識別 計算機競賽

    ?? 優(yōu)質競賽項目系列,今天要分享的是 基于深度學習的人臉表情識別 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 面部表情識別技術源于1971年心理學家Ekman和Friesen的一項研究,他們提出人類主要有

    2024年02月06日
    瀏覽(786)
  • 基于深度學習的AI生成式人臉圖像鑒別

    基于深度學習的AI生成式人臉圖像鑒別

    AIGC(AI內容生成)技術的快速發(fā)展確實為創(chuàng)作者提供了高效生產(chǎn)力工具,但同時也引發(fā)了一些問題和挑戰(zhàn)。這些技術可以生成以假亂真的圖像、視頻換臉等,給不法分子提供了濫用的機會。其中,一些不法分子可能利用AIGC技術制造虛假新聞、違反版權、繞過活體身份驗證、散

    2024年02月10日
    瀏覽(17)
  • 【深度學習】基于Qt的人臉識別系統(tǒng),門禁人臉識別系統(tǒng),Python人臉識別流程,樹莓派

    【深度學習】基于Qt的人臉識別系統(tǒng),門禁人臉識別系統(tǒng),Python人臉識別流程,樹莓派

    在深度學習領域做人臉識別的識別準確率已經(jīng)高到超出人類識別,但綜合考慮模型復雜度(推理速度)和模型的識別效果,這個地方還是有做一些工作的需求的。 人臉識別的過程基本由下面的流程組成。 yolov5-face、yolov7-face等github項目都可以做到這一點,在公開數(shù)據(jù)集上訓練

    2024年02月09日
    瀏覽(25)
  • 基于YOLOv8深度學習的智能肺炎診斷系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓練代碼】深度學習實戰(zhàn)

    基于YOLOv8深度學習的智能肺炎診斷系統(tǒng)【python源碼+Pyqt5界面+數(shù)據(jù)集+訓練代碼】深度學習實戰(zhàn)

    《博主簡介》 小伙伴們好,我是阿旭。專注于人工智能、AIGC、python、計算機視覺相關分享研究。 ? 更多學習資源,可關注公-仲-hao:【阿旭算法與機器學習】,共同學習交流~ ?? 感謝小伙伴們點贊、關注! 《------往期經(jīng)典推薦------》 一、AI應用軟件開發(fā)實戰(zhàn)專欄【鏈接】

    2024年01月23日
    瀏覽(26)
  • 競賽保研 基于設深度學習的人臉性別年齡識別系統(tǒng)

    競賽保研 基于設深度學習的人臉性別年齡識別系統(tǒng)

    ?? 優(yōu)質競賽項目系列,今天要分享的是 基于深度學習機器視覺的人臉性別年齡識別系統(tǒng) 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ?? 更多資料, 項目分享: https://gitee.com/dancheng-senior/postgraduate 隨著大數(shù)據(jù)與人工智能逐漸走入人們的生活,計算機視覺應用越

    2024年01月17日
    瀏覽(905)
  • 競賽選題 基于深度學習的人臉性別年齡識別 - 圖像識別 opencv

    競賽選題 基于深度學習的人臉性別年齡識別 - 圖像識別 opencv

    ?? 優(yōu)質競賽項目系列,今天要分享的是 ?? 畢業(yè)設計 人臉性別年齡識別系統(tǒng) - 圖像識別 opencv 該項目較為新穎,適合作為競賽課題方向,學長非常推薦! ??學長這里給一個題目綜合評分(每項滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:3分 ?? 更多資料, 項目分享: https

    2024年02月07日
    瀏覽(95)
  • 【深度學習】基于卷積神經(jīng)網(wǎng)絡(tensorflow)的人臉識別項目(一)

    【深度學習】基于卷積神經(jīng)網(wǎng)絡(tensorflow)的人臉識別項目(一)

    ? 活動地址:CSDN21天學習挑戰(zhàn)賽 經(jīng)過前段時間研究,從LeNet-5手寫數(shù)字入門到最近研究的一篇天氣識別。我想干一票大的,因為我本身從事的就是C++/Qt開發(fā),對Qt還是比較熟悉,所以我想實現(xiàn)一個基于Qt的界面化的一個人臉識別。 對卷積神經(jīng)網(wǎng)絡的概念比較陌生的可以看一看

    2024年02月04日
    瀏覽(111)
  • 【深度學習】基于卷積神經(jīng)網(wǎng)絡(tensorflow)的人臉識別項目(四)

    【深度學習】基于卷積神經(jīng)網(wǎng)絡(tensorflow)的人臉識別項目(四)

    經(jīng)過前段時間研究,從LeNet-5手寫數(shù)字入門到最近研究的一篇天氣識別。我想干一票大的,因為我本身從事的就是C++/Qt開發(fā),對Qt還是比較熟悉,所以我想實現(xiàn)一個界面化的一個人臉識別。 對卷積神經(jīng)網(wǎng)絡的概念比較陌生的可以看一看這篇文章:卷積實際上是干了什么 想了解

    2024年01月17日
    瀏覽(990)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包