0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

請(qǐng)問(wèn)如何在OriginBot上實(shí)現(xiàn)人臉識(shí)別呢?

新機(jī)器視覺(jué) ? 來(lái)源:古月居 ? 2024-01-22 16:24 ? 次閱讀

人臉識(shí)別

大家在生活中經(jīng)常會(huì)看到在我們進(jìn)入商城時(shí),門(mén)口會(huì)有相機(jī)在拍攝我們,并且會(huì)統(tǒng)計(jì)有多少人數(shù)進(jìn)入商店,它是如何進(jìn)行人數(shù)量統(tǒng)計(jì)的呢?

這就是是計(jì)算機(jī)視覺(jué)領(lǐng)域的一項(xiàng)關(guān)鍵技術(shù)——人臉識(shí)別,它使計(jì)算機(jī)系統(tǒng)能夠自動(dòng)檢測(cè)、識(shí)別和驗(yàn)證圖像或視頻中的人臉。

人臉識(shí)別通過(guò)分析圖像中的人臉特征來(lái)執(zhí)行各種視覺(jué)任務(wù)。因?yàn)槠渲匾?,所以解決方法很多,如卷積神經(jīng)網(wǎng)絡(luò)(CNN)、級(jí)聯(lián)分類器等來(lái)提取和比對(duì)人臉特征。這些算法能夠處理各種光照、姿勢(shì)和表情條件下的人臉,從而實(shí)現(xiàn)高度準(zhǔn)確的識(shí)別。

硬件環(huán)境

OriginBot智能機(jī)器人

PC:Ubuntu (≥20.04) + ROS2 (≥Foxy)

代碼

 import cv2
  import cv_bridge
  import rclpy
  from rclpy.node import Node
  from sensor_msgs.msg import Image


  class FaceDetection(Node):
    def __init__(self):
      super().__init__('face_detection')
      self.classifier_path = "haarcascade_frontalface_default.xml"


      self.bridge = cv_bridge.CvBridge()
      self.face_cascade = cv2.CascadeClassifier(self.classifier_path)
      self.image_sub = self.create_subscription(Image, '/image_raw', self.image_callback, 10)
      self.pub = self.create_publisher(Image, '/camera/process_image', 10)


    def image_callback(self, msg):
      image = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
      gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
      faces = self.face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.2,
        minNeighbors=3,
        minSize=(20, 20)
      )


      if len(faces) > 0:
        for (x, y, w, h) in faces:
          cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)


      self.pub.publish(self.bridge.cv2_to_imgmsg(image, 'bgr8'))


  def main(args=None):
    rclpy.init(args=args)
    face_detection = FaceDetection()
    rclpy.spin(face_detection)
    face_detection.destroy_node()
    rclpy.shutdown()


  if __name__ == '__main__':
    main()

代碼分析

?Haar Cascade 分類器:Haar Cascade 分類器是一種對(duì)象檢測(cè)器,通過(guò)訓(xùn)練來(lái)識(shí)別特定的對(duì)象,這里主要用于人臉檢測(cè)。

self.classifier_path = “haarcascade_frontalface_default.xml” 指定了已經(jīng)訓(xùn)練好的人臉?lè)诸惼鞯穆窂健?/p>

?ROS2節(jié)點(diǎn)初始化:rclpy.init(args=args) 和 rclpy.shutdown() 分別用于初始化和關(guān)閉ROS2節(jié)點(diǎn)。

?圖像訂閱和發(fā)布:
self.image_sub = self.create_subscription(Image, ‘/image_raw’, self.image_callback, 10) 用于訂閱原始圖像。

self.pub = self.create_publisher(Image, ‘/camera/process_image’, 10) 用于發(fā)布處理后的圖像。

?圖像處理回調(diào)函數(shù):image_callback(self, msg) 處理訂閱的圖像,首先將ROS消息轉(zhuǎn)換為OpenCV圖像。

?將圖像轉(zhuǎn)換為灰度圖像:gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)。

?使用 Haar Cascade 分類器檢測(cè)人臉:faces = self.face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(20, 20))。

?如果檢測(cè)到人臉,用矩形標(biāo)記出來(lái):cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2)。最后,將處理后的圖像發(fā)布出去:self.pub.publish(self.bridge.cv2_to_imgmsg(image, ‘bgr8’))。

