出发点:为了亲手制作,自己的Tensorflow手写数字识别深度模型的训练数据集;
实践路线:尝试按照网上说的,
1)先使用 labelme 标注图像,得到 json文件;
2)再将 json文件转为 coco文件;
3)再将 coco文件,转为 tensorflow 能够调用的 TFRecord文件。【未实现,正在不断尝试ing】
eg;怕忘记走过的路,故先记录下来,实现 json转coco的方法。
参考实现的文章:LabelMe标记后的json文件怎么转为COCO格式
作者写的内容很简洁,当时看到的时候,也半信半疑,但本着大胆尝试的本心,就一边按照作者步骤实践一边将疑惑百度;终于被我弄出来了。哈哈哈,小小开心一下,新人嘛。
然后我在链接内容的前提下,补充一下,具体细节,这样对新人友好些,也怕自己日后忘记。
………………分割线,后面是具体步骤………………………
Labelme标注的json文件转化coco文件,具体步骤如下(附图):
1,进入链接网址,下载labelme源代码,格式为zip ,链接如下:https://github.com/wkentaro/labelme
2,安装 labelme的准备工作。先将下载的 zip 安装包,拖到安装目录下(我把它放到,D盘的空置文件夹中) ;然后解压到当前文件夹;就可以看到里面有一个 “setup.py”文件;如下图:
3,正式安装 labelme。我的安装方法是,
打开anaconda创建的虚拟环境;然后进入到 labelme解压包的 “setup.py”文件路径下,再执行安装指令:
python setup.py install
eg:然后就是配合pip的表演了。如果pip顺利安装成功,那就万事大吉;如果报错,就根据报错提示,百度解决就是了。just like that,爱莫能助,祝你顺利。
4,打开文件夹,labelme-master\examples\instance_segmentation\,找到文件labeme2coco.py,待会会用到。
5,将使用labelme标记的json文件,及其对应图像放置到同一文件夹中,命名为 data_annotated;【值得注意的是,新手记得使用 jpeg或jpg图像标注,这样待会才能,转化成功。】
6,打开文件夹,labelme-master\examples\instance_segmentation\,里面找到一个“labels.txt” 文件。删去里面的标签内容,改成你当下,深度模型训练需要识别的标签,保存并退出。比如我的手写数字识别标签是“0,1,2,3,...,9”;【开头的__ignore__、_background_,以及结尾处的tv/monitor,暂时不明用处,可能是类似引导符号的用处,因为删掉了,转化就报错。】
7,在虚拟环境的cmd界面,并且当前路径是 labelme-master\examples\instance_segmentation\;输入json变身coco的命令:
python labelme2coco.py data_annotated/ output --labels labels.txt
然后,转化后的coco文件,就在 labelme-master\examples\instance_segmentation\output 文件夹中了。转化成功图如下【如果output里面空空如也,就说明转化失败了。转化之前,记得将 output 文件夹删掉;】
最后,据说 output里面的 json文件,就是COCO文件。【我也不确定,因为我还没实现,coco,转TFRecord,再引用TFRecord训练模型,验证转化过程准确性,所以,只能说“据说”。后面实现了,再回头修改,并完善COCO——>TFRecord的变身过程。】