自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 关于在unbuntu KDevelop中执行程序出现/tmp> -a 已失败问题及其解决

ubuntu中KDevelop无法执行程序的可能解决方案

2022-08-19 14:01:51 349 2

原创 简单搜索引擎的设计

搜索引擎系统的工作流程分为四步,从网上抓取网页,建立索引数据库,根据用户的关键词在索引数据库中进行搜索,对搜索结果进行相关度排序处理。它主要由网络爬虫、索引器和检索器三部分组成。网络爬虫,英文名称Web Spider,它的主要功能是从指定的IP出发,便利整个互联网中所存在的网页,它可以借助网页中的URL爬到其他网页中去,不停的对这个过程进行重复,将爬过的网页搜集起来并存储到页面存储库中去。Indexer,索引器,它的主要功能是将Web Spider收集回来的网页进行分析,提取网页中所含的信息,并按照相关度进

2021-01-10 03:02:38 4253 5

原创 基于pytorch的SSD模型训练

SSD模型论文:https://blog.csdn.net/quincuntial/article/details/78854930汉化0、环境准备:ubuntu18.04.4系统,pytorch1.2.0,CUDN10,CUDNN7.4.2,GPU为GTX10501、训练前的准备:VOC数据集的准备,使用ImafeLable或其他数据集标注工具,将原始数据集转换为VOC数据集,使用ImageLable刚开始会出现两个文件夹,分别为Annotations、JPEGImages文件夹,我们还需要创建

2020-11-17 20:18:09 1764 5

原创 Ubuntu下tensorflow深度学习——mnist手写字体识别

1、Tensorflow的 基础概念:(1)计算图(grap):tensorflow是一个基于计算图的数值计算系统,计算图是一个有向图,图中的节点代表数学操作计算中的节点(op),结点之间连接的边代表参与计算的高维数组数据,叫做tensor,计算图的执行可以看作tensor按照图的拓扑顺序,从输入节点逐步流过所有中间节点,最后流到输出节点的过程,tensorflow名称由此而来。Tensorflow计算图如图所示。(2)张量(tensor):这一术语源于力学,在物理和数学中都有重要作用,在tensor

2020-10-03 21:29:10 520

原创 图像特征描述子——Susan

1、Susan:SUSAN(Smallest Univalue Segment Assimilating NucleusSUSAN)算子的模板和常规卷积算法的正方形模板不同,它使用一种近似圆形的模板。该方法可用于一次性快速检测出角点、交点、边缘点,而且无方向性。(1)susan算法思想:SUSAN算法采用圆形模板,其目的是使检测达到各向同性。在实际应用中,由于图像的数字化,无法实现真正的原型模板,往往采用近似圆代替。圆形模板在图像上使用,模板内部每个图像像素点的灰度与模板中心像素的灰度进行比较。若

2020-08-19 00:22:00 1637

原创 Ubuntu下tensorflow深度学习——环境篇(C++)

前文我们搭建了python的环境,并且安装了cuda与cuDNN。接下来我们编译tensorflow的c++接口,与python不同,tensorflow的c++接口各版本间并没有什么显著的不同(tensorflow2.3除外),所以你可以安装除2.3外的任何一个版本,但要和cuda的版本相匹配,这里我编译的是tensorflow2.0,其余版本的编译与本文相同。1、下载安装编译工具bazel,bazel与tensorflow的版本关系如图所示:如图所示,我们需要下载bazel0.26.1,进入htt

2020-08-08 17:01:12 725

原创 Ubuntu下tensorflow深度学习——环境篇(python)

本文默认环境为ubuntu18.04.4(真机非虚拟机),NVIDIA显卡(本机GTX1050Ti),opencv4.2。由于项目原因,我需要用python训练h5模型,再将其转换为pb模型,最后由tensorflow的C++接口在我的cpp程序中调用。所以,我需要配置的环境为:python-tensorflow,tensorflow的C++接口(需对源文件进行编译),anacoda虚拟环境。由于python-tensorflow与C++的ternsorflow比较独立,所以先安装哪个都不影响,注意pyt

2020-08-08 16:48:23 556

原创 Android开发手记——登陆界面

写一个登录界面在activity_main.xml中新建一个Button类,id为btn_edittext,文本内容为EditText,不全部大写。<Button android:id="@+id/btn_edittext" android:layout_width="match_parent" android:layout_height="wrap_conten...

2020-01-12 23:36:16 378

原创 DP学习手记——线性回归分类器

