跳到主要内容
2027 届本科应届 · 南宁学院 人工智能学院

梁栋源

AI 应用工程·计算机视觉

从数据标注、训练调参,到模型导出与推理性能优化 —— 独立跑通过深度学习项目的完整链路。

下载 PDF 简历
期望城市
南宁(首选) · 广州 · 深圳
邮箱
3348739703@qq.com
到岗时间
2027 年 7 月毕业,可提前实习
01

求职意向

目标岗位
AI 应用工程师 / 算法工程师(应用方向)亦接受计算机视觉工程师、大模型应用开发
期望城市
南宁(首选)同时考虑广州、深圳
到岗时间
2027 年 7 月毕业前可全职实习

我的能力集中在把模型跑成能用的东西这一段:数据标注与格式转换、训练与调参、模型导出与推理加速、把结果接到一个能交互的界面上。 两条主线——大模型应用(本地部署、量化降级、思维链可视化)与计算机视觉(目标检测、医学影像分割)。

02

教育背景

南宁学院 · 人工智能学院 人工智能(本科)

2023.09 — 2027.06
主修课程神经网络与深度学习、计算机视觉、机器视觉、生成对抗网络、语音识别、机器学习、Python 程序设计、数据结构与算法、计算机通信与网络、操作系统原理
毕业设计基于深度学习的多病种 CT 影像辅助诊断系统设计与实现 (指导教师:唐煜星)
英语可无障碍阅读英文技术文档与技术论文(以项目实践为主)
03

技术栈

编程语言

PythonC / C++Shell

深度学习

PyTorchMindSpore(昇腾)Ultralytics YOLOv8TransformersModelScope

视觉与数据

OpenCVNumPyPillowMatplotlibLabelMe 标注requests / BeautifulSoup

大模型应用

Qwen3 本地部署三级量化降级(8-bit / FP16 / CPU 回退)Prompt 工程思维链(CoT)解析与可视化Token / 时延监控

模型工程

ONNX / TorchScript 导出CPU 推理性能调优多任务网络结构设计迁移学习与分阶段微调

系统与工具

Linux(Ubuntu)ROS Noetic / Gazebo / RVizURDF 建模Git
04

项目经历

基于深度学习的多病种 CT 影像辅助诊断系统设计与实现

本科毕业设计 · 独立完成

面向胸部与颅脑 CT 的多病种统一辅助诊断:一次影像输入,同时给出病灶定位与病变分类,并输出可解释的诊断依据。

实验进行中多任务学习注意力机制迁移学习CAM 可解释性

问题背景

  • 胸部 CT(肺结节 / 肺结核 / 肺炎)与颅脑 CT(脑肿瘤 / 脑出血)阅片量大、依赖医师经验,基层医疗机构诊断能力不足
  • 现有单病种模型各管一摊,重复建设、无法共享影像特征,落地成本高

方案设计

  • 以 ResNet / EfficientNet 为骨干网络,引入注意力机制强化病灶区域响应
  • 多任务联合建模:共享编码器 + 分割头 + 分类头,分割辅助定位、分类负责定性,两个任务互相提供监督信号
  • 损失加权策略:不确定性加权 / 动态权重,配合焦点损失与类别重加权缓解病种样本不均衡
  • 迁移学习分阶段微调:先冻结骨干训练头部,再解冻高层做小学习率微调
  • 预处理管线:DICOM 窗宽窗位调整、归一化、重采样,统一胸部与颅脑两个来源的影像尺度
  • 类激活映射(CAM)输出病灶热力图,让诊断结果可以被医师复核,而不是一个黑盒分数

个人贡献

  • 独立完成选题、开题、技术路线设计与系统实现(指导教师:唐煜星)
  • 规划并实现从数据预处理、多任务网络搭建设计到推理服务的完整模块划分

当前进度说明:本项目仍在进行中,正处在数据集整合与基线搭建阶段,尚未产出可报告的实验结果。因此本页不列任何指标数字 —— 相比填一个好看但站不住的数字,我更愿意在面试里讲清楚每一步为什么这么做。

