0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【幸狐Core3566模组试用体验】基于openCV的猫脸识别

发烧电子爱好者 来源:发烧电子爱好者 作者:发烧电子爱好者 2023-09-25 09:05 次阅读

本文主要介绍如何基于openCV来实现一个简单的猫脸识别应用。

一、基础准备

首先需要安装openCV,因为python版的方便点,所以直接安装python版openCV,通过命令sudo apt-get install python-opencv即可完成。

linaro@linaro-alip:~$ sudo apt-get install python-opencv
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  liba52-0.7.4 libdca0 libdrm-freedreno1 libdrm-tegra0
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  python-numpy python-pkg-resources
Suggested packages:
  gfortran python-dev python-pytest python-numpy-dbg python-numpy-doc python-setuptools
The following NEW packages will be installed:
  python-numpy python-opencv python-pkg-resources
0 upgraded, 3 newly installed, 0 to remove and 48 not upgraded.
Need to get 2,636 kB of archives.
After this operation, 14.7 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Get:1 http://mirrors.ustc.edu.cn/debian buster/main arm64 python-pkg-resources all 40.8.0-1 [182 kB]
Get:2 http://mirrors.ustc.edu.cn/debian buster/main arm64 python-numpy arm64 1:1.16.2-1 [1,975 kB]
Get:3 http://mirrors.ustc.edu.cn/debian buster/main arm64 python-opencv arm64 3.2.0+dfsg-6 [478 kB]
Fetched 2,636 kB in 0s (5,938 kB/s)
Selecting previously unselected package python-pkg-resources.
(Reading database ... 76876 files and directories currently installed.)
Preparing to unpack .../python-pkg-resources_40.8.0-1_all.deb ...
Unpacking python-pkg-resources (40.8.0-1) ...
Selecting previously unselected package python-numpy.
Preparing to unpack .../python-numpy_1%3a1.16.2-1_arm64.deb ...
Unpacking python-numpy (1:1.16.2-1) ...
Selecting previously unselected package python-opencv.
Preparing to unpack .../python-opencv_3.2.0+dfsg-6_arm64.deb ...
Unpacking python-opencv (3.2.0+dfsg-6) ...
Setting up python-pkg-resources (40.8.0-1) ...
Setting up python-numpy (1:1.16.2-1) ...
Setting up python-opencv (3.2.0+dfsg-6) ...

安装完成后检查下,import cv2没问题就OK了。

linaro@linaro-alip:~$ python
Python 2.7.16 (default, Sep 20 2023, 07:59:17)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> exit()

二、设计和实现

在OpenCV中,目标检测使用的函数是cv2.CascadeClassifier.detectMultiScale(),它可以检测图像中所有的目标。其完整定义如下:

def detectMultiScale(self, image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None):

image:待检测的图像,通常为灰度图像
scaleFactor:表示在前后两次相继的扫描中,搜索窗口的缩放比例
minNeighbors:表示构成检测目标的相邻矩形的最小个数。默认值为3,表示有3个以上的检测标记存在时,才认为目标的存在。如果希望提高检测的准确率,可以将该值设置的更大,但同时可能会让一些目标无法被检测到
flags:不常用参数,一般省略。
minSize:目标的最小尺寸,小于这个尺寸的目标将被忽略
maxSize:目标的最大尺寸,大于这个尺寸的目标将被忽略
该函数的返回值是目标对象的矩形框向量组。

OpenCV已经自带了猫脸的Haar特征分类器,本文选择haarcascade_frontalcatface.xml识别分类器。

通过detectMultiScale函数返回的是猫脸的矩形框向量组,包括左上角坐标(x,y),长宽(w,h)。而绘制猫脸矩形框则通过rectangle函数实现。

具体实现python代码如下:

import cv2 
face_cascade = cv2.CascadeClassifier('haarcascade_frontalcatface.xml') 

img = cv2.imread("./cats.jpg")

# convert to gray 
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 

face_rect = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3)
print("number of cats: ", len(face_rect))

for (x,y,w,h) in face_rect:
    cv2.rectangle(img, (x,y), (x+w, y+h), color=(0,255,0))
cv2.imwrite("cats-1.jpg", img)
cv2.release()

三、运行

测试的图片是网上随便下载的。

将图片、猫脸识别分类器还有python上传至幸狐 Core3566 模组,并运行python脚本。

TT.png

只识别出2只猫咪,看来有一只的脸不合格,要想识别出来,需要在detectMultiScale中调试参数,进一步提示识别精准度,看了看时间,都快物业了,这里就不继续了,来个识别的结果。

看来这个黑不溜秋的不好识别。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模组
    +关注

    关注

    6

    文章

    1488

    浏览量

    30368
  • OpenCV
    +关注

    关注

    31

    文章

    635

    浏览量

    41340
  • python
    +关注

    关注

    56

    文章

    4793

    浏览量

    84633
  • 脚本
    +关注

    关注

    1

    文章

    389

    浏览量

    14860
