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[</

最低0.47元/天 解锁文章
1656

被折叠的 条评论
为什么被折叠?



