CCV简介
概况
CCV是一个基于C语言的、提供缓存的、核心的、新颖的机器数据库。
特点
1)CCV内置缓存机制,并保持简介的功能接口,从而能够透明缓存,进行图像预处理;
2)CCV主要功能不依赖与库函数,使得其很容易嵌入到项目中;
3)CCV实现了一些先进算法,如人脸检测、行人检测、目标定位、目标跟踪、特征点检测等。
算法
BBf(Brightness Binary Feature)
ConvNet(Deep Convolutional Networks)
DPM(Deformable Parts Model)
ICF(Integral Channel Feature)
SCD(SURF-Cascade Detection)
SIFT(Scale Invariant Feature Transform)
SWT(Stroke Width Transform)
TLD(Track Learn Detect)
CCV安装
环境
Ubuntu 14.04
步骤
下载并解压
1)从github上下载对应的源码ccv-stable.zip。网址为:https://github.com/liuliu/ccv;
2)使用unzip ccv-stable.zip命令将其解压到当前文件夹下。
下载安装依赖库
使用如下命令进行下载安装即可。
sudo apt-get install clang libjpeg-dev libpng-dev libfftw3-dev libgsl0-dev libblas-dev liblinear-dev libblas-dev
环境配置
切换到lib目录下,指向如下命令即可。
./configure force
编译源码
切换到bin目录下,执行如下命令即可。
make
至此,在bin文件夹下生成一些可执行文件,此时CCV库安装便完成。
测试安装
1)使用其中的ICF检测器
./icfdetect I00000.png ../samples/pedestrian.icf
./icfdetect I00000.png ../samples/pedestrian.icf | ./icfdraw.rb I00000.png output.png
2)使用其中的DPM检测器
./dpmdetect I00000.png ../samples/pedestrian.m
./dpmdetect I00000.png ../samples/pedestrian.m | ./dpmdraw.rb I00000.png output.png
两个均输出结果和检测时间。
3)自己编程程序进行测试
在lib目录下如Mytest.c程序,程序内容如下:
#include <ccv.h> int main(int argc, char** argv) { ccv_dense_matrix_t* image = 0; ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE); ccv_write(image, argv[2], 0, CCV_IO_PNG_FILE, 0); return 0; }
编写完成后编译程序,使用如下命令:
clang -L”../lib” -I”../lib” Mytest.c -lccv
cat ../lib/.deps
编译通过后会生成一个a.out文件;
然后运行此可执行文件,使用如下命令:
./a.out ../bin/I00000.png copy.png
便会实现程序中的幅值图像的灰度图像功能。
注意:在检测过程中可能出现”/usr/bin/env: ruby: 没有那个文件或目录”错误,此时安装ruby即可。
安装ruby使用命令如下:
1)sudo apt-get install ruby-full (Debian/Ubuntu系统)
2)sudo yum install ruby (CentOS,Fedora,RHEL系统)。
在使用.rb文件时出现“sh: 1: convert: not found”错误,此时需要安装imagemagick软件,用于编译convert。
sudo apt-get install imagemagick即可。
参考文献: