Technoprojects春季学期的最佳毕业作品



我们关于学习项目学生的毕业项目的新故事是今年的最后一个故事。这次,我们将向您介绍Technopark,Technopolis和Technosphere的三位学生作品。这些是基于两年学习结果的毕业设计,评审团将它们选为最佳作品。我们还想提醒您,Technopark,Technopolis和Technosphere的培训计划各有特色,并且有很大的不同。



以前的出版物:12345



这是为项目辩护的学生第一次接触这些技术。该项目需要一个学期,其中的目的是展示教育过程和学生的工作成果。




科技城Facepick



人脸照片搜索服务。



在公共活动-会议,假日,公司聚会,婚礼-拍摄了数百甚至数千张照片。而且,查找包含您和您的朋友或亲戚的照片需要很长时间。因此,项目团队决定创建一种服务,以快速查找包含指定面孔的照片。



该系统使用神经网络首先识别参考图像中的面部,然后将找到的人的照片基础聚类。该服务可以与以下外部资源一起使用:VKontakte,Odnoklassniki,Yandex.Disk和Google Drive。



处理后的相册是一组摄影包,每个摄影包包含一个人的照片。在已处理相册的页面上,用户可以查看特定photopack的照片,也可以将其下载到他的设备或与朋友共享。您可以通过上传人的照片来搜索已处理的相册。











该服务是带有REST API的客户端-服务器应用程序。服务器部分由两个主要组件组成:Java应用程序,实现用户与服务交互的逻辑;和Python应用程序,用于识别照片中的面部并使用神经网络提取其独特特征。



作者专注于可伸缩性,因此他们使用负载平衡器来平衡后端的负载,并且使用Redis消息队列在Java和Python应用程序之间进行交互可让您独立更改这些组件的实例数。



所有服务均部署在单独的Docker容器中,并使用docker-compose对其进行编排。为了实现应用程序的客户端,我们使用了TypeScript和React。 PostgreSQL数据库用作持久性数据存储。







将来,毕业生希望提高识别准确性,按性别和年龄添加过滤器,并支持Facebook和Google相册。还有一些通过限制免费功能和引入广告来通过服务获利的想法。



项目团队:Vadim Dyachkov,Egor Shakhmin,Nikolay Rubtsov。



带有项目保护的视频



策划者,科技园



运动训练记录的 硬件和软件解决方案



碰巧的是,项目团队的所有成员都喜欢运动。走进体育馆,看着人们记录他们的锻炼和进度,学生们想知道这个过程是否可以改善?经过研究和调查,该团队意识到现有的健身应用程序的用户体验太复杂,并且市场上的可穿戴设备运行良好,主要用于有氧健身(跑步,椭圆运动等)。结果,他们制定了他们的工作计划:





该设备是独立制造的,因为与现有解决方案(例如MiBand)的集成非常费力,并且对于手表和手镯,开发人员对手腕上的放置不满意,因此提供的运动方式信息较少。



我们选择ESP32-WROOM模块作为ESP32-devkit-v1的一部分。它满足某些要求,为此编写了用于在Python中生成代码和固件的实用程序,此外,它可以像任何Arduino板一样从Arduino IDE进行编程。选择了Amperka IMU模块作为传感器,其中包括加速度计和陀螺仪。与传感器的所有通信均使用I2C协议进行。



原型图:







对于该设备的下一个版本,在中国订购了电路板印刷和组件焊接。









接下来,有必要训练神经网络以识别各种练习。但是,没有多少开放数据集包含身体活动期间来自加速度计和陀螺仪的时间序列。而且其中大多数仅涵盖跑步,步行等。因此,我们决定自己进行一套训练。我们选择了三个不需要特殊设备的基本练习:俯卧撑,下蹲和扭腰。



过滤后的加速度计数据。





过滤后的陀螺仪数据。



具有LSTM架构的递归神经网络负责对练习进行分类。为了方便显示时间序列,使用了主成分分析(PCA)。





神经网络的结果(橙色线-进行俯卧撑的概率,绿色-下蹲)。



为了计算重复次数,使用了计算局部最大值的方法,同时考虑了基本信号电平。在取得令人满意的结果之后,我们开始使用移动应用程序。条件之一就是开发这样的界面,该界面需要与智能手机的交互最少。我们选择MVP作为设计模式。



应用界面:









除了客户端应用程序之外,作者还开发了Batcher实用程序,该程序有助于记录和标记数据以训练神经网络:





另外,作者编写了一种机制,用于在将批次保存到数据库后验证批次。



为了存储时间序列,选择了InfluxDB数据库,该数据库适用于此类任务。为了实现机器学习服务,我们从Python,Django和Celery中选择了标准堆栈。任务队列允许分类任务异步执行,而不会阻塞主应用程序接口。



为了存储用户数据,他们采用了Postgres,该应用程序本身的后端是使用Gin框架在Go中实现的。





通用架构。



结果,团队实现了他们的目标,并开发了该产品的MVP版本,使您可以通过一个按钮解决记录日志的任务。现在,学生们正在努力减少设备的成本和尺寸,提高神经网络的准确性,并扩展支持的练习集。



项目团队:Oleg Soloviev,Temirlan Rakhimgaliev,Vladimir Elfimov,Anton Martynov。



带有项目保护的视频



GestureApp,技术圈



非接触式界面的框架。



有时使用熟悉的触觉界面会变得不方便或不合需要。例如,当您开车,使用自动取款机或付款终端时,或者您的双手很脏时。为了解决这个问题,作者创建了一个非接触式界面框架,该框架允许手势控制应用程序。



要正常工作,GestureApp需要一台摄像机,实时处理来自该摄像机的信号,以便识别用户的手势。并根据手势,框架向应用程序提供适当的命令。





计算量相对较低,该框架可以在相当弱的设备上工作,并且不需要特殊的设备。



神经网络MobileNet3D可以识别手势。神经网络给出了手势类别以及特殊类别“无手势”的概率。这种架构可以识别静态和动态手势。在Jester数据集上训练了神经网络。实现了F 1 = 0.92的预测精度



捕获流从前置摄像头接收帧,并将其放置在列表的末尾。如果其长度大于32,则捕获线程将唤醒模型执行线程。从列表的开头开始需要32帧,预测类别,然后从末尾删除元素,直到剩下一个元素。这消除了对大量同步的需求,并显着提高了性能:iPhone 11达到20 FPS,iPhone XS Max达到18 FPS,iPhone XR达到15 FPS。借助用于预处理和后处理的智能管道,可将能耗降至最低。



到目前为止,该框架仅适用于iOS和Windows。该开发使用了PyTorch框架,TwentyBN平台和Swift语言。



计划包括:提高识别质量,在不重新训练所有模型的情况下增加对新手势的识别,为Android创建一个版本,不仅添加按钮手势,还添加滑块手势。



项目团队:Maxim Matyushin,Boris Konstantinovsky,Miroslav Morozov。



带有项目保护的视频






您可以通过此链接阅读有关我们的教育项目的更多信息经常访问Technostream频道,并定期出现有关编程,开发和其他学科的新培训视频。



All Articles