mtcnn人脸识别
文章平均质量分 74
复现
通信仿真爱好者
phd在读,爱好通信领域相关仿真,包括调制解调,OFDM,MMIMO,信道编码(ldpc,polar,卷积)等,也擅长可见光(VLC),多址接入(NOMA,RSMA),无人机(UAV),智能反射面(RIS)等通信优化问题相关的资源分配算法,如sca,拉格朗日等,也擅长使用强化学习解决通信相关问题。所展示的仿真图均有完整代码一键运行出图
展开
-
简化版mtcnn--复现过程详解
这篇博客记录了我复现mtcnn的理论流程,相关处理(nms及iou等)操作可见本专栏,时间有限只用了边框回归,人脸关键点没有考虑,过些天再加上一波,代码待整理之后放上。人脸检测旨在解决两个问题,1是识别图中有没有人脸,2是有的话,人脸在什么位置并画出人脸框在解决上述两个问题时,mtcnn采用了下面两个方法:找出所有可能是人脸的候选从候选区中筛选出最可能是人脸的候选区。可以看出,这种操作...原创 2020-01-02 17:03:50 · 1435 阅读 · 1 评论 -
torchvision.Transform.ToTensor()将图片正确输入网络
ToTensor()描述如下:它会将图片从NHWC转换为NCHW且变为tensor,并且通过除以255将图片归一化到(0,1)。注意,通道的顺序与你读取图片所用的工具有关:PIL: (R,G,G)cv2:(B,G,R)例子如下:import torchfrom PIL import Imageimport cv2from torchvision import transf...原创 2019-12-28 13:19:11 · 2366 阅读 · 0 评论 -
pytorch报错:RuntimeError: Given groups=1, weight of size 10 3 3 3, expected input[1, 12, 12, 3]
在mtcnn人脸检测中,网络训练时报以下错误:后来找到原因如下:图片经过处理后的数据格式是 NHWC,而pytorch输入图片的格式要求是NCHW,需要转化一下。有两种方法:一是用下列方法:import torchimage = torch.randn(1,12 ,12, 3)image = image.permute(0,3,1,2)print(image.shape)#([1,...原创 2019-12-28 12:42:59 · 14321 阅读 · 3 评论 -
nms
nms过程:设定置信度阈值,根据置信度,从大到小排列候选框列表选取置信度最高的框A,添加到输出列表,并将其从候选框列表中删除。计算A与候选框列表中所有框的iou,若大于一定的阈值,将框删除。从未处理的框集继续寻找一个得分最高的框,重复2,3操作吗,直到候选列表框为空,返回输出列表。import numpy as npa = np.array([1,2,3])b = np.arr...原创 2019-12-25 20:54:09 · 293 阅读 · 0 评论 -
通过计算理解iou
参考博客:目标检测之 IoU一维情况:import numpy as npdef iou(set_a , set_b): x1, x2 = set_a y1, y2 = set_b low = max(x1,y1) ##交集下界 high = min(x2, y2) ##交集上界 if high-low<0 : ##当上界小于...原创 2019-12-12 20:38:41 · 272 阅读 · 0 评论 -
利用opencv内置分类器进行人脸检测
参考博客:(人脸识别2-2)——利用opencv内置分类器检测人脸在cv2的源码文件夹下,可看到存放了很多的已经训练好的分类器,我们可进行替换来尝试。注意代码中的路径为从cv2的路径。# -*-coding:utf-8 -*-import cv2def facedetect(windowname, camera_id): # 命名和打开摄像头,详情见上一篇 cv2....原创 2019-12-11 19:35:59 · 424 阅读 · 0 评论 -
图像金字塔
参考:图像金字塔:【OpenCV入门】第十五弹:图像金字塔 通常情况下,我们使用的是固定大小的图像,但在某种情况下,我们需要处理不同分辨率的图像。例如。在人脸识别中,我们是无法确定人脸在图像中的大小的。这种情况下,我们需要创建一组具备不同分辨率的相同图像集,并且在这个图像集中搜索对象。这个具有不同分辨率的图像集称为图像金字塔。个人感觉是像是图像的缩放,在opencv中,关于图像金字塔的操...原创 2019-12-10 16:44:40 · 142 阅读 · 0 评论