- 博客(17)
- 收藏
- 关注
原创 PIL读入图片转为BGR
PIL读入图片默认通道顺序是RGB,可通过下面程序将图片转为BGR顺序image = Image.open(img) # 读入图片image = image.convert("RGB") # 图片转为RGB格式image = np.array(image)[:, :, ::-1] # 将图片转为numpy格式,并将最后一维通道倒序image = Image.fromarray(np.uint8
2021-04-09 10:50:54
6670
原创 使用PIL对图像进行对比度调整的原理
首先将原图转为灰度图,求出灰度图的灰度的算数平均值。根据原图的尺寸和灰度平均值,新建一张与原图尺寸相同,通道数相同,每个像素的每个通道数值均为灰度平均值的图。根据以下公式,使用恒定的alpha在两个输入图像之间进行插值来创建新图像。out = image1 * (1.0 - alpha) + image2 * alpha代码:from PIL import Image, ImageStatimg = Image.open('./org_0.jpg')# img1 = img.conv
2021-04-06 18:18:40
1770
1
原创 神经网络训练指定gpu
主要有两种方法· 在终端运行训练程序的时候,前面加上指定语句,比如 CUDA_VISIBLE_DEVICES=2 python train.py · 在训练程序的最前面加上:这种方法有时候不管用,可能是因为项目代码在某些地方已经设定了GPU的环境变量import osos.environ["CUDA_VISIBLE_DEVICES"] = "2"数字2指的是GPU的代号,只需在终端输入下面命令就能看(每隔0.1s就刷新一次)watch -n 0.1 nvidi..
2021-03-24 16:08:05
841
原创 python os常用操作
判断文件或者路径是否存在:import osos.path.exists(aaa.txt)常用操作:# 判断路径是否存在,不存在则创建一个。这个可以多级创建if not os.path.exists(path_a): os.makedirs(path_a)
2021-01-29 15:11:00
120
原创 Linux中anaconda的安装和使用
在Ubantu上安装anaconda最后一步会问你:Do you wish the installer to initialize Anaconda3 by running conda init?我虽然输入了yes,但是后面提示的信息显示no change。然后虽然显示安装成功,但是输入conda --version会报错说conda: command not found。说明缺失没有初始化。解决办法:运行命令:source anaconda3/bin/activate。此时你就进入base
2021-01-25 11:36:42
2311
原创 python使用Path读取大文件夹下(小文件夹中)的所有图片
在一个文件夹A里,有很多小文件夹,小文件夹里面还有小小文件夹,小小文件夹里面有图片。要读取文件夹A里面的所有某一类型的文件(比如jpg图片),可以使用Path包。from pathlib import Pathpath = './folder/A'img_formats = ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.dng']p = Path(path)images=p.rglob('*.*')images=[x for x in imag
2021-01-07 20:09:12
1762
原创 cv2.dnn读取模型报错原因归纳
问题1:读取onnx出现报错“error: (-210:Unsupported format or combination of formats) Failed to parse onnx model in function 'ONNXImporter'”出现这个原因网上有挺多种解答,但是首先先检查onnx文件路径是否填写正确。问题2:读取onnx出现报错“error: (-2:Unspecified error) Can't create layer "317" of type "Clip".
2021-01-04 10:55:16
8312
10
原创 VScode ERROR:The terminal process “/bin/bash“ terminated with exit code: 127.
我在vscode上通过SSH远程连接服务器运行一个程序 A.py 时也出现了同样的错误。但是我却可以以这种方式正常运行其他程序。甚至我将A.py的代码复制到其他程序也能正常运行。我发现A.py唯一的不同就是其上级文件夹的名称包含符号 & 。在我在文件夹名中去除 & 之后就恢复正常。或许这个能帮助到你们。...
2020-12-03 15:53:04
2268
原创 nanodet相关
nanodet网址:https://github.com/RangiLyu/nanodet训练保存的pth模型比预想大:issues/50训练保存的pth模型(7MB出头)比作者提供的pth模型(3MB)更大,原因是训练过程中保存的模型是附带优化器的check point。可以在save model时不保存优化器来获得3MB的模型。(作者原话)保存模型的函数在项目工程的nanodet/util/check_point.py defsave_model。调用地点有两处line133 &am..
2020-12-02 10:22:26
1060
4
原创 深度学习/神经网络基础知识
1*1卷积的作用:(1*1卷积是二维卷积)1*1卷积就仅仅知识对不同切片的相同位置点进行线性叠加(当然是先乘以这个1*1卷积核系数再叠加)。这样可以进行数据的维度变换,例如原本是3*640*640的输入(3个切片),通过12个1*1卷积核,就变成了了12*640*640的输出。卷积神经网络的意义:全连接前馈神经网络处理图像的问题:1.参数太多。如果输入为100*100*3的图,第一个隐藏层的每个神经元到输入层有100*100*3=30000个相互独立的连接,每个连接都有一个权重参数。.
2020-11-20 17:22:22
329
原创 Yolov5知识点
模型训练、模型测试、模型推断、模型导出都要注意设定img-size,需要统一img-size。yolov5的img-size设定没有上线,但是越大越吃显存,训练也会越慢;并且img-size必须是32的倍数。
2020-11-17 15:48:57
8616
1
原创 修改yolov5训练出的模型,得到可用于迁移学习的预训练模型
笔者最近训练了一个yolov5的模型,想作为预训练模型,对另外一个更为复杂的数据集进行迁移学习。但是直接使用训练得到的best.pt出现了以下问题:1.训练epoch计数从best.pt对应的epoch开始,而不是从0开始2.生成的result.txt记录了best.pt对应的epoch以及之前的训练结果。3.迁移学习训练只保存last.pt,不再保存best.pt为了解决以上问题,查阅资料得知:训练保存的pytorch文件(.pt)里面包含的不仅仅是模型与参数,还包含了其他的东西。使用
2020-11-16 17:17:08
10486
37
原创 yolov5自适应anchors
在进行yolov5训练的时候,会输出:Analyzing anchors... Best Possible Recall (BPR) = 0.8838. Attempting to generate improved anchors, please wait...WARNING: Extremely small objects found. 2274 of 14719 labels are < 4 pixels in width or height.Running kmeans for 9 a
2020-11-11 17:03:40
8277
17
原创 Yolo训练技巧:Rectangular training/inference
Rectangular training/inference 矩形训练/推理参考:https://www.cnblogs.com/pprp/p/12432540.htmlYOLOv3中是下采样32倍,长宽也必须是32的倍数,所以在进入模型前,数据需要处理到416×416大小,这个过程称为仿射变换。实现代码:# 来自 https://zhuanlan.zhihu.com/p/93822508def cv2_letterbox_image(image, expected_size):
2020-11-11 15:29:16
7274
4
原创 对于读取图片有时候会出现‘NoneType‘ object has no attribute ‘shape‘的问题
有时候读取图片会出现'NoneType' object has no attribute 'shape'的问题,原因就在于读取的图片位深是8。一般三通道的图片位深是24。位深为8的图也可以是彩色图。找出文件夹中所有位深为8的图的方法:import osimport cv2dirName = '/aaa/bbb'# 将dirName路径下的所有文件路径全部存入all_path列表all_path = []for root, dirs, files in os.walk(dirName)
2020-11-05 18:00:52
7779
1
原创 Debug技巧
使用:https://www.cnblogs.com/zejin2008/p/6852441.htmlimportsysprint(sys._getframe().f_lineno)来进行debug(输出当前行号)在程序中添加print,从而得知bug出在哪里
2020-10-21 18:28:26
118
2
原创 ValueError: not enough values to unpack (expected 2, got 0)
在读取txt文件的时候有时候会出现ValueError: not enough values to unpack (expected 2, got 0)的错误。我自己发现的原因是txt文件的最后有几个空行,把最后的空行删除,保证最后一行是你想要读取的文本即可。txt文件如果你在最后按回车虽然是看起来啥也没有,但是那些空的行其实有一个字符,就是换行符 \n ,所以不能有空行。就像这样光标和文本之间的空行每一行其实都有一个换行符。按Backspace回到你最后的文本行即可。按键盘的方向键光标下.
2020-10-12 15:40:38
6268
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人