对机器视觉 图像处理有一定的兴趣 要做一条有梦想的咸鱼
暂时未有相关通用技术能力~
阿里云技能认证
详细说明今年运气比较好,学了cuda之后,了解到了gpu的另两种使用语言opencl和openacc, opencl(Open Computing Language ,开放计算语言)是面向异构系统的并行编程语言的免费标准,支持多种设备,包含CPU(多核多线程CPU),GPU(NVIDIA,AMD),数字信号处理器(居然还支持DSP),但缺点是对源代码进行并行改进的代码量较大; O
看到满屏的贪吃蛇,我也来开源一个Ti开发板(TM4C1294)的游戏 将简化版的管道鸟,根据自己玩的经历,在cortexm4开发板上重新撸了一边, 设计思路: 设计思路:将小鸟固定在一条竖线上规定其只能上下移动并记录下其最高和最低的坐标,管道从屏幕右边开始出现依次移动到屏幕左边消失,用户通过按键控制小鸟上下移动,小鸟也有一个自然下降的速度,用户要控制小鸟在前进过程中不碰
继上一片博客,这篇介绍数据库与MFC的连接,上篇是介绍用控制台连接MYSQL,其实MFC为代码增加一个界面,和一些消息相应(个人认为) 首先建一个MFC的工程,我这边建了一个Dlg 建好后看一下选项-> 目录->包含目录和库目录中是否包含了MYSQL的路径 再在Dlg.cpp中添加: #include”winsock.h” #include“mys
还认为你的电脑的速度效果比不上苹果吗?还在嫌电脑渲染速度慢吗?试一下,电脑开启GPU硬件加速吧!只要有独显轻松加速(毕竟苹果笔记本要配独显电脑的价格基本上在15000以上,而且显卡的性能还不怎么好) 先打开PhotoShop软件查看一下当前你电脑的ps软件用的是Inter的核显还是独显 选择编辑->首选项(可能要往下拉或者Photoshop全屏)->常规
mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操作。~有点伤心。 只能去看MYSQL手册,里面有C与MYSQL的API接口;由于MFC框架中调试比较困难,所以我现在win32控制台下实现与数据库的连接与对数据库的操作。(可能这也是原因之一,我错误的以为MFC是
用MATLAB对车辆的统计第三章,对车速的测量,对车速的测量是在前两章的基础上进行补充: 对车速的测量我想到的有两种方法: 方法一: 直接在路上设置两个框,在已知路面的实际距离,和图上车辆经过的图上距离的情况下,简单地利用比例(要更加精确一点的话应该用摄像机的标定,用摄像机的内参外差,在经过一系列的变化,得到实际物体在空间中的位置)来计算车速,再知道车辆经过这两帧的帧数
不得不说MATLAB的图像处理函数有点多,但速度有时也是出奇的慢。还是想c的指针,虽然有点危险,但速度那是杠杠的。 第二个MATLAB程序,对运动物体的识别与追踪。 这里我们主要运用帧差法实现运动物体与背景图像的分离,由于视频中的物体较为简单,我们只对两帧图像取帧差(也是为了提高速度) 对于运动物体的提取我们运用了MATLAB里自带的函数bwareaopen bwar
在使用CUDA进行编程时,遇到提速时间达不到效果时往往会用CUDA自带的visual profiler进行算法运行时间的分析; 在分析时,总会遇到数据流从向显存传输时的时间在算法中多于实际你的算法处理你要解决问题的算法的时间。 如你在传输时花70%的时间,而你处理你的问题时只花30%的时间,这时再提升你算法处理的问题时的速度主要集中在怎么减少传输时所用的时间或者怎么隐藏传输
在图像拼接过程中,图像的匹配是重要的一步,其中最常用的算法是Harris角点标注算法。 在Harris之前常用的是Moravec 角点提取算法,Moravec角点检测是一种基于灰度值的检测算法,主要是通过滑动二值矩形窗口寻找灰度变化的局部最大值。主要先通过事先设定一个经验阈值,通过对窗口(如取3*3的窗口)进行相邻八个方向(上,下,左,右,左上,左下,右上,右下)进行滑动,计
感觉自己对CUDA的异步并发还是无法深入理解,在大神建议下看了CUDA C Programming Guide ,感觉对自己的帮助很大。 下面分享一下看了之后的体会,附上原文: Concurrent host execution is facilitated through asynchronous library functions thatreturn control
图像拼接技术,现在有非常广泛的应用,如小型机器人的单目视觉的视野较为小,使机器人在应用时有一定的局限性,双目视觉能提供更广阔的视野,双目视觉中较为常用的是对左右两个摄像头获取的识图通过拼接来获取更广阔的视野,再如较为热门的VR,Youtube也极大地运用图像拼接的技术。 图像拼接主要分为几个主要的步骤: (1)图像的校正:由于成象器件拍摄姿态和扫描非线性会引起的图象几何失
程序通过流来管理并发,每个流按顺序执行操作,不同流之间可能并行也可能乱序执行。流的作用是使一个流的计算与另一个流的传输同时进行,能有效提高对GPU的利用率。 流的定义方法,是创建一个cudaStream_t对象,并在启动内核和进行memcpy时将该对象作为参数传入。 在运用流时必然会用到异步执行,异步执行就是CPU主机端的API函数和内核函数启动的结束和GPU端真正完成这
为了更好地压榨GPU和CPU,很多时候都使用异步并行的方法让主机端与设备端并行执行,即控制在设备没有完成任务请求前就被返回给主机端。 异步执行的意义在于:首先,处于同一数据流内的计算与数据拷贝都是依次进行的,但一个流内的计算可以和另一个流的数据传输同时进行,因此通过异步执行就能够使GPU中的执行单元与存储器单元同时工作,更好地压榨GPU的性能;其次,当GPU在进行计算或者数
决策树(decision tree)是一种常见的机器学习方法。看了周志华西瓜书后来简要谈谈自己的认识: 首先,引入了“信息熵”的概念,信息熵(information entropy)是离散随机事件的出现概率,是衡量样本集合纯度最常用的一种指标,与热力学的熵有密切的关系。 通常,一个信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量
在CUDA安装好后可以用DeviceQuery看一下GPU的相关属性,从而对GPU有一定了解,有助于今后的CUDA编程。 #include "cuda_runtime.h" #include "device_launch_parameters.h" #include<stdio.h> #include<stdlib.h> #include<
No Free Lunch Theoren 定理 ,没有免费的午餐定理,简称NFL定理,由美国斯坦福大学的Wolpert和Macready教授提出。 在机器学习算法中的体现为在没有实际背景下,没有一种算法比随机胡猜的效果好。 首先,我们假设一个算法为a,而随机胡猜的算法为b,为了简单起见,假设样本空间为χ\chi 和假设空间为HH都是离散的。令 P(h|X,a)P(h|
灰度图像为一通道图像,如8位的灰度图的每一个像素点的数据由一个uchar类型来储存,uchar的值代表图像的亮度,灰度图像的中值滤波是根据像素值的3×3的领域内,像素值排序后的中值像素代表该点的像素值值; 而彩色图像一般为RGB图片,像素点的颜色由红绿蓝三通道决定,数据由一个uchar3型存储,如同灰度图的中值滤波一样,彩色图像的中值滤波也是根据图像的亮度来选取相应的像素点
图像处理流相关问题: 1:异步并行时,cudaMemcpyAsync的缓冲区要用Pinned分配,直接用普通内存无效果: Pinned memory (分页锁存器): cuda运行时提供了使用分页锁定主机存储器(也称为pinned)的函数(与常规的使用malloc()分配的可分页的主机存储器不同): cudaHostAlloc()和cudaFreeHost()分配和释
Visual Profiler 在CUDA程序开发的过程中是一个极有利的工具。可以帮助你找到程序中性能不足之处。 下面是《CUDA_Profiler_Users_Guide》对Visual Profiler描述 Visual Profiler 是是一个图形化的剖析工具,可以显示你的应用程序中CPU和GPU的活动情况,利用分析引擎帮助你寻找优化的机会。 其实除了可视化
模糊是基本的图像处理方法。 在介绍这两种方法之前先来介绍两种常见的噪声: 椒盐噪声 椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声分为两种即胡椒噪声和盐噪声,胡椒噪声是黑色的,属于低灰度噪声,盐噪声是白色的,属于高灰度噪声,一般两种噪声同时出现,呈现在图像上就是黑白杂点。
模糊是基本的图像处理方法。 在介绍这两种方法之前先来介绍两种常见的噪声: 椒盐噪声 椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声分为两种即胡椒噪声和盐噪声,胡椒噪声是黑色的,属于低灰度噪声,盐噪声是白色的,属于高灰度噪声,一般两种噪声同时出现,呈现在图像上就是黑白杂点。去除椒盐噪声最常用的算法是中值滤波。 高斯噪声 高斯噪声是一
在图像处理学习中会涉及到直方图,直方图很好地表现了图像的灰度信息;同时我们注意到在暗图像中,直方图的分量集中在灰度级的低端;亮图像的灰度值集中在直方图灰度值的高端;低对比度的图像有较窄的直方图,并集中于直方图的中间部分;高对比度的图像中直方图的分量覆盖很宽的范围,而且像素的分布没有太不均匀,只能看到少量垂线比其他高许多。通过图像增强可以有效地减弱这些缺陷
在配置GPU时一般都看重其的架构,流处理器数,以及显存数。 以英伟达的GPU为例架构一般以科学家的名字来命名,如Fermi(费米),Kepler(开普勒),现在主流的Maxwell(麦克斯韦),Pascal(帕斯卡),不同的架构主要体现在如纹理单元,流处理器,带宽等较为底层的东西不同,为线程与块中主要关心的是其流多处理器(streaming multiprocessor,S
多首先,先来了解一下GPU与CPU的区别,如图 可以看到CPU(Central Processing Unit,中央处理单元),由Control(控制台),ALU(Arithmetic Logic Unit,逻辑计算单元),Cache(高速缓存),而GPU(Graphic Processing Unit,图形处理单元)也是由相同的部件组成,但GPU的计算单元远比CPU多,这
CUDA环境的配置 在很多大数据处理、图像处理等环境下时,串行运算已经满足不了对速度的需求,这时就需要运用并行运算来提高运算的效率。 CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,也是典型的并行运算所用的工具之一(毕竟NVIDIA是显卡界的老大,听说AMD显卡也开始支持CUDA)。 首先先进行C