- 博客(80)
- 资源 (10)
- 收藏
- 关注

原创 yolov3实现之模型训练,测试,检测
前面几篇博客已经对yolov3的具体实现模块已经做了大致的讲解,基于pytorch进行模型训练,测试,检测只是对前面的模块进行组合实现,主要的还是数据的准备,加载,模型搭建,代价函数的求解。train.pyfrom __future__ import divisionfrom models import *from utils.logger import *from utils....
2019-07-08 22:02:24
8530
25

原创 yolov3实现之模型搭建
本文主要针对yolov3-tiny进行讲解,具体的网络结构如下:可以结合该图以及对应的.cfg文件,对model.py进行分析网络结构的具体实现:from __future__ import divisionimport torchimport torch.nn as nnimport torch.nn.functional as Ffrom torch.autograd ...
2019-07-08 21:45:16
3609
4

原创 yolov3实现之基本处理单元
yolov3的实现主要是基于pytorch来实现的,具体参考来源:https://github.com/eriklindernoren/PyTorch-YOLOv3,本文主要解析utils里面的实现,总体也比较简单。主要包含了parse_config.py,datasets.py,augmentations.py,logger.py,utils.py这几个文件。parse_c...
2019-07-08 21:15:48
2723
1

原创 yolov3实现之coco数据集目标检测准备
coco数据集不仅可以用于做目标检测还可以用于进行语义分割,这里主要讲解基于yolov3进行目标检测的数据准备。由于coco数据集的标签信息是以.json的格式存储的,因此有必要转换为具体的格式来进行模型训练与评估。具体的实现方式如下:# -*- coding: utf-8 -*-"""Created on Tue Jul 2 11:41:44 2019@author: Admin...
2019-07-08 20:43:59
6506
2

原创 yolov3实现之理论
1、yolov3简介 yolov3已经出来好久了,最近花了些时间分析了下yolov3的源码。yolov3并没有很大的创新,更多的是借鉴了最近两年一些网络构造技巧。不过不得不承认效果还是很赞的,在保持速度的前提下,提升了预测精度,尤其是小目标物体的检测相比v1、v2来说得到了较大的改善。 yolov3的主要改进:调整了网络结构;利用多尺度特征进行目标...
2019-06-30 17:24:53
3405

原创 dlib人脸检测c语言具体实现
dlib是一个很不错的视觉库,相比opencv,dlib里面的很多算法更接近工业实际,这个也只是个人的感觉。当然,opencv也很不错,涉及到的图像处理方方面面,为图像的开发者带来很多便利。最近一段时间在做hog这一块的检测算法的研究,opencv上实现的hog检测效果不如dlib的检测效果。一方面dlib采用的并非最原始的hog,而是fasthog,与hog相比,fhog是以ce...
2018-09-12 21:12:14
3493
1

