当前位置: 首页 > news >正文

易名中国网站找回wordpress密码

易名中国网站,找回wordpress密码,关于网站设计,wordpress 邮件激活前言 使用摄像头实时识别数字算是目标检测任务#xff0c;总体上分为两步#xff0c;第一步是检测到数字卡片的位置#xff0c;第二步是对检测到的数字卡片进行分类以确定其是哪个数字。在第一步中主要涉及opencv的相关功能#xff0c;第二步则使用机器学习的方式进行分类…前言 使用摄像头实时识别数字算是目标检测任务总体上分为两步第一步是检测到数字卡片的位置第二步是对检测到的数字卡片进行分类以确定其是哪个数字。在第一步中主要涉及opencv的相关功能第二步则使用机器学习的方式进行分类。 一、使用opencv捕捉检测数字卡片 重点操作是使用轮廓查找函数获取数字卡片的外轮廓。 在获取轮廓前的图像预处理步骤需要根据自己的实际应用场景进行调整。 import cv2 import imutils# 开启外接摄像头 cap cv2.VideoCapture(1) rectKernel cv2.getStructuringElement(cv2.MORPH_RECT, (11, 11)) while True:flag, frame cap.read()if frame is None:continueif flag is True:frame_copy frame.copy()frame_copy_2 frame.copy()frame_copy_3 frame.copy()# 自动阈值处理frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)frame_ths cv2.threshold(frame_gray, 0, 255, cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)[1]# 闭操作img_closed cv2.morphologyEx(frame_ths, cv2.MORPH_CLOSE, rectKernel)# canny边缘检测这里使用的imutils包也可以使用opencv自带的cannytemp imutils.auto_canny(img_closed)# 轮廓查找contours, hierarchy cv2.findContours(temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)# 计算轮廓for index, c in enumerate(contours):area cv2.contourArea(c)x, y, w, h cv2.boundingRect(c)# 通过判断轮廓的外接矩形面积确定数字卡片的轮廓实现过滤功能if area 10000:# img_out cv2.drawContours(frame_copy, contours, index, (0, 0, 255), 2)img_out cv2.rectangle(frame_copy, (x, y), (x w, y h), (0, 0, 255), 2)cv2.imshow(ths, frame_ths)cv2.imshow(canny, temp)cv2.imshow(closed, img_closed)cv2.imshow(lun kuo, frame_copy)if cv2.waitKey(1) 0xFF 27:cap.release()cv2.destroyAllWindows()break 效果图如下 二、制作数据集 在获取数字卡片轮廓的基础上保存轮廓区域内的图片信息作为基础数据集。为了方便保存可以使用pynput包完成键盘监控功能按下一次回车即拍摄一张。 from pynput.keyboard import Key, Listener import cv2 import imutils# 按键获取数据集 global res_img counts 0 # 图片计数 def on_press(key):global counts# 回车触发if key Key.enter:# 保存图片路径cv2.imwrite(f1/1_{counts}.png, res_img)counts 1print(fSave sucess {counts})# 开启键盘监听 listener Listener(on_presson_press) listener.start()cap cv2.VideoCapture(1) rectKernel cv2.getStructuringElement(cv2.MORPH_RECT, (11, 11)) while True:flag, frame cap.read()if frame is None:continueif flag is True:frame_copy frame.copy()frame_copy_2 frame.copy()# 自动阈值处理frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)frame_ths cv2.threshold(frame_gray, 0, 255, cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)[1]# 闭操作img_closed cv2.morphologyEx(frame_ths, cv2.MORPH_CLOSE, rectKernel)# canny边缘检测temp imutils.auto_canny(img_closed)# 轮廓查找contours, hierarchy cv2.findContours(temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)# 计算轮廓for index, c in enumerate(contours):area cv2.contourArea(c)x, y, w, h cv2.boundingRect(c)if area 10000:img_out cv2.rectangle(frame_copy, (x, y), (x w, y h), (0, 0, 255), 2)# 获取轮廓区域的图像res_img frame_copy_2[y:yh, x:xw]cv2.imshow(lun kuo, frame_copy)if cv2.waitKey(1) 0xFF 27:cap.release()cv2.destroyAllWindows()listener.stop()break 每一个数字都要拍摄多张不同角度的图片这个数据集的拍摄质量将影响最终识别的效果所以拍摄时需要考虑实际的应用场景。 保存后的图片应该如下图所示。 拍摄完之后最好再对数据集进行数据增强以扩充数据集提高模型的训练效果。 使用albumentations包进行数据增强其具体的使用方式可以去Albumentations Documentation查看。 import albumentations as A import cv2 import os# 设置需要使用的数据增强方式 transform A.Compose([A.Resize(height128, width128), # 图片缩放A.Rotate(limit[-70, 70], p0.5), # 随机旋转A.RandomBrightnessContrast(p0.3), # 随机亮度对比度 ])# 遍历每一个数字文件夹 for i in range(1, 9):# 图片计数counts 0img_list os.listdir(fdata/{i})for temp in img_list:image cv2.imread(fdata/{i}/{temp})image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)transformed transform(imageimage)[image]# 保存数据增强后的图片cv2.imwrite(fdata/{i}/{i}_{counts}.png, transformed)counts 1在数据增强后每个数字的数据集为220张。 三、使用sklearn建立机器学习模型实现数字分类 常用的机器学习分类模型有KNN和SVM等可以都试一下选择效果最好的一个。 首先需要对数据集进行预处理 import cv2 import os import numpy as np from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA import joblibX_img [] # 用于存放图片信息 y_img [] # 用于存放标签label信息# 遍历加载数据集 for i in range(1, 9):img_list os.listdir(fdata/{i})for temp in img_list:image cv2.imread(fdata/{i}/{temp})image cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)image cv2.resize(image, (128, 128))X_img.append(image)y_img.append(i)# 转换成二维数组 (1758, 128, 128) (1758, 16384) X_img np.array(X_img).reshape(len(X_img), -1) y_img np.array(y_img) print(X_img.shape) print(y_img.shape)# 划分数据集 X_train, X_test, y_train, y_test train_test_split(X_img, y_img, test_size0.2)# PCA降维 可以降低计算量提高训练速度减小模型大小 transfer PCA(n_components300) X_train transfer.fit_transform(X_train) X_test transfer.transform(X_test) print(X_train.shape) print(X_test.shape)# 保存PCA降维信息后续在实时预测时会使用到该信息 joblib.dump(transfer, pca_model.joblib) 之后建立SVM分类模型并进行训练和测试。 from sklearn.svm import SVC from sklearn.metrics import accuracy_score# 建立svm分类器 svm SVC(kernellinear) # 使用训练数据来训练SVM分类器 svm.fit(X_train, y_train)# 使用测试数据进行预测 y_pred svm.predict(X_test)# 计算准确率 accuracy accuracy_score(y_test, y_pred) # 最终准确率为0.9573863636363636 print(Accuracy:, accuracy) # 保存训练好的模型 joblib.dump(svm, svm_model_PCA300.joblib)最后进行单张图片预测查看预测效果。 import joblib import cv2# 加载SVM分类模型 loaded_svm joblib.load(svm_model_PCA300.joblib) # 加载PCA降维模型 loaded_pca joblib.load(pca_model.joblib) # 读取图片并进行预处理 img cv2.imread(data/4/4_39.png) img cv2.resize(img, (128, 128)) img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) temp img.reshape(1, -1) # PCA降维保证格式与训练数据相同 temp loaded_pca.transform(temp) print(temp.shape) y_new_pred loaded_svm.predict(temp)# 输出预测结果 print(Predictions for new data:, y_new_pred)四、摄像头实时预测 将前面的部分结合起来就可以实现摄像头实时预测的任务了。 import cv2 import imutils from pynput.keyboard import Key, Listener import joblib# 加载SVM和PCA模型 loaded_svm joblib.load(svm_model_PCA300.joblib) loaded_pca joblib.load(pca_model.joblib)# 显示字体配置 font cv2.FONT_HERSHEY_SIMPLEX font_scale 1 font_thickness 2 color (0, 255, 0)cap cv2.VideoCapture(1) rectKernel cv2.getStructuringElement(cv2.MORPH_RECT, (11, 11)) while True:flag, frame cap.read()if frame is None:continueif flag is True:frame_copy frame.copy()frame_copy_2 frame.copy()# 自动阈值处理frame_gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)frame_ths cv2.threshold(frame_gray, 0, 255, cv2.THRESH_BINARY_INV|cv2.THRESH_OTSU)[1]# 闭操作img_closed cv2.morphologyEx(frame_ths, cv2.MORPH_CLOSE, rectKernel)# canny边缘检测temp imutils.auto_canny(img_closed)# 轮廓查找contours, hierarchy cv2.findContours(temp, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)# 计算轮廓for index, c in enumerate(contours):area cv2.contourArea(c)x, y, w, h cv2.boundingRect(c)if area 10000:img_out cv2.rectangle(frame_copy, (x, y), (x w, y h), (0, 0, 255), 2)res_img frame_copy_2[y:yh, x:xw]# 图像预处理img cv2.resize(res_img, (128, 128))img cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)temp img.reshape(1, -1)# PCA降维temp loaded_pca.transform(temp)y_new_pred loaded_svm.predict(temp)cv2.putText(frame_copy, fPred: {y_new_pred}, (int(x), int(y)),font, font_scale, color, font_thickness)cv2.imshow(lun kuo, frame_copy)if cv2.waitKey(1) 0xFF 27:cap.release()cv2.destroyAllWindows()break 五、完整的代码、数据集和训练模型下载地址 蓝奏云下载地址 CSDN下载地址
http://www.pierceye.com/news/19121/

相关文章:

  • 网页制作与网站设计代码邯郸网站建设恋家
  • logo设计制作网站网站仿站大多少钱
  • 网站上的小动画咋做建筑找工作平台
  • 分类网站 phpwordpress添加搜索框
  • 020网站设计wordpress 更改zh_CN.po
  • 200 做京剧主题的专业小说网站购物网站 app
  • 可直接进入正能量网站给宝宝做辅食的网站
  • 做门户网站广告贵州住房建设厅网站
  • 给网站做外链要注意哪些建设网站的内容及实现方式
  • 网站怎么做微信支付宝支付唐山建设网站制作
  • 鸿扬家装网站建设印尼网站建设费用
  • 建设网站弹出后加载不进去做soho建立网站
  • 网站建设公司antnw口碑好网站建设资源
  • 铁岭 建筑公司网站 中企动力建设做网站店铺图片用什么软件
  • 微信菜单栏那些网站怎么做wordpress 首页图没了
  • 怎么用宝塔做网站怎么在word里做网站
  • 有没有专做于投融资的网站无锡百度推广公司哪家好
  • 浙江省网站icp备案多久网站源模板
  • 全球十大咨询公司宁波seo推广怎么做
  • html5 微网站布局企业没有网站怎样做推广方案
  • 建站工具华为wordpress onethink
  • 专门做水生植物销售网站专业的网站设计公司
  • 网站建设综合报告友情链接的概念
  • 农业网站建设模板下载清远建设网站制作
  • 招聘网站做一下要多少钱小学网站源码php
  • 做asp网站需要的实验报告单个人网站可以做论坛吗?
  • 可以做填字游戏的网站如何查看网站备案信息吗
  • 有网站源码如何建站六盘水网站建设求职简历
  • 淄博网站建设卓迅网络网站建设少用控件
  • 网站首页菜单栏模块怎么做的郑州手机网站推广外包