> 文章列表 > 深度学习目标检测ui界面-交通标志检测识别

深度学习目标检测ui界面-交通标志检测识别

嘿,小伙伴儿们!今天咱们聊聊深度学习目标检测的UI界面,特别是那交通标志检测识别的“魔法”。你想要把酷炫的算法塞进一个漂亮的界面里?没问题,PyQt5走起!不过,别急,先听我给你挖几个坑,让你躲着点儿。

首先,你可能会遇到图片颜色“突变”的问题,比如红色变蓝色。别慌,这多半是图像通道在搞鬼。咱们只需要把Format_RGB888改成Format_BGR888,图片颜色就正常了,简单吧?

再有,当你直接读取截图的PNG图片时,可能会出现乱码。这时候,别急着砸键盘。先用OpenCV把图片保存一下,再加载回来,问题就能迎刃而解,是不是有点像“重启试试”?

好了,现在你是不是觉得自己也能做个小黑客了?别急着得意,深度学习的世界可不止这些“小把戏”。你还可以想想,如何优化检测速度?GPU是不是你的救星?或者,UI界面怎么做得更人性化,让用户一眼就能看出交通标志的“秘密”?

总之,深度学习目标检测UI界面的开发,就像是在玩一场“解谜游戏”。每解决一个问题,你都会离成功更近一步。所以,别怕遇到坑,勇敢地跳下去,说不定下面藏着的是宝藏呢!

深度学习目标检测ui界面-交通标志检测识别

深度学习目标检测ui界面-交通标志检测识别

为了将算法封装起来,博主尝试了实验pyqt5的上位机界面进行封装,其中遇到了一些坑举给大家避开。这里加载的训练模型参考之前写的博客:
自动驾驶目标检测项目实战(一)—基于深度学习框架yolov的交通标志检测

效果

深度学习目标检测ui界面-交通标志检测识别
输入设置好账号密码

深度学习目标检测ui界面-交通标志检测识别
加载一张交通标志图片
深度学习目标检测ui界面-交通标志检测识别
点击开始
深度学习目标检测ui界面-交通标志检测识别
测试使用cpu跑的,使用gpu的话检测速度会更快。

过程

主要包括检测代码和界面代码:
深度学习目标检测ui界面-交通标志检测识别
我们只需要将检测完的图片在界面显示即可,但是这样遇到一些问题:

(1)QtGui.QImage加载图片时,图片的红色变成蓝色,解决方法:一开始猜想是图像通道问题,于是把:

 _image = QtGui.QImage(self.img_defect[:], self.img_defect.shape[1], self.img_defect.shape[0],self.img_defect.shape[1] * 3,QtGui.QImage.Format_RGB888) 

中的Format_RGB888改为Format_BGR888,即:

 _image = QtGui.QImage(self.img_defect[:], self.img_defect.shape[1], self.img_defect.shape[0],self.img_defect.shape[1] * 3,QtGui.QImage.Format_BGR888) 

就可以正常显示图片的颜色。

(2)另外,如何使用以下代码直接读取截图的png图片时,图片会乱码:

  img_orignal = cv_imread(self.fname)  # opencv读取图片res = cv2.resize(img_orignal, (200, 200), interpolation=cv2.INTER_CUBIC)  # 用cv2.resize设置图片大小self.img_o = res_image = QtGui.QImage(self.img_o[:], self.img_o.shape[1], self.img_o.shape[0], self.img_o.shape[1] * 3,QtGui.QImage.Format_BGR888)  # pyqt5转换成自己能放的图片格式jpg_out = QtGui.QPixmap(_image)  # 转换成QPixmapself.label_4.setPixmap(jpg_out)  # 设置图片显示

深度学习目标检测ui界面-交通标志检测识别
解决方法:
先用opencv保存图片,如何再加载:

 # 显示图片img_orignal = cv_imread(self.fname)  # opencv读取图片cv2.imwrite('./images/res/origin.jpg', img_orignal)img = cv_imread("./images/res/origin.jpg")res = cv2.resize(img, (200, 200), interpolation=cv2.INTER_CUBIC)  # 用cv2.resize设置图片大小self.img_o = res_image = QtGui.QImage(self.img_o[<