实现了一个自动批改小孩作业的功能,省心了!极客之音

最近一些软件的搜题、智能批改类的功能要下线。

退1024步讲,要不要自己做一个自动批改的功能啊?万一哪天孩子要用呢!

昨晚我做了一个梦,梦见我实现了这个功能,如下图所示:

作对了,能打对号;做错了,能打叉号;没做的,能补上答案。

醒来后,我环顾四周,赶紧再躺下,希望梦还能接上。

其实,搞定两点就成,第一是能识别数字,第二是能切分数字。

首先得能认识5是5,这是前提条件,其次是能找到5、6、7、8这些数字区域的位置。

前者是图像识别,后者是图像切割。

对于图像识别,一般的套路是下面这样的(CNN卷积神经网络):

对于图像切割,一般的套路是下面的这样(横向纵向投影法):

既然思路能走得通,那么咱们先搞图像识别。准备数据->训练数据并保存模型->使用训练模型预测结果。

对于男友,找一个油嘴滑舌的花花公子,不如找一个闷葫芦IT男,亲手把他培养成你期望的样子。

咱们不用什么官方的mnist数据集,因为那是官方的,不是你的,你想要添加±×÷它也没有。

有些通用的数据集,虽然很强大,很方便,但是一旦放到你的场景中,效果一点也不如你的愿。

只有训练自己手里的数据,然后自己用起来才顺手。更重要的是,我们享受创造的过程。

假设,我们只给口算做识别,那么我们需要的图片数据有如下几类:

如果能识别这些,基本上能满足整数的加减乘除运算了。

好了,图片哪里来?!

是啊,图片哪里来?

吓得我差点从梦里醒来,500万都规划好该怎么花了,居然双色球还没有选号!

梦里,一个老者跟我说,图片要自己生成。我问他如何生成,他呵呵一笑,消失在迷雾中……

仔细一想,其实也不难,打字我们总会吧,生成数字无非就是用代码把字写在图片上。

字之所以能展示,主要是因为有字体的支撑。

我们写代码调用这些字体,然后把它打印到一张图片上,是不是就有数据了。

而且这些数据完全是由我们控制的,想多就多,想少就少,想数字、字母、汉字、符号都可以,今天你搞出来数字识别,也就相当于你同时拥有了所有识别!想想还有点小激动呢!

看看,这就是打工和创业的区别。你用别人的数据相当于打工,你是不用操心,但是他给你什么你才有什么。自己造数据就相当于创业,虽然前期辛苦,你可以完全自己把握节奏,需要就加上,没用就去掉。

建一个fonts文件夹,从字体库里拷一部分字体放进来,我这里是拷贝了13种字体文件。

好的,准备工作做好了,肯定很累吧,休息休息休息,一会儿再搞!

代码如下,可以直接运行

核心代码就是画文字。

核心逻辑就是三层循环。

如果代码你运行的没有问题,最终会生成如下结果:

好了,数据准备好了。总共15个文件夹,每个文件夹下对应的各种字体各种倾斜角的字符图片3900个(字符15类×字体13种×角度20个),图片的大小是24×24像素。

有了数据,我们就可以再进行下一步了,下一步是训练和使用数据。

你先看代码,外行感觉好深奥,内行偷偷地笑。

这么多层都是干什么的,有什么用?和衣服一样,肯定是有用的,内衣、衬衣、毛衣、棉衣各有各的用处。

各个职能部门的调查员,搜集和整理某单位区域内的特定数据。我们输入的是一个图像,它是由像素组成的,这就是Rescaling(1./255,input_shape=(24,24,1))Rescaling(1./255,inputshape=(24,24,1))中,input_shape输入形状是24*24像素1个通道(彩色是RGB3个通道)的图像。

卷积层代码中的定义是Conv2D(24,3),意思是用3*3像素的卷积核,去提取24个特征。

我把图转到地图上来,你就能理解了。以我大济南的市中区为例子。

卷积的作用就相当于从地图的某级单位区域中收集多组特定信息。比如以小区为单位去提取住宅数量、车位数量、学校数量、人口数、年收入、学历、年龄等等24个维度的信息。小区相当于卷积核。

提取完成之后是这样的。

第一次卷积之后,我们从市中区得到N个小区的数据。

卷积是可以进行多次的。

