放假看一波 S 赛,发现在虎牙的弹幕有这么一个功能,弹幕在遇到英雄附近时透明度会逐渐拉满然后再逐渐出来(而且英雄在移动时或者在切回放时,已经出现的弹幕如果盖住了英雄也会直接消失,等到英雄位置过了以后才会出来)
B 站的视频也有这么一个功能,但 B 站视频好像是直接穿过人像的背后,并不是这种淡化
而且虎牙 S 赛是直播,毕竟不是 B 站视频那种,直播是需要实时渲染的,所以我很好奇是咋做出来的
Network里面看到的确是遮罩
1
richard1122 2020-09-30 17:45:12 +08:00
确实,我猜是作为合作伙伴拿到了英雄的位置数据?而不是通过图像识别这种手段。
|
2
tabris17 2020-09-30 17:49:45 +08:00
直播也有延迟啊,延迟一分钟已经够图像识别算法来生成遮罩数据了
|
3
pecopeco 2020-09-30 18:01:14 +08:00 via iPhone
直播≠实时
|
4
noe132 2020-09-30 18:07:51 +08:00 via Android 1
通过一定的算法 /机器学习 计算出需要遮罩的区域告诉前端,前端根据数据遮住相应区域就行了
|
5
wysnylc 2020-09-30 18:08:49 +08:00
你们都说完了我说什么?就祝大家新年快乐吧
|
6
zcjfesky 2020-09-30 18:11:20 +08:00 via Android 2
单单英雄联盟直播的话,识别血条行了,血条本身也是固定的贴图,不需要太复杂的算法
|
7
ungrown 2020-09-30 20:30:26 +08:00
就是机器学习获得图像中物体的轮廓
然后生成遮罩,精度要求很低的 对于形式内容高度固定的某些直播 之前生成的遮罩稍微优化一下就能通吃 直接套用就行了 |
8
crclz 2020-09-30 20:35:33 +08:00
分成 2 个子任务:
1. 识别英雄的区域的长方形( Object Detection )。事先训练好模型,然后在后端进行运算,运算的代价非常低。 2. 将长方形内的弹幕隐藏(前端工作) |