主题:【图像处理求助】出国的就别管了,先救救国内群众的急 -- 一双草鞋
人家出国的远走高飞的,咱是比不了。有没有高手救急一下国内的孤苦群众?
是这样的,有些抖音视频会有很多漂亮妹子的图片,我觉得有用,想存下来。现在已经把这些个小视频下载到本地(mp4格式)了。但是希望以图片格式而不是视频形式存储。因为这些图片可能是不同的人,或者穿着不同的衣服,总有一些更喜欢的,要挑选一下。手动是很麻烦的,因为一个视频几乎有无数帧图片(一秒就几十张)。
目前我用的算法是,把视频一帧帧读入,如果该帧和前一帧数据差别足够小(同一个美人同一个姿势穿同样衣服),就进到下一帧,否则把这一帧以图片形式存储下来再进到下一帧。
这对一些视频是好使的。但是发现一些可恶的作者,为了搞怪,在视频中不同图片切换时搞了一些效果,虚化、旋转、抖动、亮度变化等等,这样我前面的算法就不好使了。那么有没有什么计算量不太大的方法,可以辨别出没有经过变换的原图?比如每帧有个值(假设sigma),sigma越高越接近原图。那么我就可以从时序sigma中找到局部最大值,认为这些帧是原图,把他们提取、下载。
初步想的是亮度方差,因为清晰的图像相对模糊的图像,对比度高,方差应该更大。但是对于旋转、抖动的图片,就未必成立。我估计这一行的人,应该有很多成熟算法。希望大牛不吝赐教,或者提供线索(相关书籍、论坛等等)。
本帖一共被 1 帖 引用 (帖内工具实现)
差不多得了,还挑挑拣拣,不知道的以为你干啥高尚的事情呢。
当前帧编号为(2),不仅检测前一帧(1),也检测后一帧(3):如果1和2同,说明没切换,1和2不同,则检测2和3,如果2和3不同,说明图像在切换中,不保存,如果2和3同,则保存。
不是检测前后帧是否变化,而是把每个视频的每一帧都保存下来,建立大图库。
然后对每一幅图片进行特征抽象,形成一个特征值。对于各种不要的特效,也应抽得出来。
最后就是删除同类,删除异类的事了。
因为某些场景可能在不同视频文件里重复出现,上述思路可能更好。
另外只是欣赏妹子的话,搜集抖音里高度美颜的,不如AI绘图。
立时没时间,但一定找时间去尝试一下,回头跟你汇报结果。
比如2分钟视频,假设24Hz,就是24x120个图,都存下来数据量太大了。
对每一幅图片进行特征抽象
我的问题就是抽取什么特征。
搜集抖音里高度美颜的,不如AI绘图。
我搜集的就是抖音里高度美颜的AI绘图。
自己的数据源不行,做出来的AI绘图跟人家的差了档次。
天大的西瓜,你一勺子挖5秒120帧,整理以后留5帧,再接着挖后5秒的,就可以了。
AI绘图的档次,取决于模型,关键词,显卡。自己训练模型的话,用抖音模特,有特殊加成么?
兄弟,拱手。
不需要把每一帧都提取出来,那个数据量太大。可以考虑只提取关键帧,忽略普通帧,然后再按照楼下说的训练一个模型提取自己喜欢的。可以试试这个链接(没测过):什么是关键帧以及ffmpeg如何提取关键帧
对,我的问题,其实就是如何寻找【关键帧】。我原来问的,是如何通过计算,从视频中的图像数据倒推哪些是【关键帧】。
但是,一个捷径是视频发布者在打包的时候,就已经定义好了【关键帧】,并且可以被读者获取。只要找到工具去读相关信息即可。
我尝试了一下你提供的ffmpeg工具,似乎采取的就是第二个方式。很不幸,并没有成功。用肉眼可以数出来某个视频大概有20个左右【关键帧】,但是用ffmpeg只得到十来个图片(图像类型标记为I的),而且起码一半以上不是实际上的【关键帧】,比如有重合、抖动特效等等。我猜测是作者打包的时候故意搞错误的tag,防止被他人解压缩正确图片。
不过ffmpeg很强大,非常感谢你的推荐。
没实践过,只能提供一些思路。
FFmpeg也支持提取场景转换帧和按时间抽帧。
上面的链接里也提到了用机器学习提取场景转换帧,但比较慢,不知道效果哪个好。
请教下有进展了不,记得分享下哈