比如在小区卷积之后,我们还可在小区的基础上再来一次卷积,在卷积就是街道了。

通过再次以街道为单位卷积小区,我们就从市中区得到了N个街道的数据。

这就是卷积的作用。

通过一次次卷积,就把一张大图,通过特定的方法卷起来,最终留下来的是固定几组有目的数据,以此方便后续的评选决策。这是评选一个区的数据,要是评选济南市,甚至山东省,也是这么卷积。这和现实生活中评选文明城市、经济强省也是一个道理。

说白了就是四舍五入。

池化层干的就是这个事情。池化的代码定义是这样的MaxPooling2D((2,2)),这里是最大值池化。其中(2,2)是池化层的大小,其实就是在2*2的区域内,我们认为这一片可以合成一个单位。

再以地图举个例子,比如下面的16个格子里的数据,是16个街道的学校数量。

为了进一步提高计算效率,少计算一些数据,我们用2*2的池化层进行池化。

池化的方格是4个街道合成1个,新单位学校数量取成员中学校数量最大(也有取最小,取平均多种池化)的那一个。池化之后,16个格子就变为了4个格子,从而减少了数据。

这就是池化层的作用。

弱水三千,只取一瓢。

在这里,它其实是一个分类器。

我们构建它时,代码是这样的Dense(15)。

它所做的事情,不管你前面是怎么样,有多少维度,到我这里我要强行转化为固定的通道。

比如识别字母a~z,我有500个神经元参与判断,但是最终输出结果就是26个通道(a,b,c,……,y,z)。

我们这里总共有15类字符,所以是15个通道。给定一个输入后,输出为每个分类的概率。

注意:上面都是二维的输入,比如24×24,但是全连接层是一维的,所以代码中使用了layers.Flatten()layers.Flatten()layers.Flatten()将二维数据拉平为一维数据([[11,12],[21,22]]->[11,12,21,22])。

对于总体的模型,调用model.summary()打印序列的网络结构如下:

model.compilemodel.compile就是配置模型的几个参数,这个现阶段记住就可以。

执行就完了。

终于到了享受成果的时候了。

我们要同时验证两张图,所以把两张图再组成imgs放到一起,imgs的结构是(2,24,24)。

下面是构建模型,然后加载权重。通过调用predicts=model.predict(imgs)将imgs传递给模型进行预测得出predicts。

predicts的结构是(2,15),数值如下面所示:

然后根据index=np.argmax(predict)找出最大可能的索引。

根据索引找到字符的数值结果是[‘6’,‘8’]。

下面是数据在内存中的监控:

可见,我们的预测是准确的。

下面,我们将要把图片中数字切割出来,进行识别了。

之前我们准备了数据,训练了数据,并且拿图片进行了识别,识别结果正确。

到目前为止,看来问题不大……没有大问题,有问题也大不了。

下面就是把图片进行切割识别了。

下面这张大图片,怎么把它搞一搞,搞成单个小数字的图片。

上帝说要有光,就有了光。

于是,当光投过来时,物体的背后就有了影。

我们就知道了,有影的地方就有东西,没影的地方是空白。

这就是投影。

这个简单的道理放在图像切割上也很实用。

我们把文字的像素做个投影,这样我们就知道某个区间有没有文字,并且知道这个区间文字是否集中。

下面是示意图:

最有效的方法,往往都是用循环实现的。

要计算投影,就得一个像素一个像素地数,查看有几个像素,然后记录下这一行有N个像素点。如此循环。

首先导入包:

如果我们想要从视觉呈现出来怎么处理呢?那可以把它立起来拉直画出来。

我们将上面的原图片命名为question.jpg放到代码同级目录。

上面的操作很有作用,通过二值化,过滤掉杂色,通过反色将黑白对调,原来白纸区域都是255,现在黑色都是0,更利于计算。

计算投影并展示的代码:

从视觉上看,基本上能区分出来哪一行是哪一行。

最有效的方法,往往还得用循环来实现。

上面投影那张图,你如何计算哪里到哪里是一行,虽然肉眼可见,但是计算机需要规则和算法。

通过这项操作,我们就可以获得Y轴上某一行的上下两个边界点的坐标,再结合图片宽度,其实我们也就知道了一行图片的四个顶点的坐标了mark_boxs存下的是[坐,上,右,下]。

