利用 pyqt5 实现给 深度学习图像识别算法 SSD300 搭建界面

最近接到老板安排的项目,将之前自己训练好的用于识别一个水下目标的SSD300算法增加一个简单的界面。

项目的主要目的是为了利用SSD300实现单目视觉定位,整个算法的基本流程是,采集摄像头的图片,传递给训练好的SSD300网络进行识别,处理结果获得目标物在图片中的位置坐标(两个坐标点),之后进行基于先验值的深度估计,最后3D重建。实现单目视觉定位。

之前的算法,没有界面,就一个opencv下的图像窗口显示,老板嫌弃它太磕碜,非要我加一个简单的界面(毛病多!)。

Python编界面有好几个库,但由于实验室没有人用过Python做界面,整个过程全是自己一个人瞎捣鼓,研究了好久才确定用pyqt做界面会很快,同时QtDesigner也可以和c++的通用,搭建起来快速方便。

最终定位精度在2cm以内

先来看一下最终的效果
这里写图片描述

这里写图片描述

界面看起来比较粗糙,但整体结果相比之前那种还可以吧!

这里具体的实现过程以后有时间在补充,主要是要记录一个重点!!!!!!!

  1. 不要把SSD网络塞到Qt的线程中去,肯定行不通的,我觉得这种神经网络的计算肯定是调用了大量的线程对计算速度进行优化处理,再把这个塞进线程里明显不合适。
    我的解决办法是:窗口初始化中建立SSD模型并进行相应的初始化,直接将预测处理的函数加到槽函数中,建立条件死循环重复刷新图片及预测结果。
  2. SSD网络运行时耗费大量计算资源,在计算速度慢的机器上时经常“窗口无响应”
    我的解决办法是:在槽函数中不断调用QApplication.processEvents()(用于窗口的刷新响应),尤其是非常耗时的预测阶段,一定要调用。

好!时间太晚了,有时间再详细记录一下整个项目的搭建过程。

这里给出源码下载,需要的可以下载
由于本人等级不高,代码权值文件放一起上传不了,这里就分开上传了,顺便赚点积分,方便以后下载东西。哈哈哈!!!不要骂我哟!我只是穷
代码:
https://download.csdn.net/download/ttz_csdn/10639112
权值文件:
https://download.csdn.net/download/ttz_csdn/10639705
权值文件下载好后放在weights文件夹下。

猜你喜欢

转载自blog.csdn.net/ttz_csdn/article/details/82263566