IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> OpenCV-Python <七> 级联分类器 -> 正文阅读

[人工智能]OpenCV-Python <七> 级联分类器

OpenCV中,提供了三种级联分类器--- Haar级联分类器,Hog特征和LBP算法的级联分类器。

为了训练针对特定类型对象的级联分类器, OpenCV提供了专门的工具, build/x86/vc12/bin目录下,有opencv_createsamples.exe, opencv_traincascade.exe。

1. 训练过程

2. 使用级联分类器:

可以使用opencv中一些训练好的级联分类器。这些分类器可以用来检测人脸,脸部特征(眼睛,鼻子),人体和其它物体。他们放在opencv/data目录。

包含

haarcascades, hogcascades, lbpcascades,haarcascades_cuda等。

2.1:使用介绍:

2.1.1:加载级联分类器:

<CascadeClassifier object> = cv2.CascadeClassifier(filename)

filename:级联分类器的路径和名称。

产生一个级联分类器object.

这里曾出过一个问题:

直接下载github中opencv 官方模型如:haarcascade_frontalcatface.xml。 加载时会报错:

SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

后来下载OpenCV整个Source Code,指定filename到对应xml文件,则正常了。没太搞清楚是怎么回事。

2.1.2:检测目标

cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) ->objects

用来检测输入image中是否有目标。

参数:

image: 待检测图像。 通常为灰度图

scaleFactor: 前后两次扫描中, 搜索窗口的缩放比例。 缺省为1.1

minNeighbors:检测目标的相邻矩形的最小个数。缺省为3. 表示有3个以上的检测标记存在时,才认为目标存在。如果希望提高精准率,则可以提高这个值。

minSize: 目标的最小尺寸。小于这个尺寸的目标被忽略。

maxSize:目标的最大尺寸。大于这个尺寸的目标被忽略。

返回值:

objects:

as a list of rectangles

返回值是个ndarray.? shape: (N, 4)

每一行是一个rectangle:? x, y, w, h

实例:

import cv2
import numpy as np
import sys

def face_detector(img):
    face_detect = cv2.CascadeClassifier(r"E:\current\svn_python\OpenCV_Study\opencv\opencv_opencv\data\haarcascades\haarcascade_frontalface_alt.xml")
    face_detect = cv2.CascadeClassifier(
        r"models/haarcascade_frontalface_default.xml")


    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_detect.detectMultiScale(gray)

    print(type(faces[0]))
    print(faces.shape)
    # print(faces)

    for x, y, w, h in faces:
        cv2.rectangle(img, (x,y), (x+w, y+h), (0,0,255), 2)

    cv2.imshow("Image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


def face_pixelated(file_name):
    img = cv2.imread(file_name, cv2.IMREAD_COLOR)
    if (img is None):
        print("Read File Error.")
        sys.exit()

    face_detector(img)


if __name__ == "__main__":
    face_pixelated("images/ab.jpeg")
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:11:01  更:2022-05-07 11:14:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:31:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码