最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python深度學(xué)習(xí)之使用Albumentations對(duì)圖像做增強(qiáng)

 更新時(shí)間:2021年05月27日 14:17:36   作者:AI浩  
諸如RandomCrop和CenterCrop之類的某些增強(qiáng)功能可能會(huì)變換圖像,使其不包含所有原始邊界框. 本示例說(shuō)明如何使用名為RandomSizedBBoxSafeCrop的變換來(lái)裁剪圖像的一部分,但保留原始圖像的所有邊界框,需要的朋友可以參考下

一、導(dǎo)入所需的庫(kù)

import random
 
import cv2
from matplotlib import pyplot as plt
 
import albumentations as A

二、定義可視化函數(shù)顯示圖像上的邊界框和類標(biāo)簽

可視化函數(shù)參考https://github.com/facebookresearch/Detectron/blob/master/detectron/utils/vis.py

BOX_COLOR = (255, 0, 0) # Red
TEXT_COLOR = (255, 255, 255) # White
 
 
def visualize_bbox(img, bbox, class_name, color=BOX_COLOR, thickness=2):
    """Visualizes a single bounding box on the image"""
    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)

三、獲取圖像和標(biāo)注

在此示例中,我們將使用來(lái)自COCO數(shù)據(jù)集的圖像,該圖像具有兩個(gè)關(guān)聯(lián)的邊界框。 該映像位于http://cocodataset.org/#explore?id=386298

從磁盤加載圖像

image = cv2.imread('images/000000386298.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

用坐標(biāo)和類標(biāo)簽定義兩個(gè)邊界框

這些邊界框的坐標(biāo)使用coco格式聲明。 每個(gè)邊界框使用四個(gè)值[x_min, y_min, width, height]進(jìn)行描述。 有關(guān)邊界框坐標(biāo)的不同格式的詳細(xì)說(shuō)明,請(qǐng)參閱有關(guān)邊界框的文檔文章-https://albumentations.ai/docs/getting_started/bounding_boxes_augmentation/。

bboxes = [[5.66, 138.95, 147.09, 164.88], [366.7, 80.84, 132.8, 181.84]]
category_ids = [17, 18]
 
# We will use the mapping from category_id to the class name
# to visualize the class label for the bounding box on the image
category_id_to_name = {17: 'cat', 18: 'dog'}

展示圖像的邊框

visualize(image, bboxes, category_ids, category_id_to_name)

四、使用RandomSizedBBoxSafeCrop保留原始圖像中的所有邊界框

RandomSizedBBoxSafeCrop crops a random part of the image. It ensures that the cropped part will contain all bounding boxes from the original image. Then the transform rescales the crop to height and width specified by the respective parameters. The erosion_rate parameter controls how much area of the original bounding box could be lost after cropping. erosion_rate = 0.2 means that the augmented bounding box's area could be up to 20% smaller than the area of the original bounding box.

RandomSizedBBoxSafeCrop裁剪圖像的隨機(jī)部分。 它確保裁剪的部分將包含原始圖像的所有邊界框。 然后,變換會(huì)將作物重新縮放為相應(yīng)參數(shù)指定的高度和寬度。 erosion_rate參數(shù)控制裁剪后可能丟失原始邊界框的面積。 frosting_rate = 0.2表示擴(kuò)充后的邊界框的面積可能比原始邊界框的面積小20%。

五、定義增強(qiáng)管道

transform = A.Compose(
    [A.RandomSizedBBoxSafeCrop(width=448, height=336, erosion_rate=0.2)],
    bbox_params=A.BboxParams(format='coco', label_fields=['category_ids']),
)

六、輸入用于增強(qiáng)的圖像和邊框

我們固定隨機(jī)種子是為了可視化目的,因此增強(qiáng)將始終產(chǎn)生相同的結(jié)果。 在真實(shí)的計(jì)算機(jī)視覺管道中,您不應(yīng)該在對(duì)圖像應(yīng)用轉(zhuǎn)換之前固定隨機(jī)種子,因?yàn)樵谶@種情況下,管道將始終輸出相同的圖像。 圖像增強(qiáng)的目的是每次使用不同的變換。