原创 python+opencv实现hog+svm的训练
python实现hog+svm训练的网上很多,但是资源svm训练这一块都是通过skimage这个库来实现的,本文从hog特征提取到svm的训练,以及后面的测试都是通过调用opencv来实现的,这样对于基于opencv来做开发的话较为方便,python+opencv通常是在建模的时候会用到,这主要是python脚本语言的高效性。话不多少,下面直接上代码:"""Created on Tue ...
2018-04-03 20:13:43
38695
84
原创 windows下写入文本换行符\r\n修改为linux下换行符\n
最近一段时间经常使用python向文本写入数据,但是windows下换行符默认为\r\n,而linux下换行符为\n,写入的文本要在linux下调用,这就很坑人了,代码前行的路上怎么能被小小石头绊倒,于是乎搜索了一通,发现这个事情仅需要几行代码就搞定。with open('input.txt', 'rU') as infile, \ open('output.txt', 'w', newline='\n') as outfile: outfile.
2020-06-03 21:29:04
1781
原创 音频文件采样率转换
现在音频文件的采样率比较多样,在数据处理的时候一般需要转换到同一采样率下才能进行进一步的处理。自己也是在数据处理的过程中需要进行采样率转换,在网上搜了一通,然而并没有啥可用的东西,下面提供一个基于python实现的音频采样率转换的脚本。def rateTransfer(src_file,new_path): ''' src_file: 原始存放音频文件的文件夹 new_path: 更改采样率后存放音频文件的文件夹 ''' sampleRate,D...
2020-06-01 14:52:51
3308
原创 python3中文异常及显示乱码
problem:print(str_list)UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-3: ordinal not in range(128)solution:import sysimport iosys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
2020-05-10 17:19:26
1136
原创 perl 和 shell随记
1、~ /^\"(.*)\"\s+\<(\d+)-?(\d*)\>\s*$/ perl模式匹配^\"以”开头,(.*)任意个字符,\"匹配”,\s+匹配一个以上的空白符,\<匹配一个<,(\d+)匹配一个以上的数字,-?匹配连字符-零次或一次,(\d*)匹配0或零个以上的数字,\>匹配>,\s*$/以0至0个以上的空白符结尾2、一般来说,while...
2020-03-13 10:02:01
454
原创 tensorflow转c系列二
前面已经写了系列一:https://blog.csdn.net/yongjiankuang/article/details/102470457,系列一主要是tensorflow对mnist进行模型训练,然后将训练好的参数导出来。本博文就是利用导出来的参数,搭建c代码的mnist前向网络。具体实现如下:#ifndef __COMMON_H_#define __COMMON_H_#incl...
2019-10-09 21:58:07
720
原创 tensorflow转c系列一
tensorflow在深度学习领域是一个应用最为广泛的框架,但是其对于嵌入式端的部署并不是特别友好,因为其训练好的模型没有直接导出工具。本博文主要是针对tensorflow训练好的模型,将其转换到c语言运行,这样便于嵌入式的部署。这里主要是基于arm的软件代码进行c代码部署的,具体参考https://github.com/ARM-software/CMSIS_5/tree/develop/CMSI...
2019-10-09 21:46:46
2144
原创 DTW的具体实现
DTW在很多领域都有其具体应用,主要用于模板匹配,如孤立词语音识别,计算机视觉中行为识别,信息检索等。最近在做语音这块的研究,于是深入分析了下DTW的具体实现过程,其实DTW的实现过程就是一个利用动态规划思想寻找最有路径。相关理论知识本来打算自己写一篇,网上查了下不得不佩服大神的杰作,所以这里自己就不再详述理论了,因为大神的佳作还是比较难超越。理论知识可以参考:(1)https://www.cnb...
2019-10-09 17:52:12
2650
5
原创 mobileNet-v1之pytorch实现
本博文主要是针对mobileNet-v1采用pytorch进行实现,代码也是参考他人的代码,具体实现如下:# -*- coding: utf-8 -*-"""Created on Tue May 21 20:41:58 2019@author: Administrator"""import time import torchimport torch.nn as ...
2019-06-02 21:52:36
4876
4
原创 mobileNet-v1理论分析
1.概述 mobileNet是为移动和嵌入式设备提出的高效模型压缩的一种方式,其主要提出了可分离卷积来实现网络的轻量化,该方式的提出使得网络可以在损失较小的情形下,模型得到较大的压缩,从而为在嵌入式端进行实现提供了可能。该模型压缩方式已经在很多分类和目标检测等网络中得到了验证。 目前建立小型高效神经网络的方式,主要有两种: (1)压缩预训练模型:获取...
2019-06-02 21:37:24
608
原创 CUDA系列三:矩阵相乘
本博文主要讲解下基于cuda的矩阵相乘,cuda特别擅长的就是矩阵乘法,而且也比较容易实现。通过矩阵乘法的实现,可以比较容易理解cuda的核心思想。网上也有很多基于cuda实现的矩阵乘法,但是感觉都不完成,要不就是有错,本文给出的代码都是经过验证可行的,希望能够帮助到大家。矩阵乘法实现方式一:矩阵乘法的逐点实现方式,具体如下图所示 对...
2019-05-13 20:33:54
15798
9
原创 CUDA系列二:向量的相加
本文主要介绍下cuda的向量加法的实现,该代码只是为了熟悉概念和初步上手cuda,过程也比较简单。cuda c上手其实还是挺简单的,但是要精通还是需要通过大量实践才能达到的,有兴趣的同学需要多加练习。本文的向量相加,由简逐渐深入。初步实现只使用了一个block:#include <iostream>#define N 10static void Hand...
2019-05-12 15:24:47
1942
原创 CUDA系列一:基本概念
太久没有写博客了,最近一直在整cuda c这块的东西,学了一阵子了但是水平还是一般般。作为一个半入门的人,写点记录一来是可以帮助自己记忆,更多的是希望可以帮助他人,做技术这块写点东西能够帮助到他人,我想这大概是自己最开心的事情,以后尽量多写些有用的东西吧。1. 基本概念 常用的操作主要包括函数声明,变量声明,内存类型声明,纹理内存,原子操作等。主机:CPU以...
2019-05-12 14:29:35
738
原创 TF-IDF词汇加权
1. TF-IDF定义:tf-idf, term frequency - inverse document frequency,词频 -逆向文档频率。用于评价一个单词在整个语料库中的重要程度, 即这个词是否对不同文档有着很好的区分能力.如果某个词语term在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为这个词语具有很好的文档分类能力。它通常用于词加权, 即作为权重因...
2019-03-22 16:49:48
796
原创 SVM的基本推导
1、SVM的作用对于给定的训练样本集D={(x1,y1), (x2,y2),… (xn,yn)},yi属于{-1,+1},希望能找出一个超平面,把不同类别的数据集分开,对于线性可分的数据集来说,这样的超平面有无穷多个,而最优的超平面即是分隔间距最大的中间那个超平面2、硬间隔最大化对于以上的KKT条件可以看出,对于任意的训练样本总有ai=0或者yif(xi) - 1=0即yi...
2019-03-14 00:02:45
2693
1
原创 dlib标签制作
dlib的标签的数据格式如下:大多用于目标检测的标签的数据格式:(图片名 left_top_y left_top_x width height),如果用于dlib进行模型训练,那么就需要进行数据格式转换,下面就是标签的转换程序:# -*- coding: utf-8 -*-"""Created on Mon Sep 10 17:52:11 2018@author: A...
2018-09-10 21:10:16
641
2
原创 车道检测
车道检测的研究已经有了比较长的时间,现有的算法也五花八门,有基于轮廓进行车道线提取的,也有基于边缘特征提取的,最后采用直线拟合将车道线拟合出来。当然,我这里只是很概念性的说说。目前检测类的算法当然是深度学习的主流,因为其性能传统算法很难比拟,不过深度学习的缺陷就是计算吞吐量大,在计算方面传统算法还是比较有优势的。本文的车道检测算法采用的依旧是传统算法,没办法,资源有限,所以只能采用传统算法实现。...
2018-09-09 16:25:04
850
1
原创 tensorflow之yolo1代码讲解
yolov1已经出来很久了,起初公布的代码作者采用的是自己实现的网络框架darknet,该网络框架是基于c语言实现。尽管现在有着各种各样的框架,不过个人感觉tensorflow在使用方面依旧有着很强的优势,主要体现在扩展性方面。不过因人而异吧,毕竟只是一个工具而已。网上其他博客也有对这份代码的讲解,不过个人感觉依旧有些不到位,所以决定还是结合自己的理解讲解下。下面的代码主要是基于tensorflo...
2018-08-26 14:57:00
1772
2
原创 SDM人脸对齐系列一:数据预处理
人脸对齐是人脸识别系统中很重要的一个环节,SDM是传统人脸对齐算法中性能较为不错的一种,在今天这个深度学习如火如荼的时代,SDM依旧具有一定的优势。SDM相比深度网络具有模型小,速度快等优点。尽管SDM已经出现了好久,但是网络上对其具体的详细讲解的知识还是比较少,尤其是和训练相关的东西。这几天自己硬着头皮啃了下源码,给出自己的理解。...
2018-06-25 20:38:04
1724
原创 tensorflow学习系列六:mnist从训练保存模型再到加载模型测试
通过前面几个系列的学习对tensorflow有了一个渐渐亲切的感觉,本文主要是从tensorflow模型训练与验证的模型进行实践一遍,以至于我们能够通过tensorflow的训练有一个整体的概念。下面主要是从训练到保存模型,然后加载模型进行预测。# -*- coding: utf-8 -*-"""Created on Mon Jun 11 22:17:52 2018func:搭建网...
2018-06-12 19:41:41
5998
5
原创 tensorflow学习系列五:AlexNet
AlexNet网络结构对于今天而言并无太多特殊之处,但是它的出现却将我们卷入了深度学习的大潮,具有重要的意义。下面基于tensorflow对alexNet进行了简单的复现,主要是测试了下alexNet网络的运行时间。# -*- coding: utf-8 -*-"""Created on Sun Jun 10 13:54:00 2018@author: kuangyongjian...
2018-06-10 14:58:47
349
原创 tensorflow学习系列四:卷积神经网络
卷积神经网络毋庸置疑是深度学习的基石,基于卷积神经网络在很多方面都取得了传统算法所无法匹敌的性能,因而作为深度学习的入门,卷积神经网络必须了如指掌。本文主要基于tensorflow实现手写字体识别,网络结构为LeNet-5。可以说该网络应该是卷积神经网络中的hellworld,下面就是LeNet-5的具体实现# -*- coding: utf-8 -*-"""Created on Su...
2018-06-10 11:57:20
465
原创 tensorflow学习系列三:多层感知器MLP
多层感知即至少包含一个隐含层的神经网络,较为典型的就是BP神经网络。本文依旧以mnist数据集进行对MLP进行实验,实验中MLP仅包含了一个隐含层,若想增加更多从层基于该实验拓展也很简单。# -*- coding: utf-8 -*-"""Created on Sat Jun 9 14:37:08 2018@author: kuangyongjian"""from tenso...
2018-06-10 10:58:59
617
原创 tensorflow学习系列二:噪声自编码器
噪声自编码就是在自编码器的基础上对输入数据加入噪声,然后重构原始输入的干净数据,这在一定程度上使得隐含层提取的特征更具有鲁棒性。以下是基于tensorflow实现的噪声自编码器:# -*- coding: utf-8 -*-"""Created on Sat Jun 9 13:28:37 2018@author: kuangyongjian"""import numpy as...
2018-06-09 14:35:51
1143
原创 tensorflow学习系列一:helloworld之minist
Tensorflow作为当今主流的深度学习框架学习下还是很有必要的,相比其他的框架,tensorflow具有更大的灵活性;同时在资料方面也更具优势,因此,tensorflow无疑将是我们进行深度学习开发的首选工具。好了,不多废话了,总之,适合自己的才是最好的,毕竟鞋子合不合脚自己穿了才知道。下面是基于mnist的一个hellworld程序,主要是采用softmaxRession对mnist进行分类...
2018-06-09 13:14:43
761
原创 win10 + Dlib + vs2013编译配置
1、下载dlib,由于最近的dlib不支持vs2013,所以需要更低版本的dlib库,这里选用的是v18.16(下载链接:点击打开链接),根据自己需要也可以下载其他的版本。下载完v18.16压缩包后,直接解压,我这里是解压到E:\software目录下2、dlib准备好了,下面就是对dlib库进行编译,这里采用的是cmake3.10.3,网络有些博客提到cmake的版本有可能导致编译的不完整情形,...
2018-05-21 20:33:58
1220
2
原创 win10+anconda+tensorflow安装
最近由于需要用到深度学习,经过一番调研发现tensorflow依旧是工业界模型实现的主流框架,于是自己尝试安装tensorflow。原以为直接采用pip就可以直接搞定,只能怪自己太天真,刚开始自己安装的是anconda最新版本,那么问题就来了,由于最新anconda自带的python版本太高导致tensorflow不支持;于是自己装了卸,卸了装还是没有成功。经过两个晚上的摸索终于成功地的跑...
2018-05-08 22:14:37
20216
3
原创 批量转换Caltech Pedestrian Dataset中annotations中的.vbb文件为.txt文件
本博文实现将CaltechPedestrianDataset中annotations的.vbb文件转换为.txt文件,这里只是前面博文的一个拓展,只是稍微改了下主程序%-------------------------------------------------------%func: main.m%-----------------------------------------...
2018-04-26 14:39:11
2017
3
原创 提取INRIA数据集的box
前面讲到了INRIA数据集转换为VOC2007数据集格式:点击打开链接,本文和前面有点类似,只是做了进一步的精简,有点画蛇添足的感觉。不过还是希望能够帮到大家!因为比较简单,下面直接上代码。# -*- coding: utf-8 -*-"""Created on Wed Apr 4 15:28:10 2018@author: kuangyongjianfunc:generat...
2018-04-07 12:38:52
1046
2
原创 .vbb文件转换为.txt文件
Caltech Pedestrian Dataset数据集的annotations就是以.vbb保存的,但是我们实际运用中一般都是保存为.txt文件或者.xml文件的格式,这就给我们带来了很大的不便性,Caltech Pedestrian Dataset数据集matlab代码下载:点击打开链接,下面的代码调用到了该链接的内容。结合Caltech Pedestrian Dataset数据集中...
2018-04-07 12:08:41
5188
10
原创 INRIA DataSet数据集label转换为VOC2007数据集形式
这里纯属是一个数据集标签的格式转换,所有直接上代码:# -*- coding: utf-8 -*-"""Created on Wed Apr 4 15:10:06 2018@author: kuangyongjian"""#!/usr/bin/python# -*- coding: UTF-8 -*-# 文件名:txt_to_xml.py from xml.dom.m...
2018-04-04 17:37:14
1787
8
原创 图像轮廓搜索c实现
图像轮廓搜索是图像处理中很基本很常用的算法,基于边缘跟踪的轮廓搜索是轮廓提取算法中较为高效的一种搜索算法。具体如下: (1) 从左到右,从上往下依次搜索非零点 (2) 搜索到非零点并标记当前非零点,对当前非零点的八邻域按照逆时针进行搜索下一个非零点 (3)若能够搜索到非零点,则重复步骤二,指导搜索完当前轮廓 (4)当前轮廓搜索完毕,则返回(1)进行下一个轮廓进行搜索...
2018-03-12 20:34:18
2673
2
原创 Sobel变换c语言实现
Sobel主要用于初步寻找图像的边缘信息,同时也可以起到图像锐化作用。常用的3*3的模板卷积实现,主要是通过水平和垂直两个方向卷积实现。具体代码实现:void sobel(image_t* src, grad_t *grad){ int y, x; int w = src->w; int h = src->h; grad->w = w; grad->...
2018-03-08 19:43:15
3573
6
原创 Canny之c语言实现
Canny是图像处理中经常用到的一种边缘检测算法,Canny的具体算法流程: (1)根据sobel后的结果,通过幅值和角度进行非极大值抑制 (2)对非极大值抑制后的结果进行双阈值处理 (3)双阈值后的图像,进行边缘连接,得到连续性较好的边缘信息 更加具体的理论可以参考:点击打开链接,本文主要是参考opencv源码实现的Canny,具体代码如下:void canny(...
2018-03-08 19:23:04
2133
hog_svm_train_python
2018-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人