收藏 人收藏

    评论

    相关推荐

    Core3566 模组开箱

    发烧友的快递一直都很快,很快就拿到了,很大的一箱子。
    的头像 发表于 09-11 09:04 2831次阅读
    <b class='flag-5'>幸</b><b class='flag-5'>狐</b> <b class='flag-5'>Core3566</b> <b class='flag-5'>模组</b>开箱

    Core3566模组试用体验】Linux系统烧写和体验

    因为没想到“ Core3566 模组”果然是个模组,除了一块核心板+一个天线之外就没了,所以只能在咸鱼上找了块据说“兼容”CM4的底板。
    的头像 发表于 09-24 09:43 1756次阅读
    【<b class='flag-5'>幸</b><b class='flag-5'>狐</b><b class='flag-5'>Core3566</b><b class='flag-5'>模组</b><b class='flag-5'>试用</b>体验】Linux系统烧写和体验

    NCNN在Core3566模组上的部署和测试

    得益于四核A55的性能,NCNN跑起来应该问题不大,本文主要介绍NCNN在Core3566 模组上的部署和测试。
    的头像 发表于 10-17 08:25 1452次阅读
    NCNN在<b class='flag-5'>Core3566</b><b class='flag-5'>模组</b>上的部署和测试

    【Raspberry Pi 3试用体验】+Opencv+python的人脸识别

    ;)看一下效果:光线不好还是能认出来,说明opencv自带的分类器算开源里面不错的了~参考:Tigerboard开发板试用体验 python+opencv的人脸识别 NanoPi2
    发表于 05-13 21:38

    【NanoPC-T4试用申请】基于opencv的人脸识别系统

    项目名称:基于opencv的人脸识别系统试用计划:申请理由:这个板子资源很丰富,能上android系统。现阶段opencv是个很火的课题,那这块板子来
    发表于 09-12 16:48

    基于QT+OpenCV的人脸识别-米尔iMX8M Plus开发板的项目应用

    本篇测评由电子工程世界的优秀测评者“流行科技”提供。此次测试的开源项目,是基于QT+OpenCV的人脸识别打卡项目。本次体验使用的是开源的代码,此代码本来是运行在WIN下的,为了测试稍微进行了修改
    发表于 05-17 17:43

    如何在OpenHarmony上使用SeetaFace2人识别库?

    如何在OpenHarmony上使用SeetaFace2人识别库?简介相信大部分同学们都已了解或接触过OpenAtom OpenHarmony(以下简称“OpenHarmony”)了,但你一定没在
    发表于 08-22 17:46

    Core3566 模组试用体验】 Core3566 模组开箱

    首先感谢LuckFox & 发烧友!给与的机会近距离体验 Core3566模组。 一、第一印象 发烧友的快递一直都很快,很快就拿到了,很大的一箱子。 打开盒子后,是
    发表于 09-09 18:46

    Core3566 模组试用体验】Linux系统烧写和体验

    一、前传 因为没想到“ Core3566 模组”果然是个模组,除了一块核心板+一个天线之外就没了,所以只能在咸鱼上找了块据说“兼容”CM
    发表于 09-14 13:23

    Core3566 模组试用体验】基于openCV识别

    的图片是网上随便下载的。 将图片、识别分类器还有python上传至 Core3566
    发表于 09-24 23:50

    Core3566 模组试用体验】RK3566的CoreMark

    =1-lrt\"\\\\\" -DITERATIONS=0 -DPERFORMANCE_RUN=1 core_list_join.c core_main.c core
    发表于 10-06 23:48

    Core3566 模组试用体验】开箱篇

    Core3566 模组核心板主控采用Rockchip RK3566四核处理器,集成双核心架构GPU以及高效能NPU,最高支持0.8T算
    发表于 10-10 15:25

    Core3566 模组试用体验】EMMC烧写镜像

    Core3566 与树莓派CM4兼容,从微雪电子买个底座,当国产树莓了用,便宜又好用。 镜像EMMC烧录 : 1:下载RK驱动助手 DriverAssitant_v5.0.zip
    发表于 10-10 15:48

    Core3566 模组试用体验】NCNN在Core3566 模组上的部署和测试

    得益于四核A55的性能,NCNN跑起来应该问题不大,本文主要介绍NCNN在Core3566 模组上的部署和测试。 一、NCNN介绍 ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架
    发表于 10-10 20:45

    OpenCV编程:OpenCV3.X训练自己的分类器

    OpenCV的官方已经提供了很多训练好的分类器文件,在OpenCV的安装目录下有,文件中提供了常见的 人脸检测、眼睛检测、检测、行人检测等,看XML文件的命名即可得知。
    的头像 发表于 08-14 09:31 1891次阅读
    <b class='flag-5'>OpenCV</b>编程:<b class='flag-5'>OpenCV</b>3.X训练自己的分类器