回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

智能校园生活:【校园】+校园盲区防范欺凌预警系统 简单

头像 孙洪尧1985 2024.05.29 658 1

1 、场景分析

 

 根据联合国教科文组织报告:全球每年近 3 亿的学生遭受校园霸 凌,根据英国国家儿童发展研究中心的数据显示,遭受校园暴力的孩 子在成年后面临更多的心理困扰。现在校园内监控设施比较完备,校 园欺凌的行为往往会避开监控区域,施暴者会在监控死角的地方欺负 受害者,例如卫生间等隐私地方发生为了验证校园监控盲区无法有效 地预警霸凌行为的发生这一猜想,我们团队设计了关于此主题的调查 问卷,主要针对初中各年级的学生开展匿名调查问卷:是否自身发生 过被欺凌的行为?发生在什么地方?后续采取什么措施来解决问 题?通过问卷分析发现近 22%学生在学校公共卫生间等监控盲区的 地方被人欺凌,13%的学生在监控盲区被欺凌后,向老师举报,但苦 于没有证据不了了之;这种问题的存在,导致了施暴者的气焰嚣张、 肆无忌惮,导致受害人心理问题加剧。

我们团队于 3 月 17 日使用网络,针对校园盲区无法有效预警欺 凌行为的问题,使用“校园盲区、欺凌 ”关键词、分组通过百度搜索 引擎和百度学术进行相关文献、产品、应用系统或使用者的调查研究 进行搜索,得出的结果是:百度搜索并未有明确的产品应用该场景, 仅找到中国青年报于 2023 月 3 月 10 日发布的文章:《填补“视野盲

区 ”,让校园欺凌不再隐身》。百度学术仅搜索到《电子制作》2023年第 10 期刊登的《校园防欺凌系统的设计与实现》的文章,该文章 认为:随着时代的发展校园欺凌已成为一种普遍的热门社会问题。校园欺凌事件可能伴随在教育的各个成长的时间阶段。因此,校园防欺 凌系统设计来源于针对“如何有效地预防校园欺凌并增强保护生命  意识 ”的问题。防欺凌报警器集语音与AI为一体的系统,并通过声音 关键词的识别自动报警进而缓解紧急情况。可以完成在无法安装摄像 头的安全盲区,从而保护学生的人身安全。通过我们对网络信息的检 索,发现关于校园盲区欺凌预警系统设计的相关文献、产品、应用系 统或使用者的调查研究少之又少,是个值得开发和研究的项目,可实 施性很高。

2 、作品方案

根据校园霸凌情况发生的越来越隐蔽,我们将设计一款既不影响 隐私保密、又能震慑霸凌行为的作品:我们在监控盲区的地方,如学 校的室内、室外卫生间安装校园霸凌预警系统,当监控盲区发生霸凌 行为,预警系统会检测受害者大声呼叫的内容或施暴者辱骂受害者的 词汇,当检测到关键词时;或受害者、旁观者按下报警按键时,警报 响起,威慑施暴者的行为;呼救信息将第一时间通过物联网模块发送 到学校的预警平台,便于学校及时行动,制止霸凌行为;同时,预警 系统在检测到关键词后,自动开启实时录音功能且此录音可以提取, 为后期的欺凌情况调查提供佐证。

我们的设计是从以下四个方面开展的:

一、预设关键词,使用语音识别功能,检测卫生间等监控盲区的 对话内容,如果检测到关键词,则执行相应程序;

二、检测欺凌行为,震慑施暴者:当卫生间等监控盲区,发生欺 凌行为,施暴者辱骂受害者、受害者求救的对话内容存在预设的关键 词,预警系统播放警告语音,震慑欺凌行为;

三、检测欺凌行为,远程报警:当卫生间等监控盲区,发生欺凌 行为,施暴者辱骂受害者、受害者求救的对话内容存在预设的关键词, 预警系统的发送端,通过搭建的物联网平台,向教师和相关部门及时 通报突发情况,便于教师及时干预,制止欺凌行为;

四、检测关键词,自动录音:当卫生间等监控盲区,发生欺凌行 为,施暴者辱骂受害者、受害者求救的对话内容存在预设的关键词,预警系统的发送端会自动开启录音功能,且该录音可以提取,为后期 的调查工作提供佐证;

五、万物互联,随时随地掌握情况:我们通过搭建物联网模块, 使用一个行空板作为预警系统的接收端,然后在监控盲区设置多块行 空板作为发送端,所有行空板通过物联网模块相连接;且可以通过手 机浏览器登录物联网平台,随时随地的查收消息。

