<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xue_csdn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xue_csdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xue_csdn]]></copyright><item><title><![CDATA[python多线程实现定时]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/121333278</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/121333278</guid><author>xue_csdn</author><pubDate>Mon, 15 Nov 2021 14:54:20 +0800</pubDate><description><![CDATA[常规的多线程代码：


import threading
runWebVedio(i):
	...
fun_timer(x):
	...
th1 = threading.Thread(target= runWebVedio, args=(1,), name="thread1")
th2 = threading.Thread(target= fun_timer, args=(x,), name="thread2")
th1.start()
th2.start()

但是几个线程没有先后执行顺序。

上一篇文.]]></description><category></category></item><item><title><![CDATA[python多线程按顺序执行]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/121283312</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/121283312</guid><author>xue_csdn</author><pubDate>Fri, 12 Nov 2021 10:45:32 +0800</pubDate><description><![CDATA[3种不同的队列类


q=Queue(maxsize):创建一个FIFO(first-in first-out,先进先出)队列。maxsize是队列中金额以放入的项的最大数量。
如果省略maxsize参数或将它置为0，队列大小将无穷大。

q=LifoQueue(maxsize)：创建一个LIFO（last-in first-out，后进先出）队列(栈)。

q=PriorityQueue(maxsize)：创建一个优先级队列，其中项按照优先级从低到高依次排好。
使用这种队列时，项应该是(priority,]]></description><category></category></item><item><title><![CDATA[python获取特定时间戳]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/120648393</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/120648393</guid><author>xue_csdn</author><pubDate>Fri, 08 Oct 2021 11:20:30 +0800</pubDate><description><![CDATA[1、获取当前时间之前的时间戳


import datetime
now = datetime.datetime.now()

#前1天1小时1分钟1秒之前的时间
now - datetime.timedelta(days = 1, hours = 1, minutes = 1, seconds = 1)

first_day = datetime.date.today().replace(day = 1)#本月1号
last_month = first_day - datetime.timedelta(d]]></description><category></category></item><item><title><![CDATA[Python 串口发送十六进制数据]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/120328149</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/120328149</guid><author>xue_csdn</author><pubDate>Thu, 16 Sep 2021 14:37:02 +0800</pubDate><description><![CDATA[1、安装serial库


pip install pyserial

如果想要提速，参考用pip install安装库时如何提速_xue_csdn的博客-优快云博客1、临时提速在 pip install 包名 后面加上 -i + 镜像地址国内主要镜像地址如下：清华：https://pypi.tuna.tsinghua.edu.cn/simple阿里云：http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn]]></description><category></category></item><item><title><![CDATA[树莓派4b 串口通信实现自发自收]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/119462996</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/119462996</guid><author>xue_csdn</author><pubDate>Fri, 06 Aug 2021 21:12:39 +0800</pubDate><description><![CDATA[1、树莓派串口映射设置

运行以下命令：


ls /dev -al

出现串口映射的情况，但是此时是在默认状态下，serial0(就是GPIO14,15)是映射到ttyS0的，serial1（跟板载蓝牙相连）映射到ttyAMA0，ttyAMA0是硬件串口，它的时钟频不受CPU影响。也就是和现在图中的两个串口映射刚好相反（默认情况下的没截图）。

图1



一般串口都是用的ttyAMA0，要想和GPIO接，需要把映射状态调换一下。执行以下操作。

（1）打开串口调试


sudo raspi-config]]></description><category></category></item><item><title><![CDATA[用pip install安装库时如何提速]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/110069621</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/110069621</guid><author>xue_csdn</author><pubDate>Tue, 24 Nov 2020 13:09:49 +0800</pubDate><description><![CDATA[1、临时提速

在 pip install 包名 后面加上 -i + 镜像地址

国内主要镜像地址如下：

清华：https://pypi.tuna.tsinghua.edu.cn/simple

阿里云：http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中理工大学：http://pypi.hustunique.com/

山东理工大学：http://pypi.sdutlinux]]></description><category></category></item><item><title><![CDATA[如何让你的YOLOV3模型更小更快？]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/107983814</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/107983814</guid><author>xue_csdn</author><pubDate>Thu, 13 Aug 2020 17:07:12 +0800</pubDate><description><![CDATA[1. 前言

之前讲过关于模型剪枝的文章深度学习算法优化系列七 | ICCV 2017的一篇模型剪枝论文，也是2019年众多开源剪枝项目的理论基础 并分析过如何利用这个通道剪枝算法对常见的分类模型如VGG16/ResNet/DenseNet进行剪枝，见深度学习算法优化系列八 | VGG，ResNet，DenseNe模型剪枝代码实战 ，感兴趣的可以去看看。这篇推文主要是介绍一下如何将这个通道剪枝算法应用到YOLOV3上，参考的Github工程地址为：https://github.com/Lam1360/YOL]]></description><category></category></item><item><title><![CDATA[YOLOv3通道+层剪枝，参数压缩98%，砍掉48个层，提速2倍！]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/107967194</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/107967194</guid><author>xue_csdn</author><pubDate>Wed, 12 Aug 2020 21:27:14 +0800</pubDate><description><![CDATA[尽管目标检测新算法层出不穷，但在实际工程项目中不少52CV群友还是念着YOLOv3的好。将其部署到边缘设备等时，模型剪枝是非常有必要的，毕竟有原始模型有239M的参数，剪枝后往往也能提速不少。

比如之前52CV曾经分享过：

YOLOv3模型剪枝，瘦身80%，提速100%，精度基本不变

YOLOv3剪枝再升级！

上述剪枝是减少模型通道数，而今天向大家介绍的工程可以实现通道和层的双向剪枝，在oxford hand 数据集hand检测问题中，作者实验中可以实现精度下降很小而参数减少 98%，砍掉 48 个]]></description><category></category></item><item><title><![CDATA[YOLOV3中k-means聚类获得anchor boxes过程详解]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/107695186</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/107695186</guid><author>xue_csdn</author><pubDate>Thu, 30 Jul 2020 17:29:13 +0800</pubDate><description><![CDATA[  我们都知道yolov3对训练数据使用了k-means聚类的算法来获得anchor boxes大小，但是具体其计算过程是怎样的呢？下面我们来详细的分析其具体计算过程：


第一步：首先我们要知道我们需要聚类的是bounding box，所以我们无需考虑其所属类别，第一步我们需要将所有的bounding box坐标提取出来，也许一张图有一个矩形框，也许有多个，但是我们需要无区别的将所有图片的所有矩形框提取出来，放在一起。

第二步：数据处理获得所有训练数据bounding boxes的宽高数据。给的...]]></description><category></category></item><item><title><![CDATA[YOLOv3网络改进(二)（未完）]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/107686086</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/107686086</guid><author>xue_csdn</author><pubDate>Thu, 30 Jul 2020 11:18:10 +0800</pubDate><description><![CDATA[参考：

https://www.zhihu.com/question/308366100

https://www.pythonheidong.com/blog/article/409533/

1、根据自己的数据集重新计算anchor值

官网或者AlexeyAB的yolov3.cfg中，都是是3个检测尺度共9个anchors，但是不同数据库的anchors值不一样，如果只用默认的anchor值，会造成检测框不精确，所以对于自训练模型来说，根据自身数据集或者网络的特征尺度的修改情况，来修改anchor值]]></description><category></category></item><item><title><![CDATA[YOLOv3网络改进(一)]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/107684892</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/107684892</guid><author>xue_csdn</author><pubDate>Thu, 30 Jul 2020 10:48:52 +0800</pubDate><description><![CDATA[参考：https://www.pythonheidong.com/blog/article/409533/

在官网或者AlexeyAB中，YOLOv3的推理过程是用route把第85和61层、97和36层特征拼接在一起，在13x13尺度的基础上，增加了26x26、52x52两个尺度。但是如果想要对更小的目标做检测时，增加浅层网络的FPN，即继续按照同样的拼接原理，将上采样之后的特征与浅层网络特征拼接，完成第4个甚至第5个特征尺度。接下来介绍如何增加第4个尺度。

原始yolov3结构增加第4个尺度104x]]></description><category></category></item><item><title><![CDATA[仅修改darknet.py对视频做目标检测]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/106644878</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/106644878</guid><author>xue_csdn</author><pubDate>Tue, 09 Jun 2020 16:16:12 +0800</pubDate><description><![CDATA[在Darknet框架中，自带的darknet.py可以使用weight、cfg、coco.data（或者voc.data）、coco.names（voc.names），以及在darknet路径下make生成的libdarknet.so（如图1），利用这些文件即可完成图片中的目标检测，并标出检测框。

图1

图2 darknet.py的主函数

但是对于检测视频来说，darknet.py中的detect函数，第3个参数是“data/dog.jpg”，是图片带路径的文件名，而opencv读取视频是这样操...]]></description><category></category></item><item><title><![CDATA[Python之二维列表换行输出]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/106642708</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/106642708</guid><author>xue_csdn</author><pubDate>Tue, 09 Jun 2020 15:12:01 +0800</pubDate><description><![CDATA[代码：


a=[]
for i in range(5):
    a.append([])
    for j in range(3):
        a[i].append(j)
print(a)

输出：


[[0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2], [0, 1, 2]]

但是想要把二维数组换行输出，更直观，用numpy是最简单方便的，修改为：


import numpy as np
a=[]
for i in range(5):
    a.ap]]></description><category></category></item><item><title><![CDATA[Python之10道最高频的手撕代码题]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/106639552</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/106639552</guid><author>xue_csdn</author><pubDate>Tue, 09 Jun 2020 13:55:57 +0800</pubDate><description><![CDATA[1、快速排序

题目形式：手写一下快速排序算法。

题目难度：中等。

出现概率：约50%。手写快排绝对是手撕代码面试题中的百兽之王，掌握了它就是送分题，没有掌握它就是送命题。

参考代码：


def quick_sort(arr,start=0,end=None):
    if end is None:
        end = len(arr)-1
    if end&lt;=start:
        return(arr)
    i,j = start,end
    ref = arr]]></description><category></category></item><item><title><![CDATA[Python之读取键盘输入到一维列表及二维列表]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/106639300</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/106639300</guid><author>xue_csdn</author><pubDate>Tue, 09 Jun 2020 13:28:35 +0800</pubDate><description><![CDATA[在网站上刷一些题的时候，经常涉及到从键盘的终端输入读取一系列参数，并把相应的参数存储到列表里的情况。

1、Python读取列表的集中方式

Python3 input() 函数：
Python3.x 中 input() 函数接受一个标准输入数据，返回为 string 类型。
注：在 Python3.x 中 raw_input() 和 input() 进行了整合，去除了 raw_input( )，仅保留了input( )函数，其接收任意任性输入，将所有输入默认为字符串处理，并返回字符串类型。

sys.st]]></description><category></category></item><item><title><![CDATA[YOLOv4(暂不完整 持续更新)]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/106058285</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/106058285</guid><author>xue_csdn</author><pubDate>Mon, 11 May 2020 17:13:12 +0800</pubDate><description><![CDATA[YOLOv4: Optimal Speed and Accuracy of Object Detection

论文：https://arxiv.org/abs/2004.10934

代码：https://github.com/AlexeyAB/darknet



论文中提到，在COCO数据集上，YOLOv4比YOLOv3提升了10%的AP和12%的fps，所以YOLOv4更加快速、精准。

达到这种效果，主要原因是YOLOv4将很多单独的优化算法做了集成，包括：

Weighted-Residual-]]></description><category></category></item><item><title><![CDATA[YOLOv3]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/105996550</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/105996550</guid><author>xue_csdn</author><pubDate>Fri, 08 May 2020 20:39:55 +0800</pubDate><description><![CDATA[如果单纯跟着论文一步步的翻译， 是很难理清思路的。需要整理出YOLOv3哪些部分是保留了前2个版本，哪些是创新之处。







2.1 bbox预测Bounding Box Prediction

和YOLOv2一样，采用尺度聚类作为anchor box来预测bbox



在训练期间 利用均方和误差，如果预测坐标的ground truth是tˆ，那相应的梯度就是ground truth值...]]></description><category></category></item><item><title><![CDATA[YOLO 9000]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/105974984</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/105974984</guid><author>xue_csdn</author><pubDate>Thu, 07 May 2020 16:12:32 +0800</pubDate><description><![CDATA[YOLO 9000和YOLOv2使用相同的网络结构。利用分类、检测的联合训练机制，利用ImageNet非常大量的分类样本，联合COCO的对象检测数据集一起训练，使得YOLOv2即使没有学过很多对象的检测样本，也能检测出这些对象。这就是YOLO9000的由来。

 在此利用了WordNet这个语言数据库。（这部分让我有些头大......看不太懂）

 为了...]]></description><category></category></item><item><title><![CDATA[YOLOv2]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/105950349</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/105950349</guid><author>xue_csdn</author><pubDate>Thu, 07 May 2020 15:49:46 +0800</pubDate><description><![CDATA[YOLOv1拙见https://blog.youkuaiyun.com/xue_csdn/article/details/105949984

YOLOv2相比YOLOv1，预测更准确（Better），速度更快（Faster），识别对象更多（Stronger）

1、Better

（1）批归一化BN

 BN（Batch Normalization）这里就不详细介绍了。

BN其实在YOLOv1中...]]></description><category></category></item><item><title><![CDATA[YOLOv1]]></title><link>https://blog.youkuaiyun.com/xue_csdn/article/details/105949984</link><guid>https://blog.youkuaiyun.com/xue_csdn/article/details/105949984</guid><author>xue_csdn</author><pubDate>Wed, 06 May 2020 14:19:05 +0800</pubDate><description><![CDATA[YOLO是典型的one-step，将候选区的确定和检测过程合二为一，检测时间大大缩短。

YOLOv1

1、直接上网络结构图



2、训练过程

 在训练之前，先在ImageNet上进行了预训练，其预训练的分类模型采用网络结构图中前20个卷积层，然后添加一个average-pool层和全连接层。预训练之后，在预训练得到的20层卷积层之上加上随机初始化的4个卷积层和2个全连接层。由于检测任...]]></description><category></category></item></channel></rss>