1. 数据增强工具-albumentations
推荐这个库的原因是:这个库可以将图片和标签一起变换,而transforms只能变换图片!!!!
在我们面临不同任务时,往往使用到的方法函数也不一样,所以要现用现查。
首先我们要到GitHub上找到代码源,接下来我教你怎么使用他的帮助文档。
点击链接进入库的源代码后,Notebooks里是在各种不同任务下使用的例子,其实就是教程。
- 点击进入你要进行的任务,我这里是进入了图像分割的任务里(英语不好,用Google浏览器的插件翻译了)
- 打开之后就是下面这样。是代码直接粘到你的项目里就可以用,这里红框内是所使用的数据增强的方法,OnOf函数是在函数内的几种数据增强方法中选一个,参数P是方法使用的概率。
- 最后,数据增强的方法都可以在Readme.md下方找到可以按照自己的需求选用。
这个帮助文档里还有一些实用的函数,话不多说直接上代码
BOX_COLOR = (255, 0, 0) # Red
TEXT_COLOR = (255, 255, 255) # White
def visualize_bbox(img, bbox, class_name, color=BOX_COLOR, thickness=2):
"""将图像上的单个边界框可视化"""
x_min, y_min, w, h = bbox
x_min, x_max, y_min, y_max = int(x_min), int(x_min + w), int(y_min), int(y_min + h)
cv2.rectangle(img, (x_min, y_min), (x_max, y_max), color=color, thickness=thickness)
((text_width, text_height), _) = cv2.getTextSize(class_name, cv2.FONT_HERSHEY_SIMPLEX, 0.35, 1)
cv2.rectangle(img, (x_min, y_min - int(1.3 * text_height)), (x_min + text_width, y_min), BOX_COLOR, -1)
cv2.putText(
img,
text=class_name,
org=(x_min, y_min - int(0.3 * text_height)),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,
fontScale=0.35,
color=TEXT_COLOR,
lineType=cv2.LINE_AA,
)
return img
# 同时可视化多个边界框
def visualize(image, bboxes, category_ids, category_id_to_name):
img = image.copy()
for bbox, category_id in zip(bboxes, category_ids):
class_name = category_id_to_name[category_id]
img = visualize_bbox(img, bbox, class_name)
plt.figure(figsize=(12, 12))
plt.axis('off')
plt.imshow(img)
-
2.绘图工具-matplotlib
- matplotlib 画图总结
- 密度散点图
- 三维绘图
这几个总结的特别好!!!
3. 进度条-tqdm库
Tqdm 是 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息。用户只需要封装任意的迭代器,是一个快速、扩展性强的进度条工具库。
原文链接:https://blog.csdn.net/wxd1233/article/details/118371404