我的项目经历
我的项目经历--目录
软件编程项目
- 无人机集群电磁仿真设计
- 可上传私人文档的ChatGPT
- Python爬取国家统计数据
- app制作与安全性分析
- 绕过认证系统实验
- AI玩俄罗斯方块
- 手写数字识别GUI
- 弱监督条件下的点云语义理解
- 马里奥DIY版
- 简易版魔塔
- 疫情地图小程序
硬件控制项目
软件编程项目
“具⾝智能”商超场景解决⽅案
2023.7 - 2023.11
描述:
我们通过以下步骤解决无人机集群的目标电磁特征数据的获取问题,提出了解决无人机集群问题目标检测的创新思路。
首先,以 "Gremlin "无人机为代表的典型单架固定翼无人机为例,基于多级快速多极法(MLFMM)进行电磁计算。然后,利用雷达散射截面(RCS)仿真数据和二维反合成孔径雷达(ISAR)成像来验证上述仿真结果的结果准确性。最后,我们对无人机集群的RCS模拟数据进行了模拟和验证。
用到的编程语言和软件工具有:
(1)Solidworks -- 建立两类无人机的三维模型 (2)Feko电磁仿真软件 -- 基于MLFMM对无人机进行电磁仿真计算 (3)MATLAB -- 仿真数据清洗和处理,ISAR成像算法实现
成绩:
该项目过程和结论已在2021年的CIE雷达会议上提出,目前论文已经可以通过EI检索。
我们总结和分析了无人机目标 "Gremlin "在单一和集群情况下的电磁散射计算,这些都是基于的应用要求和技术困难。全极化静态电磁散射计算了 "Gremlin "在典型频段的全极化静态电磁散射特征数据,并将其结果用于进行集群目标成像,可以清楚地看到 "Gremlin "的翼尖特征。
无人机集群电磁仿真设计
2021.1 - 2021.8
描述:
我们通过以下步骤解决无人机集群的目标电磁特征数据的获取问题,提出了解决无人机集群问题目标检测的创新思路。
首先,以 "Gremlin "无人机为代表的典型单架固定翼无人机为例,基于多级快速多极法(MLFMM)进行电磁计算。然后,利用雷达散射截面(RCS)仿真数据和二维反合成孔径雷达(ISAR)成像来验证上述仿真结果的结果准确性。最后,我们对无人机集群的RCS模拟数据进行了模拟和验证。
用到的编程语言和软件工具有:
(1)Solidworks -- 建立两类无人机的三维模型 (2)Feko电磁仿真软件 -- 基于MLFMM对无人机进行电磁仿真计算 (3)MATLAB -- 仿真数据清洗和处理,ISAR成像算法实现
成绩:
该项目过程和结论已在2021年的CIE雷达会议上提出,目前论文已经可以通过EI检索。
我们总结和分析了无人机目标 "Gremlin "在单一和集群情况下的电磁散射计算,这些都是基于的应用要求和技术困难。全极化静态电磁散射计算了 "Gremlin "在典型频段的全极化静态电磁散射特征数据,并将其结果用于进行集群目标成像,可以清楚地看到 "Gremlin "的翼尖特征。
固定翼代表1--美军“捕食者”无人机
固定翼代表2--美军“小精灵”无人机
旋翼代表--大疆F450无人机
可上传私人文档的ChatGPT
2023.6
描述:
搭建一个支持上传自定义知识库的ChatGPT(包含文档如 docx, txt, pdf, jpg等等,甚至可以直接上传文件夹),支持中英双语。采用的解决方案是Longchain+ChatGLM
用到的编程语言和软件工具有:
(1)阿里云机器学习PAI平台
ChatGLM的参数量(80亿)比正版GPT-3(1750亿)要少,所以可以下载到本地运行,支持中英双语,并且可以通过源代码更换各部分API接口,硬件配置最低要求为 6 GB显存的GPU。
量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
---|---|---|
FP16(无量化) | 13 GB | 14 GB |
INT8 | 8 GB | 9 GB |
INT4 | 6 GB | 7 GB |
如果手头的硬件条件暂时不满足,而且想要免费使用,可以考虑白嫖阿里云的机器学习 PAI 平台,使用 A10 显卡,免费试用活动页 https://free.aliyun.com/,申请教程可以参考 https://mp.weixin.qq.com/s/ymAsufnnk5tbUNobmgNtBw
(2)Python -- 实现算法逻辑
项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个文本 -> 匹配出的文本作为上下文和问题一起添加到 prompt 中 -> 提交给 LLM 生成回答。
从文档处理角度来看,实现流程如下:
成绩:
做了一个演示视频,后续会补上教程讲解
Python爬取国家统计数据
2021.1
描述:
独立完成,爬取“国家统计局”八个省份、六个季度的城乡居民收支基本情况
用到的编程语言和软件工具有:
(1)Python -- 通过panda库实现爬虫功能,通过xlwings库实现表格处理
成绩:
爬取国家统计局八个省份、六个季度的表格数据到excel表格中,同时代码可筛去无效数据,自动整理excel表格,通过xlwings库实现数据居中、自适应列宽等功能。
app制作与安全性分析
2019.10 - 2020.1
描述:
app实现要求:该app具有用户/口令登录功能,并可供使用者注册。注册时口令只作长度限制(如8位长度),但强度暂不作要求。用户名/口令保存在手机上,口令保存时作加密处理(自行选择加密算法)。
功能比较简单,弹出一浮窗,显示app需要获取存储空间、设备信息、地理位置权限的提示,可选择授权或拒绝。通过在手机上运行此app,注册若干个账号,口令设置时有强口令,也有弱口令,然后分析其安全性,加以改进。
客户端登录功能的相关代码(Kotlin):
获取存储空间、设备信息、地理位置权限这些权限的相关语句:
Androbugs分析截图:
分析后修改了原有app的注册/登录认证方式,采用OAuth2规范中的授权码模式:
将外部存储改为内部存储:
用到的编程语言和软件工具有:
(1)Kotlin -- 通过Android Studio实现app功能 (2)Androbugs -- 分析app安全性
成绩:
完整的运行视频如下:
绕过认证系统实验
2019.9
描述:
很多商场、饭店的商业WIFI采用了WEB Portal认证方式,但有些认证系统存在漏洞,可以利用 DNS TUNNEL 绕过网关计费系统。存在这种漏洞的商业WIFI环境,并且可验证能够利用 DNS TUNNEL 穿越网关计费系统。
DNS Tunnel真正用来“免密上网”,其实不太实际。尽管我们组已经“砍掉了”云服务器的开支(把代理服务器搬到本地来进行了),结果整个实验还是花掉了6块钱来购买域名。
用到的编程语言和软件工具有:
(1)树莓派 -- 搭建本地代理服务器 (2)Portal -- 拓扑结构分析和DNS仿真配置
成绩:
整个实验其实是告诉我们:黑客会“见缝插针”,DNS这样专门用于域名查询的协议,也可以被拿来传输数据。若将来需要做网络应用层的协议设计、维护工作,一定要加倍小心,在网络安全方面要非常谨慎。另外对于个人来说,如果连接到公共网络,一定要提高警惕,谨防“高科技偷窃”,因为我们难以知道黑客下一个目标是哪里。
AI玩俄罗斯方块
2018.9
描述:
利用pygame实现俄罗斯方块游戏,同时设置了一个AI(甚至都可以不用机器学习算法)
用到的编程语言和软件工具有:
(1)Python -- 实现俄罗斯方块逻辑和AI算法
AI 算法基本思想就是,遍历当前可操作的俄罗斯方块和下一个可操作的俄罗斯方块(根据不同的策略,即选择不同的位置和旋转角度)下落到底部后组成的所有可能的未来场景
未来场景的优劣判断依据:
1)可消除的行数;
2)堆积后的俄罗斯方块内的虚洞数量;
3)堆积后的俄罗斯方块内的小方块数量;
4)堆积后的俄罗斯方块的最高点;
5)堆积后的俄罗斯方块的高度(每一列都有一个高度)标准差;
6)堆积后的俄罗斯方块的高度一阶前向差分;
7)堆积后的俄罗斯方块的高度一阶前向差分的标准差;
8)堆积后的俄罗斯方块的最高点和最低点之差。
从这些未来场景中选择一个最优的,其对应的当前可操作的俄罗斯方块的行动策略即为当前解
成绩:
视频演示一边拖动源码一边游戏在自动运行,以显示不是手动操作的hh
手写数字识别GUI
2020.11 - 2021.1
描述:
不使用框架,实现手写数字识别GUI开发
用到的编程语言和软件工具有:
(1)Python -- 开发GUI界面(基于Qt5),涉及基本bp算法实现和正则化(BN,L2正则化,RMSProp)等优化算法,并实现pyqt界面及三个功能:mnist中抽取识别,上传图片识别,画板手写识别
成绩:
弱监督条件下的点云语义理解
2020.10 - 2021.1
描述:
为解决三维点云语义分割中数据标注昂贵的问题,尝试使用弱监督学习的方法进行研究。进行了论文综述,同时复现了“PointNet++”代码。
用到的编程语言和软件工具有:
(1)Python -- 通过Jupyter Notebook复现代码
成绩:
基于百度AI平台的PaddlePaddle框架,对十组家具图片生成的无序点云进行分类处理,复现了“PointNet++”论文中91.9%的准确率。
马里奥DIY版
2018.4 - 2018.6
描述:
DIY了一个马里奥,在原版的基础上改变了生命设定和地图场景:
生命上限可以通过吃蘑菇增加,并回复一部分血量,同时若身体是小人形态则变成大人形态。受击时形态不变化,扣相应的HP。
用到的编程语言和软件工具有:
(1)Gamemaker -- 开发游戏界面,绘制游戏地图及玩法逻辑实现
成绩:
通关演示及简单功能演示
若HP为0,则直接死亡
简易版魔塔
2017.11 - 2018.1
###描述:
命令行界面,可操作的简易版魔塔
用到的编程语言和软件工具有:
(1)C++ -- 通过命令行和字符串绘制游戏地图及玩法逻辑实现
成绩:
通关演示及简单功能演示
疫情地图小程序
2020.6
描述:
疫情期间做的一个疫情地图,分为国内、国外两个板块,每个板块分为当日累计疫情、当日新增疫情两个子板块,引用了开课吧的数据源,颜色越深说明感染人数越多。
用到的编程语言和软件工具有:
(1)html -- 引用开课吧数据源,尝试进行数字可视化
成绩:
硬件控制项目
GPS欺骗
2019.9 - 2019.11
描述:
在Linux环境下,应用GPS卫星定位的手机,通过HackRF One发射欺骗信号,实现点到点欺骗或轨迹欺骗,可在1、2分钟内成功欺骗到指定位置在指定轨迹内依据给定的加速度、速度进行不间断运动。
用到的编程语言和软件工具有:
(1)硬件:HackRF One -- 带 TCXO 时钟模块和天线,用于发射GPS信号 (2) 软件: | 软件 | 作用 | | ---- | ---- | | Google Earth | 选中欺骗地点,勾画目标轨迹 | | SatGen | 目标轨迹并存储为运动路径 | | gps-sdr-sim | 采样数据文件,生成GPS数据源 | | Gnuradio | 流程图式运行GPS欺骗的程序 | | hackrf-tools | 通过hackrf_transfer函数,在命令行运行GPS欺骗 |
成绩:
实际手机位于广州大学城生活区某一定点静止不动,将定位欺骗至1千公里外的上海交大的操场跑道上变速跑步,全程精确度5m以内。
玩具狗的多种开关方式
2020.11 - 2021.1
描述:
根据玩具电子狗,通过其电路图进行相应修改,可得到不同开关相应方式,除了下面视频外也已经实现磁控、小程序控制、蓝牙控制等方式
用到的硬件模块有:
- 玩具电子狗 -- 具备基本行走,吠叫功能
- 电路板 -- 实现不同方式开关并焊接电路 (3) 蓝牙开关模块 -- 具有微信小程序控制系统
成绩:
键控开关方式
温控开关方式
基于Arduino的音乐播放器
2020.4 - 2020.6
描述:
通过手机(串口)或电脑输入控制,实现了MP3的基本功能(曲目切换,多种播放模式,音量调节)。
用到的硬件模块有:
- Arduino -- 中央处理器
- tf卡 -- 存储曲目 (3) 扬声器 -- 播放声音
- LCD屏幕 -- 显示播放模式、曲目