使用OpenCV的自带的Haar级联分类器进行人脸识别,编译成功,但调试时一直报非法指令错误。
即:Unhandled exception at 0x0fd238de in face_rec.exe: 0xC000001D: Illegal Instruction。
开始以为是内存溢出,将内存空间由默认的64K调大,结果还是有问题。查了很多资料都不能给出解决方法,最后终于查到原来是Win7的问题。
原文如下:Can you check if you have Windows 7 SP1 installed on your computer? The code is optimized with AVX instructions. Older windows do not support AVX reporting very well.意思是说新版本的操作系统的代码对AVX指令进行了优化,而旧版本的支持并不是很好。(AVX即Intel Advanced Vector Extensions,有关AVX指令集具体见百度百科)。
将Win7升级为Win7 SP1后调试成功,可以进行人脸识别了。

本文探讨了在使用OpenCV的Haar级联分类器进行人脸识别时遇到非法指令错误的问题,并通过升级操作系统至Win7SP1解决了该问题。文章详细解释了原因在于代码对AVX指令的优化,而旧版操作系统不支持此类优化,从而导致错误发生。

被折叠的 条评论
为什么被折叠?