如果调用如下代码:

最有效的方法,最终也得用循环来实现。这也是计算机体现它强大的地方。

如果保存下来:

还是循环。横着行我们掌握了,那么针对每一行图片,我们竖着切成三块是不是也会了,一个道理。

需要注意的是,横竖是稍微有区别的,下面是上图的x轴投影。

横着的时候,字与字之间本来就是有空隙的,然后块与块也有空隙,这个空隙的度需要掌握好,以便更好地区分出来是字的间距还是算式块的间距。

幸好,有种方法叫膨胀。

膨胀对人来说不积极,但是对于技术来说,不管是膨胀(dilate),还是腐蚀(erode),只要能达到目的,都是好的。

根据投影裁剪之后如下图所示:

同理,不膨胀可截取单个字符。

这样,这是一块区域的字符。

一行的,一页的,通过循环,都可以截取出来。

有了图片,就可以识别了。有了位置,就可以判断识别结果的关系了。

下面提供一些代码,这些代码不全,有些函数你可能找不到,但是思路可以参考,详细的代码可以去我的github去看。

all_char_imgs这个返回值,里面是上面坐标结构对应位置的图片。img_o就是原图了。

循环,循环,还是TM循环!

对于识别,2.3预测数据已经讲过了,那次是对于2张独立图片的识别,现在我们要对整张大图切分后的小图集合进行识别,这就又用到了循环。

翠花,上代码!

针对这张图,我们来进行裁剪和识别。

看底部的最后一行

循环……

我们获取到了10-2=、8-6=2,也获取到了他们在原图的位置坐标[左,上,右,下],那么怎么把结果反馈到原图上呢?

往往到这里就剩最后一步了。

再来温习一遍需求:作对了,能打对号;做错了,能打叉号;没做的,能补上答案。

实现分两步走:计算(是作对做错还是没错)和反馈(把预期结果写到原图上)。

所以,一切都靠它了。

但是实现起来,居然很繁琐。

得找坐标吧,得计算结果呈现的位置吧,我们还想标记不同的颜色,比如对了是绿色,错了是红色,补齐答案是灰色。

下面代码是在一个图img上,把文本内容text画到(left,top)位置,以特定颜色和大小。

