我的AI之路(8)--体验用OpenCV 3的ANN进行手写数字识别及解决遇到的问题

OpenCV3 计算机视觉 Python语言实现 用人工神经网络进行手写数字识别 本案例在运行代码时会出现各种错误代码,代码列表如下: 错误代码: 1.TypeError: integer argument expected, got float 解决方式:原因是因为cv2.resize()函数内的参数是要求为整数,而python3中的'/'(除法),最后的结果自动转为浮点数,所以使用'//'运算,或是将返回值前面加“int”,如return (int(x-padding... 阅读详情

      花了几周的晚上和周末时间断断续续看完了<<Learning OpenCV3 Computer Vision with Python Second Edition>>,把书上的示例代码全部拷贝到PyCharm里整理修改跑了一遍,收获不少,但是呢,不得不说这书的作者和编辑都是丢三落四不大严谨的人敲打,里面文字错误、代码错误不少啊(当然,作者是基于Python 2写的代码,所以一些API和module定义在Python 3下会报错,这些不算作者的错误大笑,读者自己找Python 3对应的API和定义做修改就是),好在我前面看过关于N本ML、TF之类的书了,自己知道那些错误是怎么回事该怎么修改。

       看到最后关于OpenCV ANN部分饶有兴趣想看看OpenCV的NN实现如何,于是跑那个例子:用MNIST数据库训练模型然后识别手写数字,书上提示去http://yann.lecun.com/exdb/mnist/下载数据库,结果这个官方网上是把训练和测试数据分开存放的,根本不是把所有数据放到一个大泡菜缸里(写成一个pkl包)大笑,而作者给出的示例代码却是:

       def load_data():
            mnist = gzip.open('./data/mnist.pkl.gz', 'rb')
            training_data, classification_data, test_data =
            cPickle.load(mnist)
            mnist.close()

            return (training_data, classification_data, test_data)

 

   这种读取数据的方式非常简洁,问题是你得找到mnist.pkl.gz这个数据库文件,网上搜到了一个 http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist.pkl.gz 可以下载,然后把所有所有代码整理到PyCharm里,因为我使用的是Python3,需要把import cPickle改成import pickle,并修改上面代码中的cPickle.load为pick.load,然后
一运行,报错:

       

       这里错误 pickle.load(mnist) UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128) 说明pickle.load()在读书数据库数据时出错了,编码格式不对,由于Python 3的默认字符集已经是utf-8而不是Python 2使用的ascii,于是试着在代码文件的开头加

        # -*- coding: iso8859-1 -*-

       或

       # encoding=iso8859-1

      结果还是报同样的错误,怎么回事呢?应该是pickle.load()默认使用了ascii,进入源码文件pickle.py果然看到:

 

def _load(file, *, fix_imports=True, encoding="ASCII", errors="strict"):
    return _Unpickler(file, fix_imports=fix_imports,
                     encoding=encoding, errors=errors).load()

        于是把 pickle.load(mnist) 改成 pickle.load(mnist,encoding='iso-8859-1'),再运行,果然OK 了得意

      

 

 

我的AI之路(1)--前言

我的AI之路(2)--安装Fedora 28

我的AI之路(3)--安装Anaconda3 和Caffe

我的AI之路(4)--在Anaconda3 下安装Tensorflow 1.8

我的AI之路(5)--如何选择和正确安装跟Tensorflow版本对应的CUDA和cuDNN版本

我的AI之路(6)--在Anaconda3 下安装PyTorch

我的AI之路(7)--安装OpenCV3_Python 3.4.1 + Contrib以及PyCharm

我的AI之路(8)--体验用OpenCV 3的ANN进行手写数字识别及解决遇到的问题

我的AI之路(9)--使用scikit-learn

我的AI之路(10)--如何在Linux下安装CUDA和CUDNN

我的AI之路(11)--如何解决在Linux下编译OpenCV3时出现的多个错误

我的AI之路(12)--如何配置Caffe使用GPU计算并解决编译中出现的若干错误

我的AI之路(13)--解决编译gcc/g++源码过程中出现的错误

我的AI之路(14)--Caffe example:使用MNIST数据集训练和测试LeNet-5模型

我的AI之路(15)--Linux下编译OpenCV3的最新版OpenCV3.4.1及错误解决

我的AI之路(16)--云服务器上安装和调试基于Tensorflow 1.10.1的训练环境

我的AI之路(16)--云服务器上安装和调试基于Tensorflow 1.10.1的训练环境

我的AI之路(17)--Tensorflow和Caffe的API及Guide

我的AI之路(18)--Tensorflow的模型安装之object_detection

我的AI之路(19)--如何在Windows下安装pycocotools PythonAPI

我的AI之路(20)--用Tensorflow object_detection跑raccoon数据集

我的AI之路(21)--用Tensorflow object_detection跑PASCAL VOC 2012数据集

我的AI之路(22)--使用Object_Detection_Tensorflow_API

我的AI之路(23)--在Windows下编译Bazel和使用Bazel编译tensorflow

 

OpenCV 神经网络 简要介绍OpenCV的人工神经网络是机器学习算法中的其中一种,使用的是多层感知器(Multi- Layer Perception,MLP),是常见的一种ANN算法。MLP算法一般包括三层,分别是一个输入层,一个输出层和一个或多个隐藏层的神经网络组成。每一层由一个或多个神经元互相连结。一个“神经元”的输出就可以是另一个“神经元”的输入。例如,下图是一个简单3层的神经元感知器:(3个输入,2个输出以及包 阅读详情

相关推荐

QT+OpenCV+ANN_MLP实现简单车牌识别源码

QT+OpenCV+ANN_MLP实现简单车牌识别源码,包括训练数字和字母的代码及样本

OpenCV笔记(4)实现神经网络(ANN)

1.神经网络 神经网络最重要的功能是分类,前面用opencv实现的SVM也是分类器。 分类器的输入是数值向量,输出是数值。目标是让正确分类的比例尽可能高。一般我们需要建立训练样本,标记好分类结果,用这些标记好的数据去训练分类器,训练好的分类器就可以在新来的特征向量上预测。 下面是一些样本: 若是将其分开,只需要画出一条直线,如...

好习惯成就伟大 1708

文本检测_opencv_DNN

基于深度学习的文本检测,不是文本识别! https://blog.youkuaiyun.com/LuohenYJ

opencv(python)使用ann神经网络识别手写数字

opencv中也提供了一种类似于Keras的神经网络,即为ann,这种神经网络的使用方法与Keras的很接近。 关于mnist数据的解析,读者可以自己从网上下载相应压缩文件,用python自己编写解析代码,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块。 本次代码运行环境为: python 3.6.8 opencv-python 4.4.0.46 opencv-contrib-python 4.4.0.46 下面的代码为使用ann进行模型的训练: from keras

Keras深度学习 2万+

【慧创近红外脑功能成像(fNIRS)】经皮耳迷走神经电刺激联用应用集锦

在这项双盲、随机、对照的试验中,将40例亚急性脑卒中患者随机分为两组:VNS组(VG)在TOT期间接受taVNS治疗,假手术组(SG)在TOT期间接受假taVNS治疗。此外,fNIRS显示,与SG相比,VG的对侧前额叶皮层和同侧感觉运动皮层的激活增加。然而,HRV组间无显著差异。结合taVNS技术,不仅能够探索taVNS对大脑功能产生的具体影响,还能通过精细调整刺激参数,进一步优化治疗效果,使之更加精准高效。这种治疗模式的创新,有望显著提升患者的治疗效果,改善其生活质量,为神经系统疾病的康复开辟新途径。

m0_75194604的博客 1140

蓝牙钥匙 第48次 全面解析防中继攻击保护:从原理到防护技术实践

中继攻击已成为物联网安全领域的重要威胁,2023年全球相关损失达数十亿美元。本文深入分析中继攻击原理,揭示其通过转发设备延长通信距离而不破解加密的特点。重点探讨两种关键防护技术:基于距离测量的方法(包括UWB超宽带技术)可精确检测异常距离;基于时间戳的挑战-响应机制则通过严格时间窗口识别中继延迟。文章还提出多层次防护体系构想,结合AI异常检测和量子安全协议等前沿技术。研究显示,集成多种防护技术并遵循行业标准是应对中继攻击的有效途径,为物联网设备安全提供重要参考。

IT深耕十余载,大道之简 1830

C++版OpenCV使用神经网络ANN进行mnist手写数字识别

说起神经网络,很多人以为只有Keras或者tensorflow才支持,其实OpenCV也支持神经网络的,下面就使用OpenCV的神经网络进行手写数字识别,训练10次的准确率就高达96%。 环境准备: vs2015 OpenCV4.5.0 以下为ANN神经网络的训练代码: #include<iostream> #include<opencv.hpp> #include <string> #include <fstream> using namespace std

Keras深度学习 8万+

ChatGPT Plus账号被降智?3个实用检测方法+终极解决方案(附国内支付指南)

本文针对ChatGPT Plus账号性能下降问题,提供了3个科学检测方法和系统级解决方案。通过详细分析症状、专业诊断技巧和优化策略,帮助用户有效应对GPT-4o等高级功能失效、响应质量下降等问题,特别包含国内用户关心的支付方案和账号管理建议。

weixin_42639633的博客 473

OpenCV实现手写体数字训练与识别

OpenCV实现手写体数字训练与识别机器学习(ML)是OpenCV模块之一,对于常见的数字识别与英文字母识别都可以做到很高的识别率,完成这类应用的主要思想与方法是首选对训练图像数据完成预处理与特征提取,根据特征数据组成符合OpenCV要求的训练数据集与标记集,然后通过机器学习的KNN、SVM、ANN等方法完成训练,训练结束之后保存训练结果,对待检测的图像完成分割、二值化、ROI等操作之后,加载训练好

关注微信公众号【OpenCV学堂】 1万+

sentinel——SLC数据下载、DEM数据下载拼接、精密轨道数据下载方法

Sentinel——SLC数据下载、DEM数据下载、精密轨道数据下载方法 SLC数据下载 网址:https://search.asf.alaska.edu DEM数据下载 1 手动下载 http://srtm.csi.cgiar.org/srtmdata/ 3.在SARscape中使用下载好的DEM 将下载好的DEM放在软件默认下载DEM路径下(默认路径是C:\Users<用户名&g...

u011322358的博客 2万+

同济土木非0基础三个月跨考复旦计算机攻略

跨考cs攻略前言我cs专业课如何复习How to start from zero简历其他复试 前言 建议多去工地/化工厂涡轮增压一下 我 同济土木gpa 3.2/5 挂科 * n 辣鸡项目 * n (padding 简历) 21考复旦计算机专硕 10月-12月 学习+复习 总分392 政治 68;背肖4即可 英语二 78 裸考,(高考英语140+);做点真题,建议据自己情况准备 数学二 142 ;(高考数学接近满分);做真题+模拟题,每天写一张试卷 专业课 104 ,考试生病了,下文展开。 cs专业课

piglake的博客 7238

linux手写数字识别opencv,基于OpenCV实现手写体数字训练与识别

原标题:基于OpenCV实现手写体数字训练与识别OpenCV实现手写体数字训练与识别机器学习(ML)是OpenCV模块之一,对于常见的数字识别与英文字母识别都可以做到很高的识别率,完成这类应用的主要思想与方法是首选对训练图像数据完成预处理与特征提取,根据特征数据组成符合OpenCV要求的训练数据集与标记集,然后通过机器学习的KNN、SVM、ANN等方法完成训练,训练结束之后保存训练结果,对待检测的...

weixin_39767386的博客 480

VS2022下C# WPF项目一键打包成独立exe的完整指南

本文提供了一份在Visual Studio 2022中将C# WPF项目一键打包成独立可执行exe文件的完整指南。通过配置项目属性、启用单文件发布和自包含模式,开发者无需依赖第三方工具,即可生成可在未安装.NET运行时的电脑上直接运行的独立程序,极大简化了桌面应用的分发流程。

weixin_28831399的博客 672

使用OpenCV的ANN_MLP神经网络实现数字识别

前言 1.OpenCV中的ML模块实现了前馈人工神经网络,具体地说是多层感知器(MLP),是最常用的神经网络类型。 MLP由输入层,输出层和一个或多个隐藏层组成。 MLP的每一层包括一个或多个与来自上一层和下一层的神经元定向连接的神经元。关于ANN_MLP的具体说明可以看opencv的官方文档。 2.我这里要是使用ANN_MLP神经网络来实现0到9的印刷数字识别,使用的OpenCV版本是3.30,...

知来者逆的博客 4893

分数间隔均衡器的基本原理及应用(使用Matlab)

通过对接收信号进行加权求和,分数间隔均衡器可以抵消信号在传输过程中受到的频率响应失真。Matlab提供了丰富的工具和函数,可以方便地实现分数间隔均衡器,并进行性能评估。分数间隔均衡器(Fractional Interval Equalizer)是一种数字信号处理技术,用于均衡带通信道中的信号失真。分数间隔均衡器的基本原理是通过对接收信号进行加权求和,以抵消信号在传输过程中受到的频率响应失真。分数间隔均衡器在通信系统中具有广泛的应用。最后,我们通过比较均衡后的信号和发送数据的阈值来进行解调,并计算误码率。

2301_79325657的博客 680

LE AUDIO---Volume Control Service

LE AUDIO---Volume Control Service

weixin_42162924的博客 163

opencv实现ann mlp(多层感知机)识别手写数字 二

看了文档自带的neuron network的例子。马上来实现一下自己的。 素材选取vs2019 opencv410 c++ ,mnist_train.csv(60000个手写数字)、mnist_test_10.csv(10个手写字符)。 先做个简单版本,所以流程很简单:读取数据(训练数据和标签),设计模型,训练,用模型预测,保存和读取模型。 读取数据 mnist数据集的图片是2828的。这也决定mlp第一层有784个神经元。 解析csv文件中的图片。读取10000个手写字符,一个字符占据向量的一行。最后得

yijiangyi的博客 689

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于OpenCV实现手写体数字训练与识别

基于OpenCV实现手写体数字训练与识别 原创 2017-09-11 gloomyfish OpenCV学堂 OpenCV实现手写体数字训练与识别 机器学习(ML)是OpenCV模块之一,对于常见的数字识别与英文字母识别都可以做到很高的识别率,完成这类应用的主要思想与方法是首选对训练图像数据完成预处理与特征提取,根据特征数据组成符合OpenCV要求的训练数据集与标记集,然后通

maweifei的博客 4298

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OpenCV-6-ANN_MLP神经网络模型训练

OpenCV-6-ANN_MLP神经网络模型训练 文章目录OpenCV-6-ANN_MLP神经网络模型训练@[toc]ANN_MLP神经网络理论介绍神经网络介绍MLP多层感知器神经网络理论参考训练一个ANN_MLP模型训练代码测试代码后续优化代码代码参考小结一下 使用语言:Java 1.8 操作系统:windows x64 OpenCV:4.1.1 ANN_MLP神经网络理论介绍 神经网络介...

程序员的日常学习 4436

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

opencv神经网络库之SVM和ANN_MLP的使用【 OpenCV 技能树评测】

opencv中SVM和MLP的使用

留缘的博客 2347

基于人工神经网络识别手写数字

人工神经网络

zengdanli的博客 1165

opencv实现ann mlp(多层感知机)识别手写数字 一

突然想用opencv实现一下mlp,说动手就动手。 首先查看了opencv410版本自带的mlp的例子。neural_network。这个例子就是告诉ml模块的可以实现mlp。这伞兵例子不知谁加的,可以说屁用没有。 注释过的例子代码如下 #include <opencv2/ml/ml.hpp> using namespace std; using namespace cv; using namespace cv::ml; int main() { //create random tra

yijiangyi的博客 721

py4CV例子3Mnist识别和ANN

1、什么是mnist数据集; mnist是一个被重度使用的数字手写字符集。它来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普...

weixin_34218890的博客 141

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码、论文)

摘要 车牌识别系统作为智能交通系统的一个重要组成部分,在交通监控中占有很重要的地位。车牌识别系统可分为图像预处理、车牌定位、字符识别3个部分,其中车牌定位作为获得车辆牌照图像的重要步骤,是后续的字符识别部分能否正确识别车牌字符的关键环节。车牌定位系统实现对车辆牌照进行定位的功能,即从包含整个车辆的图像中找到车牌区域的位置,并对该车牌区域进行定位显示,将定位信息提供给字符识别部分。 本系统除了实现了车牌识别还实现了人脸识别、车辆信息和用户信息的管理。对于陌生人的管理,整体架构是SpringBoot + Ope

XiaoLin 5658
上一篇: 我的AI之路(6)--安装PyTorch
下一篇: 我的AI之路(9)--使用scikit-learn
Arnold-FY-Chen
博客等级 码龄19年 925粉丝 204原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值