?ROS2節(jié)點(diǎn)主函數(shù):def main(args=None): 主函數(shù)初始化節(jié)點(diǎn),并通過(guò) rclpy.spin(face_detection) 進(jìn)行節(jié)點(diǎn)的運(yùn)行。

灰度圖像的重要性:

簡(jiǎn)要說(shuō)明

使用opencv實(shí)現(xiàn)人臉識(shí)別已經(jīng)是一個(gè)特別成熟的技術(shù)了,這里拋磚引玉希望大家出一個(gè)更nice的版本呀!

1、為什么要使用 Haar Cascade 分類器進(jìn)行人臉檢測(cè),Haar Cascade分類器的幾個(gè)參數(shù)是什么含義?

Haar Cascade 分類器是一種經(jīng)過(guò)訓(xùn)練的對(duì)象檢測(cè)器,特別適用于檢測(cè)面部特征,如人臉和眼睛。它具有高度準(zhǔn)確的檢測(cè)性能,因此廣泛用于計(jì)算機(jī)視覺(jué)任務(wù)。Haar Cascade 分類器的優(yōu)勢(shì)在于它可以在不同尺度和旋轉(zhuǎn)下檢測(cè)對(duì)象,而且速度相對(duì)較快。

scaleFactor 參數(shù)用于指定每個(gè)圖像尺度上要縮小圖像的比例。這使得分類器能夠檢測(cè)不同尺寸的對(duì)象,而不僅僅適用于特定尺寸的對(duì)象。通過(guò)在不同尺寸上運(yùn)行分類器,可以檢測(cè)到遠(yuǎn)處和近處的對(duì)象,使檢測(cè)更加全面。

minNeighbors 參數(shù)用于指定檢測(cè)到目標(biāo)后,要保留的鄰近目標(biāo)的最小數(shù)量。這有助于去除重疊的檢測(cè)結(jié)果。較大的值會(huì)過(guò)濾掉一些檢測(cè)結(jié)果,以確保只返回高置信度的檢測(cè)結(jié)果。這有助于減少誤報(bào)。

2、為什么需要將輸入圖像轉(zhuǎn)換為灰度圖像?

