毕业设计——deepfake假脸检测

deepfake 假脸检测(从零开始,持续更新)

当前任务先按照老师说的筛选一下数据库,网上找找批量提取人脸的代码,然后把提取的人脸区域保存为128*128大小的图片。提取人脸的方法一般是使用dlib和MTCNN,可以去github等网站找一下python代码。然后自己检查下数据库,比较奇怪的图片或者侧脸图片就去掉,检测的时候可以写代码检测去掉偏侧脸的情况,把数据库做完后面再来提取特征。

一、准备阶段

1、安装python、pycharm、opencv、matlab2019、git
2、 学习使用github

git和github常用语句记录:

二、学习使用git

github的库和本地搭建连接(参考:

https://blog.csdn.net/nmjuzi/article/details/82184818)
下载git和注册github

运行Git Bash,输入$ ssh-keygen -t rsa -C “
你注册github时的邮箱地址”
(空格不要漏)

选择保存key的路径,回车默认即可

设置密码输入两遍相同密码即可(或直接两次回车默认没有密码)

在key保存的路径找到打开id_rsa.pub,复制里面的全部内容

点击github头像,选择settings,选择SSH and GPG keys,选择new ssh key,创建新key

填入标题,将之前id_rsa.pub里的全部内容粘贴在key下面的框内,填好后单击add ssh key

测试ssh key:在git bash中输入ssh -T [email protected],接下来会提示你
The authenticity of host ‘github.com (xxx.xxx.xxx.xxx)’ can’t be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? 输入yes即可 。你设了密码的话会提示输入密码吧,如果和我一样没有设密码就会出现以下提示You’ve successfully authenticated, but GitHub does not provide shell access这样就成功了

输入git config –global user.name “你github的名字” (注意前边是“- -global”,)git config –global user.email “你的github邮箱地址”

git和github文件传输

在git bash中将位置定位到你想传输的文件夹中后用git clone https://xxxxxxxxxxx (后面是对应github你建的库的地址)

上传文件过程:
	ls 查看当前文件夹中文件
	git add “文件名”
	git commit -m “注释”
	git push origin master,要求输入邮箱地址,之后弹窗输入github密码
从github上下载文件到本地

切换到指定目录:cd “目录”
或直接从指定目录右击选“git bush here”
获取url
毕业设计——deepfake假脸检测_第1张图片
克隆仓库:git clone “url”,
即可

以下开启日志记载形式(因为个人感觉发展赶不上变化先记录了再说)

1月28日

完成python3、vscode、opencv环境搭建;放弃同时搭建python2
因为两个的pip我做不到同时安装,且提示python2.7在20年一月一日就放弃维护不在支持了,用不着装了。
无意中发现并看了两集看了youtube上的神经网络的入门级说明感觉很有帮助,附上链接:https://youtu.be/aircAruvnKk?t=1
在github下载人脸分类模型的时候发现下载github单个文件时发现downgit不能用了,有个周大侠的博主把它copy了下来能用(我也是第一次用downgit),http://zhoudaxiaa.gitee.io/downgit/#/home
尝试用haarcascades分类器发现其识别能力里不太强,师姐说用mtcnn或者dlib比较好,py3.7装dlib包感觉很麻烦,因为pip不能直接装,所以准备改用mtcnn

2月2日

今天准备用mtcnn来识别人脸,但是pip安装过程中总是安装到一半出现大量红色错误提示,而且下载速度极小,我感觉是服务器被墙了的原因,国内网络来pip安装某些包会很卡,上网找到了两个可行的方法。
方法一:用镜像网站下载:(参考:https://www.cnblogs.com/youyou0/p/9033487.html)。就是在包名后面加上一个镜像网站,例如想装mtcnn将你本来的pip install mtcnn改为pip install mtcnn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
方法二:下载python扩展包网页中你想要的安装包(.whl文件),在cmd中打开文件地址后,输入pip install “你下载的文件的文件名”

2月3日

今天mtcnn的代码也弄好了测试了一下测试效果比haarcascades好,比如下面这张图haarcascades识别不出来但是mtcnn可以,下边是识别剪裁结果

毕业设计——deepfake假脸检测_第2张图片

但是mtcnn感觉要比haarcascades运行更长时间,可以开始筛数据库了

2月3日

运行过程中报错:…error: (-215:Assertion failed) !ssize.empty() in function ‘cv::resize’
网上搜了一下大部分解决方案说的是路径问题,但是我的路径确定无误的,打开调试界面看了一下变量发现在人脸大小相关的变量里面居然有负值,具体为啥我也不知道。怪不得resize不行了,写了两行检测box里面有负值就跳过该图片的代码就好了。建议碰到这个问题可以看看调试界面各个变量有没有什么问题,在有问题那行的左边的红点左击点亮即可设置断点(每运行到那一点会停下,此时可以检查变量)。按F5调试,或者菜单栏里面有。

2月4日

处理到两千多张图片的时候硬盘好像自己退掉了,程序也停下来,还会有警告:Allocation of 240629760 exceeds 10% of system memory。好像是内存不太够用的原因,我把一些不用的程序关了就没了

2月7日

由于要求的人脸完整度要求较高,相对来说用haarcascades比用mctnn更好用,不仅减小了二次筛检的难度,而且处理速度也更快了,,但是还是有很多照片不符合要求,比如有的带了眼镜,有的侧脸侧的角度太大,有的识别出来的压根不是人脸,所以还得手动去除。今天手动晒到序号110091
之后可以先看有没有轮子用电脑晒除

3月29日

好久没更了,之前在忙找工作面试和考研复试,感觉毕设的优先级得往后排排,现在老师在催了就接着弄
昨天做了视频分帧,跑了一晚上,早上起来看看发现10个G的视频每一帧分出来有一百多G的照片。。。
这样下去硬盘要不够用了,就改成每10张存一张了,代码在这儿
import os 
import cv2

videos_src_path = 'F:\\benkebisheshujuku\\DFDC\\dfdc_train_part_1\\'
videos_save_path = 'F:\\benkebisheshujuku\\DFDC\\picture1\\'

videos = os.listdir(videos_src_path)

count = 1
for each_video in videos:
	i = 0
	each_video_full_path = os.path.join(videos_src_path,each_video)
	cap = cv2.VideoCapture(each_video_full_path)
	success = True
	while(success):
		success,frame = cap.read()
		i += 1
		if success==True:
			if i%10 == 0:
				cv2.imwrite(videos_save_path + "%d.jpg" % count,frame)
		count = count + 1
	
	cap.release()

你可能感兴趣的:(日志)