Alchemy 是一个使用C++编写的CV库,包含传统算法和机器学习算法。
- libjpeg: 读取jpeg图片,
sudo apt install libjpeg8-dev
- libpng/zlib,
sudo apt install libpng-dev
- fftw: 进行快速傅里叶变换,
sudo apt install libfftw3-dev
- gtk-2.x: 显示图片使用,
sudo apt install libgtk2.0-dev
- FFmpeg: 读取摄像头/视频数据,
sudo apt install ffmpeg
- BLAS: ATLAS,
sudo apt install libatlas-base-dev
- CUDA 9.0/cuDNN 7: GPU计算,安装见官网
- Glog: 日志,方便调试,
sudo apt install libgoogle-glog-dev
- NNPACK, CPU快速计算卷积
git clone https://github.com/Maratyszcza/NNPACK.git
cd NNPACK
mkdir build
cd build
cmake ..
make
sudo make install
- OpenCV
mkdir build
cd build
cmake ..
测试
make runtest
- 保存图像的基本类:
_Matrix
- 使用
BLAS
重写矩阵运算 - 分别实现
CPU/GPU
版本的矩阵运算 - jpeg图像读写
- png图像数据读取
- 摄像头(Linux:v4l2)数据读取
- mp4等视频数据读取
-[x]
VideoCapture
读取Gif图片 - 再次支持
Windows
(主要VS好用) - ROI
- 颜色空间转换:
cvtColor()
- 线性滤波:
boxFilter()/blur()/GassionBlur()
- 非线性滤波:
medianBlur()/bilateralFilter()
- 形态学滤波:
morpEX()
- 图像轮廓:
findContours()/findOutermostContours()
- 阈值:
threshold()
- DFT:
FFTW
实现(自己实现的后来更新_Matrix类后出现问题了,没有修改) - 图像金字塔:
pyrUp()/pyrDown()
-
canny/sobel
边缘检测(实现简单,效果不好) - 仿射变换
- 256 LBP/ELBP (TODO: 任意r和P)
- Haar
- HOG
- SIFT
- 实现张量类
Tensor
(也就是N维数组) - 调整结构为: Tensor -> Layer -> Network -> Optimizer 结构
- weight/bias初始化方法: normal/uniform/xavier
- GPU版本实现
- L1/L2正则化
- Accuracy Layer
- Convolution Layer
- Pooling Layer
- Inner Product
- Dropout Layer
- ReLU Layer
- sigmoid Layer
- tanh Layer
- Softmax Layer
- Softmax Loss Layer
- Euclidean Loss Layer
- Sigmoid cross-entropy Loss Layer
- SGD Optimizer
- Momentum Optimizer
- Nesterov Optimizer
- AdaDelta Optimizer
- Adam Optimizer