Image Labeling Tool - Web application for image labeling and segmentation
by Slava Kim
Github项目地址:
用于图像标记和分割的Web应用程序。
Demo:http://slv.io/label-tool/demo/

图像标签工具

这个Web应用程序将允许你标记图像,绘制边界框、形状,使用下拉列表、复选框和输入框收集表单中的信息。
标签UI提供了许多用于绘制多边形形状的功能,使用基于边缘的自动跟踪或外部机器学习模型进行辅助跟踪来编辑它们。
当你需要自己或按组分割和标记多个图像时,建议使用本工具。 它可以轻松收集并在稍后以一种能与LabelMe兼容的格式导出数据。你可以使用本工具来替代LabelMe、js-segment-annotator等自托管工具或 LabelBox等托管服务。

标签工具 Demo

标签接口的演示,所有数据都是静态提供的(刷新后数据就会恢复)。
Demo:http://slv.io/label-tool/demo/

效果截图

1.边界框标签:

2.使用多边形进行分割:

3.自动跟踪:

4.使用Tensor Flow服务辅助分割:

5.项目配置和自定义标签UI:

开发

给客户端,服务器和顶级文件夹安装npm包:
yarn installcd server && yarn install && cd ..cd client && yarn install && cd ..
如果数据库文件不存在,服务器将在第一次运行时运行数据库迁移。
请在开发模式下运行:
env PORT=3000 API_PORT=3001 yarn start

为生产而构建

构建客户端应用程序:
cd client && yarn run build && cd ..
现在,你可以在prod模式下运行服务器应用程序,为客户端构建服务:
env PORT=80 NODE_ENV=production node server/src/index.js

配置

可以调整以下环境变量:
  • PORT- 应用程序服务的部分(dev,prod)
  • API_PORT  - 区分API运行的端口(应该只在dev中使用)
  • UPLOADS_PATH  - 应用程序存储上传图像的绝对路径,默认为服务器文件夹的“uploads”
  • DATABASE_FILE_PATH  - 应用程序存储SQLite数据的文件的绝对路径。 默认为服务器文件夹中的database.sqlite
  • ADMIN_PASSWORD  - 为所有非标记器操作设置一个简单密码(以hased形式存储)。

在Docker中运行

默认的Dockerfile指向/uploads/db/db.sqlite若想获取持久化数据,请确保提前准备这些数据以进行挂载。 以下是安装本地主机目录的示例:
mkdir ~/containersmnt/mkdir ~/containersmnt/db/mkdir ~/containersmnt/uploads/
构建容器:
docker build -t imslavko/image-labeling-tool .
运行附加安装:
docker run -p 5000:3000 -u $(id -u):$(id -g) -v ~/containersmnt/uploads:/uploads -v ~/containersmnt/db:/db -d imslavko/image-labeling-tool
使用 localhost:5000 访问该站点。

使用docker-compose运行

  • 查看docker-compose.yml以获取详细配置。
  • 在运行之前,请先设置和导出环境变量CURRENT_UID。
# if it needs to build the docker image,CURRENT_UID=$(id -u):$(id -g) docker-compose up -d --build# if it only needs to run,CURRENT_UID=$(id -u):$(id -g) docker-compose up -d

关于本项目

本项目是我在2019年初在 NCSOFT  Vision AI实验室实习的一部分。
你可能还想看
点击阅读原文,查看更多开源项目推荐
继续阅读
阅读原文