THE END
1.线上批改作业兼职app(分享三款线上一单一结兼职任务app)分享三款一单一结的线上批改作业兼职app软件 近年来,随着线上教育的兴起和发展,越来越多的学生选择在网上完成作业。与此同时,批改作业也成为了一个热门的兼职选择。为了帮助那些想要从事这个领域的人们,我将分享三款一单一结的线上批改作业兼职app软件,以便他们能够更轻松地找到适合自己的平台。 https://www.jianshu.com/p/63fa2950c185
2.网络批改作业兼职APP可靠吗?答案揭晓生活中好多朋友都听说了有线上批改作业兼职app,这种兼职看似好像很简单,方法就是帮一些中小学生批改作业然后获得收入的一种方式,凡事有点文凭的感觉都可以胜任吧,而这种工作,其实就是网上当家教嘛,想在网上当家教很容易,去作业帮或者猿辅导当老师就行了,但不知道他们有没有兼职可以做的。 https://hyangm.com/?id=8644
3.在线作业批改一小学语文小初广东珠海香洲线上教师烟台友旺尚电子科技有限公司现招聘在线作业批改一小学语文小初150元/天,招聘人数:999,上班地点:广东珠海香洲,线上教师,上珠海兼职猫查看详细招聘信息。https://zhuhai.jianzhimao.com/job/RXh5cXFrdDUyYVk9.html
4.下载小猿口算批改作业知识辅导app免费作业批改app口算检查神器app作业答案软件口算训练软件免费作业辅导软件口算批改app作业辅导软件兼职批改作业app家长批改作业app作业改错软件初中作业批改软件免费的作业辅导软件小学批改作业app拼音作业批改app作业辅助软件小学生作业批改软件学前数学app小孩作业辅导软件小学数学题目解答扫一扫app 小猿https://m.liqucn.com/os/ios/rj/986927.wml
5.教学巡查总结(通用15篇)3、作业布置及批改检查情况:学院在各系部检查的基础上抽查各系部5本作业,各系部又分别组织采取教师个人上报批改记录与教研室抽查相结合的方式进行检查。从检查情况来看,老师们均按照教学计划布置了课后作业并进行了批改,大多数系部达到了全批全改,作业量和批改量均符合规定。 https://www.ruiwen.com/zongjie/6415356.html
6.答题神器一扫就出答案的app合集推荐理由:门口易测app是由门口学习网推出的一款教学辅助软件,提供了作业批量批改、教学测评等功能,帮助老师们在手机上快速扫描答题卡,支持选择测验的班级,帮助本作的玩法是看图来猜成语,奖励非常高,答对一道就是一块钱,升级看视频还能增加你的红包金额,秒到微信提现,之前在全民爱答题赚钱的小伙伴一定要来试试https://www.qqtn.com/qqkey/dtsqysjcda/
7.“线上兼职批改作业”警惕新骗局“线上批改作业,日兼职收入可达300—500元,操作简单快捷支付。”近日,放假在家的大学生小高偶然在一个QQ群看到一则兼职信息,里面的内容让他很是心动,结果却险些中了骗子的圈套。 据小高介绍,几天前的一个下午,他在家里上网和同学聊天。突然电脑QQ群里弹出一则“线上批改作业”的兼职信息,上面写的日兼职收入达几https://paper.hehechengde.cn/cdrb/pad/content/202307/06/content_52918.html
8.作业批改项目,30元/时,简单容易上手,适合宝妈大学生收益可观:作业批改项目的薪资待遇是30元/时,你只需要投入少量的时间,就能获得相对较高的收入。 无需额外投资:你不需要购买任何特殊的设备或软件,只需要一台电脑或手机,就能开始工作。 灵活的工作时间:你可以根据自己的时间安排来批改作业,无论是全职还是兼职,都可以根据自己的需要来工作。 https://www.shs.yunxng.com/post/469.html
9.暑假骗局来袭学生们需提高警惕大学生兼职“线上批改作业”被骗500元 刘某是一名在校大学生,暑假期间偶然在QQ群看到了一则“线上批改作业”的兼职信息,上面写的日兼职收入达300—500元。 刘某心想批改作业就能拿到这么多钱,于是便通过群内链接下载了某款软件,在软件中刘某添加了客服。客服先是让刘某填写基本信息,填写完成后要求刘某缴纳500元的https://epaper.lnd.com.cn/lswbepaper/pad/con/202308/09/content_201595.html
10.大学生线上批改作业兼职app有哪些?帮学生答题赚钱每题8元真的吗小斐在以前读大学的时候,由于家里的经济状况不怎么好,就想着做一些兼职来赚钱,当时就有做过批改作业的兼职。 其中也找过挺多的平台,比较适合大学生去操作的,小斐做过有两个,下面就和大家分享一下吧。 1、线上批改作业兼职作业帮 作业帮这款软件是小斐接触过,比较不错的APP。下载完这款软件注册成为老师之后,https://www.mengfeizt.com/syzs/921.html
11.公司员工作业管理制度(通用12篇)公司员工作业管理制度(通用12篇) 在我们平凡的日常里,我们可以接触到制度的地方越来越多,制度是指要求大家共同遵守的办事规程或行动准则。拟定制度的注意事项有许多,你确定会写吗?以下是小编收集整理的公司员工作业管理制度,希望能够帮助到大家。 一、作业管理制度: https://www.yjbys.com/hr/yuangongguanli/2750217.html
12.名师工作室学习工作总结通用31篇现将工作室一年来的工作总结如下: 一、综合名师工作室基本情况。 本工作室共有成员28人,其中核心成员13人,共覆盖全区初中、小学15个学校,包括音乐、体育、美术三个学科,其中音乐教师13人,核心成员4人;体育教师8人,核心成员5人,美术教师7人,核心成员4人。一年来,工作室全体成员勤奋学习,刻苦钻研,锐意进取,克难https://www.hunwen.com/work/xuexizongjie/1028/1028832.html
13.城关三小学校管理制度汇编云梦县城关镇第三小学5.作业批改常规49 6.课堂常规50 7.英语课堂常规52 8.科学课堂常规54 9.道德与法治课堂常规57 10.体育课堂常规59 11.音乐课堂常规61 12.美术课堂常规62 13.信息技术课堂常规63 14.学生网络安全及防护常识64 四、常规工作管理制度 1.教职工考勤制度(试行)65 https://yun.xgjy.cn/index.php?r=space/school/theme/content/view&id=127431
14.揭秘批改作业日赚数百元骗局:骗取宝妈和大学生加入比如有一道题,考发票的代码,让王女士一头雾水。而且按照要求即使通过了测试,需提交手持身份证的照片,这让王女士感觉有泄露隐私的危险。无奈之下,她只好询问刚添加微信的那个人。 对此,对方让王女士从事其他兼职,称该兼职是高收益项目,比批改作业还赚钱,而且现在加入,还能享受多重权益。 https://weibo.com/ttarticle/p/show?id=2309405054232436015693
15.助教能批改作业吗?2011年11月28日至12月9日,联合国气候变化大会在南非东部海边城市德班召开,大会重点关注了二氧化碳排放。完成下题。 2009年我国政府提出,到2020年单位GDP二氧化碳的排放量比2005年下降40%-50%。下列措施中有助于实现该目标的有 ( ) ①推广太阳能、核能 ②降低非化石能源占一次性能源消费的比重 ③扩大森林面积 ④https://www.shuashuati.com/ti/8fe5008e2cae463ebcbce161406e8baf.html
16.在线作业系统,基于微信公众号H5的作业管理系统,答题,作业,批改.软件在线做作业,作为老师教学 的辅助工具,为学生,老师,家长三者提供一个联系平台。 在线作业系统微信作业系统微信作业软件 服务时长: 一年 服务范围: 全国 服务方式: 线上 交付方式: saas 商品描述 功能列表 端口 功能模块 功能明细 说明 作业系统后台管理 https://www.weisuyun.com/item/2664.html
17.临沂汤头小学教师综合评估实施方案为全面贯彻党的教育方针,有效推进素质教育,建立和完善教育教学管理工作的运行机制、竞争机制,调动广大教师工作的积极性、主动性,不断提高教育教学质量,努力实现“我们一起成长奠基幸福未来”的办学追求,同时为教师评优树先、职称评聘、绩效工资发放等提供依据。根据《义务教育法》、《教师法》、《山东省义务教育条例》http://www.hedong.cn/info/6029/123026.htm
18.小学线上教学一周总结范文推荐33篇作业是检测学生课堂学习效果的一种重要渠道,是课堂教学的升华。通过批改作业,老师不仅可以了解学生对课堂的掌握情况,还可以反思自己课堂教学中的薄弱环节,因此作业批改与反馈环节尤为重要。但线上教学的`一个难点就是,无法掌控所有的孩子,对于一些不按时交作业的学生,除了与家长及时沟通,其他并与他法,因此,我也在探索http://m.yueduku.com/work/jiaoxuegongzuozongjie/890/890025.html
19.学习App排行榜华为手机学习app推荐2、检查作业方便:学习遇到难题、家长不知作业对错时,来快对一键检查,智能批改,对错解析应有尽有。 【学习计划】你可以设置经典诗词、文库分类和诗单收藏变成自己的学习计划,每天有计划的打卡学习。 【一赚钱,用户能从中体验到成语学习的乐趣,并且可以掌握许多词汇,每完成一关就可以获取奖励,奖励可以提现。https://www.diandian.com/phb/2058/
20.副业赚钱的路子有哪些?五个最新靠谱副业项目推荐兼职副业拉新这个项目类似数据标注,就是要你用手机或者电脑在线上给小学生批改作业。很简单的,对这答案改就行了,做的快的一个小时能赚个30多,慢的也能有20元左右。在平台上每周一提现,没有金额限制,几秒到账。平时闲着没事,做做很快的,一会儿功夫生活费就赚出来了。 https://m.163.com/dy/article/I6NB8U580553FLHA.html
21.微信教师布置作业批改作业小程序.rar资源资源浏览查阅126次。微信教师布置作业批改作业小程序.rar,这是一个用微信写的教师专用程序,布置作业批改作业小程序,主界面如下图左图所示,这也是本小程序的功能概括,主要就三个功能:我的作业、布置作业、批改作业,教师和学生登录后,会只显示自己所属的操作。若认真策https://download.csdn.net/download/weixin_39841882/11319498