原创 cuda編程(7):實現LK稀疏光流算法--完整的cuda程序

一、原理 二、算法的假設(其實這樣的條件比較苛刻)  三、具體實現 main.cc #include <opencv2/opencv.hpp> #include <opencv2/core/core.hpp> #include <o

原创 cuda編程(6):實現knn算法

暴力實現的複雜度:  實現分析: 完整的代碼: Ubuntu運行命令: nvcc -o knn_cuda_with_indexes.exe knn_cuda_with_indexes.cu -lcuda -D_CRT_SECURE_

原创 cuda編程可以使用的庫函數

一、NPP 它是NVIDIA公司針對GPU加速圖像、視頻、信號處理庫(NPP全稱是NVIDIA Performance Primitives)。事實上,NPP和IPP(Integrated Performance Primitives)庫

原创 cuda編程(5):優化理論

一、優化原則 最大化算術強度; 減少內存操作花費時間; 合併全局內存訪問; 避免線程發散; 把高頻使用數據移動到共享內存; 二、縱向 優化的流程與步驟一般包括如下步驟: 1.1 分析 分析程序的瓶頸、什麼地方需要做並行、能夠提供資源。不要

原创 cuda編程(4):常見的例程

一、直方圖 在Ubuntu系統的運行命令: nvcc -o histo histo.cu #include <cuda_runtime.h> #include <device_launch_parameters.h> #include

原创 OpenCV編譯參數一覽

全部參數一覽: //Path to a program. ANT_EXECUTABLE:FILEPATH=D:/apache-ant-1.10.1/bin/ant.bat //Build CUDA modules stubs whe

原创 學習cuda編程時的疑問

1、thread,block,grid,warp,sp,sm概念以及關係? 答:sp: 最基本的處理單元,streaming processor  最後具體的指令和任務都是在sp上處理的。GPU進行並行計算,也就是很多個sp同時做處理。

原创 cmake內置參數以及常用命令

這裏有個寫的非常好的cmake入門教程!!! cmake中有很多已經定義好的默認變量,要知道其代表什麼並且可以使用它們。這裏假設我們的項目路徑在/project中,而編譯後文件的存放位置爲/project/build。 PROJECT_S

原创 Ubuntu16.04安裝cmake以及編譯opencv帶上contrib的gpu版本

一.安裝cmake 安裝cmake相對簡單。可以使用如下命令直接安裝cmake。不過這樣安裝的cmake版本可能比較低,如果是想用在混合編程上不建議這樣做。因爲版本比較低可能會不支持,比如想用在Android上,cmake版本要求好像最低

原创 Python根據字體的大小獲取字符串像素長度並以表格的形式在圖片中顯示

在Python中常用的兩個圖像處理庫,一個opencv,一個是PIL。其中,opencv是不支持中文顯示的,所以只能顯示英文。詳細實現如下代碼: # -*- coding: utf-8 -*-# # Author: weiz

原创 ocr中的densenet網絡訓練或者fine-tune

denseNetTrain ocr中的densenet網絡訓練 簡介 原項目是:https://github.com/YCG09/chinese_ocr 這個只是提供原項目中的densenet網絡訓練用的。原項目中沒有fine-tune,

原创 Ubuntu更改分辨率以及刷新率

有獨立顯卡但是沒有裝顯卡驅動,也會有分辨率不匹配顯示器的問題。不過這個時候就不要通過下面命令去設置了,還是先安裝顯卡驅動,安裝後它會自動匹配合適的分辨率。下面主要是針對已經安裝了顯卡驅動的。 查看當前分辨率以及刷新率: xrandr 如

原创 PackagesNotFoundError: The following packages are not available from current channels(換成國內源)

1.conda源的操作 1.1查看當前源: conda config --show # 在channels:下面 or conda config --show-sources 1.2恢復默認源 conda config --rem

原创 OpenCV顯示中文漢字

OpenCV顯示中文漢字,未使用CvxText和FreeType庫         採用windows的GDI顯示系統的TrueType字體,沒有封裝,就兩個函數,分成了h和cpp文件,可以自己編輯文件名和函數名,亦可以直接將cpp的代碼

原创 cuda編程(2):軟硬件編程模型以及高效策略

原視頻 一、相關概念 多個線程組成線程塊,多個線程塊組成網格,網絡約等於kernel。而kernel是GPU處理的最小單元,可以理解成是一個函數。如下圖: CPU和GPU硬件對比: CPU和GPU編程: 二、高效策略 根據公式,有以