对于在线答题系统有很多种不同的定义。 一种是人工对计算机的题目解答,另外一种就是答案库的自动解答。我们现在介绍的就是利用自身的答案库进行自动答题的在线答题系统的技术原理介绍。

在答题平台中有大量的识别图片的答案,这是根据计算机的识别容量,通过对于数字,字母,数字字母组合,通过人工识别的方式,组建了答案库,这样只要在数据接口接入了题目,题库就会自动的出现对应的答案进行答案的输入。

接入说明如下:

上传题目图片返回结果.

请求URL

http://www.dati8.com/create.aspx

支持格式

application/json

HTTP请求方式

POST

请求参数

  必选 类型 说明
username true string 用户名。
password true string 用户密码(MD5加密后取后16位作为密码(小写字母))
typeid true int 题目类型
timeout false int 任务超时时间,默认与最小值为60秒。
softid true int 软件ID,开发者可自行申请。
softkey true string 软件KEY,开发者可自行申请。
image true byte 只支持原始图二进制数据。

注意事项

1.开发时需要修改HTTP请求默认超时时间,具体数值需要大于任务超时的timeout参数。

2.特殊题如:中文、选择、类型较难完成的请把任务超时(timeout参数)设置大于100秒,以便满足任务重新分配机制。

3.网络环境中HTTP劫持会影响使用结果。

4.任务执行中切勿断拨或切断网络,否则无法接收结果。

返回结果 <div "="" style="margin: 0px; padding: 0px; list-style-type: none; line-height: 21.6000003814697px; font-family: helvetica, arial, verdana, sans-serif; font-size: 15px;">

正确返回

JSON:{"Result":"答题结果","id":"题目Id(报错使用)"}

错误返回

文本消息

开发建议

推荐各开发者JSON方式为数据返回,为了代码运行更加健壮数据返回后先判断Result和Id两个分支是否存在,如果返回数据没有这两个分支就完全可以当错误返回处理。

处理第一步统计图片颜色分布,颜色占有率低的判定为背景噪音。 
     由于背景噪音和前景色区分并不明显,尝试了很多种取景方法都不能很好去除背景噪音,最终放弃了这种方法。 事后在网上稍微查了下,最近比较流行计算灰度后设定一个阈值进行二值化。其实所谓的灰度图片原理是根据人眼对色彩敏感度取了权值,这个权值对计算机来说没有什么意义。稍微想一下就可以发现,这两个过程完全可以合并。于是乎我一步完成了去背景噪音和二值化。阈值设置为RGB三分量之和到500。结果非常令人满意。

处理第二步,制作字符样本。
      样本对于计算机来说是非常重要的,因为计算机很难有逻辑思维,就算有逻辑思维也要经过长期训练才能让你满意。所以要用事先制作好的样本进行比较。如果你仔细观察过这些验证码会发现一个bug,几乎大部分的验证码都是使用同样的字体,于是乎就人工制作了一套字体的样本。由于上一步已经有去除背景噪音的结果,可以直接利用。制作样本这一步有点简单枯燥,还需要细心。可能因为你的一个不细心会导致某个符号的识别率偏低。在这500个样本中,只发现了31个字符。幸亏是某部门的某人员还考虑到了易错的字符,例如,1和I,0和O等。要不然这个某部门要背负更多的骂名。

处理第三步,匹配 
      单个匹配用了最简单最原始的二值比较,不过匹配的是匹配率而不是匹配数。我定义了相关的计分原则。大原则是“该有的有了加分,该有的没了减分,不该有的有了适度减分,可达区域外的不算分”。 由于一些符号的部分区域匹配结果跟另一些符号的完整匹配结果相似,需要把单个匹配在一个扩大的区域内择优。在一定的范围内,找到一个最佳匹配,这个最佳匹配就是当前位置对应的符号。 完成了一次最佳匹配,可以把匹配位置向右推进一大步,若找不到合适的最佳匹配就向右推进一小步。

处理第四步,优化和调整 
       任何一个算法都是需要优化和调整的。现在要找到最佳参数配置和最佳代码组织。这一步往往是需要花费最多时间和精力的。

处理第五步,验证结果 
        这一步呢,纯人力验证结果,统计出正确率。

