S1NH

世界在旅程的尽头终结

公司发的圣诞礼物被一个自以为是的胖女人拿走了,不开心

众所周知GPGPU的性能瓶颈为PCI-E传输速度,数据传输时会导致运算资源闲置。因此NVIDIA发明了一个很牛逼的技术Zero Copy,它把主机内存直接映射到GPU内存上,在GPU需要数据时直接从主机内存寻找,隐式的传输到GPU中。还有另一个技术叫Pinned Memory,会在产生一个不会被分页的内存,这块内存不会被交换到磁盘的虚拟内存上,内存地址也不会被重新定位,因此,相比普通的Pageable Memory有更高的速度。使用Pinned Memory是一定会提高性能的,不过也需要适当使用,否则太多Pinned Memory会把Host Memory给挤爆了(因为它不会分页到虚拟内存去)。
图1 Pageable 和 Pinned 的区别

阅读全文 »

2016-09-27 07:49 Fixed in Version 2016.3

秉承着以解决问题为乐趣,没有问题创造问题也要解决问题为基本准则。今天发现了一个gnome-theme-kal主题在xfce4下的Bug

最近用Nvidia提供的Nsight来写OpenCV/CUDA,白色主题实在是太丑了,就采用通用的方法换成了黑色主题。结果不管怎么折腾,旁边的Navigator都还是白色的,使得整个界面不白不黑的,简直比VIM还丑。

阅读全文 »

编译OpenCV with CUDA

编译方法官方文档写的特别清楚。此外,如果要使用python接口,编译完成后需要把opencv/site-packages目录下的cv2.so链接(或复制)到python/site-packages中,我执行的命令为sudo ln -s /usr/local/opencv3/lib/python2.7/dist-packages/cv2.so /usr/lib/python2.7/dist-packages/cv2.so(如果不清楚可以参照[翻译]Python 2.7 和 Python 3+ 的OpenCV 3.0 安装教程

查看Api和Guides推荐使用Zeal/Dash,就不用那么麻烦跑去官网搜索了:

阅读全文 »

Hikvision的web摄像头界面需要npapi的支持。Chrome42之前的版本都不支Npapi,Chrome42~45可以通过chrome://flags/#enable-npapi开启支持,Chrome45之后的版本不支持Npapi。

花了很久的时间找到了低版本的Chrome安装包,安装完以后依然无法执行插件。

仔细查阅文档后,发现只有Mac和Windows的Chrome对NPAPI提供支持

配置Matcaffe的时候碰到了两个小坑,记录一下:

第一个坑:

1
Invalid MEX-file '/root/caffe/matlab/+caffe/private/caffe_.mexa64': /matlab/r2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /root/caffe/matlab/+caffe/private/caffe_.mexa64)

第二个坑与前一篇文章《在anaconda下安装caffe失败》错误相同。

1
2
3
4
5
6
7
8
9
10
11
12
Invalid MEX-file
'/home/xw/caffeBuild/caffe-master/matlab/+caffe/private/caffe_.mexa64':
/home/xw/caffeBuild/caffe-master/matlab/+caffe/private/caffe_.mexa64: undefined
symbol:
_ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEERKSB_IiSaIiEE

Error in caffe.set_mode_cpu (line 5)
caffe_('set_mode_cpu');

Error in caffe.run_tests (line 6)
caffe.set_mode_cpu();

阅读全文 »

Python 跟 Python3 完全就是两种语言

0x00 import caffe FAILED

环境为 Ubuntu 16 cuda 8.0 NVIDIA 361.77 Anaconda2。昨天莫名其妙Caffe不能用了:

1
2
3
4
5
6
7
8
>>> import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/duchengyao/project/caffe/python/caffe/__init__.py", line 1, in <module>
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
File "/home/duchengyao/project/caffe/python/caffe/pycaffe.py", line 13, in <module>
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: /home/duchengyao/project/caffe/python/caffe/../../build/lib/libcaffe.so.1.0.0-rc3: undefined symbol: _ZN2cv8imencodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_11_InputArrayERSt6vectorIhSaIhEERKSB_IiSaIiEE

各种折腾都无效,重装Anaconda以后错误消失,import caffe 成功。

0x01 import FAILED again after “$conda install opencv”

conda install opencv 安装完Opencv后,又出现了同样的错误提示,卸载后错误消失。

Conda 安装后的Opencv 版本为2.4.10,而系统apt安装的版本为2.4.9.1。我尝试从conda 安装2.4.9版,可是需要处理很多conflict。

