- 博客(37)
- 收藏
- 关注
原创 mall4cloud 开源项目源码阅读
前端:登录再进入菜单,整个流程是怎么样子的。涉及到的技术,请求,状态管理,路由拦截,路由。后端:token是怎么生成的?每一次请求是怎么校验token,权限的?。
2023-11-08 20:52:43
458
原创 响应异常处理
确定返回的json格式。@Schema(description = "返回消息")@Schema(description = "返回码")@Schema(description = "是否成功")@Schema(description = "返回数据")@Override'}';/*** 成功代码*//*** http成功*//*** 异常码,http相关*/FORBIDDEN(403, "禁止访问"),
2023-10-26 02:04:11
111
原创 p104 rx590 双卡 配置pytorch cuda开发环境 加恒源云开发环境
最重要的原因是没钱!!!!。a卡价格低,适合玩游戏。p104价格就100多,拿来作为本地调试已经搓搓有余了。再加上恒源云,按时间收费,可以使用4090, a100等等显卡,冲个100块钱学习就够用了。所以配置一台深度学习的机器,只需要2000元不到。这样一来,既可以本地使用低廉的gpu作为本地调试,也可以使用云环境的4090 a100这些买不起的gpu跑调好的代码。是没有钱的小伙伴最好的途径。
2023-09-03 23:56:24
1775
原创 cv2 plt 绘制目标框 文字 掩码
example: 如果需要显示汉字则 输入一个汉字, 默认英文字符。txt_color=(255, 255, 255) 文本颜色值。color: (128, 128, 128) box颜色值。font_size:字体,不填将下载yolo字体。im: 需要绘制的图片(h, w, c)line_width: 线的宽度。label: str 标签名。yolo中有一个现成的类。xy: 绘制文字的位置。绘制矩形只使用plt。
2023-06-18 17:48:28
727
原创 pyqt 开源项目源码阅读
接上一篇提供两个类 dialog, mainwindow, 根据操作系统作了一个判断, 目前是win ,linux, mac继承关系class WindowsFramelessWindow(QWidget):设置titlebar实现qwidget resizeEvent事件。 resize时,调节 titlebar的大小。def setResizeEnabled(self, isEnabled: bool):设置resize禁用。无边框窗口弹窗
2023-04-12 00:43:27
312
原创 pyqt 开源项目 TitleBar 组件
接上一篇文章:自定义titlebar组件这个就是titlebar不是一种很好的设计,因为子类需要调用insertWidget ,来插入组件实现更多功能。必须要读了父类,才知道 inserWidget 插入的索引位置。不过好在简单。
2023-04-12 00:06:05
355
原创 pyqt 开源项目源码阅读
button继承结构:打开qt设计师qwidget:大概有的功能:0:设置对象id1:设置可用2: 设置 当前的xy位置 与宽高3:设置字体4:设置移动的光标形状5:设置提示信息6:设置qss样式1: 设置文本2: 设置图标3: 设置图标大小需求:光标移动到组件, 离开组件,和按下组件的时候改变颜色。设计思路:定义3个状态的枚举类型, 定义进入,离开,按下三类事件,控制button状态。通过_getColors方法获取当前状态下的颜色, 由子类完成动画绘制。NORMAL = 0。
2023-04-11 20:53:20
457
原创 pyqt 控件
QLabel对象作为一个占位符来显示不可编辑的文本或图像,或GIF动画的影片。它也可以作为其他小工具的记忆键使用。普通文本、超链接或富文本都可以在标签上显示。
2023-03-22 21:39:49
137
原创 pyqt api 学习
目录简介:QObjectsetParent(self, parent: QWidget):parent(self):children(self):findChildren(self, *__args):setObjectName(self, name):setProperty(self, name, value):dynamicPropertyNames(self):property(self, name):代码blockSignals(self, b: bool) -> booldisconnect(se
2023-03-20 00:26:30
231
原创 python 错误non-default parameter follows default parameter
python语法规定。有默认值的参数,得放在没有默认值的参数之后。
2023-03-19 15:44:11
152
原创 pyqt5 + Qt Designer 设计ui界面
pycharm -> tool -> External tools -> qt designet 打开。生成的代码: 是继承的object 提供了一个setui方法,传入我们自己的容器。有哪些事件是一个问题,我找了很多资料都没找到。但是有一种方法可以查到有那些事件。可以看见每个组件有哪些信号,并且还可以看见组件自带的函数(曹)通过qt desiger。曹可以理解为执行函数。
2023-03-15 14:06:08
668
原创 PYQT5 例子
pyqt5/examples/widgets at master · baoboa/pyqt5 · GitHub设计思路:主体网格布局,里面放容器 class IconPreviewArea(QWidget): 也是一个QGridLayout 布局的容器createImagesGroupBox: QTableWidget 布局 事件:createIconSizeGroupBox:QRadioButton() 单选框IconSizeSpinBo
2023-03-14 19:38:20
98
原创 pyqt5
官方提供了几本书,我没钱买。有钱买了的大哥,可不可以提供一份拷贝本。这是一个前端框架。特点是跨平台:Windows, Mac or Linux官方说的安卓苹果也支持。只不过向导只有电脑上的例子。很简单的一个框架,最重要最重要的是它是跨平台的,而且还可以用python实现,对于自己来落地一个算法,无疑是最节省时间的。下一篇,了解更多的api,和布局技巧。
2023-03-14 12:45:04
94
原创 yolo 实例分割
1: 生成掩码标签图:列如(8, 160, 160)。8表示8个标签, 8张图片。2: forword: 调用 proto(输出为(32, c, c)) proto 有一个上采样,所以步长为4为什么需要proto?如果不加proto。那么就掩码坐标预测,就只能放在输出的最后一位(1, 3, 80, 80, 117)因为模型输出的掩码是固定的32位,实际数据可能是54, 64个掩码。所以无法设计损失函数。例如掩码的图片为(160, 160)。模型输出也是(160, 160)。
2023-02-19 17:18:46
2381
6
原创 yolo中 LoadImages, LoadScreenshots, LoadStreams
path: 路径地址(图片文件夹,文件,视频文件夹,文件,或者两者混合都可以。img_size: resize,或者letterbox转换后的大小。transforms: 自定义transforms。stride: letterbox转换参数。auto: letterbox 转换参数。功能:获取远程数据流 RTSP, RTMP, HTTP streams。功能: 读取本地图片,视频,摄像头数据。path : 文件地址。im: 增强后的图片。im0s: 原始图片。功能: 获取本地屏幕截图。
2023-02-17 18:15:27
2597
原创 yolo 分布式训练。
-1:当使用单进程, 单机多卡模式 ,DP模式的时候。RANK, LOCAL_RANK初始化就是-1.但是使用多进程,多机多卡, DDP模式的时候。这个时候不能把训练代码,当成单进程来看待,实际是多进程。一般的策略。主进程(0, -1)打印日志,统计数据,或者dataload切割的时候,主进程要负责数据的切割。
2023-02-15 23:43:13
1090
原创 yolo锚框, 损失函数
tcls: 分类数据tbox: xywh 框数据indices: 索引数据image: 图片索引例如一个3大小的批量 则[0, 1, 2],如果筛选出4个标签则可能是[0, 0, 1, 1]anchor:先眼眶索引,列如筛选出四个标签 则可能他们对应是anchor索引为[1, 0, 2, 1]grid: 网格索引,假如讲特征图划分为8 * 8的大小。筛选出4个标签,则它们的网格有可能是[[3, 4], [3, 5], [4, 6], [5, 5]]
2023-02-11 19:58:10
312
原创 pytorch分布式编程
看下原文的描述,我英语比较差,只能看个大概意思,贴出原文,怕翻译错误。文档地址多机多卡:这里告诉我们为什么要使用ddp,它更快。
2023-02-01 16:24:44
594
原创 pytorch dataload源码解读
执行流程:初始化dataloader -> 创建索引策略(sample) -> 迭代 __next__ -> 选择选择进程迭代器 -> 工作进程读取索引,数据 放入队列中 -> 主进程从队列中取得数据 -> 完成迭代。sample: 负责随机策略, 通过dataset的 len() 初始化一个索引列表。batchsample: 负责切取 batch大小的索引列表。_MultiProcessingDataLoaderIter : 完成迭代策略,因为数据先读到队列里,所以内存压力很大。
2023-01-30 14:31:34
541
原创 精读yolo LoadImagesAndLabels类
做了几件事读取文件路径 生成标签路径处理标签信息: 得到shap, 目标检测坐标,分割坐标设置索引缓存:标签信息和图片信息。np.save() 内存/ram: 直接读进来cv.imread。
2023-01-20 02:33:26
1583
原创 重写yolo数据加载模块
"""Args:.. note::"""具体的可以看看,我另外一篇关于这个类的源码阅读。这个类我觉得相当于定义了一种编码规范其他一些增强的方法,都差不多。主要就是索引处理,标签和图片加载。性能肯定比yolo原生的差多了,yolo原生标签,图片在初始化就统一处理了,然后缓存。所以代码量非常大,可阅读性很差。另外torchvision.datasets这个包提供了一套编码规范逻辑很清晰。初学的话,照这个来,我觉得是比较好的选择。
2023-01-18 01:51:15
615
原创 torchvision.datasets.ImageFolder
如果要重写,我觉得主要就是getitem方法。首先:类给主要给我们提供了,文件读取的方法。我们可以直接拿到文件路径集合。有了文件路径,就没必要用它的文件加载方法。yolo中有更高效的方法,如果是目标检测,我们可以重新指定标签,比如yolo中规定标签和图片名一样,便于找到。
2023-01-17 01:19:43
1044
原创 一些数据增强
np.ascontiguousarray()详解 - 九叶草 - 博客园yolo中最后都要调用这个,为了性能更快。PLT显示的图像都有问题,不知道是什么原因,只有最后一张图片是用opencv显。
2023-01-16 23:59:28
307
原创 yolo模型解析方法parse_model
可以看到新加的模型被添加进去了:至于输出为什么1024 不是2048. 这里受宽度参数调节的。2 : parse_model函数 如下添加。
2023-01-11 18:05:37
1618
原创 mixup 增强
1 beta 分布取一个随机数 r2 取两张图片 resize公式 :r * img1 + r * img2结果:具体实现:return im。
2022-12-31 02:27:11
103
原创 yolo5源码解读 v7
比如模型输出的shape(1,3,80,80,85): 80,80就代表网格的宽高。解释:比较早的版本是计算iou,v7改成了计算高宽比,只取最大的,因为要么小于1,要么大于1.越小越不好,越大也越不好,为了方便就取最大的。detect转换后的shape形状(图片数量, 先验框(默认3,每一个类别的3种类型), w,h, 预测类型 + 5(x ,y, w, h ,iou))配置文件 -1的时候,直接后面的模型。列如:[(1,3,32,32,85),(1,3,16,16,85),(1,3,8,8,85) ]
2022-12-25 02:56:25
778
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人