random.seed(7)
transformed = transform(image=image, bboxes=bboxes, category_ids=category_ids)
visualize(
    transformed['image'],
    transformed['bboxes'],
    transformed['category_ids'],
    category_id_to_name,
)

七、其他不同隨機(jī)種子的示例

random.seed(3)
transformed = transform(image=image, bboxes=bboxes, category_ids=category_ids)
visualize(
    transformed['image'],
    transformed['bboxes'],
    transformed['category_ids'],
    category_id_to_name,
)

random.seed(444)
transformed = transform(image=image, bboxes=bboxes, category_ids=category_ids)
visualize(
    transformed['image'],
    transformed['bboxes'],
    transformed['category_ids'],
    category_id_to_name,
)

到此這篇關(guān)于Python深度學(xué)習(xí)之使用Albumentations對(duì)目標(biāo)檢測(cè)任務(wù)做增強(qiáng)的文章就介紹到這了,更多相關(guān)用Albumentations對(duì)目標(biāo)做增強(qiáng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python常見加密模塊用法分析【MD5,sha,crypt模塊】

    Python常見加密模塊用法分析【MD5,sha,crypt模塊】

    這篇文章主要介紹了Python常見加密模塊用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了MD5,sha與crypt模塊加密的相關(guān)實(shí)現(xiàn)方法與操作技巧,需要的朋友可以參考下
    2017-05-05
  • Python采集圖片數(shù)據(jù)的實(shí)現(xiàn)示例

    Python采集圖片數(shù)據(jù)的實(shí)現(xiàn)示例

    本文主要介紹了Python采集圖片數(shù)據(jù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例

    python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例

    本文主要介紹了python tkinter控件treeview的數(shù)據(jù)列表顯示的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python self用法詳解

    Python self用法詳解

    這篇文章主要介紹了Python self用法的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • Pytorch BCELoss和BCEWithLogitsLoss的使用

    Pytorch BCELoss和BCEWithLogitsLoss的使用

    這篇文章主要介紹了Pytorch BCELoss和BCEWithLogitsLoss的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的實(shí)例

    django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的實(shí)例

    下面小編就為大家?guī)?lái)一篇django實(shí)現(xiàn)同一個(gè)ip十分鐘內(nèi)只能注冊(cè)一次的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-11-11
  • 一文詳解CNN 解決 Flowers 圖像分類任務(wù)

    一文詳解CNN 解決 Flowers 圖像分類任務(wù)

    這篇文章主要為大家介紹了CNN 解決 Flowers 圖像分類任務(wù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 一文詳解Python中多進(jìn)程和進(jìn)程池的使用方法

    一文詳解Python中多進(jìn)程和進(jìn)程池的使用方法

    這篇文章將介紹Python中多進(jìn)程和進(jìn)程池的使用方法,并提供一些實(shí)用的案例供大家參考,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04
  • python繪圖模塊之利用turtle畫圖

    python繪圖模塊之利用turtle畫圖

    這篇文章主要給大家介紹了關(guān)于python模塊教程之利用turtle畫圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python實(shí)現(xiàn)簡(jiǎn)單反彈球游戲

    python實(shí)現(xiàn)簡(jiǎn)單反彈球游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)單反彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04

最新評(píng)論

晋中市| 贵州省| 泾川县| 绥江县| 共和县| 光山县| 民县| 塘沽区| 夏津县| 西乌珠穆沁旗| 固镇县| 长泰县| 彰武县| 登封市| 拉萨市| 黔南| 日喀则市| 栖霞市| 阿巴嘎旗| 克山县| 青河县| 积石山| 云浮市| 万州区| 奉节县| 崇明县| 华宁县| 潍坊市| 巴东县| 黎平县| 沙雅县| 鸡泽县| 密云县| 若尔盖县| 邛崃市| 固原市| 珲春市| 浮梁县| 冷水江市| 桐庐县| 汤原县|