最近在尝试对自建的人体关键点数据集进行姿态聚类,使用labelme标注的数据集需要的时间太长了,于是自己标注了一部分,其他的数据想用数据增强方法进行扩充。
于是在CSDN上找到了可以对json文件和图片都进行修改的文章,在此感谢原作者we34dfg,文章链接如下基于labelme的图片和json文件的扩增_we34dfg的博客-CSDN博客,然而在运行代码的过程中,遇到了一些问题,于是在原文的基础上,对出现的问题进行了修改,修改后的代码放在文章的最后。
1.代码报错“TypeError: Object of type float32 is not JSON serializable”
错误原因是json文件写入时内容的类型不对,在此感谢评论区southerx做出的解答,解决方式为修改 write_points_to_json x,y 前加上float new_point = [float(aug_points.keypoints[k].x), float(aug_points.keypoints[k].y)],在代码中的体现如下:
原代码64-67行
for j in range(len(shapes[i]["points"])):
new_point = [aug_points.keypoints[k].x, aug_points.keypoints[k].y]
new_json['shapes'][i]["points"][j] = new_point
k = k + 1
————————————————
版权声明:本文为CSDN博主「we34dfg」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/we34dfg/article/details/104752336
修改为
for j in range(len(shapes[i]["points"])):
new_point = [float(aug_points.keypoints[k].x), float(aug_points.keypoints[k].y)]
new_json['shapes'][i]["points"][j] = new_point
k = k + 1
2.运行后的文件使用labelme查看变蓝
第一个错误解决之后,代码跑起来了,但