我的项目经历--目录

软件编程项目

  1. 无人机集群电磁仿真设计
  2. 可上传私人文档的ChatGPT
  3. Python爬取国家统计数据
  4. app制作与安全性分析
  5. 绕过认证系统实验
  6. AI玩俄罗斯方块
  7. 手写数字识别GUI
  8. 弱监督条件下的点云语义理解
  9. 马里奥DIY版
  10. 简易版魔塔
  11. 疫情地图小程序

硬件控制项目

  1. 玩具狗的多种开关方式
  2. GPS欺骗
  3. 基于Arduino的音乐播放器

软件编程项目

“具⾝智能”商超场景解决⽅案

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--美军“捕食者”无人机

固定翼代表1--美军“捕食者”无人机实物图

固定翼代表1--美军“捕食者”无人机模型图

固定翼代表2--美军“小精灵”无人机

固定翼代表2--美军“小精灵”无人机实物图

固定翼代表2--美军“小精灵”无人机模型图

旋翼代表--大疆F450无人机

旋翼代表--大疆F450无人机实物图

旋翼代表--大疆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


描述:

根据玩具电子狗,通过其电路图进行相应修改,可得到不同开关相应方式,除了下面视频外也已经实现磁控、小程序控制、蓝牙控制等方式

用到的硬件模块有:

  1. 玩具电子狗 -- 具备基本行走,吠叫功能
  2. 电路板 -- 实现不同方式开关并焊接电路 (3) 蓝牙开关模块 -- 具有微信小程序控制系统

成绩:

键控开关方式

温控开关方式

基于Arduino的音乐播放器

2020.4 - 2020.6


描述:

通过手机(串口)或电脑输入控制,实现了MP3的基本功能(曲目切换,多种播放模式,音量调节)。

用到的硬件模块有:

  1. Arduino -- 中央处理器
  2. tf卡 -- 存储曲目 (3) 扬声器 -- 播放声音
  3. LCD屏幕 -- 显示播放模式、曲目

成绩: