OpenCV4.0更新

2015 年 6 月,OpenCV 3.0 发布。时隔三年半,OpenCV 4.0 终于发布。至此,OpenCV 已经走过了近 18 个年头。 OpenCV 是英特尔开源的跨平台计算机视觉库。也就是说,它是一套包含从图像预处理到预训练模型调用等大量视觉 API 的库,并可以处理图像识别、目标检测、图像分割和行人再识别等主流视觉任务。OpenCV 最显著的特点是它提供了整套流程的工具,因此我们根本不需要了解各个模型的原理就能一个个 API 构建视觉任务。 OpenCV 使用 BSD 许可证,因此对研究和商业用途均免费。它具备 C++、Python 和 Java 接口,支持 Windows、Linux、Mac OS、iOS 和 Android 系统。OpenCV 旨在提高计算效率,专注于实时应用。它使用优化的 C/C++写成,能够利用多核处理。 此外,在 OpenCL 的加持下,OpenCV 可以利用底层异构计算平台的硬件加速。它的 GitHub 页面中有一个「open_model_zoo」资源库,包含了大量的计算机视觉预训练模型,并提供下载方法,有助于加速开发和产品部署过程。OpenCV 应用广泛,目前在用户社区有 4.7 万用户,下载量约为 1400 万。 可以说 OpenCV 是 CV 领域开发者与研究者的必备工具包,Mask-RCNN 等很多开源项目都依赖于这个工具包。现在距离 3.0 版本的发布已经过去三年多,近日 OpenCV 4.0 final …

漫画赏析:Linux 内核到底长啥样

一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。 TurnOff.us 是一个极客漫画网站,作者Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。 在开始,我们先来看看这幅漫画的全貌! 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: 地基 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”——电脑中的文件。左上角,有一只胸前挂着 421 号牌的小企鹅,它表示着 PID(进程 ID Process ID ) 为 421 的进程,它正在查看文件柜中的文件,这代表系统中正有一个进程在访问文件系统。在右下角有一只小狗,它是看门狗 watchdog ,这代表对文件系统的监控。 一层(地面层) 一层(地面层) 看完了地基,接下来我们来看地基上面的一层,都有哪些东西。 进程表 在这一层,最引人瞩目的莫过于中间的一块垫子,众多小企鹅在围着着桌子坐着。这个垫子的区域代表进程表。 左上角有一个小企鹅,站着,仿佛在说些什么这显然是一位家长式的人物,不过看起来周围坐的那些小企鹅不是很听话——你看有好多走神、自顾自聊天的——“喂喂,说你呢,哇塞娃(171),转过身来”。它代表着 Linux 内核中的初始化(init)进程,也就是我们常说的 PID 为 1 的进程。桌子上坐的小企鹅都在等待状态 wait 中,等待工作任务。 看门狗 瞧瞧,垫子(进程表)两旁有两只小狗,它会监控小企鹅的状态(监控进程),当小企鹅们不听话时,它就会汪汪地叫喊起来。 http 进程 在这层的左侧,有一只号牌为 1341 的小企鹅,守在门口,门上写着 80,说明这个 …

django + uwsgi + nginx生产环境

django:一个开放源代码的Web应用框架,由Python写成,采用了MVC的软件设计模式。可以用pip安装。 uWSGI:一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。 nginx:具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。   环境安装 uWSGI的安装:(强烈建议用pip安装,因为pip带了隔离环境virtualenv)   source ../env/bin/activate   pip install uwsgi 或者: wget http://projects.unbit.it/downloads/uwsgi-1.4.4.tar.gz tar -zxvf uwsgi-1.4.4.tar.gz cd uwsgi-1.4.4 make cp uwsgi /usr/bin nginx的安装: 一般用源码编译安装Nginx,都需要先安装pcre\zlib等外部支持程序,然后配置安装nginx时候这些外部程序的源码的路径,这样Nginx在每次启动的时候,就会动态地去加载这些东西了。后面是否对这些外部程序单独编译,自己决定,不编译影响不大。 安装PCRE外部程序 cd /root/install wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz tar -zxvf pcre-8.30.tar.gz cd pcre-8.30 ./configure –prefix=/usr/local/pcre8.30 make && make install 安装OPENSSL外部程序 cd /root/install wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz tar -zxvf openssl-1.0.0a.tar.gz cd openssl-1.0.0a ./config –prefix=/usr/local/openssl1.0.0 make …

