frederickszk / LRNet

Landmark Recurrent Network: An efficient and robust framework for Deepfakes detection
MIT License
90 stars 13 forks source link

地标提取 #13

Open Wrjz opened 2 years ago

Wrjz commented 2 years ago

学长好,为什么运行地表提取的部分时会直接退出,而没有输出到landmark的文件内。 Settings: NOT visualize the extraction results. Extract landmarks from sample_fake.mp4. Detecting: 100%|██████████| 371/371 [01:18<00:00, 4.74it/s] 0%| | 0/370 [00:00<?, ?it/s]Tracking 100%|██████████| 370/370 [00:02<00:00, 184.66it/s] 进程已结束,退出代码-1066598274 (0xC06D007E) 麻烦学长了,万分感谢。

frederickszk commented 2 years ago

你好你好,我也看到你前面问的几个问题啦,正好一起解答一下:

  1. 我刚刚自己测试了一下,sample_fake.mp4这个样本我自己运行是能正确输出的,输出后应该会打印出“已保存”的提示:

    image

    你可以尝试在extract_landmark.py的第59行那里打个断点,debug一下,看看是不是最后一步用np.savetxt()的时候报的错,如果是的话可能是numpy版本需要更新一下。如果不是的话就逐步往上排查一下。

  2. FF++数据集我有提取好特征点的版本,链接在training\datasets文件夹下,有提供百度网盘链接。
  3. 关于数据集的处理,最开始我是用extract_landmark.py提取每个视频的特征点这么做的。不过后来发现Dlib太慢,而且效果也一般般,后来我就换了OpenFace这个工具包(链接可以参考.calibrator文件夹下的),快速的提取出大量视频中的特征点,然后用.calibrator\utils.py这个代码进行批量处理。如果你是只用FF++数据集的,推荐你直接用问题2中的那部分处理好的。如果你有自已另外大批量的数据要处理,推荐用OpenFace这套做法,效率会高很多。
Wrjz commented 2 years ago

真的谢谢学长!!!学长太好了,我自己再回去看一下。openface那个我看的迷迷糊糊的,我再看看,谢谢学长。

Wrjz commented 2 years ago

59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧

Wrjz commented 2 years ago

59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧

raw_data 应为类型 'int',但实际为 'ndarray'

frederickszk commented 2 years ago

不客气!

59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧

我似乎有印象之前碰到过这个问题,推测是numpy版本变了以后改过这个函数,所以可能报错了。 你试试看直接运行能不能保存,反正这里raw_data应该是个(371x136)的ndarray矩阵,设法直接存入txt就行。

Wrjz commented 2 years ago

不客气!

59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧

我似乎有印象之前碰到过这个问题,推测是numpy版本变了以后改过这个函数,所以可能报错了。 你试试看直接运行能不能保存,反正这里raw_data应该是个(371x136)的ndarray矩阵,设法直接存入txt就行。

好的好的,万分感谢

Wrjz commented 2 years ago

学长好,我用200个DF的数据集和对应的地标作为输入,然后得出的鉴定结果为(54[real]/200),这个结果正常吗

frederickszk commented 2 years ago

可能不太正常,我最近测试过,应该目前提供的模型参数对DF数据集鉴定准确率能到100%的,也就是正常来说200个DF数据集中对应的样本都应该被辨别出来为假才对。 如果你用的是tensorflow版本的模型,就用.\demo\model_weights\ff或者.\training\weights\tf下的参数,这两个应该性能接近。

Wrjz commented 2 years ago

再次感谢学长。刚刚看到更新了Pytorch的全部的数据集的训练模型,demo下的tensorflow版本会有对应的参数吗?

frederickszk commented 2 years ago

tensorflow的版本后续就不继续更新啦,因为tf没办法定制做一些层,所以模型的性能很难提升。 demo里边我后续也准备往PyTorch的版本升级,前面的提取特征点这部分不动,把网络替换成PyTorch版本的。