图像分类系统之功能实现概要

更新:2020-04-01 系统思维导图
图像分类系统之功能实现概要_第1张图片
图像分类系统之功能实现概要_第2张图片

系统开发平台及运行环境

系统基于C++编程语言开发,在集成开发环境Microsoft Visual Studio 2015下开发,系统运行于Windows x64 系统下,其中,图形用户界面使用MFC开发,核心算法使用Caffe和OpenCV开发。
Caffe是一个深度学习框架,主要面对计算机视觉任务,可以运行于Windows和Linux系统上,具有良好的扩展性和可读性。Caffe底层由C++/CUDA开发,支持命令行、Python、Matlab、C++接口。本系统的图像分类子系统的部分功能便是基于Caffe C++接口开发。
OpenCV是一个计算机视觉库,可以运行于包括Linux、Windows、Android、Mac OS在内的众多操作系统上,完全由C/C++开发,提供Python、Ruby、Matlab、JAVA、C++、C接口,具有详细的文档资料支持。本系统的图像分类子系统和图像特征提取子系统中大多数功能都依赖于OpenCV开发。

##图像显示子系统
图像分类系统之功能实现概要_第3张图片
“导入数据”按钮是用以选择图像数据集,这包括来自文件夹的图像和单个图像文件,对于每个文件只记录其绝对路径,当选中的图像需要显示时,依据图像的路径读取该图像文件并显示到界面上。
“上一张”按钮的响应时间是显示当前图像在图像列表中的上一张图像,若当前图像为列表中第一张图像,则保持显示状态。同理,“下一张”按钮于“上一张”按钮的功能类似,显示下一张图像。
图像显示控件有两个,一个显示当前选中图像,另一个显示其上下相近的图像。

##图像特征提取子系统

图像分类系统之功能实现概要_第4张图片
基于OpenCV中提供的图像算法实现了图像特征提取子系统中的底层核心图像特征提取算法,基于MFC实现了前端显示界面,通过用户的操作来调用算法执行运算。目前支持的图像特征有:SIFT、SURF、ORB、SIFT、LBP、HOG、颜色直方图,其中支持算法参数修改的有SIFT、SURF、ORB、LBP四种常用算法。
图像特征提取子系统的操作界面包括图像特征提取算法列表、特征图像显示窗口、原始图像显示窗口、算法参数调整控件。每个算法都拥有默认参数,用户在设置完调整后的参数后,需要点击“设置参数”按钮来计算新参数下的图像特征。

##图像分类子系统
图像分类系统之功能实现概要_第5张图片
支持的特征提取算法有:SIFT、SURF、ORB和分类器算法:SVM、KNN。
图像训练模块的实现中有数据集选择、特征提取算法选择、特征提取算法参数设置、分类器算法选择等可操作选项,有一个实时进度显示窗口。其中,两个“浏览”按钮用来选择训练数据集和测试数据集文件;通过“测试数据”选项和“自动调整数据比例”选项,可以选择使用导入的单独图像测试集,也可以使用在训练集中分离出来的图像验证数据集;“参数设置”按钮用于设置特征提取算法参数;“命令提示窗口”所显示的是当前进行的操作。图像分类器训练模块训练的分类器是基于图像Hand-Crafted特征的分类器,针对小规模数据进行分类。

图像分类系统之功能实现概要_第6张图片
5个“浏览”按钮分别用以选择分类器模型文件、分类器定义文件、分类器对应的标签文件、CNN网络模型的均值文件、需要分类的图像数据文件夹。图像显示控件显示的是当前正在识别的图像,进度条表示识别总进度。“识别结果”展示的是图像的识别结果:类别ID、类别标签、可信度。“类别标签(数量)”展示的是所有图像的类别标签和数量。“开始识别”按钮是在完成所有的参数选择后的开始分类任务的开关,当完成图像分类后,可以通过“按类别存储”按钮将所有图像按类别存储至本地。

你可能感兴趣的:(OpenCV)