V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiatong
V2EX  ›  Java

根据电影某一帧,匹配到某个电影。

  •  
  •   xiatong · 2019-11-16 13:56:52 +08:00 · 15608 次点击
    这是一个创建于 1832 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天看到一个电影画面,想找到是哪部电影,好困难。想想否做一个小公举。 需求:根据某一帧(有可能某一帧的一部分)来在电影库中匹配电影。 解决思路:将图片按照帧拆分,保存特征信息。 难点: 1.需要庞大的电影特征库支持。 2.在大量数据中查询 3.解析大量电影,提取特征

    大佬们有什么想法吗?

    91 条回复    2020-02-02 22:38:30 +08:00
    Cheons
        1
    Cheons  
       2019-11-16 14:00:25 +08:00 via Android   ❤️ 27
    疑车无据
    xiatong
        2
    xiatong  
    OP
       2019-11-16 14:01:30 +08:00
    @Cheons 哈哈哈哈,你这样一说,柳暗花明又一村啊。
    Dreamll
        3
    Dreamll  
       2019-11-16 14:03:09 +08:00 via Android
    我见过动漫有这样的功能
    xiatong
        4
    xiatong  
    OP
       2019-11-16 14:03:54 +08:00
    有一个思路,一般找电影,图片大部分是在网上找的,可以利用搜索引擎,筛选关键字来找到电影。
    niubee1
        5
    niubee1  
       2019-11-16 14:04:20 +08:00
    实现很容易,你如果你有几个亿的资金投给我, 一定可以满足你的愿望的
    yzwduck
        6
    yzwduck  
       2019-11-16 14:04:59 +08:00 via Android   ❤️ 2
    有一个网站 What Anime Is This,它能根据一帧画面找到动漫的出处。它用的特征是画面拆分成小格子后,每个格子的平均颜色。
    好像还是开源的
    xiatong
        7
    xiatong  
    OP
       2019-11-16 14:06:00 +08:00
    @niubee1 几个亿的资金倒是没有。哈哈哈哈
    xiatong
        8
    xiatong  
    OP
       2019-11-16 14:06:47 +08:00
    我去看一下,谢谢啊。
    gavindexu
        9
    gavindexu  
       2019-11-16 14:09:06 +08:00 via iPhone   ❤️ 2
    这个图片里,出现的物品有:
    男 1 裸 黑 **鹰
    女 1 裸 白 **玛丽亚
    沙发 1 米色
    床垫 1 水蓝色
    时间 明亮
    语言 日语
    场景 不可描述
    😂

    然后去模糊匹配和推荐相似
    身体从此一日不如一日
    solupro
        10
    solupro  
       2019-11-16 14:11:18 +08:00 via iPhone
    让我想起曾经有个想法,来源 Nintendo Switch。在家播放电影,动画等媒体的时候,突然要出门拿起手机拍下当前画面就能把影片信息和进度转动手机继续播放。
    xiatong
        11
    xiatong  
    OP
       2019-11-16 14:11:35 +08:00
    @gavindexu 你号没了,哈哈哈哈
    xiatong
        12
    xiatong  
    OP
       2019-11-16 14:12:25 +08:00
    @solupro 哈哈哈哈。
    imn1
        13
    imn1  
       2019-11-16 14:14:00 +08:00
    这个我想过,手头视频资源比较多,想实验性做一个,但
    好难

    理论上画面匹配方式应该排除,应该用内容匹配
    肯定需要有特征的帧,不然 FBI WARNNING 期望结果是?

    但实际上,画面匹配在现实中更为可行,因为没有任何内容特征库,只能图像匹配
    murmur
        14
    murmur  
       2019-11-16 14:14:18 +08:00
    根据车贴报车牌?这得多大的数据库
    tankb52
        15
    tankb52  
       2019-11-16 14:16:15 +08:00
    @solupro
    拍照这个动作可以省略,直接打开手机就继续看,播放进度同步就行了。
    imn1
        16
    imn1  
       2019-11-16 14:19:49 +08:00
    by the way
    这个项目难在建库,不在匹配,后者已经有现成的,不需要自己造轮子
    xiatong
        17
    xiatong  
    OP
       2019-11-16 14:21:39 +08:00
    @imn1 有点难。做出来功能意义可能不大,但是其中的技术含量还可以。
    xiatong
        18
    xiatong  
    OP
       2019-11-16 14:23:06 +08:00
    @imn1 是啊,用什么办法能优化存储和查询。库里数据不多,怎么搞都没用。
    blackwolf
        19
    blackwolf  
       2019-11-16 14:25:33 +08:00
    @imn1 建库也不是问题,如果那些匿名黑客用机器学习无脑搞,只要发布训练好后的网络参数即可,完全可以绕开所有版权问题,但是能找到如此多 gpu 资源来搞训练估计是个大问题。
    blackwolf
        20
    blackwolf  
       2019-11-16 14:26:25 +08:00
    @xiatong 别忘了还有机器学习,一部电影估计只要一秒一帧足矣
    neroxps
        21
    neroxps  
       2019-11-16 14:28:09 +08:00
    @niubee1 #5 我估计几个亿干不了这个事~
    snoopygao
        22
    snoopygao  
       2019-11-16 14:28:46 +08:00 via Android   ❤️ 1
    谷歌已经在做了,只要你搜某一场景的描述,会有视频列出来,~但是,这都是人工去做的,worker 要看视频,选择合适的描述语言
    ArtIsPatrick
        23
    ArtIsPatrick  
       2019-11-16 14:30:27 +08:00 via iPhone
    记得亚马逊 firefly 可以识别正在播放的电影,然而。。
    chiu
        24
    chiu  
       2019-11-16 14:31:00 +08:00 via Android
    B 站老凉人力干这种事,二次元领域
    imn1
        25
    imn1  
       2019-11-16 14:33:02 +08:00
    @xiatong
    这样说吧

    方式一,只是为了结果
    把手上的视频资源,按每 n 秒截取,保存为样本图片库,然后测试帧用 ahash/phash 之类就能达成

    方式二,按#9 所说的,分析帧中的特征,人和物,然后在相关电影库匹配出现的人与物

    显然方式二更有技术含量,而且可以扩展到更多的场合应用,或者说“更 AI 一些”,但这个库太难建了
    xiatong
        26
    xiatong  
    OP
       2019-11-16 14:34:44 +08:00
    @chiu 前面有推荐识别动漫的网站。
    xiatong
        27
    xiatong  
    OP
       2019-11-16 14:36:00 +08:00
    @xiatong 是的,方式二可以过滤掉大部分需要全库扫描的查询。
    imn1
        28
    imn1  
       2019-11-16 14:37:11 +08:00
    @blackwolf
    见楼上,方式一是比较简单的,但技术意义不及方式二
    Kagari
        29
    Kagari  
       2019-11-16 14:40:47 +08:00 via Android
    维度高一时爽,检索火葬场
    superrichman
        30
    superrichman  
       2019-11-16 14:43:17 +08:00 via iPhone
    首先你要弄到合法的电影版权
    blackwolf
        31
    blackwolf  
       2019-11-16 14:43:46 +08:00
    @imn1 如果在目前的框架内,用足够的资源的实现,也是很有意义的,而且大量的数据,需要高度并行,能在大规模的集群上高效地跑起来就很不错了。第二种方法分析特征、人和物看起来更智能一些,但是如果没有有效实现的话,虽然看着很有技术意义,但是技术上还是等于 0。
    blackwolf
        32
    blackwolf  
       2019-11-16 14:45:37 +08:00
    @superrichman 如果匿名黑客干这些事情,最后发布已经训练好的网络,完全可以绕开版权问题。当然,也可以自己搞,匿名发布。
    eason1874
        33
    eason1874  
       2019-11-16 14:46:34 +08:00
    有好几次人家发一小段视频给我,让我帮忙找找是什么电影,我快进看完然后截我认为的关键帧去进行图片搜索,都搜到了电影介绍。别人问我怎么知道截哪些画面,我说不出来,我感觉有规律但是我不知道规律是什么,只能用直觉来解释。
    cest
        34
    cest  
       2019-11-16 14:49:09 +08:00
    @blackwolf #31 方式二可以骗好几年饭,resume 还能吹下,跳槽後就成其他贴子里无技术主管
    superrichman
        35
    superrichman  
       2019-11-16 14:50:23 +08:00 via iPhone
    @blackwolf 黑客才不会花时间干这么无聊的事...
    aogu555
        36
    aogu555  
       2019-11-16 14:52:59 +08:00
    其实有没有想过做有偿悬赏,网友的力量无穷大,特别是关于找片这
    blackwolf
        37
    blackwolf  
       2019-11-16 14:54:14 +08:00
    @imn1 机器学习跟方法一还是不同的,你这里还需要存一个 phash 库,我的意思是直接把帧的图片直接归类到电影里面去,属于 classification 问题。
    longkas
        38
    longkas  
       2019-11-16 14:56:19 +08:00 via Android   ❤️ 1
    为了保证结果准确,建库大而全;为了保证识别速度,先用图像识别物体分割匹配,再用图像色块匹配。假设电影是主流电影,单是国内票房数的过来的,加上其他票房不突出但是出名的比如独立电影节获奖金酸梅获奖,这样归纳一年产出的有名有姓的电影也是百部起步。另外,每部电影可能有多个版本的,剧场版导演剪辑版终极版未删减版未分级版加长版,也就是说片库的名单本身都很困难。片库从何而来,就算给出名单,视频资源去哪获取,你不可能联系各大电影公司给你吧,去网站爬取如何匹配电影,如何下载,如何区分电影版本,是非常复杂的。假设片库真的建好了,物体识别门槛也是很高的,可以查下各大 AI 平台的计价,就算一秒一张图,一部电影视频也需要几元钱,如果你不用商业而用开源,可能需要强力的计算资源,其实算下来和用 api 是差不多的。在建库和分析的过程中,视频和截图肯定是用完就删因为如果全存下来是 pb 级别以上的,也意味着你的算法错了就要重新下载。总之问题相当复杂琐碎,比如你删除几十部电影的图片就算用 rm rf *都是半天,执行起来不可能的,所以还是打消念头试试谷搜索引擎图像搜索吧,虽然搜出来的结果并无卵用。 本人搞过电影直播间深有体会,做过电影下载,匹配字幕,结尾分析,鉴黄,无聊的人可以来玩 https://live.bilibili.com/7101720
    imn1
        39
    imn1  
       2019-11-16 14:56:27 +08:00
    @blackwolf
    你说的对,我#13 说了,现实中图像匹配更可行

    特征分析网上所见全是手工训练,目前网上能找到已完成的特征库,只有一些名车、动物、建筑(外观)……之类
    明星库都没有,因为这个涉及隐私,即使有人做了也不能发布。有一些人面库,但那应该是经本人同意的
    feast
        40
    feast  
       2019-11-16 14:56:50 +08:00 via Android
    这种东西静态图片已经实现了,不过对视频来说还不可能,数据量太大,况且,好好的做 AI 骗钱不好么,真正的需求要实现太困难了
    blackwolf
        41
    blackwolf  
       2019-11-16 14:57:17 +08:00
    @imn1 phash/ahash 之类的鲁棒性不是很强,画面上加个“xx 字幕组”估计就不认识的,机器学习可能相对鲁棒性更高,更靠谱一些~~
    ipadpro4k
        42
    ipadpro4k  
       2019-11-16 14:57:41 +08:00 via iPhone
    最简单,1024 技术区每月求种贴,大神多
    blackwolf
        43
    blackwolf  
       2019-11-16 15:00:40 +08:00
    @feast 如果能借个美国第一超算 summit,上面全是英伟达的 v100 (具体忘了)卡,还是可以玩玩的,18 年,美国有个组把几十年的高清卫星云图训了一遍,做极端天气识别。我印象中他们解决的最大技术问题就是 io 直接把存储服务器搞爆炸的问题。
    imn1
        44
    imn1  
       2019-11-16 15:07:27 +08:00
    @blackwolf #37
    Y,只是图像 hash,不算学习
    我目前有个库,存有 10M 条 hash 值,不过不是电影,只是图片,目标是 150M+条,还在想如何避免全库搜索匹配
    imn1
        45
    imn1  
       2019-11-16 15:19:33 +08:00
    @blackwolf #43
    如果只用一种 hash,准确率确实不高,不过三种 hash 同时匹配并取交集,准确性就高很多了

    cv2.img_hash_PHash.create,
    cv2.img_hash_AverageHash.create,
    cv2.img_hash_RadialVarianceHash.create,
    cv2.img_hash_ColorMomentHash.create,
    cv2.img_hash_MarrHildrethHash.create,
    cv2.img_hash_BlockMeanHash.create,
    cv2.img_hash_BlockMeanHash.create,

    我目前用前面四个做一些组合,暂时还可以,错误率在 1%以下
    xiatong
        46
    xiatong  
    OP
       2019-11-16 15:20:12 +08:00
    @eason1874 主要演员。识别出来了,他的作品就么几部
    lizz666
        47
    lizz666  
       2019-11-16 15:23:40 +08:00
    顺便开个公司叫 南京热 吗?
    ClutchBear
        48
    ClutchBear  
       2019-11-16 15:28:25 +08:00
    增加根据剧情文字描述的匹配?
    wangyzj
        49
    wangyzj  
       2019-11-16 15:46:05 +08:00
    Goole Image 搜图不行么
    vazo
        50
    vazo  
       2019-11-16 15:47:06 +08:00
    没市场的伪需求
    hycos
        51
    hycos  
       2019-11-16 15:52:54 +08:00
    这个技术很成熟啊,就是拷贝检测,我们实验室在深度学习火之前就做这个。
    xiatong
        52
    xiatong  
    OP
       2019-11-16 16:26:01 +08:00
    @wangyzj 搜到的大多数是比较经典的画面。要实现随机一张电影截屏都可以搜到。
    xiatong
        53
    xiatong  
    OP
       2019-11-16 16:26:32 +08:00
    @hycos 我去看一下 [拷贝检测] 谢谢大佬。
    sadfQED2
        54
    sadfQED2  
       2019-11-16 16:31:04 +08:00
    建库不难啊,没一帧存下来就行,匹配也不难,现在就有。难的是你怎么建索引啊,一个电影几个 G 的文件,就是你压缩,一部电影 200M 你得要吗,匹配的时候你总不能把所有电影遍历一次吧,所有如果建索引,那咋设计?
    sadfQED2
        55
    sadfQED2  
       2019-11-16 16:32:37 +08:00
    @sadfQED2 #54
    建库不难啊,每一帧存下来就行,匹配也不难,现在就有。难的是你怎么建索引啊,一个电影几个 G 的文件,就算你压缩,一部电影 200M 你得要吧,匹配的时候你总不能把所有电影遍历一次吧,但是如果建索引,那咋设计?

    ps:上一条全是错别字,改一下
    JCZ2MkKb5S8ZX9pq
        56
    JCZ2MkKb5S8ZX9pq  
       2019-11-16 17:15:13 +08:00
    好奇碰到大量重复画面怎么处理,比如以前动画爱用的变身重复镜头。
    没有上下文的话,其它的近似排重还是挺难的。
    beapig
        57
    beapig  
       2019-11-16 17:29:16 +08:00
    做个人肉找片平台比较靠谱(类似某种人肉打码)
    如果是社交平台上传来传去的图,谷歌的以图找图功能基本都能找得到。
    刚刚试过:youtube 的视频是支持谷歌的以图找图的
    qwertyzzz
        58
    qwertyzzz  
       2019-11-16 17:46:14 +08:00
    做个论坛好了啊 发图片问老司机就 ok 了 不用技术
    mahaonan93
        59
    mahaonan93  
       2019-11-16 18:11:38 +08:00
    豆瓣有个小组“看截图猜电影”,基本发张截图几分钟就会有人回复的(我也不懂这些人为什么这么闲)
    ershierdu
        60
    ershierdu  
       2019-11-16 18:39:18 +08:00 via iPhone
    或许可以以“镜头”为单位进行信息提取(长镜头的话适当做一下分割),加上机器学习,感觉还是有希望的

    当然这只是技术层面,其他的比如楼上说的哪来这么多资源也是一个问题…说到底还是成本:费这么大劲弄出来的东西好像没多大实际意义…
    HTSdTt3WygdgQQGe
        61
    HTSdTt3WygdgQQGe  
       2019-11-16 19:14:19 +08:00 via Android
    给我几百万就可以搞定,做一个悬赏平台即可,谁认识这电影,给他 1 万
    dai640
        62
    dai640  
       2019-11-16 19:24:50 +08:00 via iPhone
    这个可是功德无量,千秋万载的宏伟项目啊。
    areless
        63
    areless  
       2019-11-16 19:45:09 +08:00 via Android
    那得片源图片不经过压缩,一个有损的图,或者有损压缩的影片,跟无损母带的数据构成~~天差地远,这就是图形的巧妙之处
    areless
        64
    areless  
       2019-11-16 19:54:51 +08:00 via Android
    请 100 个员工装成是 ai gpu 计算~~~很多 ai 是这样的。ai 有个准确率到达一定数值以后,继续学习~~~反而变低的情况。据我所知,请 10 个员工根据身份证照片通过摄像头辨别是否是本人,是来得及的~~~每次收费几毛,工资也是发的起的
    yangxin0
        65
    yangxin0  
       2019-11-16 19:56:25 +08:00 via iPhone
    这个做起来非常简单。爬一下豆瓣的数据提取人脸特征集合,然后对 video 抽帧分析很容易做。
    A3m0n
        66
    A3m0n  
       2019-11-16 20:47:18 +08:00
    有一个根据台词找电影的: http://www.quodb.com/
    realpg
        67
    realpg  
       2019-11-16 21:38:49 +08:00   ❤️ 2
    楼主应该是没有预算的

    所以 最低廉成本的方式就是做个网站 /APP
    然后招聘一堆兼职员工 认出一个给 5 毛钱 前台有人发后台就发单众包给大家认
    A18524478970
        68
    A18524478970  
       2019-11-16 21:46:21 +08:00 via Android
    sauce nao 可以查动漫截图,还可以查找 p 站 id
    要是电影的话这数据库就太大了,不盈利难以支撑下去
    Foxkeh
        69
    Foxkeh  
       2019-11-16 22:50:22 +08:00
    B 站有个主播人肉帮你找.
    甚至有个动漫里放动漫,别人请他找,他还给找到了那一集是柯南的一个镜头.
    exploreexe
        70
    exploreexe  
       2019-11-16 23:48:34 +08:00
    谷歌有在做这项技术,我记得之前看过一个宣传片说这事,大意是谷歌觉的以后视频搜索很重要,除了标签和标题之外,谷歌想通过分析视频给这个视频更好的标签等信息,从而优化搜索结果。
    Bwoywan
        71
    Bwoywan  
       2019-11-17 00:10:12 +08:00
    关于图片资源这东西,我想到了谷歌相册免费提供的图片空间和图片智能识别,这还真是“免费”的资源啊
    uptime
        72
    uptime  
       2019-11-17 01:40:06 +08:00
    微信群也经常有人发一些视频片段,问是是不是电影是哪的电影。
    基本上,我看过了都能找到
    这些片段,好多也是很冷门的电影、美剧。
    不过你说只给一张截图,除非很热门的电影,否则就太难了。一部电影好多都是 2 个小时时长的…… 除了黑白、彩色,明星脸、某些道具等具有特征可作筛选外,否则都很夸张的大数据
    feast
        73
    feast  
       2019-11-17 01:40:29 +08:00
    @blackwolf 这东西就两个要素 1.数据量 2.识别算法 前一个天量数据,基本储存检索都困难,后一个算法 倒是有不少成熟例子,主要是视频数据量太大这是根本问题
    cedoo22
        74
    cedoo22  
       2019-11-17 01:55:44 +08:00
    我有个想法,给播放器加弹幕功能,匹配电影特征,自动播放弹幕。
    gosas
        75
    gosas  
       2019-11-17 02:05:33 +08:00
    不如发出你的截图
    binux
        76
    binux  
       2019-11-17 02:10:18 +08:00 via Android
    如果只是拿其中一帧搜索的话,匹配下 fingerprint 就行了。
    lihongming
        77
    lihongming  
       2019-11-17 02:33:32 +08:00 via iPhone
    感觉还是得先从人脸识别开始,这就可以大大缩小范围了,如果有多个人脸,范围就可以进一步缩小至个位数了,再辅以周边物体就基本可以确定番号了。

    什么?你只有菊部特写?那当我没说吧。不过话说回来,随便返给你一部电影,你也分辨不出对不对不是么?
    zyzll1234
        78
    zyzll1234  
       2019-11-17 02:38:55 +08:00
    用 chrome 的 noobox 插件,可以搜图,直接搜就可以
    dusu
        79
    dusu  
       2019-11-17 04:40:01 +08:00 via iPhone
    电影检索核心其实还是降维的问题。

    电影先降维到每一秒为截图,剔除掉相似度大的截图,存大盘鸡或 oss,然后转 simhash 之类的存检索库,求相似度应该能粗略解决一些需求。

    假如一本电影 2 小时,截图 7200 张,滤重后假设 5000 张?算检索 100w 部电影最终也就降维到 50 亿张图片的 simhash 检索而已。

    当然,图片特征识别应该是在检索降维中比较重要的一些细节等等,个人小团队要想做好这个引擎,应该有很长的路要走。
    hehheh
        80
    hehheh  
       2019-11-17 05:16:30 +08:00
    谷歌已经能干这个了你们不知道吗?有时候用图片搜索,如果视频某一帧有匹配结果的话,会有视频结果出来。
    luozic
        81
    luozic  
       2019-11-17 05:27:26 +08:00
    电影 视频不少有版权的,技术上的取样和 match 现在实现没有多少问题,但是服务成本+版权风险咋玩?
    Rorshach
        82
    Rorshach  
       2019-11-17 05:40:36 +08:00
    你这就是做一个电影版的 https://trace.moe/吗
    unhumanplane
        83
    unhumanplane  
       2019-11-17 10:13:10 +08:00
    xx 宝的哥们花了百来万硬件号称把人脸识别和声纹都用上了,实现个电影检索有多难,搜索巨头们不做这个估计就是版权坑。
    yoshiyuki
        84
    yoshiyuki  
       2019-11-17 12:50:08 +08:00
    @murmur 动画片的总体量还是相对小的,跟电影、电视剧行业比的话,而且你不需要保存视频源,扫描一遍以后,存关键的哈希就成了。
    来源:据说全世界能考据的 18xacgn 资源加起来也就 500T,那么全年龄的资源也就是这个数字乘上 N 倍
    yoshiyuki
        85
    yoshiyuki  
       2019-11-17 12:52:14 +08:00
    @luozic 只是提供了一个根据画面识别内容的服务,我相信在很多国家,这都不算侵权的。 一般涉及电源侵权问题,无非是未授权的改编、私自进行发行播放。
    Oa
        86
    Oa  
       2019-11-18 09:41:50 +08:00
    楼主:我用双手成就你的梦想
    @niubee1
    cydysm
        87
    cydysm  
       2019-11-18 09:54:39 +08:00
    有一个 通过关键词找 电影的 https://www.whatismymovie.com/
    lxk11153
        88
    lxk11153  
       2019-11-19 10:10:29 +08:00
    @longkas #38 借楼问下几个问题
    1. 你写的这个系统是无界面的吗?有开源或者部分开源或者用了哪些开源的可以发出来供学习吗?
    2. 如何无缝切换?比如下面这样在第一个推流结束后会显示“直播信号中断”然后续播
    ```bash
    ./ffmpeg -re -ss 60 -i 01.mkv -c copy -f flv "rtmp"
    ./ffmpeg -re -ss 60 -i 02.mkv -c copy -f flv "rtmp"
    ```
    longkas
        89
    longkas  
       2019-11-21 06:17:44 +08:00
    @lxk11153 用了 ffmpeg opencv x264。 这种方法因为是多次和 rtmp 服务端握手所以会中断吧,相当于多次推流,具体协议我也不懂,拼拼凑凑大半年才搞出来个勉强能用的。
    lxk11153
        90
    lxk11153  
       2019-11-21 08:01:41 +08:00
    @longkas #89 如何避免中断呢?
    pythonee
        91
    pythonee  
       2020-02-02 22:38:30 +08:00 via iPhone
    强烈需求
    还有一个应该是文字情节模糊描述来找
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.