U2Net部署到CVAT实现自动化分割标注

本文仅供学习交流。

1.主要任务

把u2net的detect部署到cvat工具上,提供接口给用户使用,这样用户就可以自动标注了。

2.遇到的问题的解决: 

2.1 主要是配环境时候会出现各种报错,主要的解决办法是针对具体问题具体分析(百度+google+youtube)。

2.2 在部署的时候,cvat会默认调用自己内部的python解析器,但是这个解析器可能缺少我们代码里面import的库,此时不能过在ubuntu终端直接安装缺少的库,而是需要在yaml文件里面安装(官方没有说,纯靠自己感觉出来的)。

 2.3 端口号冲突问题,有些进程已经占用了8080,cvat的yaml配置文件对接的端口号也是8080,此时运行程序,会出现超时的问题,(解决:杀死已有占用8080的进程or改变yaml配置文件中的端口号,参考官网中的issue中有人遇到了该类问题)。

3.脚本对接:

部署到了cvat,但是暂时无法调用,可能原因是代码上的冲突,需要修改源代码。最大的难点是只能在网页上看到报错,且并没有返回调用源头的文件,没有调试的界面,所以暂时不知道我们的代码哪一行错了,可能需要看日志文件,看能不能找到调用关系,或者选择debug版本。(重写代码,本地调试后再上传)。

要注意生成的结果results是字典格式,这是CVAT的要求。

总结:需要注意的是,CVAT官方就是要求我们提交三个文件,一个function.yaml,一个main.py,一个model_handler.py,我们只需要模仿其他案例就行,案例在CVAT/serveless里面找,然后写yaml文件的时候,需要安装什么就在这里面安装,当时遇到很多nu module torch等问题都是在这个里面安装的。另外写后面两个py文件就是写4个函数,只需要把自己写的输入输出和案例对齐就行,中间写你自己的东西。然后部署成功可能会没法运行,这个时候可以在CAT的界面上点击一下自动标注的按键,他会报错,这个网页的报错没太多参考价值,可以去看日志的报错(就是下面的查看docker的日志),就可以找到你代码报错的地方,然后根据提示修改代码,基本上就可以实现debug的功能。

 以上就是我当时的报错,可以定位到我的main.py的43行,基本上就解决了问题。

如果还是不行,可以参考官方的debug模式的教程,写的很粗糙,配置也有点麻烦,我因为监控日志就搞定了,所以最后没用。

 

 Serverless tutorial | CVAT (opencv.github.io)

4.几个常用命令

查看nuclio的日志:nuctl invoke my-function --namespace nuclio --via external-ip

查看docker的日志:docker logs cvat

                                docker logs --follow nuclio --tail=1

5.参考连接:(主要是官网和github)

Semi-automatic and Automatic Annotation | CVAT (opencv.github.io)

Issues · nuclio/nuclio (github.com)

Issues · opencv/cvat (github.com)

Serverless tutorial | CVAT (opencv.github.io)

Issues · nuclio/nuclio (github.com)

cvat/serverless at develop · opencv/cvat (github.com)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值