自动化编程 ai

With the advent of COVID-19, remote learning has blossomed. Schools and universities may have been shut down but they switched to applications like Microsoft Teams to finish their academic years. However, there has been no solution to examinations. Some have changed it to an assignment form where students can just copy and paste from the internet, while some have just canceled them outright. If the way we are living is to be the new norm there needs to be some solution.

随着COVID-19的出现,远程学习蓬勃发展。 学校和大学可能已经关闭,但他们切换到Microsoft Teams之类的应用程序来完成他们的学业。 但是,目前还没有解决方案。 有些人将其更改为作业表格,学生可以在网上复制和粘贴内容,而有些人则完全取消了他们的作业。 如果我们的生活方式成为新准则,则需要一些解决方案。

ETS conducts TOEFL and GRE among others is allowing students to give exams from home where they will be monitored by a proctor for the whole duration of the exam. Implementing this scheme at a large scale will not be plausible due to the workforce required. So let’s create an AI in python which can monitor the students using the webcam and laptop microphone itself and would enable the teachers to monitor multiple students at once. The entire code can be found on my Github repo.

ETS进行TOEFL和GRE等活动,允许学生在家中进行考试,在整个考试过程中,督导员将对其进行监督。 由于需要劳动力,因此大规模实施该计划是不合理的。 因此,让我们用python创建一个AI,该AI可以使用网络摄像头和笔记本电脑麦克风本身监视学生,并使教师能够一次监视多个学生。 完整的代码可以在我的Github存储库中找到。

The AI will have four vision-based capabilities which are combined using multithreading so that they can work together:

AI将具有四种基于视觉的功能,这些功能使用多线程进行了组合,以便它们可以协同工作:

  1. Gaze tracking视线追踪
  2. Mouth open or close嘴张开或闭合
  3. Person Counting人数统计
  4. Mobile phone detection手机检测

Apart from this, the speech from the microphone will be recorded, converted to text, and will also be compared to the text of the question paper to report the number of common words spoken by the test-taker.

除此之外,麦克风的语音将被记录,转换为文本,并且还将与试卷的文本进行比较,以报告考生说出的常用单词的数量。

要求 (Requirements)

  • OpenCVOpenCV
  • DlibDlib
  • TensorFlowTensorFlow
  • Speech_recognition语音识别
  • PyAudioPyAudio的
  • NLTKNLTK

基于视觉的技术 (Vision-Based Techniques)

视线追踪 (Gaze Tracking)

Photo by S N Pattenden on Unsplash
SN Pattenden在Unsplash上拍摄的照片

We shall aim to track the eyeballs of the test-taker and report if he is looking to the left, right, or up which he might do to have a glance at a notebook or signal to someone. This can be done using Dlib’s facial keypoint detector and OpenCV for further image processing. I have already written an article on how to do real-time eye-tracking which explains in detail the methods used that will be used later on.

我们将着眼于跟踪考生的眼球,并报告他是否向左,向右或向上看,以便看一眼笔记本或向某人发出信号。 可以使用Dlib的面部关键点检测器和OpenCV进行进一步的图像处理。 我已经写了一篇有关如何进行实时眼动追踪的文章,其中详细解释了稍后将使用的方法。

口部检测 (Mouth Detection)

Mouth Tracking Results
口腔追踪结果

This is very similar to eye detection. Dlib’s facial keypoints are again used for this task and the test-taker is required to sit straight (as he would in the test) and the distance between the lips keypoints (5 outer pairs and 3 inner pairs) is noted for 100 frames and averaged.

这与眼睛检测非常相似。 将Dlib的面部关键点再次用于此任务,并要求测试者坐直(就像他在测试中一样),并记录嘴唇关键点之间的距离(5个外部对和3个内部对)100帧并取平均值。

If the user opens his/her mouth the distances between the points increases and if the increase in distance is more than a certain value for at least three outer pairs and two inner pairs then infringement is reported.

如果使用者张开嘴,两点之间的距离会增加,并且如果至少三对外线对和两对内线对的距离增加大于某个特定值,则会报告侵权。

人数统计和手机检测 (Person Counting and Mobile Phone Detection)

I used the pre-trained weights of YOLOv3 trained on the COCO dataset to detect people and mobile phones in the webcam feed. For an in-depth explanation on how to use YOLOv3 in TensorFlow2 and to perform people counting you can refer to this article:

