跳至正文
SuiCool

在 Raspberry Pi 5 上安装 CVAT(1)

Suicool更新10分

前言#

大家了解 CVAT 吗?

CVAT 是一款专为计算机视觉项目设计的标注工具,在同类开源软件中可以说是最受欢迎的工具之一。

CVAT 虽然非常实用,但如果由个人运行,在维护方面仍有一些问题需要考虑。让它常驻在主力电脑上会占用不少内存,而官方镜像仅支持 x86_64,因此无法直接在闲置的 Raspberry Pi 上运行。

本文将通过一些调整,让 CVAT 能够在 Raspberry Pi 5 上运行。

测试环境#

项目配置
设备Raspberry Pi 5(8 GB)
操作系统Raspberry Pi OS(64 位,6.12.75+rpt-rpi-v8)
CVATv2.64.0

1. 前期设置#

安装 Docker#

CVAT 通过 Docker 运行,因此先使用官方脚本安装 Docker。

# 使用官方脚本安装 Docker
curl -sSL https://get.docker.com | sh

为当前登录用户授予 Docker 使用权限,然后让更改生效。

# 将当前登录用户加入 docker 组
sudo usermod -aG docker $USER
# 在当前 shell 中应用更改(也可以重启)
newgrp docker

确认 Docker 能够正常运行。

docker run hello-world

如果出现如下图所示的输出,就说明 Docker 已成功安装。

Docker 安装确认

设置页面大小#

操作系统以“页”为单位管理内存,页面大小就是内存管理所使用的最小单位。

Windows 和其他 Linux 发行版中也有同样的概念,绝大多数操作系统都将页面大小设为 4 KiB。

Raspberry Pi OS 比较特殊,默认使用 16 KiB 页面。由于这一差异,部分 Docker 镜像在默认设置下无法正常运行。

因此,需要按照以下步骤将页面大小改为 4 KiB。

更改页面大小后,之前能够正常运行的软件也可能出现问题。请在了解风险后自行决定是否更改。

# 查看当前页面大小(默认应显示 16384)
getconf PAGE_SIZE

# 编辑配置文件
sudo nano /boot/firmware/config.txt

在 /boot/firmware/config.txt 文件末尾添加以下内容。

[pi5]
kernel=kernel8.img

重启后,如果页面大小变为 4096,就说明更改已完成。

# 重启
sudo reboot

# 查看当前页面大小(显示 4096 即表示更改完成)
getconf PAGE_SIZE

2. 安装 CVAT#

下载 CVAT#

完成前期准备后,克隆 CVAT 仓库。

# 从 GitHub 克隆仓库
git clone https://github.com/cvat-ai/cvat

cd cvat

# 将源码切换到 v2.64.0
git checkout v2.64.0

构建 CVAT#

接下来,构建 CVAT 核心服务所使用的 Docker 镜像。

在 x86_64 设备上可以直接使用预构建镜像,但基于 ARM64 的 Raspberry Pi 5 需要自行构建。

docker compose -f docker-compose.yml -f docker-compose.dev.yml build cvat_server cvat_ui

在本次测试环境中,构建大约需要 20 到 30 分钟。

如下图所示,CPU 使用率基本保持在 100%。

构建时的任务管理器

设置主机地址#

CVAT 无法通过未提前登记的地址访问。

默认主机地址为 localhost。如果需要从局域网内的其他设备访问,请在仓库中创建一个名为 .env 的文件,并按以下方式进行设置。

CVAT 会将该文件中的内容作为环境变量读取。

CVAT_HOST=10.10.10.114 # 请改为 Raspberry Pi 5 的地址

3. 启动 CVAT#

从命令行启动 CVAT#

完成设置后,使用以下命令启动 CVAT。

docker compose -f docker-compose.yml up -d

添加管理员账户#

CVAT 启动后,使用以下命令添加管理员账户。

docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

首次启动时会执行一些初始化操作。如果出现错误,请稍等片刻后再次尝试。

一般来说,如果超过 10 分钟仍持续报错,原因可能并非初始化,而是发生了其他问题。

出现如下图所示的画面,就说明账户创建成功。

创建管理员账户时的画面

从浏览器访问#

账户创建完成后,在浏览器中访问 CVAT。

CVAT 使用 8080 端口。如果前面没有设置主机地址,请打开 localhost:8080;如果指定了地址,则可以使用 10.10.10.114:8080 这样的形式访问。

如果运行正常,浏览器中会显示登录界面。

输入刚才在命令行中创建的用户名和密码并登录。

CVAT 登录界面

登录后,会显示如下图所示的界面。

CVAT 登录后的界面

至此,CVAT 已安装完成。

4. 停止 CVAT#

如需停止 CVAT,请在仓库根目录中执行以下命令。

docker compose -f docker-compose.yml down

5. 总结#

CVAT 的后端使用 Python 编写,前端使用 TypeScript 编写。由于其中几乎没有依赖特定 CPU 架构的部分,因此在 Raspberry Pi 5 上安装 CVAT 相对简单。

需要注意的主要有两点:更改 Raspberry Pi 5 的页面大小,以及从源码构建 Docker 镜像。

如前文所述,更改页面大小可能会影响其他软件。请在了解风险后自行决定是否更改。

参考资料#

対象

ソフトウェア
CVAT on Raspberry Pi 5

タグ

管理者

Suicool

本業では画像検査ソフトウェアを開発しているソフトウェアエンジニア。
プライベートで実施した検証の内容をブログにまとめています。

Next reading

関連するベンチや運用ログ、深掘り記事を続けて読めます。