深度学习实际上是通过将数据进行多层处理,逐渐将初始的“低层”特征表示转化为“高层”特征表示后,用“简单模型”即可完成复杂的分类等学习任务。由此可将深度学习理解为进行“特征学习”(feature learning)或“表示学习”(representation learning)。简单来说,深度学习解决的是复杂的的分类问题。在对数据进行二分类的最直接有效的方法是线性回归分类器,所以在真正进行深度学习...

2020-01-09 23:53:58 619

原创 2019年12月18日Linux开发手记

安装idle3:1、端输入apt install idle3 以安装2、安装完成后在终端输入idle以启动配置pip:1、终端输入apt install python3-pip使用pip配置numpy与opencv:1、打开终端输入pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名2、打开idle,新建一个py文件...

2019-12-18 22:04:36 123

原创 2019年12月18日Linux开发手记

安装idle3:1、端输入apt install idle3 以安装2、安装完成后在终端输入idle以启动配置pip:1、终端输入apt install python3-pip使用pip配置numpy与opencv:1、打开终端输入 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 库名2、打开idle,新建一...

2019-12-18 22:03:00 96

原创 2019年12月9日开发手记

现阶段的任务1、先把andriod_python调通2、网络传输摄像头数据 到 ubuntu上保存,3、移植测试算法到安卓板子上andriod_python是为了要在安卓的板子上调用python程序,现在有两个方案:方案一:直接在板子上移植程序,板子是定制的A5板,内部支持python,但缺少很多库,例如opencv与numpy。如果用这种方案,需要用c重写opencv...

2019-12-09 23:53:00 101

原创 2019年12月9日开发手记

现阶段的任务1、先把andriod_python调通2、网络传输摄像头数据 到 ubuntu上保存,3、移植测试算法到安卓板子上andriod_python是为了要在安卓的板子上调用python程序,现在有两个方案:方案一:直接在板子上移植程序,板子是定制的A5板,内部支持python,但缺少很多库,例如opencv与numpy。如果用这种方案,需要用c重写opencv的函数,然后调...

2019-12-09 23:51:30 100

原创 2019年12月4日V4L2开发手记

OK,经过昨天对V4L2工作流程的学习,现在已经大体了解了V4L2的工作原理,现在开始对V4L2的API的学习,目标:1、打开摄像头 2、储存图像 3、关闭摄像头,API网址:Linux Media Infrastructure userspace API — The Linux Kernel documentation https://linuxtv.org/downloads/v4l-dvb-...

2019-12-04 22:04:57 174

原创 2019年12月4日Linux开发手记

OK,经过昨天对V4L2工作流程的学习,现在已经大体了解了V4L2的工作原理,现在开始对V4L2的API的学习,目标:1、打开摄像头 2、储存图像 3、关闭摄像头,API网址:Linux Media Infrastructure userspace API — The Linux Kernel documentation https://linuxtv.org/downloads/v4l...

2019-12-04 21:47:00 115

原创 2019年12月2日Linux开发手记

开始学习在Linux下视频源捕获驱动框架,也就是V4L2(video4linux),本次关于v4l2的知识准备主要在于其的官方例程,理解官方例程也就差不多掌握了v4l2的基本内容。例程在:http://blog.chinaunix.net/uid-23983143-id-3351976.html知识准备:v42视频编程的流程和对文件操作并没有什么本质的不同,大概的流程如下...

2019-12-02 23:19:00 136

原创 2019年12月1日Linux开发手记

配置ubuntu摄像头:1、设置→添加→usb控制器→兼容usb3.02、虚拟机→可移动设备→web camera→连接(断开主机)3、查看是否配置成功,打开终端,输入:susbls /dev/video输出 /dev/video0配置成功4、打开ubuntu自带的chesse软件(茄子),运行摄像头配置gcc:1、以root模式打开终端2、安装gcc,输入ap...

2019-12-01 23:24:00 126

原创 2019年11月28日开发手记

为了方便后面目标识别的处理,将投影求分类的函数嵌入进fft滤波函数中,共同组成fttmovedetect函数,利用python的切片功能实现投影代码:arryAllW[:] = arryAllW[:] + arryH[:]arryAllH[:] = arryAllH[:] + arryL[:]为在投影中分割多目标区域,引入两个变量:Yindexh 与Yindexl,用于记录分界...

2019-11-28 23:39:00 102

原创 2019年11月26日开发手记

利用numpy的矩阵加法函数,成功实现矩阵行列相加,返回投影值,在效果相同的基础上把时间降到了30ms左右。接下来要将投影值进行聚类,从而达到检测多个运动目标的目的。def line_trans(img): l = Stack() h_1= Stack() l.isEmpty() h_1.isEmpty() #ret, thresh1 = c...

