首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >'str' object has no attribute 'astype'?

'str' object has no attribute 'astype'?

提问于 2023-02-27 10:05:00
回答 0关注 0查看 131
代码语言:python
代码运行次数:0
复制
import os
import os.path as osp
import random
def get_data_list(data_dir):
    data_dir='E:/bishe/newdata/'
    random.seed(666)
    mode = ["train_list", "val_list"]
    dir_path = osp.join(data_dir, "JPEGImages")
    files = [f.split(".")[0] for f in os.listdir(dir_path)]
    random.shuffle(files)  # 打乱顺序
    with open(osp.join(data_dir, f"{mode[0]}.txt"), "w") as f_tr:
        with open(osp.join(data_dir, f"{mode[1]}.txt"), "w") as f_va:
            for i, name in enumerate(files):
                if (i % 10) == 0:  # 训练集与测试集为9:1
                    f_va.write(f"JPEGImages/{name}.jpg Annotations/{name}.xml\n")
                else:
                    f_tr.write(f"JPEGImages/{name}.jpg Annotations/{name}.xml\n")
    labels = ["car"]
    txt_str = "\n".join(labels)
    with open((data_dir + "/" + f"label_list.txt"), "w") as f:
        f.write(txt_str)
    print("Finished!")
get_data_list("dataset")
import sys
sys.path.append("PaddleRS")
import os
import os.path as osp
from paddlers.datasets import VOCDetDataset#VOCDetection 
from paddlers import transforms as T
# 定义数据增强
train_transforms = T.Compose([
    T.RandomDistort(),
    T.RandomCrop(),
    T.RandomHorizontalFlip(),
    T.BatchRandomResize(
        target_sizes=[512, 544, 576, 608, 640, 672, 704],
        interp='RANDOM'),
    T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
eval_transforms = T.Compose([
    T.Resize(target_size=608, interp='CUBIC'),
    T.Normalize(
        mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# 定义数据集
data_dir = "E:/bishe/newdata/"
train_file_list = osp.join(data_dir, 'train_list.txt')
val_file_list = osp.join(data_dir, 'val_list.txt')
label_file_list = osp.join(data_dir, 'label_list.txt')
train_dataset = VOCDetDataset(
    data_dir=data_dir,
    file_list=train_file_list,
    label_list=label_file_list,
    transforms=train_transforms,
    shuffle=True)
eval_dataset = VOCDetDataset(
    data_dir=data_dir,
    file_list=train_file_list,
    label_list=label_file_list,
    transforms=eval_transforms,
    shuffle=False)
# 检查及可视化数据
import numpy as np
import cv2
import matplotlib.pyplot as plt
%matplotlib inline
# 反归一化
def in_normal(img):
    mean = np.array([0.485, 0.456, 0.406])
    std = np.array([0.229, 0.224, 0.225])
    img = (255 * (img * std + mean)).astype("uint8")
    return img

问题代码:

代码语言:python
代码运行次数:0
复制
# 绘制矩形框
def visual(img, bboxs):
    for bbox in bboxs:
        x1, y1, x2, y2 = bbox
        cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 0), 2)
    return img
for data in train_dataset:
    img = in_normal(data["image"])
    vis = visual(img, data["gt_bbox"])
    plt.figure(figsize=(10, 10))
    plt.imshow(img)
    plt.show()
    break

问题截图:

AttributeError: 'str' object has no attribute 'astype'
AttributeError: 'str' object has no attribute 'astype'

有人知道哪里错了吗?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档