地标提取
Opened this issue · 10 comments
学长好,为什么运行地表提取的部分时会直接退出,而没有输出到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)
麻烦学长了,万分感谢。
你好你好,我也看到你前面问的几个问题啦,正好一起解答一下:
-
我刚刚自己测试了一下,sample_fake.mp4这个样本我自己运行是能正确输出的,输出后应该会打印出“已保存”的提示:
你可以尝试在extract_landmark.py的第59行那里打个断点,debug一下,看看是不是最后一步用np.savetxt()的时候报的错,如果是的话可能是numpy版本需要更新一下。如果不是的话就逐步往上排查一下。
-
FF++数据集我有提取好特征点的版本,链接在
training\datasets
文件夹下,有提供百度网盘链接。 -
关于数据集的处理,最开始我是用extract_landmark.py提取每个视频的特征点这么做的。不过后来发现Dlib太慢,而且效果也一般般,后来我就换了OpenFace这个工具包(链接可以参考
.calibrator
文件夹下的),快速的提取出大量视频中的特征点,然后用.calibrator\utils.py
这个代码进行批量处理。如果你是只用FF++数据集的,推荐你直接用问题2中的那部分处理好的。如果你有自已另外大批量的数据要处理,推荐用OpenFace这套做法,效率会高很多。
真的谢谢学长!!!学长太好了,我自己再回去看一下。openface那个我看的迷迷糊糊的,我再看看,谢谢学长。
59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧
59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧
raw_data 应为类型 'int',但实际为 'ndarray'
不客气!
59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧
我似乎有印象之前碰到过这个问题,推测是numpy版本变了以后改过这个函数,所以可能报错了。
你试试看直接运行能不能保存,反正这里raw_data
应该是个(371x136)的ndarray矩阵,设法直接存入txt就行。
不客气!
59行的那np.savetxt()有个警告,应为类型 'int',但实际为 'ndarray',可能是这个的问题吧
我似乎有印象之前碰到过这个问题,推测是numpy版本变了以后改过这个函数,所以可能报错了。 你试试看直接运行能不能保存,反正这里
raw_data
应该是个(371x136)的ndarray矩阵,设法直接存入txt就行。
好的好的,万分感谢
学长好,我用200个DF的数据集和对应的地标作为输入,然后得出的鉴定结果为(54[real]/200),这个结果正常吗
可能不太正常,我最近测试过,应该目前提供的模型参数对DF数据集鉴定准确率能到100%的,也就是正常来说200个DF数据集中对应的样本都应该被辨别出来为假才对。
如果你用的是tensorflow版本的模型,就用.\demo\model_weights\ff
或者.\training\weights\tf
下的参数,这两个应该性能接近。
再次感谢学长。刚刚看到更新了Pytorch的全部的数据集的训练模型,demo下的tensorflow版本会有对应的参数吗?
tensorflow的版本后续就不继续更新啦,因为tf没办法定制做一些层,所以模型的性能很难提升。
demo里边我后续也准备往PyTorch的版本升级,前面的提取特征点这部分不动,把网络替换成PyTorch版本的。