Dlib C++ 算法库

2024-02-04 01:48
文章标签 算法 c++ dlib

本文主要是介绍Dlib C++ 算法库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://dlib.net

看上去很不错;


The Library
  • Algorithms
  • API Wrappers
  • Bayesian Nets
  • Compression
  • Containers
  • Graph Tools
  • Image Processing
  • Linear Algebra
  • Machine Learning
  • Metaprogramming
  • Miscellaneous
  • Networking
  • Optimization
  • Parsing

Help/Info
  • Examples: C++
    • Assignment_Learning
    • Base64_Encoder
    • Bayesian_Network
    • Bayesian_Network_From_Disk
    • Bayesian_Network_GUI
    • Bridge
    • BSP
    • Cmd_Line_Parser
    • Compress_Stream
    • Config_File_Reader
    • Custom_Trainers
    • Directory_Navigation
    • Empirical_Kernel_Map
    • Face_Detection
    • FHOG_Feature_Extraction
    • FHOG_Object_Detection
    • Graph_Labeling
    • GUI
    • HTTP_Server
    • Image
    • IO Socket Streams
    • IO Streams Server
    • Kernel_Centroid
    • Kernel_K-Means_Clustering
    • Kernel_Ridge_Regression
    • Kernel_RLS_Filtering
    • Kernel_RLS_Regression
    • KRR_Classification
    • Linear_Manifold_Regularizer
    • Logger
    • Logger_Advanced
    • Matrix
    • Matrix_Expressions
    • Member_Function_Pointer
    • Model_Selection
    • Multiclass_Classification
    • Multithreaded_Object
    • Neural_Network
    • Non-Linear Least Squares
    • Numerical_Integration
    • Object_Detector
    • Object_Detector_Advanced
    • One_Class_Classifiers
    • Online_SVM
    • Optimization
    • Parallel_For_Loops
    • Pipe
    • Pipe_2
    • Quantum_Computing
    • Queue
    • Rank_Features
    • Relevance_Vector_Classification
    • Relevance_Vector_Regression
    • Running_Stats
    • Sequence_Labeling
    • Sequence_Segmentation
    • Sockets
    • Sockstreambuf
    • Sparse_Vectors
    • Std_C++_Allocator
    • Structural_Support_Vector_Machines
    • Support_Vector_Machine
    • Support_Vector_Regression
    • SURF
    • SVM-Rank
    • Threaded_Object
    • Threads
    • Thread_Function
    • Thread_Pool
    • Timer
    • Train_Object_Detector
    • Using_Custom_Kernels
    • XML_Parser
  • Examples: Python
  • FAQ
  • Home
  • How to compile
  • How to contribute
  • Index
  • Introduction
  • License
  • Python API
  • Suggested Books

Current Release
  • Change Log
  • Release Notes
  • Version: 18.6

Sourceforge
  • Download dlib
  • Forums
  • Summary
  • Who uses dlib?
 









Get dlib C++ Library at SourceForge.net. Fast, secure and Free Open Source software downloads


Last Modified:
Feb 03, 2014

Dlib is a general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. It is open source software and licensed under the Boost Software License. The introduction contains everything you need to know to get started using the library. However, if you have any questions, comments, or complaints feel free to email me or post in the sourceforge Forums.