技术栈:Python · PyTorch · OpenCV · DICOM 预处理 · 多任务 CNN

基于 YOLOv8 的饮料瓶目标检测系统

机器视觉课程设计 · 独立完成

零售与仓储场景下的 10 类饮料瓶自动识别:从数据标注、格式转换、模型训练到多格式导出与 CPU 推理测速,全流程独立跑通。

mAP50 0.99479Recall 0.99287278 张 / 10 类ONNX 导出CPU 单张 45ms

数据处理

  • 数据源:ModelScope 公开数据集 merged_dataset,共 278 张图像(训练 110 / 验证 168),原始分辨率 5568×3712
  • 用 LabelMe 完成 10 类目标标注,自写 json2yolo.py 把 LabelMe JSON 批量转成 YOLO TXT 格式,generate_yaml.py 自动生成数据集配置文件 —— 避免手工整理标注带来的错标与漏标
  • 10 个类别:农夫山泉、红牛、旺仔牛奶、百事可乐、芬达、雪碧、可口可乐、王老吉、尖叫、冰红茶

模型与训练

  • 选用 YOLOv8n(参数量 3.01M、权重仅 6.0MB),Anchor-Free + 解耦检测头结构,适合轻量部署
  • 损失函数由三部分构成:CIoU(边界框回归)+ BCE(分类)+ DFL(分布焦点损失)
  • AdamW 优化器,初始学习率 0.01,训练 50 个 epoch,batch size 16,输入尺寸 640
  • 启用 Mosaic、HSV 色彩抖动、RandomErasing 等内置增强,并结合 COCO 预训练权重做迁移学习

实验结果

  • mAP50 = 0.99479,mAP50-95 = 0.94289,Precision = 0.99363,Recall = 0.99287
  • 训练过程收敛正常:mAP50 从第 1 个 epoch 的 0.317 提升至第 50 个 epoch 的 0.995;分类损失由 2.81 降至 0.57
  • 推理性能:本机 CPU(AMD Ryzen 7 7735H)单张约 45ms;用未参与训练的图像独立验证 10 张,检出 37 个目标全部正确
  • 导出部署格式:ONNX 11.7MB、TorchScript 11.6MB,验证了脱离训练框架独立部署的可行性

个人贡献

  • 独立完成数据获取、标注整理、格式转换、训练调参、指标评估与模型导出的全部环节
  • 额外编写了标注格式转换与配置生成脚本,把一次性操作固化成可复用的流程

技术栈:Python 3.12 · PyTorch · Ultralytics YOLOv8 8.4 · OpenCV · NumPy · Pillow · LabelMe · Matplotlib

AI 大模型交互系统

神经网络与深度学习综合实践 · 组长(3 人)

把本地大模型从"跑得起来"做到"看得懂、跑得动":统一加载接口、三级量化降级适配不同显存,并把模型的思考过程可视化出来。

Qwen3-1.7B / 7B三级量化降级思维链可视化组长

问题背景

  • 大模型本地部署门槛高:显存不足直接崩,用户看不懂报错也不知道该怎么降配
  • 推理过程是黑盒:输出只有一个最终答案,看不到模型的推理链条,难以判断结论可靠性

方案设计

  • 统一模型加载接口,屏蔽 Qwen3-1.7B 与 Qwen3-7B 在路径、分词器、设备分配上的差异
  • 三级量化降级策略:8-bit → FP16 → CPU 回退。显存不足时自动逐级降配重试,而不是直接抛异常退出
  • 解析模型输出中的 <think></think> 标记,实现思维链(CoT)的双阶段解码与展示,把推理过程和最终答案分开展示
  • 用 rich 做终端富文本渲染,让对话、思考块、统计信息在命令行里仍然可读
  • 加入性能监控:每轮对话的 Token 数与推理耗时统计,用来定量比较不同量化级别下的速度差异

