• [datawhale202211]跨模态神经搜索实践:环境配置


    结论速递

    本次task主要是配置跨模态实践项目所需的环境,完成项目依赖的安装,实现本地HTML文档启动项目。

    基于windows10,共尝试了两种配置方式:基于wsl配置,和使用docker配置。目前docker配置可以正常运行,基于wsl的配置存在部分无法运行。【新增】根据其他学习者提供的debug方法,当前基于wsl的配置已经可以运行(2022/11/15)。

    使用成功的配置,导入视频尝试了项目的运行效果。

    0 背景

    本次组队学习学习的是 VCED: Video Clip Extraction by description 跨模态神经搜索实践项目,项目github主页

    VCED 可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于跨模态搜索与向量检索技术搭建,通过前后端分离的模式,帮助你快速的接触新一代搜索技术。

    本次task主要是项目所需的环境,完成项目依赖的安装,实现本地HTML文档启动项目。

    配置基本基于教程所提供的文档

    本文记录本人的安装踩坑记,基于windows10。

    由于VCED项目所依赖的Jina仅支持Linux和MacOS系统,若想在windows系统中本地运行需要通过合适方式构建linux环境。

    此次共尝试了两种配置方式:本地基于wsl配置,和使用远程容器docker配置。

    目前docker配置可以正常运行,基于wsl的配置存在部分无法运行。【新增】根据其他学习者提供的debug方法,当前基于wsl的配置已经可以运行(2022/11/15)。

    1 基于wsl的配置

    1.1 wsl的安装

    wsl即Windows Subsystem for Linux,可为windows系统提供一个linux运行环境,参照官方文档(使用 WSL 在 Windows 上安装 Linux)的安装方式即可。

    此处使用默认的Ubuntu系统版本,以管理员模式运行 windows powershell,输入

    wsl --install
    
    • 1

    运行截图如下

    在这里插入图片描述

    重启计算机即可成功安装Ubuntu。

    Ubuntu成功安装后可以在开始菜单栏看见对应的快捷方式。运行即可,首次打开会要求创建用户并输入密码,用户名应为小写。

    在这里插入图片描述
    在这里插入图片描述

    1.2 依赖环境的配置

    1.2.1 python 3.9环境的创建

    创建python 3.9环境,输入

    $ sudo apt update
    $ sudo apt install python3.9
    
    • 1
    • 2

    此处,我多余运行了如下命令,导致python版本退回了3.8。

    $ sudo apt install python3-pip
    
    • 1

    1.2.2 rust的安装

    安装rust,输入

    $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
    • 1

    选择default安装

    在这里插入图片描述

    安装成功效果如下图所示

    在这里插入图片描述

    1.2.3 ffmpeg的安装

    安装ffmpeg,首先确认软件源状态

    $ sudo apt-get update
    
    • 1

    在这里插入图片描述

    然后运行安装命令,并根据提示输入y

    $ sudo apt-get install ffmpeg
    
    • 1

    安装结束效果如图

    在这里插入图片描述

    1.2.4 CLIP的安装

    使用pip安装,安装过程访问GitHub,需要保证网络环境

    $ pip install git+https://github.com/openai/CLIP.git
    
    • 1

    安装过程会安装torch和torchvision,在我的实践中其安装版本与后续service环境配置有冲突,故CLIP的安装这一步可挪到service环境配置后进行。

    1.3 python依赖环境配置

    在clone好的项目下启动wsl环境,此处我使用vscode结合插件WSL完成此步。

    1.3.1 server环境配置

    首先定位到server文件夹

    $ cd code/service
    
    • 1

    安装相关依赖

    $ pip install -r requirements.txt
    
    • 1

    可切换清华源加速安装过程,即运行

    $ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 1

    其中如果遇到torch安装缓慢的问题,不妨先用豆瓣源把torch安装上,再回到requirements的安装。(亲测豆瓣源超级快)

    $ pip install torch==1.11.0  -i https://pypi.douban.com/simple
    
    • 1

    1.3.2 web环境配置

    类似地,定位到web文件夹,安装依赖即可

    $ cd ../web
    $ pip install -r requirements.txt
    
    • 1
    • 2

    1.4 启动项目

    1.4.1 服务端启动

    在根目录下,定位大server文件夹,启动服务端

    $ cd code/service
    $ python app.py
    
    • 1
    • 2

    此处我出现了报错,与issue #39 一致,推测可能是python版本原因。

    在这里插入图片描述

    根据其他学习者提供的debug方法,定位至code/service/customIndexer/executor.py文件。

    出现问题的原因是python3.8与python3.9语言特性的不同。具体为:python3.9所支持的函数变量类型定义描述方式:dict[list]list[int]在python3.8中不被支持。

    定位至文件对应段落,删去此函数变量类型定义,文件中共计两处。

    def getNextMaxItem(self, result: list, ignore_range):#ignore_range: dict[list]
    	...
    def getRange(self, maxItem, result: list, thod = 0.1, ignore_range = None):#ignore_range:  list[int] = None
    	...
    
    • 1
    • 2
    • 3
    • 4

    随后可以正常启动服务端。

    在这里插入图片描述

    1.4.2 前端启动

    在根目录下,定位到web文件夹,启动前端。

    $ cd code/web
    $ streamlit run app.py
    
    • 1
    • 2

    可以成功运行。

    在这里插入图片描述

    前端使用的是streamlit搭建,可以通过localhost:8501访问。

    在这里插入图片描述

    2 基于docker的配置

    2.1 docker desktop的安装

    windows系统使用docker desktop会比较简洁,参考官网的安装说明即可,由于在此次项目先前已经安装过了,此处无截图。

    2.2 使用docker配置项目

    在clone好的项目的根目录下,使用powershell启动docker

    docker-compose build
    docker-compose up -d
    
    • 1
    • 2

    在项目的docker配置中,默认使用的是清华源进行python依赖环境的安装,同样可能会遇到torch安装速度慢的问题,此处我提前修改了code文件夹下的Dockerfile文件,将torch单独用豆瓣源进行安装。

    在这里插入图片描述

    配置成功后如下图所示。

    在这里插入图片描述

    在docker desktop中可以看到配置好的vced容器

    在这里插入图片描述

    2.3 启动项目

    运行vced容器,需要稍微等一会会儿,等到显示web启动完成。

    在这里插入图片描述

    通过port可以进入项目

    在这里插入图片描述
    在这里插入图片描述

    3 项目运行尝试

    尝试输入了一段6分钟的体育比赛颁奖视频,寻找4个微笑瞬间。

    在这里插入图片描述

    输出了四段10秒钟的视频,效果蛮好的~

    在这里插入图片描述

    参考阅读

    1. VCED: Video Clip Extraction by description
    2. Jina 轻松学 —— Windows中安装Jina
    3. Windows10: WSL2 + VSCODE + Rust 开发环境搭建
  • 相关阅读:
    Minecraft 1.12.2 彩色渐变字体 模组发布
    leetcode148. 排序链表
    js回车事件的使用
    热门项目披露:湖南民航置业有限公司70%股权转让
    推荐ChatGPT4.0——Code Copilot辅助编程、Diagrams: Show Me绘制UML图、上传PDF并阅读分析
    基于opencv的手指静脉识别(附源码)
    再也不用担心因为PowerBI 可视化看板加班了——手把手详细教学
    react批量引入svg图标
    优先级队列(堆)
    lenovo联想笔记本ThinkPad系列T15p或P15v Gen3(21DA,21DB,21D8,21D9)原厂Win11系统镜像
  • 原文地址:https://blog.csdn.net/qq_40990057/article/details/127855643