Major Features

  • Documentation
    • Unlike a lot of open source projects, this one provides complete and precise documentation for every class and function. There are also debugging modes that check the documented preconditions for functions. When this is enabled it will catch the vast majority of bugs caused by calling functions incorrectly or using objects in an incorrect manner.
    • Lots of example programs are provided
    • I consider the documentation to be the most important part of the library. So if you find anything that isn't documented, isn't clear, or has out of date documentation, tell me and I will fix it.
  • High Quality Portable Code
    • Good unit test coverage. The ratio of unit test lines of code to library lines of code is about 1 to 4.
    • The library is tested regularly on MS Windows, Linux, and Mac OS X systems. However, it should work on any POSIX system and has been used on Solaris, HPUX, and the BSDs.
    • No other packages are required to use the library. Only APIs that are provided by an out of the box OS are needed.
    • There is no installation or configure step needed before you can use the library. See the How to compile page for details.
    • All operating system specific code is isolated inside the OS abstraction layers which are kept as small as possible. The rest of the library is either layered on top of the OS abstraction layers or is pure ISO standard C++.
  • Threading
    • The library provides a portable and simple threading API
    • A message passing pipe for inter-thread and inter-processcommunication
    • A timer object capable of generating events that are regularly spaced in time
    • Threaded objects
    • Threaded functions
    • Parallel for loops
    • A thread_pool with support for futures
  • Networking
    • The library provides a portable and simple TCP sockets API
    • An object to help you make TCP based servers
    • iostream and streambuf objects that enables TCP sockets to interoperate with the C++ iostreams library
    • A simple HTTP server object you can use to embed a web server into your applications
    • A message passing pipe for inter-thread and inter-processcommunication
    • A tool used to implement algorithms using the Bulk Synchronous Parallel (BSP) computing model
  • Graphical User Interfaces
    • The library provides a portable and simple core GUI API
    • Implemented on top of the core GUI API are numerous widgets
    • Unlike many other GUI toolkits, the entire dlib GUI toolkit is threadsafe
  • Numerical Algorithms
    • A fast matrix object implemented using the expression templates technique and capable of using BLAS and LAPACK libraries when available.
    • Numerous linear algebra and mathematical operations are defined for the matrix object such as the singular value decomposition, transpose,trig functions, etc.
    • General purpose unconstrained non-linear optimization algorithms using the conjugate gradient, BFGS, and L-BFGS techniques
    • Levenberg-Marquardt for solving non-linear least squares problems
    • Box-constrained derivative-free optimization via the BOBYQA algorithm
    • An implementation of the Optimized Cutting Plane Algorithm
    • Several quadratic program solvers
    • Combinatorial optimization tools for solving optimal assignment andmin cut/max flow problems as well as the CKY algorithm for finding the most probable parse tree
    • A big integer object
    • A random number object
  • Machine Learning Algorithms
    • Conventional SMO based Support Vector Machines for classification andregression
    • Reduced-rank methods for large-scale classification and regression
    • Relevance vector machines for classification and regression
    • General purpose multiclass classification tools
    • A Multiclass SVM
    • A tool for solving the optimization problem associated with structural support vector machines.
    • Structural SVM tools for sequence labeling
    • Structural SVM tools for solving assignment problems
    • Structural SVM tools for object detection in images
    • Structural SVM tools for labeling nodes in graphs
    • A large-scale SVM-Rank implementation
    • An online kernel RLS regression algorithm
    • An online SVM classification algorithm
    • Semidefinite Metric Learning
    • An online kernelized centroid estimator/novelty detector and offline support vector one-class classification
    • Clustering algorithms: linear or kernel k-means, Chinese Whispers, andNewman clustering.
    • Radial Basis Function Networks
    • Multi layer perceptrons
  • Graphical Model Inference Algorithms
    • Join tree algorithm for exact inference in a Bayesian network.
    • Gibbs sampler markov chain monte carlo algorithm for approximate inference in a Bayesian network.
    • Routines for performing MAP inference in chain-structured, Potts, orgeneral factor graphs.
  • Image Processing
    • Routines for reading and writing common image formats.
    • Automatic color space conversion between various pixel types
    • Common image operations such as edge finding and morphological operations
    • Implementations of the SURF, HOG, and FHOG feature extraction algorithms.
    • Tools for detecting objects in images including a frontal face detector.
  • Data Compression and Integrity Algorithms
    • A CRC 32 object
    • MD5 functions
    • Various abstracted objects representing parts of data compressionalgorithms. Many forms of the PPM algorithm are included.
  • Testing
    • A thread safe logger object styled after the popular Java logger log4j
    • A modular unit testing framework
    • Various assert macros useful for testing preconditions
  • General Utilities
    • A type-safe object to convert between big and little endian byte orderings
    • A command line parser with the ability to parse and validate command lines with various types of arguments and options
    • An XML parser
    • An object that can perform base64 conversions
    • Many container classes
    • Serialization support
    • Many memory manager objects that implement different memory pooling strategies

这篇关于Dlib C++ 算法库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676050

相关文章

C++中unordered_set哈希集合的实现

《C++中unordered_set哈希集合的实现》std::unordered_set是C++标准库中的无序关联容器,基于哈希表实现,具有元素唯一性和无序性特点,本文就来详细的介绍一下unorder... 目录一、概述二、头文件与命名空间三、常用方法与示例1. 构造与析构2. 迭代器与遍历3. 容量相关4

C++中悬垂引用(Dangling Reference) 的实现

《C++中悬垂引用(DanglingReference)的实现》C++中的悬垂引用指引用绑定的对象被销毁后引用仍存在的情况,会导致访问无效内存,下面就来详细的介绍一下产生的原因以及如何避免,感兴趣... 目录悬垂引用的产生原因1. 引用绑定到局部变量,变量超出作用域后销毁2. 引用绑定到动态分配的对象,对象

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

C++右移运算符的一个小坑及解决

《C++右移运算符的一个小坑及解决》文章指出右移运算符处理负数时左侧补1导致死循环,与除法行为不同,强调需注意补码机制以正确统计二进制1的个数... 目录我遇到了这么一个www.chinasem.cn函数由此可以看到也很好理解总结我遇到了这么一个函数template<typename T>unsigned

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基