人脑是怎样认知图像的?——特征分析模式(传统模式识别之三)

本文探讨了人脑如何通过特征分析来认知图像。通过分解模式为基本特征并利用这些特征进行匹配,人们能够识别出复杂的图像。文章还讨论了特征分析模型的优势与挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

人脑是怎样认知图像的?——特征分析模式(传统模式识别之三)
2007-09-17 12:09
作者是刘建忠
前面已经说过,模式是由若干元素或成分按一定关系构成的。这些元素或成分可称为特征,而其关系有时也称为特征。特征说认为,模式可分解为诸特征。
例如,一个大写的英文字母A可以分解为下列特征(见下图):两条斜线、一条水平线和3个锐角。这3个锐角实际上表明这些线段的关系,即两条斜线相交和水平线与两条斜线相接。
Lindsay和Norman(1977)指出,构成所有26个英文字母的特征共有7种,即垂直线、水平线、斜线、直角、锐角、连续曲线和不连续曲线,如F有一条垂直线、两条水平线和3个直角;P有与F一样的特征,外加一条不连续曲线;R有与P一样的特征,另有一条斜线,等等。
Gibson(1969)也曾就英文字母的特征提出过类似的看法,但区分出12种特征。
照特征说看来,特征和特征分析在模式识别中起着关键的作用。其认为外部刺激在人的长时记忆中,是以其各种特征来表征的,在模式识别过程中,首先要对刺激的特征进行分析,也即抽取刺激的有关特征,然后将这些抽取的特征加以合并,再与长时记忆中的各种刺激的特征进行比较,一旦获得最佳的匹配,外部刺激就被识别了。这就是一般的特征分析模型。  
  
特征说所强调的特征,不管它在长时记忆中的编码形式是怎样的,其地位和作用看起来类似模板说中的模板。
Anderson(1980)指出,这种特征似可看作微型模板。这个看法是有一定道理的。也许可以说,特征是一种局部的部件模板。但是特征说毕竟不同于模板说,并且具有一定的优点。
首先,依据刺激的特征和关系进行识别,就可以不管刺激的大小、方位等其他细节,避开预加工的困难和负担,使识别有更强的适应性。
其次,同样的特征可以出现在许多不同的模式中,必然要极大地减轻记忆的负担。
第三,由于需要获得刺激的组成成分信息,即抽取必要的特征和关系,再加以综合,才能进行识别,这使模式识别过程可带有更多的学习色彩。这一点看来是极重要的。应当说,特征分析模型是含有较多的学习可能性的。
还可以预料,当不同的模式具有一些共同的特征时,就会使识别发生困难,甚至出现错误,将这些模式混淆起来。在人的实际知觉中,确实常常出现这些情况。这方面的事实也是支持特征说的有力的证据。对此曾进行过有关的实验研究。
特征分析模式是根据图像特征实现视觉再现。该模式首先是从图像中提取特征,而特征是依各种图像而千差万别的。因此特征的提取涉及面很广,与识别对象的各种物理、形态的性能都有关系。垂直线、水平线、曲线、角、交点、孔等都可以作为特征,因此产生了各种各样的特殊方法来抽取特征。均值、方差、信息量、相关系数、绝对值等也可以作为特征,这样就涉及到大量的特征计算。
特征分析模式还有两个难以克服的困难问题:一个是如何选取合理的特征去表示自然界的图像;另一个是如何确定所选特征之间的相互关系。
设想识别一只鸟,这时可以定义鸟的特征是:羽毛、翅膀、尾巴、鸟头和鸟脚。问题是识别羽毛、翅膀、尾巴、鸟头和鸟脚之类并不比识别一只完整的鸟容易。当然也可以将垂直线、水平线、曲线、角和圆作为鸟的特征。问题是这时要选取许许多多这类特征,而这类特征也可以用来描述小狗小猫,更何况至今无人用这类特征去描述自然界的复杂景物。
事实上所选取特征之间的相互关系也是个非常复杂的问题.特征所处的位置,特征之间相互形成的走向,特征与特征的相互干扰等等,以及阴影、叠合、掩盖等,都会影响视觉识别的最后结果。
特征分析模式在识别字符和简单几何图形中精度高。尤其是识别人脸;生物学的实验说明,人的头脑中存在选择物体的某些特性的专门机构。
 
### 如何配置和设置 Keil5 编译环境 #### 配置 ARM 编译器路径 为了确保 Keil5 能够正常工作,必须正确配置 ARM 编译器的路径。如果路径错误或缺失,则可能导致 “Target Not Created” 的错误消息[^3]。 进入 **Project -> Options for Target**,切换到 **Device** 选项卡,选择目标设备(例如 STM32F103RCT6)。随后,在工具链部分确认编译器路径是否正确。 #### 创建新项目并添加源文件 通过菜单栏中的 **New uVision Project** 来创建一个新的工程文件。指定保存位置后,弹出的目标芯片选择对话框中输入具体的 MCU 型号,并点击 OK 完成初始化[^2]。接着可以向该项目导入 `.c` 文件以及头文件 `.h`,这些操作可以通过右键单击左侧资源管理器实现。 #### 设置生成 HEX/BIN 文件 在实际开发过程中经常需要用到固件下载所需的二进制格式文件。这一步骤可通过调整输出选项达成:依次访问 **Flash -> Settings...**, 在弹出界面里勾选 Generate HEX File 或者 BIN File 复选框即可完成相应设定。 #### 解决调试期间 Watch 窗口更新异常现象 当处于 Debug 模式下观察某些变量状态时发现其值未能及时同步至最新情况,可尝试如下手段予以改善——即于 Options For Target 下拉列表项下的 Debugger 分页内启用 Reset and Delay 功能来延长复位延迟时间从而给予足够的准备周期给硬件平台去稳定下来再继续执行后续指令流处理过程。 ```python # 示例伪代码展示如何验证基本功能 def test_keil_project(): project_path = r"C:\path\to\your\project.uvprojx" device_model = "STM32F103RCT6" # 初始化项目 initialize_project(project_path, device_model) # 添加C源码文件 add_source_files(["main.c", "config.h"]) # 构建HEX/BIN文件支持 enable_hex_bin_output() return True if build_successful() else False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值