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++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat