<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      介紹

      OpenCV 是一個開源的計算機視覺庫,它提供了許多用于圖像處理和計算機視覺的功能。其中,Haar-cascade 檢測是一種流行的技術,通常用于目標檢測,如人臉、眼睛、手部等。這種方法基于機器學習,使用一系列的矩形特征(Haar 特征)來檢測圖像中的特定對象。

      Haar-cascade 檢測的工作原理

      1. ?Haar 特征?:是一種簡單的矩形特征,用于描述圖像中的局部亮度差異。這些特征對于捕捉邊緣、線條和紋理等圖像結構非常有效。

      2. ?積分圖?:為了快速計算Haar特征,OpenCV 使用積分圖。積分圖允許我們在常數時間內計算任何矩形區域的像素和。

      3. ?Cascade 分類器?:一個單獨的Haar特征可能不足以準確檢測目標,因此,通常使用多個特征的組合。Cascade分類器是一個多級的分類器,每一級都包含多個Haar特征。通過逐級過濾,cascade分類器可以有效地減少非目標區域的誤檢,同時保持對目標區域的高檢測率。

      4. ?訓練?:創建Haar-cascade分類器需要大量的正樣本(包含目標的圖像)和負樣本(不包含目標的圖像)。通過機器學習算法(如Adaboost),可以從這些樣本中學習并生成一個有效的分類器。

      程序流程

       

      OpenCV中的Haar人臉檢測

      參數說明

       1 mage:輸入的圖像,必須是灰度圖,因為Haar特征是基于灰度的。
       2 scaleFactor:(可選)在圖像尺寸減小的比例,即每次圖像尺寸減小的比例。默認值為1.1,表示每次窗口尺寸減少10%。調整這個參數可以平衡檢測的精度和速度:較小的scaleFactor值能夠提高檢測的細致程度,但會增加計算負擔;而較大的值則可以減少計算量,加快處理速度,但可能會降低檢測的準確性,從而錯過一些較小或較遠的目標。
       3 minNeighbors:(可選)構成檢測目標的相鄰矩形的最小個數。默認值為3,意味著有3個以上的檢測標記存在時,才認為人臉存在。這個參數有助于減少誤檢,即非目標對象被錯誤地識別為目標的情況。設置一個較高的minNeighbors值可以更嚴格地篩選出真正的目標,從而減少誤檢,但同時也有可能將一些真正的目標遺漏,因為它們可能沒有足夠的鄰近矩形滿足條件。
       4 flags:(可選)這個參數通常被省略,flags參數用于定義檢測模式,在使用低版本OpenCV時,它可能會被設置為cv2.CASCADE_SCALE_IMAGE,表示在多尺度檢測時調整圖像尺寸。它可以是以下幾個值的組合:
       5 CASCADE_DO_ROUGH_SEARCH:快速搜索模式。
       6 CASCADE_FIND_BIGGEST_OBJECT:只檢測最大的目標。
       7 CASCADE_SCALE_IMAGE:使用縮放圖像進行檢測(默認值)。
       8 minSize:(可選)目標的最小尺寸,小于這個尺寸的目標將被忽略。默認為(0, 0),表示沒有限制。
       9 maxSize:(可選)目標的最大尺寸,大于這個尺寸的目標將被忽略。默認為(0, 0),表示沒有限制。
      10  返回值:
      11 
      12 rects:一個矩形列表,其中每個矩形包含檢測到的對象的坐標和尺寸,格式為(x, y, w, h)。
      13 levels:每個檢測到的對象的金字塔層級。
      14 scores:每個檢測到的對象的置信度分數。
      15 ————————————————
      16 
      17                           

       

      在OpenCV中,Haar人臉檢測功能通過CascadeClassifier類實現。首先,需要加載預訓練的Haar特征分類器XML文件,然后使用detectMultiScale方法進行人臉檢測。

       1 import cv2
       2 import numpy as np
       3 
       4 
       5 def image_read_from_chinese_path(image_file_name):
       6     image_numpy_data = cv2.imdecode(np.fromfile(image_file_name, dtype=np.uint8),
       7                                     -1)  # np.fromfile 讀取圖像文件,將其轉換為 NumPy 數組
       8     return image_numpy_data
       9 
      10 
      11 # 級聯分類器路徑(訓練器文件)
      12 face_cascade = cv2.CascadeClassifier(
      13     r'C:\Users\19225\PycharmProjects\test\src\user\static\haarcascade_frontalcatface.xml')  # 人臉檢測的 Haar 級聯分類器XML 文件路徑
      14 eye_cascade = cv2.CascadeClassifier(
      15     r'C:\Users\19225\PycharmProjects\test\src\user\static\haarcascade_eye_tree_eyeglasses.xml')
      16 
      17 # 讀取圖像
      18 img = image_read_from_chinese_path(r'C:\Users\19225\PycharmProjects\test\src\user\static\R.jpg')
      19 
      20 if img is None:
      21     print("Image not loaded correctly.")
      22 else:
      23     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 轉為灰度圖
      24 
      25     # 使用人臉檢測器 face_cascade,在灰度圖像中檢測人臉
      26     # scaleFactor:每次圖像尺寸減少的比例,越小越快,檢測效果越好
      27     # minNeighbors:最少需要檢測到多少個鄰居,才能確定是人臉,值越大,檢測精度越高
      28     # minSize:檢測到的對象的最小尺寸,單位為像素
      29     faces = face_cascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=3, minSize=(30, 30),
      30                                           flags=cv2.CASCADE_SCALE_IMAGE)
      31 
      32     for (x, y, w, h) in faces:
      33         img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
      34 
      35         roi_gray = gray[y: y + h, x: x + w]
      36         roi_color = img[y: y + h, x: x + w]
      37 
      38         # 檢測眼睛
      39         eyes = eye_cascade.detectMultiScale(roi_gray, scaleFactor=1.1, minNeighbors=5, minSize=(15, 15))
      40 
      41         # 進行非極大值抑制
      42         eyes = np.array(eyes)
      43         if len(eyes) > 0:
      44             boxes = []
      45             for (ex, ey, ew, eh) in eyes:
      46                 boxes.append((ex, ey, ew, eh))
      47 
      48             # 自定義合并重疊的框
      49             boxes = np.array(boxes)
      50             indices = cv2.dnn.NMSBoxes(boxes.tolist(), [1] * len(boxes), score_threshold=0.5, nms_threshold=0.4)
      51 
      52             for i in indices:
      53                 i = i[0]  # 如果是二維數組取第一個元素
      54                 ex, ey, ew, eh = boxes[i]
      55 
      56                 # 防止繪制重復的眼睛
      57                 cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 0, 255), 2)
      58         print(f'Detected {len(eyes)} eyes in face')
      59     print(f'Detected {len(faces)} faces')
      60 
      61     label = f'OpenCV Haar Detected {str(len(faces))} faces'
      62     cv2.putText(img, label, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 1)
      63 
      64     cv2.imshow('img', img)
      65     cv2.waitKey(0)
      66     cv2.destroyAllWindows()

       

      示例二:檢測車牌號

       1 # 導入所需庫
       2 import cv2
       3 import numpy as np
       4 
       5 # 讀取輸入圖像
       6 img = cv2.imread(r"C:\Users\19225\PycharmProjects\test\src\user\static\car.jpg")
       7 
       8 # 將輸入圖像轉換為灰度圖像
       9 gray = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
      10 
      11 # 讀取檢測車牌的haarcascade
      12 cascade = cv2.CascadeClassifier(
      13     r'C:\Users\19225\PycharmProjects\test\src\user\static\haarcascade_russian_plate_number.xml')
      14 
      15 # 檢測車牌號碼
      16 plates = cascade.detectMultiScale(gray, 1.2, 5)
      17 print('Number of detected license plates:', len(plates))
      18 
      19 # 循環遍歷所有車牌
      20 for (x, y, w, h) in plates:
      21     # 在車牌周圍繪制邊界矩形
      22     cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
      23     gray_plates = gray[y:y + h, x:x + w]
      24     color_plates = img[y:y + h, x:x + w]
      25 
      26     # 保存檢測到的車牌
      27     cv2.imwrite('Numberplate.jpg', gray_plates)
      28     cv2.imshow('Number Plate', gray_plates)
      29     cv2.imshow('Number Plate Image', img)
      30     cv2.waitKey(0)
      31 cv2.destroyAllWindows()

       

       

      總結

       其實OpenCV中已經包含了許多預先訓練好的Haar Cascades分類器,例如用于面部檢測的haarcascade_frontalface_default.xml,以及用于眼睛檢測的haarcascade_eye.xml。這些分類器可以用于快速識別圖像或視頻中的人臉和眼睛。

      使用Haar Cascades進行對象檢測的基本流程包括:

      加載Haar Cascades分類器XML文件。
      讀取圖像并將其轉換為灰度圖像,因為Haar Cascades主要在灰度圖像上工作。
      使用detectMultiScale函數在圖像中檢測對象。
      根據檢測結果在原始圖像上繪制矩形框或其他標記。

      Haar Cascades模型在訓練過程中使用了大量的正負樣本圖像,并經過一系列的訓練和驗證,以達到較好的檢測效果。每個模型都針對特定的目標或特征進行了訓練,并具有其自己的應用場景。選擇適當的模型取決于你的具體應用需求。

      如果你需要進行特定的對象檢測任務,例如檢測貓臉、車牌或微笑等,OpenCV同樣提供了相應的Haar Cascades模型。這些模型可能需要根據特定場景進行調整和優化,以提高檢測的準確性和魯棒性[1]。

      總的來說,Haar Cascades是一個非常強大且靈活的工具,適用于各種實時對象檢測任務,尤其是在計算機視覺和機器學習領域。
      ————————————————

      原文鏈接:https://blog.csdn.net/yanceyxin/article/details/139726324

      各種.xml文件說明

      在OpenCV安裝目錄中,具體位置如下:opencv\build\etc\haarcascades(我是摳了其他作者下載在網盤里的xml文件,沒下載opencv)

       

      文件說明

       1 haarcascade_eye.xml
       2 
       3 是一個用于眼睛檢測的Haar特征分類器模型,它是OpenCV庫中用于目標檢測任務的預訓練級聯分類器之一。這個XML文件包含了用于檢測圖像或視頻中眼睛的模型參數。通過使用這個XML文件,可以快速實現人眼的自動檢測功能。(我覺得檢測不準確)
       4 
       5 -------------------------------------------------------------------
       6 haarcascade_eye_tree_eyeglasses.xml
       7 
       8 是OpenCV中用于眼睛檢測的Haar Cascades分類器,特別適用于同時檢測眼睛和眼鏡。這個XML文件包含了訓練好的模型參數,能夠識別圖像中的眼睛,即使眼睛上戴著眼鏡也不會影響檢測效果。
       9 
      10 ------------------------------------------------------------------
      11 haarcascade_frontalcatface.xml
      12 
      13 是 OpenCV 中用于貓臉檢測的 Haar Cascades 分類器。這個 XML 文件包含了訓練好的模型參數,專門用于識別圖像中貓的面部特征。如果你正在開發一個應用程序,需要識別和處理貓的圖像,這個分類器可以非常有用。
      14 
      15 -----------------------------------------------------------------
      16 
      17 haarcascade_frontalcatface_extended.xml
      18 
      19 是 OpenCV 中用于貓臉檢測的擴展版 Haar Cascades 分類器。與基本的 haarcascade_frontalcatface.xml 相比,這個擴展模型可能經過了更多的訓練,以提高在不同條件下貓臉檢測的準確性和魯棒性。它專門用于識別圖像中貓的面部特征,尤其適用于更復雜或更具挑戰性的場景。
      20 
      21 ————————————————
      22 haarcascade_frontalface_alt.xml
      23 
      24 是 OpenCV 中用于人臉檢測的 Haar Cascades 分類器之一。它是一個預訓練的模型,專門設計來識別圖像中的人臉。與 OpenCV 中的默認人臉檢測模型 haarcascade_frontalface_default.xml 相比,haarcascade_frontalface_alt.xml 通常在檢測率上有所提升,但可能會犧牲一些誤檢率。
      25 
      26 ————————————————
      27 haarcascade_frontalface_alt.xml
      28 
      29 是 OpenCV 中用于人臉檢測的 Haar Cascades 分類器之一。它是一個預訓練的模型,專門設計來識別圖像中的人臉。與 OpenCV 中的默認人臉檢測模型 haarcascade_frontalface_default.xml 相比,haarcascade_frontalface_alt.xml 通常在檢測率上有所提升,但可能會犧牲一些誤檢率。
      30 
      31 ————————————————
      32 haarcascade_frontalface_alt_tree.xml
      33 
      34 是 OpenCV 中用于人臉檢測的另一種 Haar Cascades 分類器。這個分類器模型采用了基于樹的分類器結構,它通過組合多個級聯分類器來提高檢測的準確性,特別是在復雜場景下。然而,這種基于樹的方法可能會增加計算時間,因為它需要評估多個分類器。
      35 
      36 ---------------------------------------------------------------------------
      37 haarcascade_frontalface_alt2.xml
      38 
      39 這個分類器是 haarcascade_frontalface_alt.xml 的改進版本,旨在保持較高的檢測率的同時,盡可能減少誤檢測。它可能在平衡檢測率和誤檢率方面提供了更好的性能。
      40 
      41 --------------------------------------------------------------------------
      42 haarcascade_frontalface_default.xml
      43                         
      44 是一個用于OpenCV庫的XML文件,它包含了一個預先訓練好的Haar特征分類器,用于人臉檢測。這個分類器可以識別圖像中的人臉,是計算機視覺領域中常用的工具之一。如果你需要使用這個文件進行人臉檢測,通常你需要將它加載到OpenCV程序中,然后使用它來處理圖像數據。
      45 
      46 
      47 -------------------------------------------------------------
      48 haarcascade_fullbody.xml
      49 
      50 包含了一個預先訓練好的Haar特征分類器,專門用于全身人體檢測。這個分類器可以識別圖像或視頻中的整個人體,是計算機視覺領域中用于人體分析的常用工具之一。
      51 
      52 ------------------------------------------
      53 haarcascade_lefteye_2splits.xml
      54 
      55 是OpenCV中用于目標檢測任務的級聯分類器模型文件之一,專門用于檢測圖像或視頻中的左眼 。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位左眼的位置。
      56 
      57 -------------------------------------------
      58 haarcascade_license_plate_rus_16stages.xml
      59 
      60 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測俄羅斯車牌。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位車牌的位置。
      61 
      62 ---------------------------------------------
      63 haarcascade_lowerbody.xml
      64 
      65 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測圖像或視頻中的下半身人體,例如腿部。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位下半身人體的位置。
      66 
      67 -----------------------------------------------
      68 haarcascade_profileface.xml
      69 
      70 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測圖像或視頻中的側臉。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位側臉的位置。
      71 
      72 
      73 ---------------------------------------
      74 haarcascade_righteye_2splits.xml
      75 
      76 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測圖像或視頻中的右眼。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位右眼的位置。這種分類器通常用于面部識別、情緒分析、用戶界面和安全系統等應用中。
      77 
      78 ---------------------------------------
      79 haarcascade_russian_plate_number.xml
      80 
      81 是一個用于OpenCV的XML文件,它包含了一個預先訓練好的Haar特征分類器,專門用于檢測俄羅斯車牌號碼。這個分類器可以識別圖像或視頻中的車牌,并在檢測到的車牌區域繪制矩形標記。
      82 
      83 ----------------------------------
      84 haarcascade_smile.xml
      85 
      86 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測圖像或視頻中的微笑。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位人臉上微笑的表情。
      87 
      88 ----------------------------------
      89 haarcascade_upperbody.xml
      90 
      91 是OpenCV中用于目標檢測任務的級聯分類器模型文件,專門用于檢測圖像或視頻中的上半身人體,例如頭部和肩部。這個XML文件包含了一個預先訓練好的Haar特征分類器,可以識別和定位上半身人體的位置。

       

      posted on 2024-11-28 17:59  認真的六六  閱讀(1000)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 精品国产乱码久久久久APP下载| 久久精品视频一二三四区| 免费无码一区二区三区蜜桃大 | 免费无码成人AV片在线 | 乐清市| 久久亚洲精品国产精品尤物| √天堂中文www官网在线| 九九热在线视频精品免费| 亚洲最大成人免费av| 亚洲中文字幕无码一区无广告| 亚洲综合无码一区二区三区不卡| 欧美熟妇乱子伦XX视频| 久久无码中文字幕免费影院蜜桃| 亚洲精品久久久久国色天香| 亚洲精选av一区二区| 亚洲国产成人资源在线| 国产一区二区高清不卡| 97一期涩涩97片久久久久久久| 日韩精品一区二区三区视频| 乱60一70归性欧老妇| 国产女同疯狂作爱系列| 精品自拍偷拍一区二区三区 | 色狠狠综合天天综合综合| 国产超高清麻豆精品传媒麻豆精品| 色AV专区无码影音先锋| 亚洲av精彩一区二区| 国产自在自线午夜精品 | 在线国产你懂的| 少妇被日自拍黄色三级网络| 99精品国产丝袜在线拍国语| 免费国产精品黄色一区二区| 99精品国产中文字幕| 人妻综合专区第一页| 久久精产国品一二三产品| 国产精品自在自线免费观看| 久久精品色一情一乱一伦| 久久精品国产99久久久古代| 色天天天综合网色天天| 国产成人精品久久性色av| 亚洲自拍偷拍激情视频| 国产精品人伦一区二区三|