在VisionFive 2(昉·星光2)开发板上基于Opencv进行人脸识别

这篇具有很好参考价值的文章主要介绍了在VisionFive 2(昉·星光2)开发板上基于Opencv进行人脸识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此教程的运行主要是在StarFive的VisionFive 2(昉·星光2)开发板上,板子的具体信息或者其他产品参考官网主页;VisionFive 2的开源技术文档和装机教程参考官方文档。

1. 在VisionFive 2上安装debian系统

将Debian OS烧录到Micro-SD上

这一部分主要参考官方文档中的3.3. 将OS烧录到Micro-SD卡上

【事前准备】准备32g的Micro-SD卡,首先通过外接读卡器或者内置的读卡器将Micro-SD卡接入个人计算机中。格式化Micro-SD卡。

如果是MacOS用户,Micro-SD卡有可能不会显示读入。可以通过在终端中输入diskutil list 来确认目标Micro-SD卡已读入,然后输入sudo diskutil eraseDisk FAT 32 SDCARD MBRFormat </dev/...> 来格式化Micro-SD卡。</dev/...> 为目标Micro-SD卡的具体名称。

【下载系统】在starfive提供的链接上下载最新版本的debian镜像(目前最新版本是202306),将sd文件夹里后缀是.bz2的文件解压。

【烧录步骤】文档中推荐使用BalenaEtcher,点击下载链接安装并运行。点击Flash from File,然后选择上一步解压后的.img文件;点击Select target,并选择链接好的Micro-SD卡;最后点击Flash!开始烧录。

登陆Debian

在官方文档章节3.4中给出了3种登录方式:

  • 通过HDMI使用Xfce桌面环境登录(第22页)
  • 通过以太网使用SSH登录(第23页)
  • 使用USB转串口转换器连接并登录(第26页)

本教程主要使用USB转串口连接MacOS电脑并登录。如果想尝试其他方式可以参考官方文档。

【硬件连接】参考第30页示意图连接串口,并把USB转串口转换器连接到个人计算机上。

【安装minicom】在MacOS上安装minicom需要使用Homebrew安装,所以需要先安装Homebrew。在终端中输入如下指令

/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

然后输入安装minicom的指令

brew install minicom