Haar Cascade 分類器通常在灰度圖像上運(yùn)行,因?yàn)榛叶葓D像只包含亮度信息,而不包含顏色信息。這簡(jiǎn)化了圖像處理,并使分類器能夠更好地識(shí)別對(duì)象的邊緣和紋理特征。此外,灰度圖像的計(jì)算量更小,因此處理速度更快。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:如何在OriginBot上實(shí)現(xiàn)人臉識(shí)別

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人臉識(shí)別技術(shù)原理解析

    概念:哪一部分?jǐn)?shù)據(jù)是水杯,哪一部分是書(shū)本,哪一部分是人臉,這是視覺(jué)模式識(shí)別中的粗分類問(wèn)題。  而人臉識(shí)別,需要在所有機(jī)器認(rèn)為是人臉的那部分?jǐn)?shù)
    發(fā)表于 12-23 23:17

    你周圍有人臉識(shí)別嗎?

    什么地方?該怎么用?今天就給大家普及一下人臉識(shí)別的知識(shí)。人臉識(shí)別應(yīng)用在家居和小區(qū)發(fā)面,想到安全,大家肯定第一時(shí)間都會(huì)想到所住地方的安全。首
    發(fā)表于 06-30 13:54

    加密芯片在人臉識(shí)別算法的保護(hù)與應(yīng)用

    引爆人臉識(shí)別的市場(chǎng)。那什么是人臉識(shí)別,具體有什么作用
    發(fā)表于 10-24 10:57

    LabVIEW人臉識(shí)別設(shè)計(jì)

    五一來(lái)臨之際,炎炎夏日到處車水馬龍,是不是在家好好學(xué)習(xí)的最佳時(shí)機(jī)?所以第二期,LabVIEW人臉識(shí)別設(shè)計(jì)“3天挑戰(zhàn)賽”,五一3天時(shí)間完成挑戰(zhàn)學(xué)費(fèi)全額退款!3天get新技能,是不是比吃雞還劃算。在
    發(fā)表于 04-28 10:00

    【AI技能解析】人臉識(shí)別是怎么做到的?

    識(shí)別支付場(chǎng)景】人臉識(shí)別這么火,那么它到底是怎么實(shí)現(xiàn)?看大牛為您解鎖人臉
    發(fā)表于 03-16 11:25

    如何去實(shí)現(xiàn)一種基于PCA算法的人臉識(shí)別程序

    如何去實(shí)現(xiàn)一種基于PCA算法的人臉識(shí)別程序?基于IAR開(kāi)發(fā)環(huán)境的CC1110F32的調(diào)試程序怎樣去編寫(xiě)
    發(fā)表于 11-04 07:02

    在嵌入式開(kāi)發(fā)板如何用opencv調(diào)用caffe模型進(jìn)行人臉識(shí)別并截圖

    在嵌入式開(kāi)發(fā)板如何用opencv調(diào)用caffe模型進(jìn)行人臉識(shí)別并截圖?其代碼該如何去實(shí)現(xiàn)?
    發(fā)表于 12-27 06:56

    何在Core-1126-JD4搭建一套類似的服務(wù)完成云人臉識(shí)別

    何在Core-1126-JD4搭建一套類似的服務(wù)完成云人臉識(shí)別?
    發(fā)表于 02-21 07:19

    如何實(shí)現(xiàn)基于ncnn的RK3399的mtcnn人臉檢測(cè)?

    何在RK3399燒錄安卓系統(tǒng)?如何實(shí)現(xiàn)基于ncnn的RK3399的mtcnn人臉檢測(cè)?
    發(fā)表于 03-04 07:29

    如何對(duì)RK3399的HDMI進(jìn)行人臉識(shí)別

    如何對(duì)RK3399的HDMI進(jìn)行人臉識(shí)別?如何對(duì)識(shí)別結(jié)果進(jìn)行模糊化處理
    發(fā)表于 03-07 12:48

    何在OpenHarmony使用SeetaFace2人臉識(shí)別庫(kù)?

    何在OpenHarmony使用SeetaFace2人臉識(shí)別庫(kù)?簡(jiǎn)介相信大部分同學(xué)們都已了解或接觸過(guò)OpenAtom OpenHarmony(以下簡(jiǎn)稱“OpenHarmony”)了,
    發(fā)表于 08-22 17:46

    用dlib實(shí)現(xiàn)人臉識(shí)別的技巧

    很多人都認(rèn)為人臉識(shí)別是一項(xiàng)非常難以實(shí)現(xiàn)的工作,看到名字就害怕,然后心懷忐忑到網(wǎng)上一搜,看到網(wǎng)上N頁(yè)的教程立馬就放棄了。這些人里包括曾經(jīng)的我自己。其實(shí)如果如果你不是非要深究其中的原理,只是要實(shí)現(xiàn)
    的頭像 發(fā)表于 11-01 16:45 ?2.7w次閱讀

    人臉識(shí)別技術(shù)原理與實(shí)現(xiàn)方式

    隨著大數(shù)據(jù)時(shí)代的到來(lái),“人臉”也將成為數(shù)據(jù)的一部分,人臉識(shí)別如何實(shí)現(xiàn)?本文將為大家從人臉檢測(cè)、人臉
    發(fā)表于 02-05 11:16 ?2w次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b>技術(shù)原理與<b class='flag-5'>實(shí)現(xiàn)</b>方式

    人臉識(shí)別門(mén)禁系統(tǒng)如何安裝?

    人臉識(shí)別技術(shù)的應(yīng)用越來(lái)越廣泛,尤其在門(mén)禁系統(tǒng)中的應(yīng)用可以說(shuō)如火如荼,那么現(xiàn)在的門(mén)禁系統(tǒng)一般都需要增加人臉識(shí)別功能了,人臉
    發(fā)表于 03-29 15:15 ?1w次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b>門(mén)禁系統(tǒng)如何安裝<b class='flag-5'>呢</b>?

    人臉識(shí)別是什么_人臉識(shí)別技術(shù)原理

    人臉識(shí)別是什么,人臉識(shí)別技術(shù)原理是如何的,它又是若何一步步實(shí)現(xiàn)的,人臉
    發(fā)表于 09-27 15:49 ?5524次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b>是什么_<b class='flag-5'>人臉</b><b class='flag-5'>識(shí)別</b>技術(shù)原理