Django新建项目

python2 /usr/local/lib/python2.7/site-packages/django/bin/django-admin.py startproject mysite 1, 安装Django 通过pip工具安装django项目. pip install django 也可以通过git地址下载后自行编译生成.https://github.com/django/django 2, 新建Django项目 版本超过1.8, 新建项目使用django-admin命令包进行初始化. $:cd {YOUR_WORK_FOLDER} $:django-admin startproject mysite 当提示 -bash: django-admin: command not found 则需要将django-admin软连接到/usr/local/bin/, 注意! python多版本下, 使用ln连接到bin无法使用. 需要指定具体django存在地址, 即: python2 /usr/local/lib/python2.7/site-packages/django/bin/django-admin.py startproject mysite 该机器定义python2命令执行django项目, 并且通过pip2中装有django项目. 则找到其site-packages文件夹下, 直接进行访问. (it works for me)   3, 启动Django项目      

图像标注工具labelImg

Mac os & python2.7.13 1.通过Homebrew安装pyqt 执行如下代码: brew install cartr/qt4/pyqt 安装之后可以进python中查看是否可用: import PyQt4 若不报错,说明OK,若报错,需要进行修改,报错内容如下: 提示没有module,可是我们明明已经用brew装好了。。。 这可能是环境变量问题,需要配置环境变量,如下: $ which python /usr/bin/python $ which brew /usr/local/bin/brew PyQt4是通过brew安装的,明显这两个路径不一致,导致问题,解决如下: $ cd /usr/local/lib/python2.7/site-packages $ ls PyQt4 homebrew-protobuf.pth sip.so cv.py numpy sipconfig.py cv2.so numpy-1.12.1-py2.7.egg-info sipdistutils.py homebrew-numpy-nose.pth sip.pyi $ open ~/.bash_profile 将下面的代码加入~/.bash_profile中: export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH 然后关闭terminal,重新开启,进入python中import: 这样,PyQt4就装好了。 2.安装labelImg 这块可以参考labelImg的Gthub上面的安装过程,代码如下: brew install qt qt4 brew install …

Brew关闭自动更新

安装brew ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” mac上使用brew install /brew cask install安装软件总是先updating HomeBrew… 我们可以关闭自动更新,在命令行执行: export HOMEBREW_NO_AUTO_UPDATE=true 即可关闭自动更新。 如果想要重启后设置依然生效,可以把上面这行加入到当前正在使用的shell的配置文件中,比如我正在使用的是zsh,那么执行以下语句: vi ~/.zshrc 然后在合适的位置,加入上面那一行配置。

Virtualenv 使用

使用如下命令进行安装 $ pip install virtualenv 创建目录: tabtu:~$mkdir pythonV tabtu:~$cd pythonV/ tabtu:pythonV$ 创建一个独立的Python运行环境,命名为venv: virtualenv venv (when higher than 3.8) virtualenv -–no-site-packages venv tabtu:pythonV$virtualenv –no-site-packages venv Using base prefix ‘/Library/Frameworks/Python.framework/Versions/3.6’ New python executable in /Users/tabtu/pythonV/venv/bin/python3.6 Also creating executable in /Users/tabtu/pythonV/venv/bin/python Installing setuptools, pip, wheel…done. tabtu:pythonV$ tabtu:pythonV$ls venv tabtu:venv$ls bin include lib pip-selfcheck.json tabtu:venv$ tabtu:venv$ 命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数–no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。 进入独立的venv环境目录下: 新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境: …