label json文件生成 自动标注工具 数据集批量标注 json文件生成

maskrcnn数据集手动标注太慢怎么办?数据集太多怎么办?

首先你需要先手工标注你要的数据集中一小部分,大概几百张的样子。。

然后训练一个小的模型,可以识别出大致轮廓即可

现在就可以用下面的办法了。

用训练好的模型对图片进行识别,得到对应的目标轮廓,根据labelme json文件格式生成对应的标准文件。

如下代码为生成对对应的json文件

void writeLabelMe(Mat img,string name,vector<string> typeName,vector<vector<Point>> contours)
{
    ofstream out(output_path+name+".json");
    out<<"{"<<endl;
    out<<"\"shapes\": ["<<endl;

    for(int i=0;i<contours.size();i++)
    {
        out<<"    {"<<endl;
        out<<"    \"line_color\": null,"<<endl
           <<"      \"points\": ["<<endl;
        for(int j=0;j<contours[i].size();j++)
        {
            out<<"        [\n"
              <<"          "<<contours[i][j].x<<",\n"
             <<"          "<<contours[i][j].y<<"\n";
            if(j!=contours[i].size()-1)
            {
                out<<"        ],"<<endl;
            }
            else
            {
                out<<"        ]"<<endl;
            }
        }
        out<<"      ], "<<endl;
        out<<"      \"fill_color\": null,"<<endl;
        out<<"      \"label\": \""+typeName[i]+"\""<<endl;
        if(i!=contours.size()-1)
            out<<"    },"<<endl;
        else
            out<<"    }"<<endl;
    }


    out<<"  ], "<<endl;
    out<<"  \"lineColor\": [0,255,0,255],"<<endl;
    out<<"\"imagePath\": \""+name+".png\","<<endl;
    out<<"  \"flags\": {}, "<<endl;
    out<<"  \"fillColor\": [255,0,0,128],"<<endl;
    vector<uchar> vecImg;                               //Mat 图片数据转换为vector<uchar>
    vector<int> vecCompression_params;
    vecCompression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
    vecCompression_params.push_back(3);
    imencode(".png", img, vecImg, vecCompression_params);
    ZBase64 base64;
    string imgbase64 = base64.Encode(vecImg.data(), vecImg.size());
    //cout<<imgbase64<<endl;
    out<<"  \"imageData\":\""+imgbase64+"\""<<endl;
    out<<"}"<<endl;
    out.close();
}

效果图

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值