2019-11-26 20:52:00 110

原创 2019年11月25日开发手记

对滤波后的图像做行列投影,通过阈值得到运动图像横纵坐标点集。使用水平与竖直投影算法,投影算法的时间复杂度为O(x2),哪怕进行优化也最多可变为O(xlogx),时间上无法接受。再次使用傅里叶变换?还是将目标放在轮廓点整合?使用竖直投影法的话还不如直接遍历所有点找轮廓,这对后面进行聚类也比较方便。决定采用竖直投影+遍历,只进行一次投影,在投影过程中将点逐个遍历,高亮点的横纵坐标压入栈,...

2019-11-25 23:11:00 98

原创 2019年11月24日开发手记

通过opencv求出了各轮廓的中心点,并对各中心点进行排序并求出最大最小值点,根据求出的这些最大最小点绘制矩形。效果如图:速度为20ms左右,从效果来看该算法无法绘制出准确的运动图像,并且面对多个运动物体时效果更差,决定更换为层次聚类算法,先得到每个轮廓的中心点,再用层次聚类算法得到运动图像所包含的簇,再依据该簇所包含的轮廓点绘制矩形。凝聚层级聚类(HAC)是自下而上的一种聚类算...

2019-11-24 20:01:00 95

原创 2019年11月23日开发手记

提取外切轮廓目前没有什么现成的API可用,所以也得自己写一个,考虑到经过滤波后的目标图像为点集状态,所以打算采用聚类算法,经过比较,决定选择聚类算法中的k-means算法作为运动区域中心点检测算法。k-means算法:算法步骤:(1) 首先我们选择一些类/组,并随机初始化它们各自的中心点。中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。(2)...

2019-11-24 00:04:00 99

原创 将博客搬至CSDN

博客园人越来越少了……新博客地址:https://blog.csdn.net/qq_44137560还没搬成……

2019-11-22 23:04:00 59

原创 2019年11月22日开发手记

开始考虑使用滤波函数,在使用了几个常用的滤波函数后,发现无论是速度还是时间都无法令人满意,于是决定自己写一个。首先做一个两行的mask掩膜,第一行为0,第二行的前10与后10行为1,在两张图片进入fttmove函数后进行行分割,对分割后的行进行组合并傅里叶变换,将掩膜与该数组相乘,得到低通滤波后的图像,将该图像逆傅里叶变换得到能量图。再做一个与图像同大小的iimg掩膜,使用np.as...

2019-11-22 22:48:00 56

原创 2019年11月21日开发手记

更改了几处bug:1、将栈由全局变量变为局部变量,修正了起始点不变的问题。2、将低通滤波器改为高通滤波器,修正了压入栈的数据过多问题。f = np.fft.fft2(new_gray_array)rows,cols=f.shapef[0:fftadd]=0f[rows-fftadd:rows]=0问题:新算法受光照影响较大使用for循环写了两个矩形,使得准确度好了...

2019-11-21 16:49:00 57

原创 2019年11月20日开发手记

两种运动检测算法的介绍:帧差法:帧差法是目前运动目标检测中最常用的算法。帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰度变化为非0,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。二维频域运动目标检测:通过对...

2019-11-20 22:06:00 56

原创 一个小错误:error LNK2019: 无法解析的外部符号 "public: __thiscall Turtle::~Turtle(void)" (??1Turtle@@QAE@XZ),该符号在函数...

昨天在撸代码的时候遇到了一个十分蛋疼的错误:错误:1>3.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Turtle::~Turtle(void)" (??1Turtle@@QAE@XZ),该符号在函数 _main 中被引用1>3.obj : error LNK2019: 无法解析的外部符号 "public:...

2019-03-12 22:20:00 664

原创 新的方向:自动化机器学习

在过去的一年当中,自动化机器学习已经成为一个众人感兴趣的话题。KDnuggets举办了一个关于该话题的博客大赛。结果喜人,有很多有意思的想法与项目被提出来了。一些自动化学习工具也引起了大家的兴趣,受到了大家的追捧。本篇文章的作者 Matthew Mayo 将会对自动化学习进行简单的介绍,探讨下一下它的合理性、采用情况,介绍下它现在使用的工具,讨论下它预期的未来发展方向。本文由雷锋网编...

2019-03-04 22:39:00 144

原创 共用体

用typedef定义类型1、用typedef声明新的类型名来代替已有的类型名。例:声明INTEGER为整型#include "StdAfx.h"#include<stdio.h>#include<stdlib.h>typedef int INTEGER;void main(){ INTEGER i=1; in...

