[转]从 HTTP 到 HTTPS – 部署免费证书Let’s Encrypt

Let’s Encrypt

推荐 Let’s Encrypt 理由:

  • 由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ISRG 是来自于美国加利福尼亚州的一个公益组织。Let’s Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等众多公司和机构的支持,发展十分迅猛。
  • 极速申请 – 只要认证的网站通过验证,当时即可颁发证书
  • 免费和访问速度兼得
  • 对于域名所有权的验证,支持两种方式:放临时文件进行验证、查询 whois 给域名所有人发邮件验证
  • 无需注册账户
  • 关键是稳定,背后的支持的组织很强大

缺点:

  • 一次只能颁发3个月有效期的证书,到期之后需要自己再续上 (仍然是免费的),这点维护起来比较麻烦,不过我们可以使用工具自动续期。
  • 不支持通配符泛域名 (*.demo.com),所以在申请认证是时候,要把域名都 301 跳转到证书里包含的域名上,不然浏览器会弹证书错误。

全文地址:https://tasaid.com/blog/20161005024923.html?sgs=cnblog5931640

分享链接:https://xn--qrqa955a.xn--fiqs8s/?p=1651
除非另有声明,本网站采用知识共享“署名-非商业性使用-相同方式共享 (by-nc-sa) 3.0 中国大陆”许可协议授权。

如何编译安装opencv?

基本要求:windows10,x64,vs2013.

Step1:安装软件

下载配置需要的文件。

https://pan.baidu.com/s/1bNQnYe

文件列表:

cmake-3.6.2-win64-x64.zip

cuda_7.5.18_win10.exe

opencv-3.1.0.exe

tbb43_20141023oss_win.zip

安装以上程序,其中tbb无须安装,解压文件到同一文件夹即可。

台佳佳.中国 1

Step2:编译opencv with-cuda with-tbb

1)双击打开cmake-gui

台佳佳.中国 2

2)选择要编译的文件目录

台佳佳.中国 3

3)Configure

台佳佳.中国 4

确认参数列表中 with_cuda
with_tbb 均已勾选

台佳佳.中国 5

台佳佳.中国 6

再次configure,确认没有红色选项出现

如果出现tbb_include_dirs选项标红 填写tbb include文件目录,再次configure即可。

台佳佳.中国 7

然后按下generate按钮。

台佳佳.中国 8

提示信息显示生成vs项目成功。

Step3:开始编译安装opencv

用Visual Studio 2013打开D:\Program Files\opencv\build2015目录下的OpenCV.sln文件。

0)首先选择zero_check 尝试编译

台佳佳.中国 9

右键,生成,成功后开始正式编译。

台佳佳.中国 10

  1. 同样开始对ALL_BUILD右键,生成.
  2. 接下来对 INSTALL 右键,生成。

注意:编译耗时较长。

Step4:测试opencv with-cuda是否可用

1)在viusalstudio2013中新建一个空项目,配置好opencv开发环境。

主要注意以下参数:

台佳佳.中国 11

台佳佳.中国 12

台佳佳.中国 13

这里需要注意的是,项目平台须为64位.lib文件include文件均位于opencv\build2013\install文件夹中,配置与普通的opencv项目方法相同。

  1. 以下代码用于测试

//

// cudainfo.cpp

//

// Created by windows on 16/10/06.

// Copyright © 2016年 T2J. All rights reserved.

//

#include
“opencv2/core/core.hpp”

#include
“opencv2/cudaarithm.hpp”

#include
<iostream>

using
namespace std;

using
namespace cv;

using
namespace cv::cuda;

int main(){

    int num_devices = getCudaEnabledDeviceCount();

    for (int i = 0; i < num_devices; ++i)

    {

        cv::cuda::printShortCudaDeviceInfo(i);

        DeviceInfo dev_info(i);

        if (!dev_info.isCompatible())

        {

            std::cout << “CUDA module isn’t built for GPU #” << i << ” (“

                << dev_info.name() << “, CC “ << dev_info.majorVersion()

                << dev_info.minorVersion() << “\n”;

            return -1;

        }

    }

    return 0;

}

