8个月后获脸书奖项@HackIllinois for our Sorthat(la Harry Potter),我的朋友Yuriy、Neel、Chamila和我被抽打参加脸书Hackathon决赛
黑客身居前六大赛中, 给我们机会直播评委, 包括早期脸书工程师和Thatsapp和Oculos VR创组成员
越来越多的人使用脸书Live探索来自世界各地的视频, 我们希望用两个主要特征增强社会经验:
- 允许多视频源流到相同的直播视频(Smartphones、GoPros等)
- 面部识别和智能标签录入视频
Livemash将这些特征合并成简单终端用户经验-从IP连接相机开始流水增强流水平台旨在创建Live体验 向大家展示更多环游世界
搭建
- IP摄像头:iPhone/GoPro
- Netgear路由器
- 脸书API
流设计
脸书直播视频解析帽为1280x720, 我们的目标是从所有设备获取720p视频
全iphones使用I.P摄像头应用从前置摄像头捕捉720p直播视频并流过局域网
我们利用开源Goprowifihack实战配置并流720p直播GoPro
所有视频流都通过节点js服务器收集, 并用每个缓冲通过缩放和比特率/框架率调整后再发送后处理
后处理步骤期间,每一视频流中的个人通过脸书图片标签端点识别,浮动名标签使用OpenCV贴上缓冲区
节点js服务器通过缝合视频流生成输出缓冲-它随后以RMTP流方式发送到faceLive端点
侧向识别
脸部识别视频中, 我们试图拉动脸书平台,脸书公共API不允许贴视频标签, 限时贴上数百张静态照片上传照片元数据中加标签
脸书平台拥有最佳面部识别系统
并获取标签元数据上传相册照片框通过OpenCV面部检测算法选择这使我们能检测视频中所有的人, 不必持续上传视频的每个框架像照片
脸书仍然阻塞我们短短时间内寄出过多请求并同时生成数个Facebook应用识别码取标签元数据脚本中 每一次阻塞时 都转换到新脸书应用标识3次阻塞前
并贴上视频评语,依据脸书面部识别回文帮助个人是因为人可能甚至不知道什么时候录入直播视频,我们认为我们应该强调这一点。
动态标签
从静止框架取回标签后,我们在视频中为每个人贴浮动名牌OpenCV使用级联分类器识别脸部、确定边界框并让名牌跟踪每个人运动
提供有趣的挑战,因为我们无法假设 某人的脸总会面对摄像头 持续视频直播并使用资讯恢复标签
OpenCV级联滤波快速辨识框架面部,这是必要优化,当我们数框架秒数时权衡法是每个框架都有大量假阳性保持正确脸部标签 显示视频中全部存在, 我们需要出算法 跟踪面部全程
细节算法实际上有相当理论重以损耗泛泛性(酷看数学符号)为代价,我们可以描述如下:
- 产生散列函数,取所有像素绑定盒中(和RGB向单像素映射颜色)并返回小点构造hash函数,使两个不同框的hash最小值当box'look'最接近多重启发性可用判断二盒相似性,如维度和色度梯度启发论本身构建hash函数
- 从此点开始,每个框架有四类绑定框 由级联分类器查找
- 框中前几框架中已经贴上标签在此例中,本框架和前一框架之间的距离函数允许我们持续跟踪它,因为二相间值最小
- 未贴上前框架标签并高度相信脸部的框置信度本身由级联分类器确定数值置信度超过一定阈值时, 我们请求facebookAPI标记相位并持续跟踪
- 未贴上前一框架标签并低于阈值并归为前一框架待处理框继续等待这些框通过facebookAPI返回标签,并加入回调时标签
- 未贴上前框架标签并置信栏下以调用API的框置之不理
自算法跟踪部分运行到每个框架后,如果左侧图一面,它完全不生成绑定盒并不再跟踪后继同名词到框架需要重开相同进程
实战实战实战从测试中,我们可以显示表情 瞬时略转离相机 他们的名牌几乎立即恢复散列值缓存多框架以备级联分类器失差
话虽如此,但有几种优化方法可以实现:
- 改善hash函数并改进表情相似性推理
- 火车模型学习贴多框表情,作为视频中人持久化的一种形式说起来容易做起来难
- 预测每个表情运动速度并输入记录设备思考像加速计 并伴之以对身体维度的一些假设
- 使用费用更高的面部识别算法并加速计算机这是一种天真优化,但值得注意完全由MacBookPro操作
演示
从智能手机上搭建一条直播流路, 路过者能实时看到脸部检测标签工作
脸书自动标签只指友(并有照片标签启动),路边停靠的友人也看到自己贴标签