精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

請問如何在OriginBot上實現人臉識別呢?

新機器視覺 ? 來源:古月居 ? 2024-01-22 16:24 ? 次閱讀

人臉識別

大家在生活中經常會看到在我們進入商城時,門口會有相機在拍攝我們,并且會統計有多少人數進入商店,它是如何進行人數量統計的呢?

這就是是計算機視覺領域的一項關鍵技術——人臉識別,它使計算機系統能夠自動檢測、識別和驗證圖像或視頻中的人臉。

人臉識別通過分析圖像中的人臉特征來執行各種視覺任務。因為其重要性,所以解決方法很多,如卷積神經網絡(CNN)、級聯分類器等來提取和比對人臉特征。這些算法能夠處理各種光照、姿勢和表情條件下的人臉,從而實現高度準確的識別。

硬件環境

OriginBot智能機器人

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 分類器是一種對象檢測器,通過訓練來識別特定的對象,這里主要用于人臉檢測。

self.classifier_path = “haarcascade_frontalface_default.xml” 指定了已經訓練好的人臉分類器的路徑。

?ROS2節點初始化:rclpy.init(args=args) 和 rclpy.shutdown() 分別用于初始化和關閉ROS2節點。

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

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

?圖像處理回調函數:image_callback(self, msg) 處理訂閱的圖像,首先將ROS消息轉換為OpenCV圖像。

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

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

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

?ROS2節點主函數:def main(args=None): 主函數初始化節點,并通過 rclpy.spin(face_detection) 進行節點的運行。

灰度圖像的重要性:

簡要說明

使用opencv實現人臉識別已經是一個特別成熟的技術了,這里拋磚引玉希望大家出一個更nice的版本呀!

1、為什么要使用 Haar Cascade 分類器進行人臉檢測,Haar Cascade分類器的幾個參數是什么含義?

Haar Cascade 分類器是一種經過訓練的對象檢測器,特別適用于檢測面部特征,如人臉和眼睛。它具有高度準確的檢測性能,因此廣泛用于計算機視覺任務。Haar Cascade 分類器的優勢在于它可以在不同尺度和旋轉下檢測對象,而且速度相對較快。

scaleFactor 參數用于指定每個圖像尺度上要縮小圖像的比例。這使得分類器能夠檢測不同尺寸的對象,而不僅僅適用于特定尺寸的對象。通過在不同尺寸上運行分類器,可以檢測到遠處和近處的對象,使檢測更加全面。

minNeighbors 參數用于指定檢測到目標后,要保留的鄰近目標的最小數量。這有助于去除重疊的檢測結果。較大的值會過濾掉一些檢測結果,以確保只返回高置信度的檢測結果。這有助于減少誤報。

2、為什么需要將輸入圖像轉換為灰度圖像?

Haar Cascade 分類器通常在灰度圖像上運行,因為灰度圖像只包含亮度信息,而不包含顏色信息。這簡化了圖像處理,并使分類器能夠更好地識別對象的邊緣和紋理特征。此外,灰度圖像的計算量更小,因此處理速度更快。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 智能機器人
    +關注

    關注

    17

    文章

    863

    瀏覽量

    82217
  • 人臉識別
    +關注

    關注

    76

    文章

    4005

    瀏覽量

    81777
  • 卷積神經網絡

    關注

    4

    文章

    366

    瀏覽量

    11851

原文標題:如何在OriginBot上實現人臉識別

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    人臉識別技術原理解析

    概念:哪一部分數據是水杯,哪一部分是書本,哪一部分是人臉,這是視覺模式識別中的粗分類問題。  而人臉識別,需要在所有機器認為是人臉的那部分數
    發表于 12-23 23:17

    你周圍有人臉識別嗎?

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

    加密芯片在人臉識別算法的保護與應用

    引爆人臉識別的市場。那什么是人臉識別,具體有什么作用
    發表于 10-24 10:57

    LabVIEW人臉識別設計

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

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

    識別支付場景】人臉識別這么火,那么它到底是怎么實現?看大牛為您解鎖人臉
    發表于 03-16 11:25

    如何去實現一種基于PCA算法的人臉識別程序

    如何去實現一種基于PCA算法的人臉識別程序?基于IAR開發環境的CC1110F32的調試程序怎樣去編寫
    發表于 11-04 07:02

    在嵌入式開發板如何用opencv調用caffe模型進行人臉識別并截圖

    在嵌入式開發板如何用opencv調用caffe模型進行人臉識別并截圖?其代碼該如何去實現
    發表于 12-27 06:56

    何在Core-1126-JD4搭建一套類似的服務完成云人臉識別

    何在Core-1126-JD4搭建一套類似的服務完成云人臉識別
    發表于 02-21 07:19

    如何實現基于ncnn的RK3399的mtcnn人臉檢測?

    何在RK3399燒錄安卓系統?如何實現基于ncnn的RK3399的mtcnn人臉檢測?
    發表于 03-04 07:29

    如何對RK3399的HDMI進行人臉識別

    如何對RK3399的HDMI進行人臉識別?如何對識別結果進行模糊化處理
    發表于 03-07 12:48

    何在OpenHarmony使用SeetaFace2人臉識別庫?

    何在OpenHarmony使用SeetaFace2人臉識別庫?簡介相信大部分同學們都已了解或接觸過OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)了,
    發表于 08-22 17:46

    用dlib實現人臉識別的技巧

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

    人臉識別技術原理與實現方式

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

    人臉識別門禁系統如何安裝

    人臉識別技術的應用越來越廣泛,尤其在門禁系統中的應用可以說如火如荼,那么現在的門禁系統一般都需要增加人臉識別功能了,人臉
    發表于 03-29 15:15 ?1w次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識別</b>門禁系統如何安裝<b class='flag-5'>呢</b>?

    人臉識別是什么_人臉識別技術原理

    人臉識別是什么,人臉識別技術原理是如何的,它又是若何一步步實現的,人臉
    發表于 09-27 15:49 ?5651次閱讀
    <b class='flag-5'>人臉</b><b class='flag-5'>識別</b>是什么_<b class='flag-5'>人臉</b><b class='flag-5'>識別</b>技術原理