我使用在COCO数据集上训练的YOLOv3的预训练权重来检测网络摄像头提要中的人和手机。 有关如何在TensorFlow2中使用YOLOv3以及进行人数统计的深入说明,请参考本文:

If the count is not equal to an alarm can be raised. The index of mobile phones in the COCO dataset is 67 so we need to check if any class index is equal to that then we can report a mobile phone as well.

如果计数不等于,则可以发出警报。 COCO数据集中的手机索引为67,因此我们需要检查是否有任何类索引等于该类索引,然后我们才能报告手机。

使用多线程结合 (Combining using Multithreading)

Let’s dive into the code now. As eye-tracking and mouth detection are based on dlib we can create a single thread for them and another thread can be used for the YOLOv3 tasks: people counting and mobile detection.

现在让我们深入研究代码。 由于眼动追踪和嘴部检测基于dlib,因此我们可以为它们创建一个线程,另一个线程可用于YOLOv3任务:人数计数和移动检测。

First, we import all the necessary libraries and along with the helper functions. Then the dlib and YOLO models are loaded. Now in the eyes_mouth() function, we find out the facial key-points and work on them. For mouth detection, the original distances between in the outer and inner points are already defined and we calculate the current ones. If a certain amount is greater than the predefined ones, then the proctor is notified. For the eyes part, we find out their centroids as shown in the article linked and then we check which facial keypoints are they closest to. If both of them are on the sides then it is reported accordingly.

首先,我们导入所有必需的库以及辅助函数。 然后加载dlib和YOLO模型。 现在,在eyes_mouth()函数中,我们找出面部关键点并对其进行操作。 对于嘴部检测,已经定义了内部和外部点之间的原始距离,然后我们计算当前距离。 如果某个数量大于预定义的数量,则将通知代理人。 对于眼睛部分,我们按链接的文章所示找出它们的质心,然后检查它们最接近哪些面部关键点。 如果它们都在侧面,则相应地进行报告。

In the count_people_and_phone() function, YOLOv3 is applied to the webcam feed. Then the classes of objects detected are checked and appropriate action is taken if more than one person is detected or a mobile phone is detected.

count_people_and_phone()函数中,将YOLOv3应用于网络摄像头。 然后,如果检测到一个以上的人或检测到移动电话,则检查检测到的对象的类别并采取适当的措施。

These functions are passed to in separate threads and have infinite loops in them which the proctor can break by pressing ‘q’ twice.

这些函数在单独的线程中传递给它们,并在其中具有无限循环,监理员可以通过按两次“ q”来中断该循环。

音讯 (Audio)

Photo by Ethan McArthur on Unsplash
伊桑·麦克阿瑟 ( Ethan McArthur)在《 Unsplash》上的照片

The idea is to record audio from the microphone and convert it to text using Google’s speech recognition API. The API needs a continuous voice from the microphone which is not plausible so the audio is recorded in chunks such there is no compulsory space requirement in using this method (a ten-second wave file had a size of 1.5 Mb so a three-hour exam should have roughly 1.6 Gb). A different thread is used to call the API so that a continuous recording can without interruptions, and the API processes the last one stored, appends its data to a text file, and then deletes it to save space.

这个想法是要录制来自麦克风的音频,然后使用Google的语音识别API将其转换为文本。 API需要来自麦克风的连续声音,这是不合理的,因此音频被成块记录,因此使用此方法无需强制占用空间(十秒钟的波形文件的大小为1.5 Mb,因此需要进行三小时的检查应该有大约1.6 Gb)。 使用不同的线程来调用API,以便可以连续录制而不会中断,并且API处理最后存储的那个,将其数据附加到文本文件,然后删除它以节省空间。

After that using NLTK, we remove the stopwords from it. The question paper (in text format) is taken whose stopwords are also removed and their contents are compared. We assume if someone wants to cheat, they will speak something from the question paper. Finally, the common words along with its frequency are presented to the proctor. The proctor can also look at the text file which has all the words spoken by the candidate during the exam.

之后,使用NLTK,我们从中删除停用词。 抽取试卷(以文本格式),其停用词也将被删除,并对其内容进行比较。 我们假设如果有人想作弊,他们会从试卷中说出一些话。 最后,将常用词及其频率显示给检察官。 监考人员还可以查看文本文件,其中包含应试者在考试期间说出的所有单词。

Until line 85 in the code, we are continuously recording, converting, and storing text data in a file. The function read_audio(), as its name suggests, is used to record audio using a stream passed on to it by stream_audio(). The function convert() uses the API to convert it to text and appends it to a file test.txt along with a blank space. This part will run for the entire duration of the examination.