如能正确输出设备信息与cuda版本号,即为配置成功。

转载请注明来源:台佳佳.中国 » 如何编译安装opencv?
分享链接:https://xn--qrqa955a.xn--fiqs8s/?p=1617
除非另有声明,本网站采用知识共享“署名-非商业性使用-相同方式共享 (by-nc-sa) 3.0 中国大陆”许可协议授权。

Opencv程序优化方法

OpenMP并行程序设计—for循环并行化

  1. 开发环境配置

I was able to compile the program with VS2015 Community Version 14.0 Update 1 on Windows 8.1 64bit with OpenMP support.

Below, follow a list of steps that may help:

  • After create a new project and paste the source code, go to

Project-> Properties -> C/C++ -> Language

Change Open MP Support to Yes(/openmp)

Click Apply

  • On the left menu, go to Command Line and confirm that /openmp appears somewhere at the compiler’s options.

If it appears, click Ok and build the project.

  1. 程序如何优化

引入头文件 #include <omp.h>

对单个for循环使用并行计算

#pragma omp parallel for num_threads(4)

for (int i=0;i<4;i++)

{

}

对多个for循环使用并行计算

#pragma omp parallel num_threads(4)

{

for (int i=0;i<4;i++)

for (int j=0;j<4;j++)

}

Note:并行计算时注意并行数据之间的关联性。

  1. 能提高多少效率?

实际测试能提高40% 与CPU线程数量有关 测试数据链接

环境配置,代码优化等比较容易,效率提升比较明显

参考:https://blog.csdn.net/zhongkejingwang/article/details/40350027

OpenCV中GPU模块使用

1开发环境环境配置

在使用GPU模块之前,需要确认在使用CMake编译OpenCV时,勾选了选项WITH_CUDA和WITH_TBB使其生效生效。目前只支持NVIDIA显卡。

参考:https://blog.csdn.net/kelvin_yan/article/details/38866795

2 程序如何优化

1)验证OpenCV是否已启用GPU模块。

2)上传待处理数据到GPU (Mat –> GpuMat)。

3)调用OpenCV支持的GPU的处理函数。

4)下载处理结果到CPU (GpuMat —> Mat)。

其示例程序如下,完成颜色转换,BGR2GRAY

台佳佳.中国

3 能提高多少效率?

GPU的并行处理的确很快,但数据在CPU和GPU之间的传递开销实在太大,往往影响了代码的整体效率。

单次高斯滤波函数的耗时,GPU是CPU的1/3~1/2,算上内存转换则会更慢。但如果进行10次高斯滤波,GPU的优势就能够得以体现,GPU的总耗时是CPU的1/5,如果执行100次滤波,则为1/10。 测试数据地址

执行单线程的做法,无疑会闲置非常多的并行计算资源,我们必须采用多线程,这样效率就会得到大幅度的提升。在GPU编程中,有一个叫掩藏Hide)的概念。它的意思是指线程因为访问存储器或者阻塞等其它原因造成的延迟,但由于分配的线程足够多,导致整体上看GPU仍然处于忙碌的状态。

总得来说,如果优化得当,opencv中的cuda模块提升效率是非常明显的(几乎100%的效率提升)。

Note:The first gpu function call is always takes more time, because CUDA initialize context for device. The following calls will be faster.

参考:

https://blog.csdn.net/kelvin_yan/article/details/38866795

https://blog.csdn.net/gamesdev/article/details/17535755

转载请注明来源:台佳佳.中国 » Opencv程序优化方法
分享链接:https://xn--qrqa955a.xn--fiqs8s/?p=1602
除非另有声明,本网站采用知识共享“署名-非商业性使用-相同方式共享 (by-nc-sa) 3.0 中国大陆”许可协议授权。