当前位置: 智能网 > 人工智能 > 使用Python+OpenCV实现神经网络预处理人脸图像的快速指南

使用Python+OpenCV实现神经网络预处理人脸图像的快速指南

放大字体 缩小字体 发布日期:2020-05-23 12:03:23   浏览次数:212
核心提示:2020年05月23日关于使用Python+OpenCV实现神经网络预处理人脸图像的快速指南的最新消息:目前我正在研究一个涉及人脸分类的计算机视觉问题。这通常意味着需要应用深度学习,因此在将图像注入到我们的神经网络之前需要一个特殊的预处理阶段。为了提高我们的模型精度,这是一项非常重要


目前我正在研究一个涉及人脸分类的计算机视觉问题。这通常意味着需要应用深度学习,因此在将图像注入到我们的神经网络之前需要一个特殊的预处理阶段。为了提高我们的模型精度,这是一项非常重要的任务,通过以下几个简单的步骤可以很好地完成。对于本文,我们使用OpenCV:一个高度优化的计算机视觉开源库,在C++、java和Python中都可用。这是一篇简短的文章,包含了一些基本的指导原则、示例和代码,你可以根据需求将它们应用到人脸分类或识别问题上。注意:本文中使用的所有静态图像都来自 图片载入我们将使用imread()函数加载图像,指定文件的路径和mode,第二个参数对于动态运行通道和像素转换非常重要。mode:https://docs.opencv.org/4.1.0/d4/da8/group__imgcodecs.html#ga61d9b0126a3e57d9277ac48327799c80img = cv2.imread('path/image.jpg', cv2.IMREAD_COLOR)要查看图像,我们有imshow()函数:cv2.imshow(img)

如果你写的是类型(img),你会看到尺寸是(height, weight, channels)。我们的彩色图像有3个通道:蓝色,绿色和红色(在OpenCV中按这个顺序)。

我们可以轻松查看单个通道:# Example for green channelimg[:, :, 0]; img[:, :, 2]; cv2.imshow(img)灰度版本为了避免在人脸图像分类中的干扰项,使用黑白图片是个好主意(也可能不是!)你可以两者都试试)。为了得到灰度版本,我们只需要在图像加载函数中指定,将适当的值作为第二个参数传递:img = cv2.imread('path/image.jpg', cv2.IMREAD_GRAYSCALE)

现在我们的图像有了一个单独的通道!人脸和眼睛检测当处理人脸分类问题时,我们可能想要做人脸检测,来做人脸验证任务(是否有脸?)。我们可以使用OpenCV中包含的基于Haar特性的级联分类器进行人脸检测。(https://docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html)首先,我们选择预先训练的人脸和眼睛检测分类器。有一个可用的XML文件列表,我们可以使用此列表:https://github.com/opencv/opencv/tree/master/data/haarcascades1)对于人脸检测,OpenCV提供以下(从最宽松的先验到最严格的先验):haarcascade_frontalface_default.xmlhaarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt2.xmlhaarcascade_frontalface_alt_tree.xml2) 对于眼睛检测,我们可以选择两种方法:haarcascade_eye.xmlhaarcascade_eye_tree_eyegasses.xml我们以这种方式加载预先训练的分类器:face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + ‘haarcascade_frontalface_default.xml’)eyes_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + ‘haarcascade_eye.xml’)你可以测试几种组合。记住,在所有情况下,它们中没有一个是最优的(如果第一个分类器失败,你可以尝试第二个分类器,或者甚至尝试所有分类器)。对于人脸检测,我们使用以下代码:faces_detected = face_cascade.detectMultiScale(img, scaleFactor=1.1, minNeighbors=5)结果是一个数组,包含所有检测到的人脸。我们可以很容易地画出矩形:(x, y, w, h) = faces_detected[0]cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 1);cv2.imshow(img)

3  
 
关键词: 图像 分类 的人

[ 智能网搜索 ]  [ 打印本文 ]  [ 违规举报

猜你喜欢

 
推荐图文
ITECH直流电源在人工智能领域的应用 基于朴素贝叶斯自动过滤垃圾广告
2020年是人工智能相关业务发展的重要一年 我国人工智能市场规模、行业短板、发展前景一览
推荐智能网
点击排行

 
 
新能源网 | 锂电网 | 智能网 | 环保设备网 | 联系方式