辑锦学AI-从零开始写复杂场景目标检测算法

第一步学习使用pytorch框架


会使用框架写出改进算法的模块很重要,熟悉框架才能将网络结构转为代码,进而可以通过实验来验证想法的正确性!!!


一、数据导入部分的基本思维导图

 二、代码源码

from torch.utils.data import Dataset
import torch
import os
import cv2
import numpy as np

#Torch的很多三方库的开头字母都是大写的,需要注意,自己定义类库时可采用大驼峰方式命名,这里采用的是class son(father):的定义方式,儿子可以使用父亲的函数
class MyDataset(Dataset):
    def __init__(self,root,is_train=True):
        #导入数据,如果是图片,保存图片路径,可以减少对图片的持续读入,避免内存爆炸
        self.dataset=[]
        #通过改变MyDataset的第二个参数选择进行训练或测试文件夹,a=123 if True else 234
        dir='train' if is_train else 'test'
        #将根路径与训练文件夹拼接或与测试文件夹拼接
        sub_dir=os.path.join(root,dir)
        img_lists=os.listdir(sub_dir)
        #i=1"数量"
        for img_name in img_lists:
            #print(img_name)
            #print('{}'.format(i))"数量"
            #i=i+1"数量"
            img_dir=os.path.join(sub_dir,img_name)
            #print(img_dir)
            self.dataset.append(img_dir)
    def __len__(self):
        #返回数据集的长度
        return self.len(self.dataset)
    def __getitem__(self, index):
        data=self.dataset[index]
        #imread读的图片的属性,c-通道数,h-高,w-宽
        img=cv2.imread(data)/255
        #print(img.shape)
        #c-0,H-1,W-2,CHW,numpy的transpose是转换图片属性顺序
        #new_img=np.transpose(img,(2,0,1))
        #print(new_img.shape)
        #torch的tensor的permuate转换图片的属性顺序
        new_img=torch.tensor(img).permute(2,0,1)
        data_list=data.split('.')
        label=int(data_list[1])
        position_pre=data_list[2:6]
        position=[int(i)/300 for i in position_pre]
        sorts=int(data_list[6])
        return np.float32(new_img),np.float32(label),np.float32(position),np.float32(sorts)
        

if __name__ == '__main__':
    data=MyDataset(r'D:\NewUser2\ApplicationDataLocation\DatasetLocation\yellow_data')
    """
    a=data.__getitem__(3)
    for i in a:
        print(i)
    """

总结

代码学习是在b站上跟着视频敲的:

带你逐行手写单目标检测算法,从数据到模型搭建、训练、预测_哔哩哔哩_bilibili带你从数据预处理到模型搭建,再到模型训练测试,手把手带你逐行敲代码,并讲清每行代码的含义,记得给个关注点赞哟!, 视频播放量 5811、弹幕量 27、点赞数 186、投硬币枚数 163、收藏人数 289、转发人数 33, 视频作者 深度学习麋了鹿, 作者简介 带你逐行敲深度学习图像算法勿忘初心,砥砺前行!交流Q群:974054210业务合作VX:BBKF88888888,相关视频:【YOLOv5实战】手把手教你训练以口罩检测为例的YOLOv5目标检测模型!计算机视觉|人工智能|YOLO,【有手就行系列】嵌入式单片机教程-桌面小屏幕实战教学 从设计、硬件、焊接到代码编写、调试 ESP32 持续更新2022,pytorch如何训练自己的图片数据集,你还不会yolov5目标检测?来我教你训练自己的数据集,打破常规训练方法,So easy!,冒死上传!花16800买来的【目标检测YOLO算法】教程,YOLOv1/v2/v3/v4/v5全系列一次学完,简直太完整了!,【油管疯传!】目前最顶级的10大YOLO项目汇总,附论文+代码+数据集!!-人工智能/AI/深度学习/目标检测,屠榜的Swin Transformer做目标检测和实例分割!效果太惊艳!,最适合新手入门的【YOLOV5目标实战】教程!基于Pytorch搭建YOLOV5目标检测平台!环境部署+项目实战(深度学习/计算机视觉),异常检测算法及经典模型介绍,抖 音 黑 客vs真正的黑客https://www.bilibili.com/video/BV1eq4y1H75J/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=b4fbe441d45396622e63cf50b41eb71e思维导图是自己做的,个人理解,一千个读者就有一千个哈姆雷特!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值