个人贡献

  • 担任组长,负责整体系统架构设计、模块边界划分与进度统筹
  • 承担核心推理引擎的实现:模型加载、量化降级调度、思维链解析
  • 负责项目报告的统稿与讲解材料整理

技术栈:PyTorch · Transformers · ModelScope · rich

PixelTerrainGAN —— 像素地形生成对抗网络

课程实践 · 组长(3 人)

用 DCGAN 从零生成 64×64 的 2D 横版游戏地形,替代手工绘制,降低独立游戏的美术成本。

DCGAN 从零实现MindSpore约 1000 张自建样本组长

数据构造

  • 没有现成数据集,因此编写脚本程序化生成约 1000 张 64×64 像素地形样本(地面 / 草地 / 树木)作为训练集

方案设计

  • 生成器:4 层 Conv2dTranspose 逐步上采样(256→128→64→32→1),配合 BatchNorm、ReLU,输出层用 Tanh 把像素压到 [-1, 1]
  • 判别器:Conv2d 逐层下采样(32→64→128→256→1),配合 LeakyReLU,输出层 Sigmoid 给出真伪概率
  • 损失与优化:BCELoss 对抗损失,Adam 优化器,潜在向量 100 维
  • 用 MindSpore 框架实现,在昇腾生态下复现 DCGAN 的完整训练闭环

结果与评估

  • 采用定性评估:人工观察生成地形的结构连贯性与多样性,同时监控生成器 / 判别器损失曲线的对抗平衡状态(本项目未引入 FID 等量化指标)
  • 产出可交互命令行脚本:生成数据 → 训练 → 生成地形,三步即可复现

个人贡献

  • 担任组长,负责整体方案设计与核心算法实现
  • 独立实现生成器模块,与组员分别负责的判别器 / 训练流程、数据与可视化模块对接

技术栈:MindSpore · Python · NumPy · Matplotlib

05

其他课程实践

  • 视频行为识别(C3D)

    基于 MindSpore 实现 C3D 三维卷积网络,在 UCF101 数据集上完成行为识别训练流程。

  • CycleGAN 风格迁移

    实现 apple2orange 无配对图像翻译,理解循环一致性损失的作用与训练不稳定现象。

  • 图像分类网络对比实验

    在 200 类数据集上对比 LeNet / AlexNet / VGG / ResNet,观察网络深度对精度与训练成本的影响。

  • ROS 机器人任务调度与通信仿真

    ROS Noetic + Gazebo 搭建差速底盘机器人,用 URDF 建模,实现话题 / 服务 / 动作三种通信机制与激光避障。

  • 对抗样本与图像修复

    实现 FGSM 对抗攻击,观察微小扰动对分类结果的影响;另完成老照片修复、ArUco / ARTag 形态学定位等视觉实验。

  • 天气数据采集与可视化

    使用 requests + BeautifulSoup 爬取公开天气数据(含请求头反爬处理),落库为 CSV 后用 Matplotlib 完成趋势可视化。

06

关于我

我的项目几乎都是自己从零跑通的:没有现成数据集就写脚本造数据,标注格式不对就写转换脚本,模型要上线就自己做导出和推理测速。相比"调通了某个开源仓库",我更在意这个流程里的每一环我能不能自己重做一遍。

三次担任课程项目组长,习惯把任务拆到"谁在什么时间交什么"的粒度,也习惯先把接口约定好再各自开工 —— 这样返工最少。

框架方面是 PyTorch 与 MindSpore 双栈:前者用得最多,后者让我理解了国产框架的图执行模式,也更清楚两者在算子与训练循环上的差异。

我清楚自己的短板:没有实习经历,英语四级尚未通过,项目多为课程实践。所以我把毕业设计当成真正的工程来做,也正在补齐大模型应用方向缺的 RAG 与 Agent 开发能力。我需要一个能让我把东西真正做出来、并且有人指出我哪里做得不对的环境。