深度学习常用工具-数据增强+绘图


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)

3. 进度条-tqdm库

Tqdm 是 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息。用户只需要封装任意的迭代器,是一个快速、扩展性强的进度条工具库。

原文链接:https://blog.csdn.net/wxd1233/article/details/118371404

猜你喜欢

转载自blog.csdn.net/Gw2092330995/article/details/126081145