1、append_ocr_trainf
append_ocr_trainf(Character, // 选中当前目标
Image, // 目标对应图片
Class, // 字符的类别(名称)
TrainingFile) // 培训文件的名称
- 定义:向训练文件中添加字符
- 说明
- 操作符append_ocr_trainf用于使用操作符trainf_ocr_class_mlp或trainf_ocr_class_svm准备训练
- 因此,表示字符的区域,包括其灰度值(区域和像素)和相应的类名将被写入文件。在一个映像中支持任意数量的区域。对于“字符”中的每个字符(区域),必须在“类”中指定相应的类名。灰度值通过参数Image传递
- 与操作符write_ocr_trainf不同的是,字符被附加到使用与该文件相同的训练文件格式的现有文件中。如果文件不存在,则生成一个新文件
- 在这种情况下,可以通过操作符set_system的参数'ocr_trainf_version'来选择文件格式。如果在TrainingFile中没有指定文件扩展名,则扩展名'。Trf '被加在名字后面
- 如果参数正确,操作符append_ocr_trainf返回值TRUE,否则将引发异常
2、read_ocr_trainf_names
read_ocr_trainf_names(TrainingFile, // 训练文件名称
CharacterNames, // 训练字体的名称
CharacterCount) // 训练字体样本的个数
- 定义:查询训练文件中存储的字符
- 说明:提取指定训练文件中所有字符的名称和频率
3、create_ocr_class_mlp
create_ocr_class_mlp(WidthCharacter, HeightCharacter, // 识别字符宽度、高度
Interpolation, // 插值算法
Features, // 特征值 (区域特征、灰度值特征 包含曲度、紧密度、凸性等等)
Characters, // 训练样本的名称
NumHidden, // 隐藏层中的单元数
Preprocessing, // 预处理
NumComponents, // 特征变换的数量(特征未规划前的向量数一般为默认值)
RandSeed, // 随机种子点数一般都写42 ,这个是神经网络迭代的过程
OCRHandle) // 句柄
- 定义:创建一个使用多层感知器(MLP)的OCR分类器,得到OCR分类器的句柄
- 说明
- create_ocr_class_mlp创建一个OutputFunction = 'softmax'的MLP。MLP的特征向量(create_class_mlp中的NumInput)的长度由用于OCR的特性决定,这些特性在features中传递
- MLP的输出变量的数量由OCR中要使用的字符的名称确定,在characters中传递
- 使用参数Preprocessing和NumComponents来指定数据(即特征向量)的预处理
- 预处理通常可以设置为“none”
- 要分类的字符被转换为标准大小,由WidthCharacter和HeightCharacter决定
- 用于变换的插值由插值确定,对于大多数应用程序,应该使用Interpolation = 'constant'
- 应用
- 创建分类器后,使用trainf_ocr_class_mlp对其进行训练
- 在此之后,可以使用write_ocr_class_mlp保存分类器,或者可以在训练后立即使用分类器使用do_ocr_single_class_mlp或do_ocr_multi_class_mlp对字符进行分类
- MLP和支持向量机(SVM)的比较(参见create_ocr_class_svm)通常表明,支持向量机在训练时通常更快,特别是对于庞大的训练集,并且获得比MLP稍好的识别率。MLP在分类上更快,因此在时间关键的应用中应该是首选
4、trainf_ocr_class_mlp
trainf_ocr_class_mlp(OCRHandle, // 句柄
TrainingFile, // trf文件,ocr.trf
MaxIterations, // 优化算法最大迭代次数 200
WeightTolerance, // 砝码公差 优化算法两次迭代MLP权值差的阈值 1.0
ErrorTolerance, // 错误公差 两次迭代平均误差阈值 0.01
Error, // 训练数据平均误差
ErrorLog) // 算法在训练数据上的平均错误
- 定义:使用TrainingFile提供的OCR训练文件中存储的训练字符训练OCR分类器OCRHandle,输出平均误差与错误
- 说明
- 训练文件必须已经创建
- 在训练过程中会考虑OCR分类器的正规化和正规化参数的自动确定(参见set_regularization_params_ocr_class_mlp),如果使用set_rejection_params_ocr_class_mlp指定了拒绝类,则在实际训练之前生成拒绝类的样本
- 注意:在分类器OCRHandle中没有对应类的训练字符将被丢弃
5、write_ocr_class_mlp
write_ocr_class_mlp(OCRHandle, // 需要保存的句柄
FileName) // 路径地址
- 定义:将OCR分类器OCRHandle写入FileName指定的文件
- 说明
- 如果在FileName中没有指定文件扩展名,则默认扩展名'.omc'被附加到FileName
- Write_ocr_class_mlp通常在使用trainf_ocr_class_mlp训练分类器之后调用,可以使用read_ocr_class_mlp读取分类器
6、clear_ocr_class_mlp
clear_ocr_class_mlp( : : OCRHandle : )
- 定义:清除由create_ocr_class_mlp创建的OCRHandle提供的OCR分类器,并释放分类器所需的所有内存
- 说明:调用clear_ocr_class_mlp之后,分类器就不能再使用了,句柄OCRHandle变得无效