Welcome: Hunan Intelligent Applications Tecgnology CO.,ltd.-HNIAT.com
Language: Chinese ∷  English

Basic knowledge

OpenCV high performance computing base

Computer vision life ”, selection“ star mark ”

Rapid raisins latest raisins

Foreword text, opencv, high-performance calculation, basic text, this is one of the authors, openCV sum CUDA development, high-performance arithmetic method , CUDA Japanese C ++-like trivial knowledge.

Author: Oceanus Procellarum @ Zhihu, Editor: CV Technology Guidance

Enjoy the science of writing.

OpenCV acceleration module

OpenCV Iterative Apache 2 讏 议 -like C ++ development source, 涉 and image processing, Sanko Shigeken, artificial intelligence, etc. This is a trivial area, and there is a demand for performance. During the constant generation of OpenCV, it is possible to calculate the number of individual directions in the direction of each and every one of them.

cv :: Mat OpenCV The most basic number setting structure, the existing data multi-type number setting type multi-matrix ability, and the display image that can be used. Current CPU end, SIMD (Single instruction, multiple data) Calculator, multiple data, homology, homology, homology, homology, homology, homology, homology, homology, homology Giant generation. During OpenCV, this kind of difference is covered by Universal Intrinsic abstraction. OpenCV Universal Intrinsic General Intrinsic General Intrinsic SIMD Directive Direction (vector) Sealing Completed Uniform Number Setting, Multiple Compiling Various Intrinsic Numbers, Parallel General Intrinsic Degree Depictions来 This, Developer Non-re-demanding Excessive relations Note Inconsistent CPU-like SIMD command Interchange, Same procedure SIMD acceleration Over-the-top alternative ability In addition to this, OpenCV-like trivial method Ya provided multi-thread implementation, use for parallel threads cv :: parallel_for_ Encapsulation self-method.
cv :: UM at OpenCV3.0 import, T-API (Transparent API) -like number of foundations. T-API Economical OCL imitation replacement, the fact that the developer has passed through the emergency, the current OpenCV has no introduction, and it has been used on OpenCL.
cv :: gapi :: GMat in OpenCV4.0 import, G-API (Graph API) basic structure. Inconsistent Mat types, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat, GMat. Basic calculation, G-API core idea. Arithmetic General Calculation Expression Statement Calculating Separation, Can 带 耦 Minimal Two Individuals Favorable Processing: One-sided OpenCV Can Internally Provided Distributed Functions Illegal Provided Straddled Functions Favorable, Arithmetic Operational Consolidation, High-Speed Residual Recovery buffer; function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, function, etc. Immediately G-API processing in active development stage, possible association production incompatibility relocation, reuse after establishment.
cv :: cuda :: GpuMat, GPU-based Mat, representative number-oriented CUDA-like Device memory-like two-pointed data, and OpenCV multi-individual CUDA-like (uniform opencv_contrib) -like number of bases. In the last 10 years since the development of OpenCV-like CUDA, the CUDA Kernel, which is equivalent to the function, has been reprinted for the courier, and the number of CUDA modules has been set up, and the ultimate performance has been improved. How to use OpenCV CUDA Imitation progress Rapid self-determination High-performance image calculation method Development general 专 栏 Priority content.
Internalization
Intrinsic management 臠 乎 每 Individual C ++ item C ++ OpenCV Nakayu Ichiho Highly effective internal management system, a large number of people who have a lot of knowledge, internal management and non-association, and efficient external management. In addition to this, it is possible to use a trivial characteristic society.

Reference counting

OpenCV Medium Various Mat types Available Various types Included: Others can be used as a secondary BGR image, and can be stored as a floating point type image. Unfortunately, this is a trivial number of data, and it is a sequel to the sequel to the sequel. Internal distribution is possible on CUDA. When Kernel is worn. Opposite this, OpenCV-like strategy, cv :: Mat type and cv :: cuda :: GpuMat type and optotype actual torture construction box number, operator = overloading and ROI area selection and shallow torture operation, parallel reference counting Management co-enjoyment. Demand caution, this is a copy-on-write system (COW) inconsistent, OpenCV illegal judgment Mat-like number setting, time-of-time copying, copy-on-write change 1 copy-on-write point-oriented number setting Transformed into a real city, a copy-on-write number owned by Nakata. Actually Mat type deep torture, can use copyTo sum clone, etc. function. A trivial affair

cv :: Mat src (100, 100, CV_32FC1); // Primitive Matrix

cv :: Mat shared1 (src); // Co-enjoyment

cv :: Mat shared2 = src; // Co-enjoyment

cv :: Mat shared3 (src (cv :: Rect (10, 10, 10, 10))); // Co-enjoyment

cv :: Mat independent1 = src.clone; // Requested new inside

cv :: Mat independent2;

src.copyTo (independent2); // Request completed new inside

create create

Image processing area, existence mass type homology, but content inconsistent number, deferred progress, homology operation, actual depth calculation, or divine economic network inference. Guided Filter example, the flow below [1]:



Guided Filter

Among them, I, p, the number of imports, q, the number of imports, and the number of products produced by the Chugokukai. On the other hand, it is a one-of-a-kind step-by-step method and a method of manipulative treatment. During the period, the variable life cycle length (at the time of the variable amount), the internal distribution strategy of both types of ourselves:

Provided by setSize Interface, Setting Setting Setting Owned Medium Variable Scale Time Desk.
仅 For existing use Filter for real time, for import, size advancement, current buffer size, import difference, buffer heavy new distribution.
The first type of method can be used for complete restraint, the internal distribution time, the proposal, the internal harmony, the efficient determinism, and the second type of method.

Actually, the second kind of method is OpenCV. OpenCV function front opposite dst advancing manual distribution. Opposite cv :: Mat sum cv :: cuda :: GpuMat, this operation reason create function function, its source code:

void cv :: cuda :: GpuMat :: create (int _rows, int _cols, int _type) {

if (rows == _rows && cols == _cols && type == _type && data) return;

if (data) release; // Number of small citations

allocator-> allocate (this, rows, cols, esz); // Heavy new distribution internal, data general oriented new space

if (refcount) * refcount = 1; // Number of citations for new distribution space

}

Yes, at the time of requesting the exact scale of this example, the create general will be returned. Hypothesis for hypothesis cv :: Mat progress 100th order blur (not-in-inplace), Nao Tadashi 1st blur meeting application.

Buffer zone

Most of the OpenCV-like arithmetic methods are provided in a single-minded function format, illegal and completely evasive, and variable internal distribution, and OpenCV is provided.

cv :: AutoBuffer One-piece stacking combination stack type, one-piece model board number of requisition period Nozomi 缓 冲 冲 ward scale (OpenCV 4.5.4 Middle 默 认 1024 character 节 left and right) At the time, the buffer is available, the target is the buffer, and the buffer is not available. For this type of expenditure, the amount of change is small, and the amount of change is external to malloc / free.
cv :: cuda :: BufferPool CUDA imitation internal pond, variable amount of all stations cv :: cuda :: DefaultDeviceInitializer initializer management (Last In, First Out) Introduction. Yu Yu CUDA upper malloc Normal ratio When the CPU is worn out, the internal pond capacity is extremely large and the demand is small. However, it has been low since the amount of change in the amount of change in the format of the contact point for the developer.
The theory part is stopped, and the update of the post-event meeting is used. OpenCV CUDA

[1] K. He, J. Sun. Fast Guided Filter.
It ’s about the size of a single family!

1. Motion planning: Motion planning SLAM 什么 related system?

2, Cartographer: Taniuka Genki Gekikou SLAM Arithmetic Cartographer 什么 This 么 Cow X?

3, Deep Learning Three-Year Construction Network: MVSNet, PatchMatchNet, JDACS-MS

4, Three-dimensional reference method

5, 视 觉 SLAM essential foundation SLAM-like first individual practice, most suitable academic 哪 individual opening source frame?

6, VINS: Mono + Fusion SLAM Interviewer: 轠 简 历 Top Photo Spermarche VINS

7, VIO advancement: ORB-SLAM3 (single / double eye / RGBD + 鱼 葉 + IMU 货 耦 耦 + multi-geographical map + ring ring)

8, Graphic image Sanko Shigeken Course: 视觉 几 What Sanko Shigeken Course (Phase 2): Dense heavy construction, curved surface heavy construction, point cloud fusion, geometry

9, Heavy pounds! Basic Yu LiDAR-like multi-sensor fusion SLAM series Course: LOAM, LeGO-LOAM, LIO-SAM

10. General system standardization procedure: Single eye / camera eye / double eye / camera sequence Phase standardization: Principles

CONTACT US

Contact: Manager Xu

Phone: 13907330718

Tel: 0731-22222718

Email: hniatcom@163.com

Add: Room 603, 6th Floor, Shifting Room, No. 2, Orbit Zhigu, No. 79 Liancheng Road, Shifeng District, Zhuzhou City, Hunan Province

Scan the qr codeClose
the qr code