pyqt5实战-目标检测-图像处理-人脸检测之UI界面

pyqt5实战-目标检测-图像处理-人脸检测之UI界面

今天挖掘了一个很不错的界面,使用pyqt5实现,可以加载摄像头进行目标检测,也可以手动打开图片或者视频,进行检测,封装得很好。这里以人脸检测,人脸疲劳检测(检测眨眼),微笑检测三个功能为例子。

算法库

所使用的检测算法模型为MediaPipe。MediaPipe为我们日常使用的革命性产品和服务提供动力。与资源消耗型的机器学习框架不同,MediaPipe只需要最少的资源。它是如此微小和高效,甚至嵌入式物联网设备都可以运行它。2019年,MediaPipe公开发布后,为研究人员和开发人员开辟了一个全新的机会世界。

MediaPipe是一个用于构建机器学习管道的框架,用于处理视频、音频等时间序列数据。这个跨平台框架适用于桌面/服务器、Android、iOS和嵌入式设备,如Raspberry Pi和Jetson Nano。

MediaPipe封装很多检测算法,其中就包括人脸检测算法:

人脸检测
Face Mesh
虹膜
手
姿态
人体
人物分割
头发分割
目标检测
Box Tracking
Instant Motion Tracking
3D目标检测
特征匹配
AutoFlip
MediaSequence
YouTube-8M

更多详细介绍可看:
MediaPipe介绍

环境配置

python3.7
mediapipe
dlib
opencv
scipy
imutils

代码简介

这里可以分为三种功能,分别为摄像头检测,图片检测,视频文件检测,核心代码如下:
(1)摄像头检测:

# 摄像头识别
def show_camera(self):
flag, self.camera_image = self.ui.cap.read()
self.frameCount += 1

if self.enableDet:
    self.fd.detection(self.camera_image)
    img_src = self.fd.image
else:
    img_src = self.camera_image

ih, iw, _ = img_src.shape
w = self.ui.out_video.geometry().width()
h = self.ui.out_video.geometry().height()

if iw > ih:
    scal = w / iw
    nw = w
    nh = int(scal * ih)
    img_src_ = resize(img_src, (nw, nh))

else:
    scal = h / ih
    nw = int(scal * iw)
    nh = h
    img_src_ = resize(img_src, (nw, nh))

img_src_ = flip(img_src_, 1)

show = cvtColor(img_src_, COLOR_BGR2RGB)

self.autoSave(img_src_)

showImage = QtGui.QImage(show.data, show.shape[1], show.shape[</
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏融化了这季节

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值