在代码的第85行之前,我们一直在记录,转换和存储文本数据到文件中。 顾名思义,函数read_audio()用于通过stream_audio()传递给它的流来记录音频。 函数convert()使用API​​将其转换为文本,并将其与空白一起附加到文件test.txt中。 这部分将在整个考试期间进行。

After this, using NLTK, we convert the text stored to tokens and remove the stop-words. The same is done for a text file of the question paper as well and then common words are found out and reported to the proctor.

之后,使用NLTK,我们将存储的文本转换为令牌并删除停用词。 对试卷的文本文件也执行相同的操作,然后找到常用词并将其报告给检察官。

This system can be combined with a secure browser to prevent cheating. This project does not eliminate the need for a proctor as he is required to perform certain operations. There are certain ways to cheat as well through this system like a person sitting behind the laptop communicating with the test-taker by writing. To completely stop cheating we would need external hardware like a spectacle camera to cover the whole field of view of the test-taker and apply computer vision on its feed. But that would eliminate the goal to make an AI that anyone can use without using anything extra other than a standard laptop and using this a proctor can also multiple students at once.

该系统可以与安全的浏览器结合使用以防止作弊。 这个项目并不能消除对监理人的需要,因为他需要执行某些操作。 还有一些通过该系统作弊的方法,例如坐在笔记本电脑后面的人通过书写与考生交流。 要完全停止作弊,我们需要像眼镜相机这样的外部硬件来覆盖测试人员的整个视野​​并将计算机视觉应用于其供稿。 但这将消除目标,即打造一个任何人都可以使用的AI,而无需使用标准笔记本电脑以外的任何东西,而使用该AI的监理人也可以一次多个学生。

For the full code refer here.

有关完整的代码,请参见此处 。

翻译自: https://towardsdatascience.com/automating-online-proctoring-using-ai-e429086743c8

自动化编程 ai


http://www.taodudu.cc/news/show-5232666.html

相关文章:

  • CSR8670项目实战:BlueDongle 蓝牙音频测试dongle
  • 音频DAC剖析---解开HI-FI音质的秘密
  • ic启动器怎么导入模组_5G手机主板专题报告:高阶产能紧俏,5G手机主板升级蛋糕怎么分...
  • 计算机组成原理字发生器及跑马灯,060仪器(标书)
  • 河南 教学仪器 matlab 招标,教学仪器设备采购预告 - 千里马招标网
  • 大功率D类音频放大器设计如何选型?
  • centos7桌面版下载向日葵和todesk
  • 我的大学(一)
  • 电网变电站高空作业规范检测-安全绳、安全带佩戴检测图像数据集(voc,yolo两类标签)
  • 隐私合规检测方法
  • Android实现佩戴安全帽检测和识别(含Android源码)
  • 无人驾驶汽车系统入门(七)——基于传统计算机视觉的车道线检测(2)
  • YOLOv4实战尝鲜 --- 教你从零开始训练自己的数据集(安全头盔佩戴识别检测)
  • 基于YOLO模型的安全帽佩戴检测
  • 工地安全带穿戴识别 基于yolov5实现
  • deepin安装jenkins
  • VMware安装深度Deepin15.7最全详细教程
  • Ventoy安装deepin系统(windows和deepin双系统)
  • 电气工程学概论 第二版 美 J.G. Cogdell 著 贾洪峰 译
  • 必备技能13:如何白嫖Scribd上的pdf文件
  • C语言——计算最大值
  • 平均值法计算定积分
  • 各种定值计算
  • 可复用测试用例描述要素
  • 测试用例描写规范
  • web前端,互联网大厂占比10%以上,这类人只会越来越值钱
  • 史上最全的Android面试题集锦在这里,深夜思考
  • 个人校招经历及面试题目
  • web前端开发发展前景,前端校招面试题及解析大全
  • web前端开发在线课程,前端校招面试题及解析大全