最后实在走投无路了准备换成Anaconda3,环境搭建完成后运行程序的时候简直尴尬了,各种库不兼容。终于知道为啥老鸟们调侃Python 跟Python3完全是两种语言了

0x02 解决方案

暂时的解决方案为放弃anaconda,全部用apt安装软件包,使用系统默认的Opencv,运行成功。

为什么计算机系的学生也应该学经济学?因为,从经营一家公司的角度来看,比起那些不懂的程序员,一个理解基本商业规则的程序员将会更有价值。就是这么简单。我无法告诉你有多少次我是那样地充满挫折感,因为我看到了太多提出一些疯狂的想法的程序员,这些想法在代码上也许可行,但在资本主义世界中毫无意义。如果你懂得商业规则,你就是一个更有价值的程序员,你会因此得到回报的,但是前提是你要去学习微观经济学。——《软件随想录》

阅读全文 »

今天的朋友圈都被王宝强和她出轨的老婆刷屏了
想起了一句话:“他们自以为美貌是自己人生的武器,却被自己的美貌支配着走进了困顿。”

Nvidia TX1

信用卡大小的 NVIDIA Jetson TX1 有内置ARM64 CPU,256 cores CUDA GPU,还内置了4G内存、16G emmc、Wi-Fi、蓝牙,集成度超级高,用来做机器人,嵌入式图像处理特别方便。 比较详细的一个介绍

阅读全文 »

转载自https://zhuanlan.zhihu.com/p/21533724

2016年的CVPR会议目标检测(在这里讨论的是2D的目标检测,如图1所示)的方法主要是基于卷积神经网络的框架,代表性的工作有ResNet[1](Kaiming He等)、YOLO[5](Joseph Redmon等)、LocNet[7](Spyros Gidaris等)、HyperNet[3](Tao Kong等)、ION[2](Sean Bell等)、G-CNN[6](Mahyar Najibi等)。在这里之所以把ResNet也放进来,是因为有效的特征对于目标检测领域是极为重要的。

2D目标检测示意图

阅读全文 »

其实我们的表面是一幅天真纯洁的样子,内心却始终悖逆潜行。
像冰冷的机器,心中没有远方,也不会去追问未来
时光很快就会把我们从微弱的闪光体变成一个无能的普通人。
我们要做的只有觉悟而已,去追求自由,去向往风居住的街道。
就像穿越稠密的交集望透世界,就像沉没在镂空的意境里寻找奇迹。

阅读全文 »

翻出了去年工程管理那边十二五结题时,帮他们画的图。百度了一下午,照猫画虎,闭门造车而成(不得不吐槽一下他们搞些课题,几个博士论文一凑,并没有什么研究,也没有什么价值,感觉纯属骗钱。)

阅读全文 »

最近记性特别差,做的东西如果不记下来,过几天就忘光了。照这样发展下去马上就老年痴呆了,趁年轻还是多学点东西

最近正在学习一些大数据、机器学习的一些算法,脑子一热准备把遗传算法/模拟退火算法这些经典的算法用动图模拟出来。在《白话大数据与机器学习》中有实现遗传算法的代码,本文基于教程上的代码进行修改,实现模拟遗传算法求极值的过程。

阅读全文 »

本文作者在2017年提出了L-ORB算法。速度是传统ORB算法的11倍、传统SIFT算法的639倍。将算法应用到嵌入式系统中性能提升了29倍,但其功耗低至10W。有兴趣的可以点击:**杜承垚,袁景凌,陈旻骋,李涛. GPU加速与L-ORB特征提取的全景视频实时拼接[J]. 计算机研究与发展, 2017, 54(6): 1316-1325.**


本文翻译自:Ghosh, Debabrata, and Naima Kaabouch. “A survey on image mosaicing techniques.” Journal of Visual Communication and Image Representation 34 (2016): 1-11.. 如有错误请指正。

一、简介

图像拼接在运动检测和跟踪、增强现实、分辨率增强、视频压缩和图像稳定等机器视觉领域有很大的应用。

如图所示,图像拼接分为四个步骤:图像匹配(registration)、重投影(reprojection)、缝合(stitching)和融合(blending)。

阅读全文 »

本文为整理的介绍爬山算法、模拟退火算法的资料。部分来源网络。

爬山算法(Hill Climbing)

介绍模拟退火前,先介绍爬山算法。爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。

阅读全文 »
0%