- 博客(95)
- 资源 (9)
- 收藏
- 关注
原创 Python爬虫(入门版)
编程语言:Python是目前最常用的爬虫语言,因此需要掌握Python的基本语法和常用的库。基础知识:需要了解计算机网络的基本知识,包括HTTP协议、TCP/IP协议、DNS协议等。爬虫框架:学习使用一些爬虫框架,如Scrapy、BeautifulSoup等,可以加快爬虫的开发速度。浏览器抓包:学习使用抓包工具,如Fiddler、Wireshark等,可以帮助理解网站的数据传输过程。反爬机制:了解网站的反爬机制,如封IP、封账号、封代理等,可以帮助避免被网站禁止访问。
2024-04-25 09:22:42 815
原创 基于opencv的数字识别系统
想要实现的功能:帮助我们在泵中扫描燃油,并在应用程序中输入燃油信息。所需技术:①python程序对于拍摄的汽油泵的图像,尝试从中读取数字。——opencv实现。②先使用python对其进行原型设计,然后将代码转换成C++以在ios应用程序上运行。但是我不会部署在移动端,对第二个不做研究。
2023-01-05 16:12:45 2314 8
原创 MOT——SORT
目标跟踪(1)SORT Windows实战+代码解析_weixin_50862344的博客-CSDN博客_多目标跟踪sort代码
2023-01-04 17:02:17 776
原创 传统目标跟踪——光流法
简单来说,光流就是瞬时速度,在时间间隔很小时,也等同于目标的位移,光流场是灰度图像的二维矢量场,它反映了图像上像素的变化趋势,可看成是带有灰度的像素点在图像平面上运动而产生的瞬时速度场,它包含的信息即是各像素点的瞬时运动速度矢量信息,既可以表现为物体运动的运动方向也可表现为物体运动的速率。为了避免大位移运动跟踪失败的情况,在较大的尺度上进行跟踪时,将图像金字塔与LK光流法相结合,使图像分辨率降低到一定程度时,原本较大的运动位移变得足够小,利用图像金字塔来自上而下的计算来得到准确的光流。
2023-01-03 17:17:13 6315 3
原创 传统目标跟踪——(结合 KNN 背景减法、MeanShift 和kalmanfilter)
相当于之前传统算法的一个改进,但是效果也不是很好。自己思考:总体是背景减法,meanshift和kalmanfilter感觉是辅助来修正参数的。
2023-01-03 10:44:30 401
原创 传统目标跟踪——帧差法
优点是算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应各种动态环境,有着比较强的鲁棒性。缺点是不能提取出对象的完整区域,对象内部有“空洞”,只能提取出边界,边界轮廓比较粗,往往比实际物体要大。对快速运动的物体,容易出现鬼影的现象,甚至会被检测为两个不同的运动物体,对慢速运动的物体,当物体在前后两帧中几乎完全重叠时,则检测不到物体。故该方法一般适用于简单的实时运动检测的情况。
2022-12-30 15:40:54 2509 1
原创 传统目标跟踪——卡尔曼滤波Kalman(结合MeanShift+Kalman)
在上面的跟踪中,和链接。我们使用的都是Meanshift或者是基于Meanshift的Camshift来进行的跟踪,这里我们还可以对其进行改良:引入卡尔曼滤波的概念。卡尔曼滤波的概念较为复杂,这里我们可以理解为:从一个含有噪音的输入中,得出一个具有统计意义上较为良好的估计值。我们举个简单的例子,比如我现在有一个物体,正在以1m/s的速度(过去测量得到的值)离我远去,当前它离我1m远,因为我们知道他正在以1m/s的速度远离我,所以下一秒我就能估计出它离我2m远,这个是显然的。
2022-12-29 17:09:48 2243
原创 传统目标跟踪——CamShift算法(改进MeanShift)
camshift能有效解决目标变形和遮挡的问题,对系统资源要求不高,时间复杂度低,在简单背景下能够取得良好的跟踪效果。但当背景较为复杂,或者有许多与目标颜色相似像素干扰的情况下,会导致跟踪失败。因为它单纯的考虑颜色直方图,忽略了目标的空间分布特性,所以这种情况下需加入对跟踪目标的预测算法。
2022-12-29 16:35:16 1510
原创 传统目标跟踪——MeanShift算法
举个简单的例子,比如我现在有一张图片,我们要跟踪图片右下角的一个物体,但是我不知道这个物体的坐标范围,所以我只能一次一次的去尝试(在代码中修改初始框的位置后,看看程序的运行情况)来保证代码能够正常运行,但这样代码的普适性很差,因为每当要更改跟踪对象的时候,都需要反复的修改,才能应对当前的情况,这样实在是有点麻烦。这样,最后圆形的窗口会落到像素分布最大的地方,也就是图中的绿色圈,命名为C2。运行上面的代码,会跳出一个窗口,窗口上显示的就是我们载入的视频的第一帧,我们用鼠标拖动,画出我们要跟踪的物体的位置。
2022-12-29 15:58:14 3556 3
原创 传统目标跟踪VS深度学习目标跟踪
主要通过siamese网络进行相似度匹配,主要操作为:首先手动选择初始图像中的目标,使用siamese网络进行特征提取,然后以此特征为标准,遍历后面帧图像的每个位置,对每个位置进行特征提取,然后作比较,确定位置。主要针对目标检测算法和滤波类算法(多目标跟踪),yolo系列,ssd系列,anchor-free系列,two-stage系列等等,滤波类和上述传统方式相似。主要有:CSK、KCF/DCF、CN、粒子滤波、马尔科夫链蒙特卡罗法、局部最优搜索、密集抽样搜索。特征提取+滤波类搜索。
2022-12-29 09:43:15 413
原创 opencv实现单目标跟踪
BOOSTING Tracker:和Haar cascades(AdaBoost)背后所用的机器学习算法相同,但是距其诞生已有十多年了。这一追踪器速度较慢,并且表现不好,但是作为元老还是有必要提及的。(最低支持OpenCV 3.0.0)MIL Tracker:比上一个追踪器更精确,但是失败率比较高。(最低支持OpenCV 3.0.0)KCF Tracker:比BOOSTING和MIL都快,但是在有遮挡的情况下表现不佳。(最低支持OpenCV 3.1.0)
2022-12-28 17:36:54 1144
原创 Opencv报错003:AttributeError: module ‘cv2‘ has no attribute ‘TrackerBoosting_create‘
解决方法:通过cv2.legacy来调用这些函数,比如 ‘cv2.TrackerBoosting_create’ 改成 ‘cv2.legacy.TrackerBoosting_create’;其它也类似改动即可!报错原因:opencv版本包括4.5.1以上,都不支持这些函数;网上其它解决方法多数提出安装 ‘opencv-contrib-python’,但是个人试过无法解决该问题;
2022-12-28 15:00:14 2492 2
原创 Groovy中each、find跳出循环
中each、find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究:1、groovy each 中的return true 相当于Java中的continue ,2、groovy find中的return true 相当于Java中的break,
2022-12-28 09:15:51 2012
转载 YOLOv1-v7全系列backbone侧
上图左侧是DenseNet的结构,它进行反向传播时会有大量的重复计算,而右侧的图是CSP模块结构,它将基础层的特征图分成两部分,一部分直接与该阶段的末尾concat相连,另一部分经过局部Dense模块,从而既能保留Dense模块的特征复用,又能截断梯度流,避免大量的重复计算,同时可以保证准确率。值得一提的是,YOLOv5最初版本中会存在Focus结构,在YOLOv5第六版开始后,就舍弃了这个结构改用6*6,s=2的常规卷积,其产生的参数更少,效果更好。
2022-12-21 18:35:15 1046
转载 YOLOv1-v7系列输入侧
其逻辑主要是计算图像原生尺寸与输入尺寸的缩放比例,并获得缩放后的图像尺寸,最后再进行自适应填充获得最后的输入图像,具体代码逻辑可以在datasets.py的letterbox函数中查看。多尺度训练(Multi-Scale Training)的逻辑是模型每训练一定的Epoch,改变输入图片的尺寸,使得模型对不同的输入尺寸更鲁棒,能够从容地对不同尺寸的图像进行检测。YOLOv1的输入侧有着朴素的逻辑,做的最多的工作是调整输入图像的尺寸以支持对图像细粒度特征的挖掘与检测。
2022-12-21 18:00:07 386
原创 opencv对视频进行抽帧,保存为图片
注意:opencv读取的视频不能有中文路径。cv2中imread和imwrite读取图片的路径不能包含中文或者空格,只能为英文或者数字,否则报错!但是可以采用相对路径,是英文的就可以了。
2022-12-21 17:17:25 494 1
原创 文件重命名
最近在做项目时,需要对数据集进行一系列的处理,包括视频抽帧、对图片的重命名、划分训练集测试集、复制标注文件到别的文件下,图像增强之平移等等,用到了一些脚本,现在整理发布一下。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了更改文件夹的使用。
2022-12-21 15:53:42 75
原创 深度学习——NLP-5.预训练模型
5.1 为什么要预训练语言模型5.2 ELMo句向量5.3 越来越大的语言模型5.4 GPL单向语言模型5.5 BERT双向语言模型
2022-05-15 10:26:38 208
原创 深度学习——NLP-4.全是注意力
4.1 什么是语言模型的注意力4.2 Attention注意力机制4.3 Transformer是怎样将注意力发挥到极致4.4Transformer将注意力发挥到极致
2022-05-15 10:24:31 154
原创 深度学习——NLP-2.理解词语
2.1 词向量是什么2.2 Continuous Bag of Words (CBOW)2.3 Skip-Gram
2022-05-15 10:20:15 463
原创 人工智能——Pandas数据结构
numpy只能处理数值型数据,很多时候还需处理字符串、时间序列等,就需要Pandas(Python Data Analysis Library,数据分析库)。Pandas是基于Numpy的一个开源Python库,被广泛应用于数据分析、数据清洗以及准备等工作。数据科学家经常和表格形式的数据(比如.csv ,.tsv , .xlsx)打交道,Pandas可以使用类似SQL的方式非常方便的加载、处理、分析这些表格形式的数据。同时搭配Matplotlib和Seaborn效果更好。pandas可以满足以下需求
2022-05-12 11:08:38 538
原创 GAN生成对抗网络
1. GAN的介绍1.1 GAN的引入GAN:Generative Adversarial Networks 是一种无监督的深度学习模型,提出于2014年,被誉为“近年来复杂分布上无监督学习最具前景的方法之一。”1.2 GAN模型的主要组成生成器G(generator) 判别器D(discriminator)1.3 GAN训练的目的希望生成器G能够学习到样本的真实分布,那么G就能生成之前不存在的但是却又很真实的样本。1.4 GAN的网络结构示意图1.5 数学描..
2022-05-06 21:02:55 2885
原创 机器学习项目实战——21SVM算法之人脸识别
现在关于人脸识别的项目一般采用深度学习方法,很少使用SVM的了整体代码:import matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import fetch_lfw_peoplefrom sklearn.model_selection import GridSearchCVfrom sklearn.metrics import clas
2022-05-04 16:39:26 1169
原创 机器学习项目实战——20SVM算法之非线性分类
非线性用核函数# C和gamma# 'linear', 'poly', 'rbf', 'sigmoid'整体代码:import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import svm# 载入数据data = np.genfromtxt("LR-testSet2.txt", delimiter=",")..
2022-05-04 16:18:01 316
原创 机器学习项目实战——19SVM算法之线性分类
整体代码:import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm# 创建40个点x_data = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]y_data = [0]*20 +[1]*20plt.scatter(x_data[:,0],x_data[:,1],c=y_data)plt.show(..
2022-05-04 16:03:02 136
原创 机器学习项目实战——17PCA算法之手写数字降维可视化
https://blog.csdn.net/weixin_45823221/article/details/1219837312.2节
2022-05-04 15:57:44 693
原创 机器学习项目实战——16Kmeans算法之广告效果聚类分析
整体代码:import numpy as npimport pandas as pdfrom sklearn.preprocessing import MinMaxScalerfrom sklearn.cluster import KMeansimport matplotlib.pyplot as pltimport seaborn as sns# 显示中文plt.rcParams['font.family'] = ['sans-serif']plt.rcParams['...
2022-05-02 16:44:26 632
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人