3 、主要创新点

1 、智能识别关键词:Gravity:I2C  离线语音识别模块,是一款以 Gravity :I2C 作为连接接口的、针对中文进行识别的模块。该模块采用 由 ICRoute 公司设计的 LD3320 “语音识别”专用芯片,只需要在程序中 设定好要识别的关键词语列表并下载进主控的 MCU 中,语音识别模 块就可以对用户说出的关键词语进行识别,并根据程序进行相应的处 理。本品不需要用户事先训练和录音就可以完成非特定人语音识别, 识别准确率高达 95%。当预警系统运行时,语音识别模块不断地对周围环境进行检测。 当检测到“救命(jiuming) ”、“别打我(biedawo) ”、“干什么  (ganshenme)”、“放开我(fangkaiwo)”、“我没有钱(womeiyouqian)”、 “不许哭(buxuku)”等关键词语进行识别,预警系统一方面播放警 告录音震慑欺凌行为;一方面开始录音,为后续调查提供佐证;另一 方面通过物联网模块向系统终端(接收端)发送消息,及时通知学校 和老师干预欺凌行为。

2 、 自动录音功能:行空板自带录音功能,你可以在“行空板 ” 里的“音频录放 ”分类下找到 录音 {凸 秒直到结束,文件名“厂2cQ厂d  .H己u ” 完成声音的录制。录音文件“record.wav”被存放 在行空板缓存文件夹中,你可以打开“文件系统”的“行空板中的文件”→”mindplus” →”cache” ,点击项目名称文件夹寻找录音文件。当系 统识别到关键词后,行空板启动录音功能,该录音可以作为后期调查 欺凌行为的佐证。


 

4 、作品实现过程

我们确定主题后,开始选择主控板及开源硬件。一开始我们选择 使用Arduino Uno 主控板及物联网模块进行物联网的搭建,但是效果 不稳定,经常出现断网的问题。之后,我们讨论如何解决这个问题, 经过大家的讨论,决定放弃使用Arduino Uno 主控板,改用 DFrobot    自主研发的行空板开发板。行空板内置的物联网模块效果稳定,适合 这个项目。我们初步设想使用两块行空板进行联接,一个作为发射端, 安置在卫生间;一个作为接收端,由负责此事的老师携带,便于随时 处理问题。主控板选定后,我们的作品需要对环境进行语音识别关键 词,所以我们使用 Gravity: I2C 语音识别模块实现此效果。语音识别  模块和作为发射端的行空板搭配,进行关键词的语音识别;当成功识 别后,行空板通过外接喇叭播放警告,震慑欺凌行为;同时发射端通 过物联网向接收端发送报警信息,接收端收到消息后,红色 LED 灯和 蜂鸣器工作,提示有警报信息。我们使用最容易得到的快递纸盒,一 个放置发射端的行空板、语音识别模块和外接喇叭,一个放置接收端 的行空板、红色 LED 灯和蜂鸣器,两个纸盒再放置锂电池充电宝提供 电源。设计好外形和开源硬件后,我们使用 mind+编程软件进行编程, 并测试效果。经过测试后,效果良好,识别比较准确,两块行空板的 消息传输也比较顺畅。在实验室里,我们通过调试达到了使用效果。

接下来,我们要实地测试作品运行效果。我们把它放置在厕所的 高处,防止在实际操作中,有淘气的学生把设备弄坏。我们的组员一 人假扮施暴者,一人假扮受害者,在厕所发生欺凌行为。受害者呼救,施暴者辱骂受害者。这时候,预警系统识别到关键词“救命 ”、“别 打我 ”、“收拾你 ”等内容,但是识别成功的几率较小;当识别成功 后,消息却无法从发射端发送到接收端,导致首次测试以失败而告终。 大家返回实验室后,讨论失败的原因,总结有三:一是识别词设置过 少,我们应该多设置几组关键词,提高识别几率;二是物联网的 IP  地址设置错误,应该统一设置为接收端的 IP 地址,这样才能将消息 顺利传递消息出去;三是学校的无线网络效果有限,有时候导致网络 不通畅,我们改用手机的热点实现无线网络传输顺利。然后我们根据 这三点进行程序的优化,增加关键词提高识别效果;发送端和接收端 的 MQTT 的 SLOT 服务器地址设置为一致的,都采用接收端的服务器 地址。同时,我们在研究行空板的使用教程时,发现行空板有录音功 能,这样我们就可以利用这个录音功能实现在监控盲区出现欺凌情况 的时候,学校进行调查的时候,提取出当时的录音,帮助学校弄清事 实。这个功能的发现,帮助我们实现了作品的迭代更新:作品具备识 别关键词、无线报警的基础上,增加了识别录音功能,为后期调查问 题提供了佐证。

我们再次把作品带到卫生间,进行第二次实地测试。组员模拟欺 凌场景,当施暴者辱骂受害者时,辱骂词包括“buxuku(不许哭)”、 “不许动(buxudong) ”、“dasini(打死你) ”等内容;受害者祈 求施暴者的语言包括“womeiyouqian(我没有钱)”、“biedawo(别 打我)”、“jiuming(救命)”等内容时,语音识别模块触发报警程 序,喇叭播放警报语音,威慑施暴者立刻停止欺凌行为;物联网模块发送求救消息到接收端,教师及时介入,制止欺凌行为;发送端开始 录音 600 秒。十分钟模拟教师的组员从学校学校内任何地点及时赶往 事发地处理问题。可以说本次测试已经完成了目标,达到了预警效果。

5 、作品成果

功能介绍:

1 、智能语音识别:预警系统中应用了语音识别模块,并通过程 序设置关键词进行识别,当识别到关键词时,执行相应程序;

2 、播放警告语音:行空板主控板搭配喇叭,可以实现当识别到 关键词,播放警报语音,震慑欺凌行径;

3 、无线传输报警:当预警系统中语音识别模块,识别到关键词 时,发送端通过行空板内置物联网模块,向位于同一网络下的接收端 发送求救信息,教师接收信息后及时赶往事发地;

4 、可视化大屏:通过 mind+的可视化大屏,打造监控盲区无死 角的预警系统,情况一目了然。

演示效果:

1 、当施暴者或受害者的言语中,包含了程序中预设的关键词时, 识别成功后,执行之后的报警程序;

2 、当识别到关键词后,发射端的喇叭开始播放警报语音,威慑 欺凌行径;

3 、当识别到关键词后,发射端通过物联网模块,向接收端发送 警报消息,提醒教师及时赶往事发地;

4 、当识别到关键词后,发射端的行空板开始600 秒录音,以音 频形式记录当时情况,为后续处理提供佐证。

5 、通过 mind+编程软件的可视化面板功能,连接接收端的物联 网平台,可以对监控盲区实现“可听化 ”预警。


 

6 、作品测试情况

第一次测试情况:

当假扮施暴者和受害者的组员相互对话时,语音识别模块进行识 别,但是由于程序中预设的关键词比较少,识别效果较差,识别成功 几率低;偶尔识别成功后,却无法向接收端发送报警信息。第一次测 试失败。通过组员分析得知失败的原因:一是预设的关键词过少,可 以通过增加关键词的方式提高识别几率;二是发送端和接收端使用同 样 SIOT 服务器地址,并用手机热点作为连接行空板,提供稳定的网 络。

第二次测试情况:

在第一次测试失败总结经验的基础上,改进了关键词的语音识别, 并使用稳定的手机热点网络,同时在此基础上,加入了行空板的录音  功能,实现了智能录音的效果。当再次实地模拟发生欺凌的场景时, 语音识别成功,录音功能开启,录制 10 分钟,为后期处理问题提供  佐证;当识别成功后,发送端的喇叭播放警告语音,震慑欺凌行径;  当识别成功后,发送端向接收端发送报警消息,提醒教师及时赶往事  发地处置;最后又利用 mind 编程软件的可视化面板功能,清晰明了  的显示校园监控盲区的“可听化 ”情况。


 

步骤1 团队合作,确定科创主题。

步骤2 组长分工,分头行动。

步骤3 准备开源硬件,涉及程序

步骤4 使用纸盒,涉及作品外观。

步骤5 实地测试

步骤6 改进程序

步骤7 再次测试

7 、总结与展望

对于我们农村初中生来说,科创之路是一条充满挑战与探索的旅  程。在这段旅途中,我们团队经历了无数次的尝试与失败,也收获了  成长与感悟。从初识科研的懵懂少年,到逐渐在人工智能与开源硬件  学习的海洋中探索的求知者,这段经历让我们深刻领悟到科创的魅力  和意义。初入学校科技社团,我们对科创一词尚感陌生。然而,在一  次次课堂学习中,我们逐渐感受到了科研的魅力。在辅导员老师的引  导下,我们逐渐了解了科创的基本知识和方法。通过不断地摸索前行, 我们逐渐掌握了科创的基本方法和技能,学会了如何查阅文献、设计  实验、分析数据。在这个过程中,令我印象最深刻的就是参与大创项  目的经历了。在辅导员老师的指导下,我们小组成员聚焦校园监控盲  区的欺凌行径如何预警进行了深入研究。从确认科研主题到调查问卷, 从文献查阅到作品设计确定,再到无数次的重复实验和数据整理,直  至最终的成果产出。这一路走来,我们不仅得到了科研能力的锻炼, 还有对心性的磨练——大胆尝试,勇于试错,不骄不躁,持之以恒, 这些都为我们日后的科研的开展奠定了坚实的基础。

从作品的调试,我们发现如果校园覆盖了稳定的无线网络的话, 就可以实现更好的数据传输,甚至可以降低作品的成本,不再采用语 音识别模块,继而采用讯飞在线的识别系统去检测,相信识别会更加 准确。同时电源可以改成太阳能供电,实现低碳的效果。


 

材料清单

代码
发射端

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.libs.dfrobot_asr import DFRobot_ASR
from pinpong.board import Board
from unihiker import Audio
import siot
import os


Board().begin()
siot.init(client_id="8064225081396934",server="192.168.131.215",port=1883,user="siot",password="dfrobot")
u_audio = Audio()
siot.connect()
siot.loop()
os.system("pactl set-default-source alsa_input.platform-acodec-sound.stereo-fallback")
p_gravityasr = DFRobot_ASR()
p_gravityasr.begin(p_gravityasr.LOOP, p_gravityasr.MIC)
p_gravityasr.add_command("bie da wo", 1)
p_gravityasr.add_command("gan shen me", 2)
p_gravityasr.add_command("fang kai wo", 3)
p_gravityasr.add_command("wo mei you qian", 4)
p_gravityasr.add_command("jiu ming", 5)
p_gravityasr.add_command("bu xu ku", 6)
p_gravityasr.start()
siot.getsubscribe(topic="siot/监控盲区预警系统")

while True:
    key_word = p_gravityasr.read()
    if (key_word == 1):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
    if (key_word == 2):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
    if (key_word == 3):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
    if (key_word == 4):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
    if (key_word == 5):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
    if (key_word == 6):
        siot.publish_save(topic="siot/监控盲区预警系统", data="一号监控盲区识别关键词")
        print("识别到关键词")
        u_audio.record("record.wav",10)
        print("录音结束")
        u_audio.play("record.wav")
        print("播放音频结束")
代码
接收端

#  -*- coding: UTF-8 -*-

# MindPlus
# Python
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from unihiker import GUI
import time
import siot

# 自定义函数
def JingBao():
    for index in range(10):
        p_p23_out=Pin(Pin.P23, Pin.OUT)
        p_p23_out.write_digital(1)
        p_p24_out=Pin(Pin.P24, Pin.OUT)
        p_p24_out.write_digital(1)
        time.sleep(0.3)
        p_p23_out=Pin(Pin.P23, Pin.OUT)
        p_p23_out.write_digital(0)
        p_p24_out=Pin(Pin.P24, Pin.OUT)
        p_p24_out.write_digital(0)
        time.sleep(0.3)

# 事件回调函数
def on_message_callback(client, userdata, msg):
    if (msg.payload.decode() == (str("一号监控盲区识别关键词"))):
        t.config(text="一号盲区疑似出现情况")
        JingBao()
    else:
        t.config(text="一切正常")
        siot.publish(topic="siot/监控盲区预警系统", data="一切正常")


siot.init(client_id="37842089985353367",server="192.168.131.215",port=1883,user="siot",password="dfrobot")
u_gui=GUI()
Board().begin()
siot.connect()
siot.loop()
siot.set_callback(on_message_callback)
siot.getsubscribe(topic="siot/监控盲区预警系统")
t=u_gui.draw_text(text="",x=0,y=0,font_size=15, color="#0000FF")

while True:
    pass

附件

1.jpg
2.jpg
3.jpg
4.jpg

评论

user-avatar
  • 孙洪尧1985

    孙洪尧19852024.05.29

    本作品作为参赛作品参加了第十届全国青年科普创新实验暨作品大赛黑龙江赛区复赛二等奖。

    0