自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

M1 macでアノテーションツールのCVATを動かすのに色々やってみた

未分類

どうもヒノマルクです。

アノテーションツールでCVATというのがあるのですが、M1 mac上でインストールして動かすのに苦労したのでここにまとめておきます。

まず試したのはUTMにUbuntu serverをインストールして、実行する方法です。

こちらは

export DOCKER_DEFAULT_PLATFORM=linux/amd64
docker compose up -d

でamd64指定をして実行を試みました。

しかし結局は、no matching manifest for linux/arm64/v8 と出てしまい断念。

色々調べていたら下記CVATのチケットが出てきてm1 macでも動くようなことが書いてあります。(CVAT m1 macとかで検索すると出てきます)

https://github.com/cvat-ai/cvat/issues/6629
https://github.com/cvat-ai/cvat/issues/2798

考えてみるとUTMにUbuntuサーバー立てなくても、Docker Desktop for Apple siliconでやればいいかと思い、さっそくインストール。https://matsuand.github.io/docs.docker.jp.onthefly/desktop/mac/apple-silicon/

Rossetaをインストールとか色々出てきますが、インストラクションの通りにインストールしました。(あまりm1 macを汚したくないのでDocker Desktopは入れないようにしていたのですがしょうがない。)

試行錯誤の結果、下記で起動まで出来ました。

git clone https://github.com/cvat-ai/cvat.git
cd cvat
# 結構時間かかります
export DOCKER_DEFAULT_PLATFORM=linux/amd64 && docker compose -f docker-compose.yml -f docker-compose.dev.yml build
# 起動
docker compose up -d

Error response from daemon: No such image: apache/kvrocks:2.7.0

とか出てきたら一旦cvat/ui:devとcvat/server 以外のpull済みのイメージを消去してください。

docker imagesで出てくるイメージを探して、docker rmi [IMAGE ID]で消去できます。

起動後 docker ps で一覧を見てみて、コンテナがrestart 6 seconds ago とかになっているものがなければおそらく大丈夫です。

hinomaruc@hinomarucnoMacBook-Air cvat % docker ps       
CONTAINER ID   IMAGE                                       COMMAND                   CREATED              STATUS                    PORTS                                                    NAMES
329db88389fe   cvat/ui:dev                                 "/docker-entrypoint.…"   22 seconds ago       Up 19 seconds             80/tcp                                                   cvat_ui
7d4cc5712fd3   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_consensus
c956656619b5   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_chunks
e8931310262d   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_server
0a380b4c5840   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_quality_reports
42db88366085   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 20 seconds             8080/tcp                                                 cvat_worker_analytics_reports
8949d4bcdb16   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_export
139a4069dad2   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 20 seconds             8080/tcp                                                 cvat_worker_annotation
cf83ac3d872a   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_webhooks
81140d144292   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_utils
f7cebf1ed529   cvat/server:dev                             "./backend_entrypoin…"   59 seconds ago       Up 19 seconds             8080/tcp                                                 cvat_worker_import
c5a345831807   timberio/vector:0.26.0-alpine               "/usr/local/bin/vect…"   59 seconds ago       Up 20 seconds                                                                      cvat_vector
a64e1f216136   postgres:15-alpine                          "docker-entrypoint.s…"   About a minute ago   Up 20 seconds             5432/tcp                                                 cvat_db
a6a5cdeda299   redis:7.2.3-alpine                          "docker-entrypoint.s…"   About a minute ago   Up 20 seconds             6379/tcp                                                 cvat_redis_inmem
75e21d1b7b9e   grafana/grafana-oss:10.1.2                  "sh -euc 'mkdir -p /…"   About a minute ago   Up 20 seconds             3000/tcp                                                 cvat_grafana
86d1655b15d1   apache/kvrocks:2.7.0                        "kvrocks -c /var/lib…"   About a minute ago   Up 20 seconds (healthy)   6666/tcp                                                 cvat_redis_ondisk
3c4e6ce98df8   clickhouse/clickhouse-server:23.11-alpine   "/entrypoint.sh"          About a minute ago   Up 20 seconds             8123/tcp, 9000/tcp, 9009/tcp                             cvat_clickhouse
b8dcd0a45f0a   traefik:v2.10                               "/entrypoint.sh trae…"   About a minute ago   Up 20 seconds             0.0.0.0:8080->8080/tcp, 80/tcp, 0.0.0.0:8090->8090/tcp   traefik
3cff5d9dea16   openpolicyagent/opa:0.63.0                  "/opa run --server -…"   About a minute ago   Up 20 seconds                                                                      cvat_opa

そういえばUTMのUbuntuサーバーでは docker buildは試してなかったですね。もし成功した人がいましたらぜひ問い合わせから教えてください。

。。。ここらへんもGrok3のDeep Searchで検索したら一発で出来るようになるのかな?

タイトルとURLをコピーしました