📜  项目理念 |在存储的视频序列中搜索一个人(1)

📅  最后修改于: 2023-12-03 14:58:45.516000             🧑  作者: Mango

项目理念 | 在存储的视频序列中搜索一个人

本项目旨在解决在大规模的视频序列中搜索一个特定人物的问题。具体的场景可以为:想要在一批视频录像中快速定位一个人的出现时刻,或想要搜寻一个人在多个视频中的表现。

技术实现

在技术层面,我们将综合运用以下技术来实现此项目:

  • 视频处理:采用开源的视频处理库 FFmpeg,来进行视频文件的解码、预处理等操作;
  • 人脸检测:采用经典的人脸检测算法 MTCNN,来对视频帧中的人脸进行检测和定位,进而提取出感兴趣区域;
  • 特征提取:对于每一个感兴趣的人脸区域,我们采用深度学习算法 FaceNet,来提取该人脸的特征向量;
  • 序列搜索:对于一批待搜索的视频序列,我们采用高效的搜索算法来找到其中包含目标人物的视频段。
数据预处理

在开始搜索前,我们需要先将视频序列做下预处理,以方便后续的处理。具体的步骤如下:

  1. 将视频序列输入 FFmpeg,进行解码和预处理。预处理过程中,可以根据需要,进行一些降噪、锐化等操作。
  2. 对于每个视频帧,采用 MTCNN 算法进行人脸检测,提取出感兴趣区域。
code block
特征提取

对于每个感兴趣区域,通过 FaceNet 算法,我们可以得到其对应的特征向量。该特征向量具有很好的唯一性和鉴别性,可以将每个人脸区域表示为一个高维向量,便于之后的序列搜索。

code block
序列搜索

对于一批待搜索的视频序列,我们将采用高效的算法进行序列搜索,以找到其中包含目标人物的视频段。在此我们将采用基于海量图像搜索的算法,例如局部敏感哈希,LSH Forest 等算法。

code block
总结

本项目力求通过深度学习和海量图像搜索技术,解决在存储的视频序列中搜索一个人的难题。该项目在视频安防、智能家居、电商等多个领域都将得到应用。