在线答题系统的技术原理介绍相关推荐

  1. 3D/VR/AR简易技术原理介绍

    3D/VR/AR简易技术原理介绍 3D模型的生成流程 1.信息的采集 物体图片的采集,同一平面上需要360度全方位角度采集 2.查找特征点 找到图片的特征点,作为物体的识别参考,如下图所示: 参考算法 ...

  2. 网络时间同步(卫星时钟同步系统)技术原理介绍

    网络时间同步(卫星时钟同步系统)技术原理介绍 网络时间同步(卫星时钟同步系统)技术原理介绍 1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的"整点开拍".& ...

  3. GPU加速技术原理介绍

    GPU加速技术&原理介绍 1.GPU&CPU GPU英文全称Graphic Processing Unit,中文翻译为"图形处理器".与CPU不同,GPU是专门为处 ...

  4. 液晶常用接口“LVDS、TTL、RSDS、TMDS”技术原理介绍

    液晶常用接口"LVDS.TTL.RSDS.TMDS"技术原理介绍 1:Lvds Low-Voltage Differential Signaling 低压差分信号 1994年由美国 ...

  5. 北斗同步时钟(GPS授时系统)技术原理阐述

    北斗同步时钟(GPS授时系统)技术原理阐述 北斗同步时钟(GPS授时系统)技术原理阐述 1.有关时间的一些基本概念: (1).时间(周期)与频率: 互为倒数关系,两者密不可分,时间标准的基础是频率标准 ...

  6. (3)HDFS原理与高可用技术原理介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.HDFS简 ...

  7. 知识图谱技术原理介绍

    作者:王昊奋 近两年来,随着Linking Open Data[1] 等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布.互联网正从仅包含网页和网页之间超链接的文档万维网(Docume ...

  8. 智能配网方案 Airkiss 技术原理介绍及应用

    写在前面 站在巨人的肩膀上,可以看得更远 一.什么是Air Kiss 可以说AirKiss 是微信硬件平台提供的一种WIFI硬件设备快速配置连接网络的技术,是一种创新性的信息传递技术.通过该技术可以便 ...

  9. 计算机网络的时间,计算机网络时间同步技术原理介绍

    1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的"整点开拍"."秒杀"."Leader选举",通信行业的" ...

最新文章

  1. python完美立方数_Python练习实例3 | 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?...
  2. Android 启动过程详解
  3. 【CodeForces - 508B】Anton and currency you all know (思维贪心)
  4. Serverless 实战 —— 函数计算 + Typescript 实践
  5. 格力发布公告称双11期间让利30亿元打击低质伪劣产品
  6. Thinkphp开发时关闭缓存的方法
  7. [POJ1840 Eqs]
  8. Visual Studio 2012 Ultimate旗舰版序列号
  9. 西门子的十一位CEO
  10. 【深度】注册测绘师执业制度实施的现状分析
  11. 互联网周刊_11年第15期(115网盘下载)
  12. 研究生从事学术研究的赫曼法则(The Laws of Herman)。
  13. MySQL报错: Incorrect string value: '\xE5\x85\xA8\xE7\x90\x83...' for column 'cname' at row 1
  14. vs 2010旗舰版问题
  15. 动态规划:钢条切割问题
  16. 【兴趣】日语(2021年3月24~)
  17. 解决tomcat正常启动但是对应的网页却无法访问
  18. 【锁机制】MySQL锁机制
  19. 使用 Nginx 如何部署 web 项目
  20. IQ 域名被删除事件 的前因后果

热门文章

  1. python 学习爬取链家武汉二手房市场成交记录
  2. Keras,今天7岁啦
  3. 视频垂直翻转播放的效果,如何同时制作多个视频
  4. Android Studio(AS)连接mumu模拟器的方法
  5. TYPEC转HDMI+PD3.0 分辨率4K60Hz拓展坞方案:CS5269
  6. 【python】7-10 将输入的字符串中的字符头尾间隔输出(PTA)
  7. WinSock网络编程基础(2)客户端
  8. 如何打造数据化决策管理
  9. 百度2015校园招聘笔试题
  10. WPF界面MahApps.Metro之应用