opencv官方標註工具cvat的安裝




一開始我在網路上都是找到 LabelImg 這個軟體的教學居多,某天看到有人用 cvat,感覺功能更強大就來研究研究。

cvat 是 opencv github 上的標註工具,可支援多人線上作業,多種標記方式,匯出多種檔案格式。

多種標記方式:
● 矩形
● 多邊形
● 標記點

輸入的檔案格式:
● 圖片
● 影片

匯出格式
● CVAT XML v1.1 for images
● CVAT XML v1.1 for a video
● Pascal VOC
● YOLO
● MS COCO Object Detection
● PNG class mask + instance mask as in Pascal VOC
● TFrecord
● MOT
● LabelMe

加速標記方式:
● 在影片上能用track的方式快速標記連續多張圖
● 可用cvat提供的模型或上傳openvino的模型,做自動標記

安裝步驟 

官方安裝步驟

我是用windows10的環境,首先要安裝一些基本的東西:
● Docker for Windows
● Git for Windows
● Google Chrome

安裝完成後,在開始功能表裡面找git bash應用程式並執行,進入到你要放下載cvat程式的位置
git clone https://github.com/opencv/cvat
cd cvat

Build docker images 使用預設值
docker-compose build

Run docker containers.
docker-compose up -d

創建一個superuser
winpty docker exec -it cvat bash -ic 'python3 ~/manage.py createsuperuser'

在Google Chrome網址列輸入localhost:8080

停止 docker containers
docker-compose down
以上是能在本機上使用,接下來要說明的是如何在區域網路上使用

在區域網路上使用

在cvat資料夾裡建立 docker-compose.override.yml
version: "2.3"

services:
  cvat_proxy:
    environment:
      CVAT_HOST: <your ip>


cvat\cvat-ui\react_nginx.conf
server {
    root /usr/share/nginx/html;
    # Any route that doesn't have a file extension (e.g. /devices)
    location / {
        try_files $uri $uri/ /index.html;
        add_header Access-Control-Allow-Origin "*";   #<加入這行>
    }
}

cvat\settings\base.py
Line:28
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost,127.0.0.1,<your ip>').split(',')    #<加入ip>
Line:188
# Cross-Origin Resource Sharing settings for CVAT UI
UI_SCHEME = os.environ.get('UI_SCHEME', 'http')
UI_HOST = os.environ.get('UI_HOST', 'localhost')
UI_PORT = os.environ.get('UI_PORT', '3000')
CORS_ALLOW_CREDENTIALS = True
CSRF_TRUSTED_ORIGINS = [UI_HOST]
UI_URL = '{}://{}'.format(UI_SCHEME, UI_HOST)

# UI_WITHOUT_PORT must be added to CORS_ORIGIN_WHITELIST
UI_WITHOUT_PORT = UI_URL   #<加入這行>

if UI_PORT and UI_PORT != '80':
    UI_URL += ':{}'.format(UI_PORT)

CORS_ORIGIN_WHITELIST = [UI_URL, UI_WITHOUT_PORT]   #<加入這行>
CORS_REPLACE_HTTPS_REFERER = True

防火牆

com.docker.backend 要允許連線

上傳自己的模型

我一開始一直找不到models這個分頁,但是官方操做說明有寫到可以上傳,最後發現他只能上傳openvino的model,目前我只弄出可以上傳model的頁面,沒有真正用自己的model自動標記,但有用cvat提供的automatic segmentation標記過是可以的。

上傳自己的model官方說明
● 首先要先下載最新的 OpenVINO toolkit 要linux版本的。

Build docker image
docker-compose -f docker-compose.yml -f components/openvino/docker-compose.openvino.yml build
# 如果有使用docker-compose.override.yml
docker-compose -f docker-compose.yml -f components/openvino/docker-compose.openvino.yml -f docker-compose.override.yml build

Run docker container
docker-compose -f docker-compose.yml -f components/openvino/docker-compose.openvino.yml up -d
# 如果有使用docker-compose.override.yml
docker-compose -f docker-compose.yml -f components/openvino/docker-compose.openvino.yml -f docker-compose.override.yml up -d

使用cvat提供的automatic segmentation

docker-compose -f docker-compose.yml -f components/auto_segmentation/docker-compose.auto_segmentation.yml build
# 如果有使用docker-compose.override.yml
docker-compose -f docker-compose.yml -f components/auto_segmentation/docker-compose.auto_segmentation.yml -f docker-compose.override.yml build

Run docker container
docker-compose -f docker-compose.yml -f components/auto_segmentation/docker-compose.auto_segmentation.yml up -d
# 如果有使用docker-compose.override.yml
docker-compose -f docker-compose.yml -f components/auto_segmentation/docker-compose.auto_segmentation.yml -f docker-compose.override.yml up -d

留言

這個網誌中的熱門文章

C# 模擬鍵盤滑鼠控制電腦

python nn 聲音辨識 -1 傅立葉轉換

android 定時通知(永久長期的) 本篇只講AlarmManager使用

raspberrypi 開機自動執行程式 與 在terminal開啟第二個terminal執行python

python opencv 基本讀取、轉換、顯示、儲存等