自动化编程 ai_使用AI自动化在线采购相关推荐

  1. 当 AI 冲击自动化编程,谁将成为受益者?

    整理 | 明明如月       责编 | 何苗 出品 | <开谈>(ID:CSDNnews) 在软件工程中,自动编程一直被视为圣杯.从编译器诞生时代开始,程序自动生成的目标就是将接近自然语 ...

  2. 数据标注、模型调参debug...通通自动化!华为云AI开发集大成之作ModelArts 2.0发布...

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 福音.AI开发门槛现在更低. 不用你编码,甚至无需AI开发经验. 如今你所需所做:只需标注一小部分数据,然后它就会帮你标注剩下数据,并且自 ...

  3. 【人工智能】自动化编程的历史,现状,发展与未来

    文章目录 自动化编程的历史,现状,发展与未来 引言 自动化编程的标准 第一个等级(C1):基于当前行代码自动补全. 第二个等级(C2):编写代码时 AI 可以预测下一行代码. 第三个等级(C3):基于 ...

  4. HCIA- Datacom认证增加了SDN跟自动化编程

    HCIA-Datacom新版数通认证都考什么内容?https://blog.csdn.net/XMWS_IT/article/details/121784448?spm=1001.2014.3001. ...

  5. linux 运维高级脚本生成器,Linux运维系列,Shell高级脚本自动化编程实战

    课程文件目录: Linux自动化运维系列 Shell高级脚本自动化编程实战 [6.1G] ┣━━01.Shell基础概述 [315.1M] ┃ ┣━━1-1 Shell脚本体系概述.mp4 [154. ...

  6. D1net阅闻:Google Analytics增AI自动化分析功能

    Google Analytics增AI自动化分析功能 该自动化分析功能能自动产生资料分析结果,页面中查看图形化信息,借助该功能在5分钟内提供资料分析的结果. 谷歌发布更新封堵Quadrooter漏洞: ...

  7. 【问答集锦】减少专家依赖,自动化机器学习如何实现AI普惠?

    2020腾讯广告算法大赛专题直播周是由腾讯广告打造的一档大咖直播活动,特邀2020腾讯广告算法大赛的专家评委,针对联邦学习.机器学习.大数据等前沿领域的核心话题进行分享,并为算法爱好者们答疑解惑.我们 ...

  8. Gartner发布2022年新兴技术成熟度曲线,推动沉浸式、AI自动化发展

    编辑 | 宋慧 供稿 | Gartner Gartner 2022年新兴技术成熟度曲线列出了25项值得关注的新兴技术,这些技术正在推动沉浸式体验的发展和扩展.加速人工智能(AI)自动化并优化技术人员交 ...

  9. PowerMILL宏自动化编程教程

    PowerMILL10.0宏自动化编程教程 链接:https://pan.baidu.com/s/1iuWSp-zX3RR09vHJlR_Gcw 提取码:uu6i

最新文章

  1. 清华大学:刘洋——基于深度学习的机器翻译
  2. 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 浙江赛区
  3. html标签库jar包,struts2的s标签库jar包
  4. 老虎Sitemap生成器 0.2
  5. 【若依(ruoyi)】验证码
  6. 淮海工学院计算机宿舍住b几,淮海工学院本部2009-操作系统试卷B
  7. 数据产品-短视频评估体系构建
  8. 《SQL高级应用和数据仓库基础(MySQL版)》作业v2 ·001【MySQL50题】
  9. KK音标和国际音标的对照
  10. 基于FPGA的VGA显示,简单的历程和注释(DE2-115)
  11. [剪视频]Premiere快速从入门到实战
  12. 《杀死一只知更鸟》读书笔记精华分享
  13. 第四章:经典量化策略集锦(第八篇:CAPM模型的应用 )
  14. xbox手柄映射_如何在Windows 10中重新映射Xbox One控制器的按钮
  15. 【运维面试】面试官:你觉得网站访问慢的原因有哪些?
  16. 我司Spark迁移Hive数据到MongoDB生产案例代码
  17. 搭建腾讯云通用文字识别General OCR项目及代码部署图文教程
  18. 谷歌浏览器突然变卡的解决方法
  19. 树莓派3B入门开发之(一)--简介
  20. Java 调用 有道翻译API

热门文章

  1. 维纳—辛钦(Winner-Khitchine)定理的证明
  2. 无线打印服务器驱动,USB打印服务器
  3. 【求助】关于轮播图中节流阀的问题
  4. HashMap为啥要二次Hash
  5. php的mysql5加密_PHP实现mysql加密算法mysql323和mysql5,即old_password()和password()两个mysql函数...
  6. java dao与dto_DAO与DTO名词解释
  7. 科普---互联网图片 文字识别系统 你造么
  8. Luat 功能开发教程(十三) 生成二维码
  9. MATLAB 被禁点燃导火索,国产软件路在何方?
  10. 3D模型欣赏:猫耳少女 唯美 可爱