ai-computer-vision
2022.4
false
AI Computer Vision 用户指南
部署服务器
如果要使用 Microsoft Windows 或 Ubuntu 上的 Docker 或 Red Hat Enterprise Linux 上的 Podman 部署自己的 Computer Vision 服务器,并将其与“Computer Vision”活动一起使用,请按照以下步骤操作。
首先,必须在您的计算机上安装 WSL。
要安装 WSL,请运行以下命令,其中
{distribution}
是要使用的 Linux 发行版:
wsl --install -d {distribution}
wsl --install -d {distribution}
注意:对于此安装过程,推荐的操作系统是 Ubuntu。
要在 Windows 计算机上运行计算机视觉服务器,您必须从 NVIDIA 官方网站下载并在具有兼容GeForce或 NVIDIA RTX/Quadro 卡的系统上安装 NVIDIA Windows 11 显示驱动程序。
重要提示: WSL 中安装的任何类型的 Linux 显示驱动程序都可能导致错误。
您可以通过运行以下脚本来安装 Docker 和 NVIDIA 容器工具包:
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_wsl.sh
https://github.com/UiPath/Infrastructure/blob/main/ML/ml_prereq_wsl.sh
要运行计算机视觉服务器,您必须在 WSL Linux 终端中运行以下命令:
export CV_URL="LINK_FROM_SALES_REP"
wget "$CV_URL" -O controls_detection.tar
docker load -i controls_detection.tar
docker run -p 8501:5000 --gpus all controls_detection eula=accept
export CV_URL="LINK_FROM_SALES_REP"
wget "$CV_URL" -O controls_detection.tar
docker load -i controls_detection.tar
docker run -p 8501:5000 --gpus all controls_detection eula=accept
为了使服务器在本地网络上可见,必须在 Windows 上创建防火墙规则,并为计算机视觉服务器可用的端口创建入站规则。 默认情况下,端口为
8501
。
由于在 WSL 中运行的 Linux 实例具有自己的虚拟网络接口控制器,因此流向主机 IP 的流量不会直接重定向到 Linux 实例的 IP。 通过使用以下命令将主机 IP 的流量转发到 Linux 实例,可以绕过此问题:
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=8501 connectaddress=$wsl_ip connectport=8501
可以使用以下命令找到 WSL IP:
wsl -d {distribution} hostname -I
wsl -d {distribution} hostname -I
注意: 在 Windows 上使用 Docker Desktop 时不会出现此问题。
使用直接安装在 Linux 上的 Docker 引擎时,要在计算机引导时自动启动服务器,必须在 Windows 中创建计划任务。 此任务在系统启动时执行,并运行以下 PowerShell 脚本,其中
{distribution}
是已安装的 Linux 分发版:
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
wsl -d {distribution} echo "starting...";
$wsl_ips = (wsl -d {distribution} hostname -I);
$host_ip = $wsl_ips.Split(" ")[0];
netsh interface portproxy add v4tov4 listenport=8501 listenaddress=0.0.0.0 connectport=8501 connectaddress=$host_ip;
wsl -d {distribution} -u root service docker start;
wsl -d {distribution} -u root docker run -p 8501:5000 --gpus all controls_detection eula=accept;
保存销售代表在当前终端会话中提供给您的链接:
export CV_URL="LINK_FROM_SALES_REP"
export CV_URL="LINK_FROM_SALES_REP"
下载导出:
wget "$CV_URL" -O controls_detection.tar
wget "$CV_URL" -O controls_detection.tar
运行以下命令:
docker run \
-p 8501:5000 \
--gpus all \
controls_detection eula=accept
docker run \
-p 8501:5000 \
--gpus all \
controls_detection eula=accept
保存销售代表在当前终端会话中提供给您的链接:
export CV_URL="LINK_FROM_SALES_REP"
export CV_URL="LINK_FROM_SALES_REP"
下载导出:
wget "$CV_URL" -O controls_detection.tar
wget "$CV_URL" -O controls_detection.tar
运行以下命令:
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/
\--security-opt=label=disable controls_detection eula=accept
podman run -p 8501:5000 --hooks-dir=/usr/share/containers/oci/hooks.d/
\--security-opt=label=disable controls_detection eula=accept