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

    文章

    1719

    浏览量

    32017
  • OpenCV
    +关注

    关注

    33

    文章

    651

    浏览量

    44411
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89576
  • 脚本
    +关注

    关注

    1

    文章

    407

    浏览量

    29051
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Core3566 模组开箱

    发烧友的快递一直都很快,很快就拿到了,很大的一箱子。
    的头像 发表于 09-11 09:04 4854次阅读
    <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 2776次阅读
    【<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 2175次阅读
    NCNN在<b class='flag-5'>Core3566</b><b class='flag-5'>模组</b>上的部署和测试

    【新品体验】Omni3576边缘计算套件免费试用

    Core3576 核心板为边缘计算提供强大的算力,搭载八核64位CPU、ARM Mali-G52 MC3 GPU,并集成6 TOPS算力的NPU,具备强大的计算和图形处理能力。Omni3576
    发表于 01-21 14:51

    Omni3576边缘计算套件试用体验】介绍、开箱

    Omni3576 边缘计算套件测评 Luckfox Omni3576 主控采用 Rockchip RK3576 处理器,该处理器采用 8nm 制程工艺,搭载了八核 64 位 CPU(包括 4
    发表于 03-15 16:40

    Omni3576边缘计算套件试用体验】RKNN 推理测试与图像识别

    Omni3576 边缘计算套件测评】RKNN 推理测试与图像识别 本文介绍了 Omni3576 边缘计算套件实现 RKNN 推理
    发表于 03-20 16:14

    Omni3576边缘计算套件试用体验】车牌识别

    Omni3576边缘计算套件试用体验】车牌识别 本文介绍了 Omni3576 边缘计算
    发表于 04-01 02:45

    Omni3576边缘计算套件试用体验】人脸识别

    Omni3576边缘计算套件试用体验】人脸识别 本文介绍了 Omni3576 边缘计算
    发表于 04-01 21: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