2019-02-19 23:42:00 57

原创 建立动态链表

1、所谓建立动态链表是指在程序执行过程中从无到有的建立起一个链表,即一个一个的开辟节点和输入各节点的数据,并建立起前后相连的关系。例:写一个程序建立一个含有学生(学号、成绩)数据的单向动态链表。约定:学号不会为0,若输入学号为0,则表示建立链表的过程完成,该节点不应连接到链表中。提示:若输入的p1->num不等于0,则输入的是第一个节点数据(n=1),令head=p1,...

2019-02-18 20:41:00 436

原创 动态分配储存与链表

C语言中不允许动态数组类型,但C提供了一些内存管理函数,使用其可以动态的分配内存空间。常用的内存管理函数有以下三个:(1)分配内存空间函数malloc、calloc;(2)释放内存空间函数free;1、malloc函数原型:void *malloc(unsigned int size);其作用是在内存的动态存储区中分配一个长度为size的连续空间(size是一个无符号...

2019-02-17 22:37:00 305

原创 结构指针变量作函数参数

将一个结构体变量的值传递给另一个函数,有3种方法:(1)用结构体变量的成员做参数。(2)用结构体变量做实参。(3)用指向结构体变量的指针做实参,将结构体变量的地址传给形参。例:有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。通过调用函数print将他们输出。要求:用结构体变量做函数实参:#include "StdAfx.h"#include&l...

2019-02-17 19:39:00 427

原创 用人类社会工程学对C语言中的一些基本概念的剖析与理解

  最近在学C语言程序设计时总是遇到一些概念理解上的不清晰与混乱的地方,在一次偶然间想到了以前看过的一部电影《我是谁,没有一个系统是安全的》,里面的主角用社会工程学的想法结合黑客知识化险为夷,给予了很大的震撼与启发。所以我想如果将现实中C语言的一些概念和人类社会联系起来,会不会产生一些奇妙的结果。  首先我们应该先从C语言中最基本的概念开始(如果能将C语言中的基本概念与人类社会中的一...

2019-02-17 01:03:00 114

原创 结构体

1、结构体变量的初始化例:#include "StdAfx.h"#include<stdio.h>void main(){ struct { int num; char *name; char sex; float score; }boy1,...

2019-02-15 23:30:00 202 1

原创 文件包含与结构体

1、文件包含(1)1个include命令只能指定一个被包含文件,若有多个文件要包含,则需用多个include命令。(2)文件包含允许嵌套,即在一个被包含的文件种包含另一个文件。(3)包含命令中的文件名可以用双括号括起来,也可以用尖括号括起来。但这两种形式是有区别的:使用尖括号表示在包含文件目录中去查找;使用双引号表示首先在当前的源文件目录中去查找,若未找到则到包含目录中去查找...

2019-02-14 23:02:00 312

原创 预处理

如:#include<stdio.h>,宏定义命令#define PI 3.14 等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分。1、无参宏定义无参宏的宏名后不带参数。其定义的一般形式为:#define 标识符 字符串其中“#”表示这是一条预处理命令。define为宏定义命令。“标识符“为所定义的宏名。”字符串“可...

2019-02-13 19:37:00 84

原创 指向函数的指针与指向指针的指针

1、指向函数的指针可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数中的入口地址就称为函数的指针。例:比较a和b的大小,求大值。#include<stdio.h>#include "StdAfx.h"int max(int x,int y){ int z; if(x...

2019-02-12 21:22:00 267

原创 对使用字符指针变量和字符数组的讨论

区别:1、字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串第一个字符的地址)。2、赋值方式。对字符数组只能对各个元素赋值,不能用以下方法对字符数组赋值:char str[20]; str="I love China";而对字符指针变量,可以用如下方法赋值:char *a; a="I love China ";注意,赋值给a的不是字符,而是字符串的第...

2019-02-11 23:56:00 189

原创 字符串与指针

(1)用字符数组存放一个字符串,然后输出该字符串。例:定义一个字符数组,对它初始化,然后输出该字符串。#include <stdafx.h>#include<stdio.h>void main(){ char string[]="I love china "; printf("%s\n",string);}...

2019-02-10 01:28:00 103

原创 多维数组与指针

用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素,但在概念和使用上,多维数组的指针比一维数组的指针要复杂一些。可以认为二维数组是数组的数组。例:定义:int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};则二维数组a是由3个一维数组所组成的,设二维数组的首行首地址为2000,表示形式含义地址a二维数...

2019-02-09 00:48:00 214

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除