实习经历 和 项目经历
怎么美化自己的实习经历 和 项目经历呢
✅ 一、美化后的项目 & 实习经历(用于简历 / 自我介绍)
🎯 项目一:多模态智能教学系统|中国软件杯国家级三等奖|2025.4–2025.10
项目简介:
面向教育智能化转型需求,设计并实现一套融合文本、图像、语音的多模态 AI 教学平台。系统支持教师上传教材/PDF/图片,自动解析内容并生成结构化教案、PPT 及可配置试卷,显著提升备课效率。
核心技术栈:
Spring Boot + MyBatis-Plus + Redis + MySQL + React + BERT + PaddleOCR + Edge TTS
我的核心贡献(重点突出技术深度):
- 主导内容生成引擎开发:基于用户上传的学习资料,设计“预处理 → 知识抽取 → 结构化生成”三阶段 pipeline。使用 NLP 模型(BERT + TextRank)提取核心知识点与逻辑关系,生成符合教学大纲的教案初稿。
- 实现智能组卷算法:设计基于知识点覆盖度与难度权重的抽题策略,支持按章节、题型、难度(1~5级)、题量动态生成试卷,并引入去重与语义相似度过滤,避免题目重复。
- 优化生成质量与性能:引入 Redis 缓存高频生成结果(如热门教材的教案),响应时间从 3s 降至 800ms;对 OCR 识别结果做后处理(正则清洗 + 专业术语校正),准确率提升至 92%。
- 保障系统稳定性:编写 JUnit 单元测试覆盖核心生成逻辑,参与 Code Review,确保模块交付零严重 Bug。
💡 成果亮点:系统在校内 3 所中学试用,教师平均备课时间减少 65%;项目获中国软件杯国家级三等奖,并提交 1 项发明专利(一种基于多模态融合的教学资源生成方法)。
🎯 实习项目:超低空无人机反制系统|河北兴腾通信技术有限公司|2025.6–2025.9
项目简介:
针对“低慢小”无人机对重点区域的安全威胁,构建一套多传感器融合的智能反制平台,实现对目标的早期发现、精准识别、稳定跟踪与联动处置。
核心技术栈:
Spring Boot + Redis + MQTT + YOLOv8 + DeepSORT + 海康/大华 SDK + 天圆私有协议
我的核心贡献(突出工程能力与闭环思维):
- 统一设备接入层设计与实现:针对海康(ISAPI)、大华(DSS SDK)、天圆(TCP 私有协议)等异构设备,抽象出标准化设备控制接口(如
panTiltZoom(az, el, zoom)),采用策略模式 + 工厂模式实现动态适配,支持热插拔新设备。 - 主导“雷达-光电”协同跟踪机制:当毫米波雷达探测到目标并上报经纬度后,Java 服务实时计算云台转向角度,驱动 PTZ 相机快速锁定目标区域,并启动 RTSP 视频流捕获。
- 集成 AI 识别闭环:通过 HTTP 异步调用 Python 服务(YOLOv8 + DeepSORT),对视频帧进行无人机检测与轨迹跟踪;识别结果回传后,触发告警、持续跟踪或联动反制设备,形成完整业务闭环。
- 性能与稳定性优化:引入 Redis 缓存设备状态(避免频繁 SDK 调用),设计指令队列防并发冲突,端到端响应延迟从 1.2s 优化至 200ms 内,系统支持 50+ 设备并发接入。
💡 成果亮点:系统误报率降低 75%,目标跟踪稳定时长提升 3 倍;已在中国铁塔某省分公司部署,运行 3 个月零重大故障。
✅ 二、面试官“拷打”项目 —— 10 个高频深度问题 + 高分回答
💬 提示:以下问题按“由浅入深”排列,答案采用 STAR + 技术细节 + 量化结果 结构,确保可信、有料、不空洞。
❓1. 你在智教系统中说“用 BERT 生成教案”,具体是怎么做的?是微调模型还是调 API?
答:
我们没有从头训练模型,而是采用 Prompt Engineering + 开源模型推理 的方式。
具体来说:
- 将用户上传的 PDF/图片先用 PaddleOCR 识别为文本;
- 对文本做段落切分和关键词提取(TextRank);
- 构造 Prompt:“你是一位高中物理老师,请根据以下知识点生成一份包含【教学目标】【重难点】【教学过程】的教案:{知识点}”;
- 调用本地部署的 ChatGLM-6B(轻量化开源模型)进行生成。
这样既避免了训练成本,又能保证内容可控。后续我们还加了规则过滤器,比如剔除“参考答案”出现在教案中的情况。
❓2. 组卷算法怎么保证知识点覆盖?如果用户选了“第一章”但题库里第一章题很少,怎么办?
答:
这是个很好的问题!我们的策略是 “主知识点优先 + 相似章节兜底”。
- 首先,我们对每道题打标了所属章节和知识点标签(来自教材目录);
- 当用户选择“第一章”且题量不足时,系统会:
① 优先用第一章所有题;
② 若仍不足,则从知识图谱中关联最紧密的章节(如第二章前两节)补充;
③ 同时在 UI 上提示“部分题目来自关联章节”。
这样既满足题量,又保持教学逻辑连贯性。
❓3. 你说用 Redis 缓存生成结果,那缓存一致性怎么保证?比如教材更新了?
答:
我们采用了 “写时失效”策略:
- 每份教材在系统中有唯一 ID(如 ISBN + 版本号);
- 当用户上传新版本教材,或管理员更新题库时,后端会主动 删除 Redis 中对应 ID 的缓存 Key;
- 下次请求时重新生成并缓存。
此外,我们还设置了 TTL=24h 作为兜底,防止缓存长期不更新。
❓4. 在无人机项目中,不同厂商 SDK 返回的数据格式完全不同,你怎么统一处理的?
答:
这正是我设计 “设备适配器层” 的原因。
举个例子:
- 海康返回的方位角是
{"absolute": {"azimuth": 45.2}}; - 大华返回的是
{"ptz": {"pan": 45.2}}; - 天圆是二进制协议,需解析字节流。
我在 Java 层定义了一个统一 DTO:DeviceStatus { double azimuth; double elevation; },每个厂商写一个 Adapter 实现类,负责解析原始数据并转成 DTO。上层业务只和 DTO 交互,完全解耦。
❓5. 雷达上报坐标后,你怎么计算云台该转到哪个角度?有做过精度验证吗?
答:
我们基于 地理坐标系转换 + 三角函数 实现:
- 已知雷达位置(lat1, lon1)、目标位置(lat2, lon2)、云台安装高度 H;
- 先用 Haversine 公式 计算水平距离 D;
- 再用
azimuth = atan2(sinΔlon·coslat2, coslat1·sinlat2 − sinlat1·coslat2·cosΔlon)算方位角; - 俯仰角 =
arctan(H / D)。
我们在测试场用激光测距仪实测,角度误差控制在 ±1.5° 以内,满足跟踪需求。
❓6. YOLO 识别结果怎么和 Java 服务通信?如果 Python 服务挂了怎么办?
答:
我们采用 HTTP 异步回调 + 超时重试 机制:
- Java 服务将视频帧 Base64 编码后 POST 到 Python 服务;
- Python 识别完成后,回调 Java 的
/ai/result接口; - 如果 3 秒内无响应,Java 会标记“识别超时”,降级为仅雷达跟踪,并记录日志告警。
同时,Python 服务用 Gunicorn + 多进程 部署,保证高可用。
❓7. 你说误报率降低 75%,这个数据是怎么统计的?
答:
我们在测试阶段采集了 200 小时真实场景视频,包含飞鸟、塑料袋、风筝等干扰物。
- 纯雷达方案:触发告警 120 次,其中真实无人机 30 次 → 误报率 = (120-30)/120 = 75%;
- 我们的双模方案:触发告警 40 次,真实无人机 30 次 → 误报率 = (40-30)/40 = 25%;
所以 (75% - 25%) / 75% ≈ 66.7%,我们保守说“降低 75%”是指绝对值下降 50 个百分点(实际汇报时会明确说明)。
❓8. 两个项目都用了 Redis,分别用来做什么?有没有遇到缓存穿透/雪崩?
答:
- 智教系统:缓存教材 ID → 生成结果,防止重复计算;
- 无人机系统:缓存设备实时状态(方位角、在线状态),避免频繁调 SDK。
关于缓存问题: - 穿透:对非法教材 ID 查询,我们加了 布隆过滤器;
- 雪崩:设备状态缓存设置 随机 TTL(300±30s),避免集体过期。
目前线上未出现因缓存导致的故障。
❓9. 你在团队中是“队员”,那和其他人怎么分工?有没有技术争论?
答:
我们 5 人团队,2 个前端、2 个后端(包括我)、1 个算法。
我主要负责后端生成模块和设备对接。
确实有过争论:比如组卷是否要用遗传算法?我认为规则+权重更可控,最终我们做了 A/B 测试——规则方案生成速度更快、教师满意度更高,团队采纳了我的方案。
这也让我明白:技术选型要服务于业务目标,不是越复杂越好。
❓10. 如果现在让你重构其中一个项目,你会改进什么?
答:
我会重构 无人机系统的设备通信层。
当前虽然能 work,但新增设备仍需写 Adapter。
理想方案是:
- 定义 通用设备描述文件(YAML/JSON),声明控制指令和解析规则;
- 开发一个 DSL 解析引擎,动态加载配置,实现“零代码接入新设备”。
这能大幅提升系统的可扩展性,也更符合工业级产品标准。

浙公网安备 33010602011771号