网站开发南城科技大厦网站怎么做查询功能
深度学习目标检测ui界面-交通标志检测识别
为了将算法封装起来,博主尝试了实验pyqt5的上位机界面进行封装,其中遇到了一些坑举给大家避开。这里加载的训练模型参考之前写的博客:
 自动驾驶目标检测项目实战(一)—基于深度学习框架yolov的交通标志检测
效果

 输入设置好账号密码

 加载一张交通标志图片
 
 点击开始
 
 测试使用cpu跑的,使用gpu的话检测速度会更快。
过程
主要包括检测代码和界面代码:
 
 我们只需要将检测完的图片在界面显示即可,但是这样遇到一些问题:
(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)  # 设置图片显示
 

 解决方法:
 先用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[:], 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)  # 设置图片显示
 
就可以解决:

当然这只是其中一种解决方法,其他我还没发现。
记录到这里,需要源码的私信
