现有的标注网站
现在网上比较成熟的数据标注网站有label-studio和cvat。
这两个网站都是国外的,界面也都是英文的,两个好像都是有免费版本的和收费版本的。功能可谓是十分强大。数据标注起来也是十分的流程跟手。
如果是自己用 自己公司的人用 那倒是没什么,但是如果要给客户用的话 总不能给这个网站让他们使用吧,这时候就要自己开发数据标注了。
如何开发一个标注平台呢?先简单点的 只考虑图片标注的
别看页面简单 一看着种平台就是几个页面,核心就是标注的页面和标注的功能。标注功能要考虑的东西非常多,如果一开始没考虑好,极其容易变成屎山。
首先考虑的就是图片的的呈现。要考虑的的第一个问题就是等比例沾满空间,第二个就是图片的缩放,第三个就是考虑窗口尺寸的变化,这个问题其实是个全局的问题。
然后就是标注,标注就是在图片上绘制标注框,标注框上还得有label。要考虑的有如何在图片上绘制,绘制的时候要考虑绘制的边框不能超出图片,绘制好后 还可以选中识别框,修改、拖拽和删除。还要获取标注框在原始图片上的位置,还有当窗口尺寸变化的时候要重新计算位置和大小。
到此为止 一个最基本的标注功能就完成了。其实还有很多考虑的比如监听绘制,需要把绘制出来的数据传递出去,切换的时候需要清空数据。
以为就结束了?
nono 这才是入场券。接下来就是需求阶段了,好用的标注怎么会没有快捷键呢,怎么会没有标注框样式的选择呢,怎么会没有快速切换下一张呢,怎么会没有图片缓存呢......
最后逃不掉的就是优化问题,优化这种事情就是具体问题具体对待了,一般标注遇到的问题就是数据量的问题。
说了那么多了 再说说我吧 我是基于konva开发了一个标注功能的
最重要就是思路和如何设计 我开发这个的时候也是要修改和重构。我这个项目也能帮助初级的人学习面向对象编程。
上面是基于konva canvas库konva的包体积还是比较大的,再推荐一个插件canvas-select
可以在canvas-select插件上二开,这个插件就是没有依赖第三方库,所以比较轻量的