第1次写博客 格式啥的还不是很好,前期配置了OpenCv4.0,然后因为OpenCv自身的人脸检测功能速度相比于仕琪老师自己写的库而言更慢一点,然后又配置了一下于仕琪老师的库。最后基本实现了人脸检测的功能。想着做一点东西,于是在网上百度了一下,找到了一个博主的“opencv+dlib+于仕琪算法实现人脸检测和简单疲劳检测”的博客,博客讲的很详细,也有源代码,于是就把他的源代码下载下来进行学习,但是呢在使用这个之前,还需要配置一下dlib。网上关于配置这些方面的论文也有很多呀,讲的也蛮清楚的,可以看看,我在这里讲的是,在配置完成之后调试博主的代码的时候出现的一些问题。附上博主的链接。https://blog.csdn.net/huanghw22/article/details/80899666
当然我讲的可能也并不是很清楚,有帮助的话欢迎转载,不喜勿喷。
首先,先讲一个概念,“项目属性页”和“通用属性页”;在通用属性页配置OpenCv就可以达到“一次配置,永久使用”的效果。
- 博主的源代码项目名为“DlibTest”,“项目属性页”的打开方式,“在DlibTest项目名称上右击” 然后===》“点击最下面的属性按钮”。如图0。
![图0](https://i-blog.csdnimg.cn/blog_migrate/1e2e5187018fd815cbff7fc9af6f1ca8.png)
如图1,得到DlibTest项目属性页。
![图1](https://i-blog.csdnimg.cn/blog_migrate/419e78d5d429164cc93037c109a159c6.png)
- “通用属性页”的打开步骤如下:“视图”-->“其他窗口”-->“属性管理器”,如图2,图3。
![图2](https://i-blog.csdnimg.cn/blog_migrate/dad06932b5a023dc190f1fc4610ca642.jpeg)
![图3](https://i-blog.csdnimg.cn/blog_migrate/365a905f0ce6c04e586a44724fc73450.jpeg)
因为是在 release x64下配置的 OpenCv4.0,所以,点击release x64 Microsoft.Cpp.x64.user,即打开通用属性页,如图4。
![图4](https://i-blog.csdnimg.cn/blog_migrate/cac627151382e5a34ea70292a60cb767.jpeg)
同样的也就是在通用属性页也去配置OpenCv的库目录、包含目录和附加依赖项等等的。在通用属性页配置而不是在某一个项目属性页上配置,就可以达到“1次配置,永久使用”的效果,就不会说每次新建一个OpenCv的项目,每次都要重新设置目录、附加目录、包含目录和依赖项等的。当然我也只是在这里讲了一个大概,我把我以前参考的文章链接附出来。博主是OpenCv3.3.1,不过其实都是异曲同工啦。
当然,我这里点击的是Release|x64 去配置OpenCv4.0 ,你可以根据你自己不同的情况去点击,比如点击Debug|win 32 的通用属性页,去配置其他版本的OpenCv。我在我自己电脑上因为需要就配置了两个版本的OpenCv。在Debug|win32通用属性页配置了2.4.9的版本。在Release|x64通用属性页配置啦4.0版本。
- 上面便讲完啦项目属性页和通用属性页,然后接着分析我遇到的“找不到opencv_world310.lib”的问题。
博主的源代码项目名为“DlibTest”,当时配置的时候还是遇到了蛮多问题的,然后解决,现在主要讲的就是遇到的“找不到opencv_world310.lib”的问题。如下图5。
![图1](https://i-blog.csdnimg.cn/blog_migrate/d1b6d770fdfc15f4577b3d08cf819c10.png)
当时就感觉很奇怪,因为我的OpenCv版本是4.0,在我的附加依赖项里面是有 opencv_world400.lib(4.0对应的依赖项名称里就有400),并且并没有安装OpenCv3.0(3.0对应的依赖项名称里就有300),但是他却给我报这个错误。他为什么不用4.0版本的依赖项呢?反而去用3.0的。然后我按照上面的讲述的通用属性页的方法,去查看我的依赖项。如图6。
![图6](https://i-blog.csdnimg.cn/blog_migrate/b022f310ba7ab0d54cf649fb582b7e0b.jpeg)
有opencv_world400.lib依赖项。没问题。然后我再看了一下,DlibTest项目依赖项里面发现发现作者原来用的就是3.0版本,所以有3.0的依赖项。如图7。
![图7](https://i-blog.csdnimg.cn/blog_migrate/ff6e1df3c612fa153c0cdfb0efed90fa.png)
最后发现原因,然后把项目依赖项里面的3.0的去掉再去运行就可以得到结果,最后得到如下结果,如图8。
![图8](https://i-blog.csdnimg.cn/blog_migrate/1fee8dbb56464149d14e59d2272fc04f.png)
博主的代码运行会有很多检测道德人脸特征点,当做出闭眼的动作时,便可检测到疲劳驾驶。代码调试成功后,后面再进一步学习。