野火鲁班猫(arrch64架构debian)从零实现用MobileFaceNet算法进行实时人脸识别(三)用yolov5-face算法实现人脸检测

环境直接使用第一篇中安装好的环境即可

先clone yolov5-face项目

复制代码
git clone https://github.com/deepcam-cn/yolov5-face.git

并下载预训练权重文件yolov5n-face.pt

网盘链接: https://pan.baidu.com/s/1xsYns6cyB84aPDgXB7sNDQ 提取码: lw9j

(野火官方提供)

再找一张带人脸的图片test.jpg保存在yolov5-face项目文件夹下

使用以下命令开始运行人脸检测任务

bash 复制代码
python detect_face.py --weights ./yolov5n-face.pt --img-size 640 --source ./test.jpg --view-img

这个时候,只要报错:

bash 复制代码
ModuleNotFoundError: No module named 'xxx'

就使用下面的命令安装一下相关的库就好

bash 复制代码
pip install xxx

再运行上面的人脸检测任务,我这又出现错误:

bash 复制代码
RuntimeError: Couldn't load custom C++ ops. This can happen if your PyTorch and torchvision versions are incompatible, or if you had errors while compiling torchvision from source. For further information on the compatible versions, check https://github.com/pytorch/vision#installation for the compatibility matrix. Please check your PyTorch version with torch.__version__ and your torchvision version with torchvision.__version__ and verify if they are compatible, and if not please reinstall torchvision so that it matches your PyTorch install.

这个错误是当前环境中安装的 PyTorchtorchvision二者版本不匹配,导致无法加载自定义 C++ 扩展导致的

使用以下代码查看PyTorchtorchvision当前的版本

bash 复制代码
python - <<EOF
import torch, torchvision
print("PyTorch:", torch.__version__)
print("torchvision:", torchvision.__version__)
EOF

我这显示

bash 复制代码
PyTorch: 2.3.0
torchvision: 0.15.2a0

解决办法:先卸载当前安装的pytorch和torchvision,再重新安装指定相匹配版本的pytorch和torchvision

bash 复制代码
# 卸载
pip uninstall torch torchvision -y

# 重新安装指定版本
pip install torch==2.3.0 torchvision==0.18.0 --extra-index-url https://download.pytorch.org/whl/cu121

再次执行人脸检测任务,虽然成功检测出来人脸,但是显示图片时又出现错误:

bash 复制代码
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
libGL error: failed to create dri screen
libGL error: failed to load driver: rockchip
qt.qpa.xcb: QXcbConnection: XCB error: 148 (Unknown), sequence: 192, resource id: 0, major code: 140 (Unknown), minor code: 20

这个问题是没能正常加载Rockchip GPU 的驱动程序导致openGL加载失败,安装驱动解决问题:

bash 复制代码
sudo apt-get install mesa-utils libdrm-dev libegl-dev libgles2-mesa-dev

再次执行检测任务

bash 复制代码
python detect_face.py --weights ./yolov5n-face.pt --img-size 640 --source ./test.jpg --view-img

显示检测成功,图片也能正常显示

bash 复制代码
loading images ./test.jpg
image 1/1 /home/cat/yolov5/yolov5-face/test.jpg: 10 faces

使用rtsp地址代替图片,即可进行监控画面实时人脸检测

bash 复制代码
python detect_face.py --weights ./yolov5n-face.pt --img-size 640 --source rtsp://192.168.31.217:554/ch01.264 --view-img
相关推荐
MatrixOrigin6 分钟前
矩阵起源成功登陆深圳“专精特新”专板,加速 AI 数据智能新进程!
人工智能
陈天伟教授13 分钟前
人工智能技术- 语音语言- 02 机器诗人
人工智能
却道天凉_好个秋13 分钟前
OpenCV(二十九):高通滤波-索贝尔算子
人工智能·opencv·计算机视觉
xuehaikj33 分钟前
【目标检测】YOLOv10n-ADown弹孔检测与识别系统
yolo·目标检测·目标跟踪
.普通人40 分钟前
stm32f103c8t6寄存器点灯法
stm32·单片机·嵌入式硬件
用户5191495848451 小时前
Go语言AI智能体开发套件(ADK) - 构建复杂AI代理的开源框架
人工智能·aigc
海底的星星fly1 小时前
【Prompt学习技能树地图】检索增强生成(RAG)核心技术剖析与实践指南
人工智能·语言模型·prompt
AI研一研1 小时前
如何快速学习知识、查找要点、把知识读“薄”、读“精”?
人工智能·学习
北京耐用通信1 小时前
不只是延长,是“重生”:耐达讯自动化Profibus总线光端机如何让老旧设备数据“开口说话”?
人工智能·物联网·网络协议·自动化·信息与通信
电子工程师-C511 小时前
基于单片机的智能手表
单片机·嵌入式硬件·智能手表