【连接串口】首先需要知道通过usb串口连接的设备名称。先通过指令ls /dev/tty.* 查看电脑连接的所有串口设备,得到目标设备的id(示例:/dev/tty.usbmodem102 ,其中usbmodem102是设备的id,前面的/dev/tty. 不变。得知设备id之后输入如下指令连接到串口设备:

minicom -D /dev/tty.<deviceID> -b 115200

【启动设备】输入用户名和密码登录。可以使用root或者user用户名登录,密码都是starfive。

2. Python3环境部署

官方已经给出了一键安装包和依赖(包括firefox浏览器、python-opencv等)的shell指令。首先需要下载相应的文件。这一步需要给starfive联网,可以通过以太网接口连接网线。

wget https://github.com/starfive-tech/Debian/releases/download/v0.8.0-engineering-release-wayland/install_package_and_dependencies.sh

这一步可以通过starfive的终端完成,或者在个人计算机上下载后传输到starfive中(也可以在starfive中新建同名文件并复制所有内容)。运行安装包和依赖的shell文件。

chmod +x install_package_and_dependencies.sh
sudo ./install_package_and_dependencies.sh

这个安装过程会比较久,可能需要2-3小时。

3. 使用opencv进行人脸识别

【硬件配置】本文使用的是usb摄像头,目前版本的starfive暂时不支持pyqt,即无法显示程序读取到的摄像头内容。如果要验证自己摄像头的可用性,可以在终端中输入如下python指令:

python3

如果上一步python3配置成功,会显示python编程界面。在此界面中输入如下代码:

import cv2

print(cv2.VideoCapture(index=4, apiPreference=cv2.CAP_V4L2)) # usb摄像头

这里外接USB摄像头的index默认是4,最好是在终端中输入sudo v4l2-ctl --list-devices ,查看USB Camera下面的/dev/video 后面的数字来确认index。

如果打印摄像头信息没有报错说明摄像头正常运行。

【人脸识别】成功读取摄像头后就可以进行有关人脸识别的程序编写了。由于无法使用qt,最好是在终端中输入export QT_QPA_PLATFORM=offscreen 指令,使用离屏模式。

以下是一个简单的示例,摄像头会读取信息并在输出中打印True/False来说明是否识别到人脸。新建一个python文档,在终端中输入nano test1.py 进入nano编辑器;输入如下代码。

import cv2
import time

# 加载级联分类器模型
face_cascade = cv2.CascadeClassifier("/usr/share/opencv4/haarcascades/haarcascade_frontalface_default.xml")

# 打开摄像头
cap = cv2.VideoCapture(4, cv2.CAP_V4L2) 

# 创建计时器
start_time = time.time()

while True:
    # 读取摄像头图像
    ret, frame = cap.read()

    # 将图像转换为灰度
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

    # 判断是否检测到人脸
    if len(faces) > 0:
        has_face = True
    else:
        has_face = False

    # 输出结果
    print(has_face)
    
    # 检查是否已经过了30秒
    elapsed_time = time.time() - start_time
    if elapsed_time >= 30:
        break

# 等待一段时间确保程序结束
time.sleep(2)

# 结束程序
exit()

这里是用的是默认的正脸模型haarcascade_frontalface_default.xml 。在/usr/share/opencv4/haarcascades 目录下还有其他模型可以进行不同类型的人脸识别,如识别眼睛部位等。

实例演示

如这个教程所示,我们制作了与starfive合作的视频,通过面部识别遥控纸花(点此链接)文章来源地址https://www.toymoban.com/news/detail-760273.html

到了这里,关于在VisionFive 2(昉·星光2)开发板上基于Opencv进行人脸识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenCV项目开发实战--进行人脸变形 原理—并附实例Python/C++代码实现

    文末附基于Python和C++两种方式实现的测试代码下载链接 在本教程中,我们将学习如何使用 OpenCV 将一张脸变成另一张脸。 在我之前的文章中,我介绍了面部关键点检测和Delaunay 三角测量。最好查看这些帖子以更好地理解这篇文章。 图像变形首先在电影 Willow 中广泛使用,使用

    2024年02月09日
    浏览(67)
  • 【优秀毕设】基于OpenCV的人脸识别打卡/签到/考勤管理系统(最简基本库开发、可基于树莓派)

    【优秀毕设】基于OpenCV的人脸识别打卡/签到/考勤管理系统(最简基本库开发、可基于树莓派) 该系统利用Harr级联检测和LPBH进行人脸检测和训练、识别 利用Tkinter完成界面搭建 利用Flask+HTML完成网络实时图像推流及控制 利用captcha.image 完成验证码功能 利用xlsxwriter将数据保存

    2024年02月06日
    浏览(91)
  • opencv进行人脸识别

    目录 一:准备工作 二:人脸图片识别 三:视频人脸识别 一:准备工作 1:github网站下载开源人脸特征数据 下载链接:

    2024年02月19日
    浏览(40)
  • OpenCV学习笔记 使用OpenCV进行人脸交换

            首先说换脸这件事情,已经可以算是有一丢丢古老的技术了,基于OpenCV进行人脸交换的好处在于简单,坏处在于无法复刻表情。如果想要比较完美的可以去找deepfakes相关技术,如果想要对脸部进行一些自定义操作,那么了解OpenCV换脸涉及到的技术点还是有价值的。

    2024年03月11日
    浏览(42)
  • 人脸识别实战:使用Python OpenCV 和深度学习进行人脸识别

    首先简要讨论基于深度学习的面部识别的工作原理,包括“深度度量学习”的概念。 然后,我将帮助您安装实际执行人脸识别所需的库。 最后,我们将为静止图像和视频流实现人脸识别。 安装人脸识别库 ================================================================== 为了使用 Python 和

    2024年04月09日
    浏览(87)
  • VC++中使用OpenCV进行人脸检测

    对于上面的图像,如何使用OpenCV进行人脸检测呢? 使用OpenCV进行人脸检测十分简单,OpenCV官网给了一个Python人脸检测的示例程序, objectDetection.py 代码如下: 所在目录为D:env_buildopencv4.9.0opencvsourcessamplespythontutorial_codeobjectDetectioncascade_classifierobjectDetection.py 人脸识别可以

    2024年02月21日
    浏览(43)
  • Java中利用OpenCV进行人脸识别

    OpenCV 概述 ​ OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,它提供了丰富的工具和算法,用于处理图像和视频数据。该库由一系列高效的计算机视觉算法组成,涵盖了许多领域,包括目标识别、图像处理、机器学习、三维重建等。 以下是OpenCV的一些关键特点

    2024年02月03日
    浏览(42)
  • 【人脸识别】ssd + opencv Eigenfaces 和 LBPH算法进行人脸监测和识别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 其实不一定使用ssd,fasterRcnn, yolov 都可以~ 所以假设我们已经实现了这个监测模型。那么我们直接进入识别环境。 OpenCV提供了三种人脸识别的方法,分别是LBPH方法、EigenFishfaces方法、Fisherfaces方法。

    2024年02月05日
    浏览(101)
  • Python使用Opencv进行图像人脸、眼睛识别实例演示

    效果展示 下面使用 haarcasecade_eye.xml 进行人眼识别的效果图: 人脸识别是一种可以自动检测图像或视频中存在的人脸的技术。它可以用于各种应用,例如安全控制,自动标记照片和视频,以及人脸识别解锁设备等。在这篇博客中,我们将详细讨论人脸识别技术,以及如何使用

    2023年04月17日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包