实现labelme批量json_to_dataset方法中
https://blog.csdn.net/yql_617540298/article/details/81110685#comments
以及后续针对其中的问题:
AttributeError: module 'labelme.utils' has no attribute 'draw_label'
https://blog.csdn.net/yql_617540298/article/details/104182777#comments
我看到有朋友反馈,依旧出现如下问题:
File "C:\Users\zhang\Anaconda3\Scripts\labelme_json_to_dataset.exe\__main__.py", line 9, in <module> File "c:\users\zhang\anaconda3\lib\site-packages\labelme\cli\json_to_dataset.py", line 66, in main lbl_viz = utils.draw_label(lbl, img, captions) AttributeError: module 'labelme.utils' has no attribute 'draw_label'
根据错误:
__main__.py文件中报错,而不是单纯的没有draw_label()方法。
参考链接:http://www.imooc.com/wenda/detail/581549
解释了什么是__main__.py文件。
所以该错误不是后续代码中出现的问题,有可能安装不同的版本,代码也是不同的,所以,检查一下labelme的版本号,
在cmd中,输入:
>>python
>>import labelme as lb
>>lb.__version__
>>
我安装的是3.3.1版本。
我电脑上的Python是3.6.2版本。
所以如果不同版本,找不到draw_label()也很正常。
不用管之前的博客的代码,直接在安装好的labelme的代码里进行更改:
将labelme单张图片处理改为批量图片处理得基本原理就是增加批量的操作,那么直接在安装好的labelme自动生成的代码中更改就可以,其他在安装labelme后自动生成的代码都不要更改:
在json_to_dataset.py文件中,增加如下代码:(之前博客有写)
count = os.listdir(json_file)
for i in range(0, len(count)):
path = os.path.join(json_file, count[i])
if os.path.isfile(path):
data = json.load(open(path))
然后将处理单张图片的代码全部写在for循环内即可。
或者,直接安装3.3.1版本的labelme也可以。
安装:https://blog.csdn.net/yql_617540298/article/details/81782827
希望可以帮助大家解决这个问题。