软件更新日志V3.0B版本,在2.0基础上实现了调用摄像头的实时识别功能。V3.0A版若不实时刷新识别画面,可以手动点一次识别一次……
附上完整代码,也是做个代码备份。需要的小伙伴自取就ok~
软件目前存在的bug是1.在开始识别后会很卡,目前认为可能的原因是每次刷新都重复载入了模型文件;2.摄像头画面与实时识别画面比例不一样,后期优化一下。
# coding:utf-8
'''
V3.0B版本,实现摄像头识别,实时刷新显示结果
@author:kangshifu
'''
import numpy as np
import cv2
import os
import os.path
import six.moves.urllib as urllib
import sys
import tarfile
import tensorflow as tf
import zipfile
import pylab
from distutils.version import StrictVersion
from collections import defaultdict
from io import StringIO
from matplotlib import pyplot as plt
from PIL import Image
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class UiForm():
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(600, 420)
Form.setMinimumSize(QtCore.QSize(600, 420))
Form.setMaximumSize(QtCore.QSize(600, 420))
self.frame = QtWidgets.QFrame(Form)
self.frame.setGeometry(QtCore.QRect(20, 20, 550, 100))
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame.setObjectName("frame")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.frame)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
# 加载模型文件按钮
self.btn_add_file = QtWidgets.QPushButton(self.frame)
self.btn_add_file.setObjectName("btn_add_file")
self.horizontalLayout_2.addWidget(self.btn_add_file)
# 加载pbtxt文件按钮
self.btn_add_pbtxt = QtWidgets.QPushButton(self.frame)
self.btn_add_pbtxt.setObjectName("btn_add_pbtxt")
self.horizontalLayout_2.addWidget(self.btn_add_pbtxt)
# 输入检测类别数目按钮
self.btn_enter = QtWidgets.QPushButton(self.frame)
self.btn_enter.setObjectName("btn_enter")
self.horizontalLayout_2.addWidget(self.btn_enter)
# 打开摄像头
self.btn_opencam = QtWidgets.QPushButton(self.frame)
self.btn_opencam.setObjectName("btn_objdec")
self.horizontalLayout_2.addWidget(self.btn_opencam)
# 开始识别按钮
self.btn_objdec = QtWidgets.QPushButton(self.frame)
self.btn_objdec.setObjectName("btn_objdec")
self.horizontalLayout_2.addWidget(self.btn_objdec)
# 退出按钮
self.btn_exit = QtWidgets.QPushButton(self.frame)
sel