OPENCV官方出品开源图片标注工具CVAT在Ubuntu18.04上部署

  • docker和docker-compose的安装
    • 修改apt-get国内镜像源(网上一大把,我也是抄的)
    • apt-get update
    • 安装docker和docker-compose
    • 配置docker 国内镜像源
  • 下载并修改cvat
    • 下载
    • 修改
      • Dockerfile
        • 修改基础镜像
        • 添加apt-get国内镜像源
        • 添加pip国内镜像
        • 替换ffmpeg和openh264
        • 修改后的完整版
      • Dockerfile.ui
        • 修改alpine国内镜像源
        • 修改npm镜像源
        • 修改后的完整代码
      • docker-compose.yml
        • 添加自己的端口
        • 磁盘挂载(还有另一种[方法](https://github.com/openvinotoolkit/cvat/blob/master/cvat/apps/documentation/installation.md#share-path))
      • 修改base.txt
  • 制作镜像及运行
    • build
    • run
    • 创建管理员账户
      • 方法一
        • 方法二
  • 最后
  • 参考文献
  1. CVAT标注工具是我测试那么多中算是非常强大的,可以去他官网体验一下。
  2. 目前github上的cvat需要成20.04的ubuntu系统了,但是出于一些考虑还是换成18.04的吧。
  3. 最新有需要需要部署一下,踩了无数的坑(主要原因就是不能翻墙,下东西慢得一匹,所以经常会timeout,然后就完犊子了)。闲话就不瞎扯了

docker和docker-compose的安装

若是本地以及安装好了,就直接跳过,注意最好docker的仓库换成国内的镜像源,否则中间死了就完蛋了

修改apt-get国内镜像源(网上一大把,我也是抄的)

把下面的代码复制到到终端运行就好了。我用的是aliyun的镜像,当然你也可以自己百度搜其他的镜像源,注意一定要是ubuntu18.04的镜像源
apt镜像源替换的核心就是修改/etc/apt/source.txt
至于我为啥非得这么麻烦的弄,是为了后面直接复制。

mv /etc/apt/sources.list /etc/apt/sources.list.bak && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list

apt-get update

apt-get update

一般来说这一步不会有问题,但是倒霉的我还是遇到了问题,当时给我装系统的系统盘估计有问题,时间怎么都不对,所以若是该步骤出现了问题,那就date看看你的时间对不对。若是没问题就继续往下走,忽略我这一块的。
若是时间有问题可以用以下两个命令修改,这个是强行修改,就跟你调表一样,对不对就看你调,时间只要不差个好几天估计都没问题吧,我没试。

date -s day/mon/year
date -s hour:mini:sec

这个时间一定要修改,因为镜像里面的时间是读取的外面的时间,外面不对,到镜像里面一定不对。

安装docker和docker-compose

sudo apt install apt-transport-https ca-certificates software-properties-common curlcurl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable"sudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.iopip install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simplesudo groupadd docker #添加docker用户组
sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中
newgrp docker #更新用户组

配置docker 国内镜像源

在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
"registry-mirrors": [ "https://kfwkfulq.mirror.aliyuncs.com", "https://2lqq34jg.mirror.aliyuncs.com", "https://pee6w651.mirror.aliyuncs.com", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com" ],
"dns": ["8.8.8.8","8.8.4.4"]
}

然后查看、启动或者重启一下docker

systemctl daemon-reload
systemctl status docker
systemctl start docker
systemctl restart docker

下载并修改cvat

下载

由于xx的网络实在是差,连git经常会中断,所以我是在windows环境下下载的,用这个网站downgit。

修改

修改主要是为了把其中的一些安装换成国内镜像源

Dockerfile

Dockerfile是主要修改的地方。但是核心就是更换源,更换已经下载好的安装包

修改基础镜像

将两处
FROM ubuntu:20.04
修改为
FROM ubuntu:18.04
经过实测,这样是ok的

添加apt-get国内镜像源

把上面那一段前面加上RUN之后添加到下面两个红色框位置


避免往前翻以及出错

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list

添加pip国内镜像

RUN mkdir ~/.pip && echo "[global]" >>~/.pip/pip.conf && \echo "timeout = 6000" >>~/.pip/pip.conf && \echo "index-url = http://pypi.douban.com/simple/" >>~/.pip/pip.conf && \echo "extra-index-url = https://pypi.python.org/simple/" >>~/.pip/pip.conf && \echo "[install]" >>~/.pip/pip.conf && \echo "trusted-host=pypi.douban.com" >>~/.pip/pip.conf

在下图红色框位置添加上面部分

替换ffmpeg和openh264

由于其中需要安装的ffmpeg和openh264,然后又是从git上下载,真的会崩溃的,所以就自己下载好了,放在和Dockerfile同级目录下,然后修改Dockerfile图中位置的代码。下载方法我用的Downgit。


WORKDIR /tmp/openh264
COPY openh264-2.1.1.tar.gz /tmp/openh264/
RUN tar -zx --strip-components=1 -f openh264-${OPENH264_VERSION}.tar.gz && \make -j5 && make install PREFIX=${PREFIX} && make clean
WORKDIR /tmp/ffmpeg
COPY ffmpeg-4.3.1.tar.bz2 /tmp/ffmpeg/
RUN tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \./configure --disable-nonfree --disable-gpl --enable-libopenh264 --enable-shared --disable-static --prefix="${PREFIX}" && \make -j5 && make install && make distclean

其实就加了一个COPY的命令。

修改后的完整版

FROM ubuntu:18.04 as build-image
ARG http_proxy
ARG https_proxy
ARG no_proxy
ARG socks_proxy
ARG DJANGO_CONFIGURATION
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list
RUN apt-get update && \DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends install -yq \apache2-dev \build-essential \curl \libldap2-dev \libsasl2-dev \nasm \git \pkg-config \python3-dev \python3-pip \python3-venv && \rm -rf /var/lib/apt/lists/*
# Compile Openh264 and FFmpeg
ARG PREFIX=/opt/ffmpeg
ARG PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
ENV FFMPEG_VERSION=4.3.1 \OPENH264_VERSION=2.1.1
WORKDIR /tmp/openh264
COPY openh264-2.1.1.tar.gz /tmp/openh264/
# RUN tar -zx --strip-components=1 -f openh264-${OPENH264_VERSION}.tar.gz && \
#     make -j5 && make install PREFIX=${PREFIX} && make clean
WORKDIR /tmp/ffmpeg
COPY ffmpeg-4.3.1.tar.bz2 /tmp/ffmpeg/
RUN tar -jx --strip-components=1 -f ffmpeg-${FFMPEG_VERSION}.tar.bz2 && \./configure --disable-nonfree --disable-gpl --enable-shared --disable-static --prefix="${PREFIX}" && \make -j5 && make install && make distclean
# Install requirements
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:${PATH}"
#RUN python3 -m pip install --no-cache-dir Cython==0.27.3
RUN mkdir ~/.pip && echo "[global]" >>~/.pip/pip.conf && \echo "timeout = 6000" >>~/.pip/pip.conf && \echo "index-url = http://pypi.douban.com/simple/" >>~/.pip/pip.conf && \echo "extra-index-url = https://pypi.python.org/simple/" >>~/.pip/pip.conf && \echo "[install]" >>~/.pip/pip.conf && \echo "trusted-host=pypi.douban.com" >>~/.pip/pip.conf
RUN python3 -m pip install --no-cache-dir -U pip==20.0.1 setuptools==49.6.0 wheel==0.35.1
COPY cvat/requirements/ /tmp/requirements/
RUN DATUMARO_HEADLESS=1 python3 -m pip install --no-cache-dir -r /tmp/requirements/${DJANGO_CONFIGURATION}.txt
#RUN    python3 /tmp/requirements/datumaro-master/setup.py build
FROM ubuntu:18.04
ARG http_proxy
ARG https_proxy
ARG no_proxy
ARG socks_proxy
ARG TZ
ENV TERM=xterm \http_proxy=${http_proxy}   \https_proxy=${https_proxy} \no_proxy=${no_proxy} \socks_proxy=${socks_proxy} \LANG='C.UTF-8'  \LC_ALL='C.UTF-8' \TZ=${TZ}
ARG USER
ARG DJANGO_CONFIGURATION
ENV DJANGO_CONFIGURATION=${DJANGO_CONFIGURATION}
RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>/etc/apt/sources.list && \echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>/etc/apt/sources.list
# Install necessary apt packages
RUN apt-get update && \DEBIAN_FRONTEND=noninteractive apt-get --no-install-recommends install -yq \apache2 \libapache2-mod-xsendfile \supervisor \libldap-2.4-2 \libsasl2-2 \libpython3-dev \tzdata \python3-distutils \p7zip-full \git \git-lfs \poppler-utils \ssh \curl && \ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \dpkg-reconfigure -f noninteractive tzdata && \rm -rf /var/lib/apt/lists/* && \echo 'application/wasm wasm' >> /etc/mime.types
ARG CLAM_AV
ENV CLAM_AV=${CLAM_AV}
RUN if [ "$CLAM_AV" = "yes" ]; then \apt-get update && \apt-get --no-install-recommends install -yq \clamav \libclamunrar9 && \sed -i 's/ReceiveTimeout 30/ReceiveTimeout 300/g' /etc/clamav/freshclam.conf && \freshclam && \chown -R ${USER}:${USER} /var/lib/clamav && \rm -rf /var/lib/apt/lists/*; \fi
# Add a non-root user
ENV USER=${USER}
ENV HOME /home/${USER}
RUN adduser --shell /bin/bash --disabled-password --gecos "" ${USER} && \if [ -z ${socks_proxy} ]; then \echo export "GIT_SSH_COMMAND=\"ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30\"" >> ${HOME}/.bashrc; \else \echo export "GIT_SSH_COMMAND=\"ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ProxyCommand='nc -X 5 -x ${socks_proxy} %h %p'\"" >> ${HOME}/.bashrc; \fi
ARG INSTALL_SOURCES='no'
WORKDIR ${HOME}/sources
RUN if [ "$INSTALL_SOURCES" = "yes" ]; then \sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list && \apt-get update && \dpkg --get-selections | while read -r line; do        \package=$(echo "$line" | awk '{print $1}');       \mkdir "$package";                                 \(                                                 \cd "$package";                                \apt-get -q --download-only source "$package"; \)                                                 \done &&                                           \rm -rf /var/lib/apt/lists/*;                          \fi
# COPY --from=build-image /tmp/openh264/openh264*.tar.gz /tmp/ffmpeg/ffmpeg*.tar.bz2 ${HOME}/sources/
# Copy python virtual enviroment and FFmpeg binaries from build-image
COPY --from=build-image /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:${PATH}"
COPY --from=build-image /opt/ffmpeg /usr
# Install and initialize CVAT, copy all necessary files
COPY --chown=${USER} components /tmp/components
COPY --chown=${USER} ssh ${HOME}/.ssh
COPY --chown=${USER} supervisord.conf mod_wsgi.conf wait-for-it.sh manage.py ${HOME}/
COPY --chown=${USER} cvat/ ${HOME}/cvat
COPY --chown=${USER} utils/ ${HOME}/utils
COPY --chown=${USER} tests/ ${HOME}/tests
# RUN all commands below as 'django' user
USER ${USER}
WORKDIR ${HOME}
RUN mkdir data share media keys logs /tmp/supervisord
RUN python3 manage.py collectstatic
EXPOSE 8080
ENTRYPOINT ["/usr/bin/supervisord"]

Dockerfile.ui

Dockerfile.ui和Dockerfile一样,只是这里修改的是npm和apt的镜像源

修改alpine国内镜像源

添加清华镜像源

RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main" > /etc/apk/repositories \&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" >> /etc/apk/repositories \&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/edge/testing" >> /etc/apk/repositories

在红框位置添加上述代码

修改npm镜像源

添加淘宝镜像源

RUN npm config set registry https://registry.npm.taobao.org && \npm config get registry && \npm config set phantomjs_cdnurl https://npm.taobao.org/dist/phantomjs

在红框位置添加上述代码

修改后的完整代码

FROM node:lts-alpine AS cvat-ui
ARG http_proxy
ARG https_proxy
ARG no_proxy
ARG socks_proxy
ARG PUBLIC_INSTANCE
ARG WA_PAGE_VIEW_HIT
ENV TERM=xterm \http_proxy=${http_proxy}   \https_proxy=${https_proxy} \no_proxy=${no_proxy} \socks_proxy=${socks_proxy} \LANG='C.UTF-8'  \LC_ALL='C.UTF-8'
RUN echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/main" > /etc/apk/repositories \&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/v3.4/community" >> /etc/apk/repositories \&& echo "https://mirror.tuna.tsinghua.edu.cn/alpine/edge/testing" >> /etc/apk/repositories
RUN apk add python3 g++ make --no-cache
# Install dependencies
COPY cvat-core/package*.json /tmp/cvat-core/
COPY cvat-canvas/package*.json /tmp/cvat-canvas/
COPY cvat-ui/package*.json /tmp/cvat-ui/
COPY cvat-data/package*.json /tmp/cvat-data/
RUN npm config set registry https://registry.npm.taobao.org && \npm config get registry && \npm config set phantomjs_cdnurl https://npm.taobao.org/dist/phantomjs
# Install cvat-data dependencies
WORKDIR /tmp/cvat-data/
RUN npm ci
# Install cvat-core dependencies
WORKDIR /tmp/cvat-core/
RUN npm ci
# Install cvat-canvas dependencies
WORKDIR /tmp/cvat-canvas/
RUN npm ci
# Install cvat-ui dependencies
WORKDIR /tmp/cvat-ui/
RUN npm ci
# Build source code
COPY cvat-data/ /tmp/cvat-data/
COPY cvat-core/ /tmp/cvat-core/
COPY cvat-canvas/ /tmp/cvat-canvas/
COPY cvat-ui/ /tmp/cvat-ui/
RUN npm run build
FROM nginx:stable-alpine
# Replace default.conf configuration to remove unnecessary rules
RUN sed -i "s/}/application\/wasm wasm;\n}/g" /etc/nginx/mime.types
COPY cvat-ui/react_nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=cvat-ui /tmp/cvat-ui/dist /usr/share/nginx/html/

docker-compose.yml

添加自己的端口

在cvat下添加

cvat:ports:- 'xxx.xxx.xxx.xx:9000:8080'

在cvat-proxy下修改

cvat-proxy:environment:CVAT_HOST: xx.xxx.xxx.xxx

磁盘挂载(还有另一种方法)

这一项是可选项,个人建议可以加上,目的是直接在容器挂载本地磁盘,而且将其作为一个容器。

在后续使用创建task的时候就可以在这直接选了
修改方式直接在对应位置添加该部分。然后就会把宿主机的/mnt/share映射为/root。应该还有其他方法,就暂时没有更多的尝试了。

version: '3.3'services:cvat:environment:CVAT_SHARE_URL: 'Mounted from /mnt/share host directory'volumes:- cvat_share:/home/django/share:rovolumes:cvat_share:driver_opts:type: nonedevice: /mnt/shareo: bind

修改base.txt

由于用到了tensorflow,然后里面又调用了opencv自己github上的开源项目datumaro,所以在base中调用了git。
修改方式:

https == >http

否则会超时
注意
说到这就需要提一下前修改pip的源的时候一定要将pip官方源加上,否则安装datumaro需要安装Cython,很多国内镜像没有

制作镜像及运行

build

准备了N多久,总算到生成镜像这一步了。这一部分没有多说的,根据官方的Quick installation guide来就行

docker-compose build

中间卡住了就ctrl + C中断就好,然后再来一遍,会接着之前的位置进行处理。中途修改了Dockerfile就会从修改处接着开始。

run

docker-compose up -d

创建管理员账户

方法一

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

有可能会报错
错误信息是:LINE 1: …user".“is_active”, “auth_user”.“date_joined” FROM "auth_user…
再来一遍就好
顺利执行会让你输入用户名、邮箱、密码。

方法二

登陆http:xxx.xxx.xxx.xxx:/9000/admin添加

最后

然后你就可以happy的在http:xxx.xxx.xxx.xxx:/8080下创建任务标注了。

相比于官方的版本少了models和analysis。models可以自己加一下model就好,analysis就不知道了。

参考文献

docker的安装、更换国内镜像源、项目部署
cvat官方文档
标注环境CVAT在Ubuntu18.04下搭建

Intel出品开源图片标注工具CVAT在Ubuntu18.04上部署相关推荐

  1. OpenCV开发团队开源计算机视觉标注工具CVAT

    OpenCV开发团队开源计算机视觉标注工具Computer Vision Annotation Tool (CVAT) 同时支持图像和视频的标注,最大特点是专业!专业团队做的专业水准的工具! (关注& ...

  2. 构想:中文文本标注工具(内附多个开源文本标注工具)

    ■ 项目地址 | https://github.com/crownpku/Chinese-Annotator 自然语言处理的大部分任务是监督学习问题.序列标注问题如中文分词.命名实体识别,分类问题如关 ...

  3. python图像标记工具怎么用_图片标注工具LabelImg使用教程

    1.进入labelImg-master文件夹,在空白处使用 "Shift+鼠标右键" ,选择在此处打开命令窗口,依次输入下面语句即可打开软件. pyrcc4 -o resource ...

  4. CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介、安装、使用方法详细攻略

    CV之LabelImg:图片标注工具之LabelImg(图像标注工具)的简介.安装.使用方法详细攻略 目录 LabelImg的简介 常见的图片标注工具 LabelImg trainingImageLa ...

  5. VOC数据集图片标注工具labelImg简介、安装、使用方法详细攻略(windows) PyQt4、PyQt5

    参考文章1:labelImg:图片标注工具之labelImg的简介.安装.使用方法详细攻略 参考文章2:LabelImg labelImg的安装 用gitbash打开,运行git clone http ...

  6. 图片标注工具 LabelImg 使用教程

    转自:http://blog.csdn.net/jesse_mx/article/details/53606897 作者:Jesse_Mx ------------------------------ ...

  7. 图片标注工具LabelImg的安装及使用方法

    项目地址:LabelImg  下载地址:Windows/Linux  百度云备份:最近几个版本 密码: cnn6 前言 我们知道,图片标注主要是用来创建自己的数据集,方便进行深度学习训练.本篇博客将推 ...

  8. 图片标注工具LabelImg的简单安装

    前言 最近要用到图片标注工具LabelImg来创建导师的数据集,方便进行 深度学习训练.这款工具是全图形界面,用Python和Qt写的,最牛的是其标注信息可以直接转化成为XML文件,与PASCAL V ...

  9. YOLOV5目标检测---labelimg图片标注工具(1)

    前言:在使用YOLO训练自己模型的时候首先要学会对数据进行处理,这里介绍一个常用的本地打标签工具labelimg,如果不想按照的话也可以使用在线标签工具,因为害怕数据泄露,所以本人一直使用的是本地工具 ...

  10. 用java的swing写了个图片标注工具

    功能说明: 1 鼠标单击:选取裁剪区域 2 鼠标双击:选取裁剪区域,并把裁剪区域保存为文件,同时把区域中心点的坐标保存 3 打开图片:从某个文件夹打开图片并显示,同时把该目录的所有图片的路径载进来.这 ...

最新文章

  1. 【imx6】/dev中fb和video的对应关系
  2. 团队-团队编程项目作业名称-模块开发过程
  3. Python3中 对local和nonlocal 关键字的改善认识(新手向)
  4. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)
  5. 【医疗影像处理】使用GMM分割3D T1得到wm/gm/csf/background
  6. 算法复习周------“动态规划之‘图像压缩’”
  7. Scanner、String(java基础知识十二)
  8. 15、孪生网络与相似度
  9. 如何制作纯净的U盘启动盘
  10. 在Word文档中快速插入水平线
  11. git reset,rebase,amend 使用实战
  12. 想做数据分析,都需要学些什么?
  13. Markdown快速入门
  14. AB PLC 1769模拟量模块量程转换
  15. 机动车号牌查询, 在线查询, api 查询
  16. shp文件格式说明(二)
  17. 如何在CSDN博客中上传图片
  18. 2016年最经典的高仿系列源码打包下载4.84G
  19. qlv文件是什么?qlv文件格式介绍
  20. 基于微信共享充电桩小程序系统设计与实现 开题报告

热门文章

  1. 计算当前时间到午夜零点的时间差——Java(JDK1.8)
  2. win7网络适配器_win7网络重置
  3. Cisco Packet Tracer路由器的基本命令
  4. 一个人的行动力,取决于他的底层信念。
  5. 电脑香港,香港购物:在HK买笔记本电脑都要注意什么?
  6. 安装pytorch1.10.0/cu111时报错:no matching distribution found for torchvision==0.11.0+cu111
  7. 笔记本电脑无线网络连接不上怎么办
  8. Delphi XE E2251 Ambiguous overloaded call to ‘StrPas‘错误处理
  9. 老司机教你下载tumblr上视频和图片的正确姿势
  10. 判断无线网卡是否支持监听模式