产品开发 远程全职
一般月薪16800元- 项目类型:不用选择
- 每月工作: 24天
- 工作方式:
职位详情
一、整体框架 / 语言
• C# + .NET (WPF):继续作为上位机 UI 和业务逻辑的主框架
• Python(子进程或服务):负责训练、复杂算法(如深度学习、PatchCore、复杂图像处理)
• 通信方式:CLI + StdOut、TCP/Socket、或 gRPC/REST(WPF ↔ Python)
---
二、相机采集系统(工业相机 SDK 抽象)
• 工业相机 SDK:
• 海康:MVS / MVSDK(C/C++/C#),或 HikRobot 官方 .NET SDK
• Basler:pylon SDK(有 .NET 组件)
• 大恒:Galaxy SDK
• C# 技术栈:
• 抽象接口:ICamera, ICameraControl(采集 / 触发 / 参数读写)
• Task/async 模式 + 生产者/消费者队列(采集线程与处理线程解耦)
• 图像格式:System.Drawing.Bitmap 或 WriteableBitmap / System.Windows.Media.Imaging 统一封装
• 图像基础处理(非 AI):
• OpenCvSharp4(C# 封装的 OpenCV,用于预处理、ROI 裁剪、格式转换)
---
三、开源标注软件集成(如 X-AnyLabeling / LabelMe)
• 外部工具集成:
• System.Diagnostics.Process 启动外部标注软件,带图片目录参数
• 通过配置保存标注软件路径、数据目录
• 标注数据格式:
• LabelMe JSON / COCO JSON / YOLO txt 等
• C# 反序列化:System.Text.Json 或 Newtonsoft.Json
• 数据转换模块:
• AnnotationConverter:将推理结果(框、标签、置信度)↔ 标注 JSON
• 目录结构约定:dataset/images, dataset/labels 等
• 训练触发(闭环):
• 从 WPF 调 Python 脚本:ProcessStartInfo 调用 python train.py ...
• 进度回调:Python 通过 stdout 输出或通过 TCP/Socket 返回给 WPF
---
四、AI 拍摄 / 光学自动对焦(Auto Exposure / Auto Focus)
1. 图像评价算法(清晰度/亮度/对比度)
• C#:
• OpenCvSharp 实现:Laplacian 方差(清晰度)、直方图 / 均值(亮度)、对比度等
• Python 备选(如后续要用更复杂评价指标):
• OpenCV (cv2) + NumPy
2. 参数搜索 / 优化算法
• 简易爬山算法 / 网格搜索 / 模拟退火:
• C# 自己实现即可(算法很轻量)
• 对接相机 SDK 参数:
• 曝光、增益、gamma、光圈、焦距(若镜头可控)
3. 硬件控制
• 使用各家 SDK 中的:
• SetExposureTime, SetGain, SetFocus, SetAperture 等属性
• 统一封装到 ICameraControl.AutoOptimizeAsync() 中,隐藏厂商差异
六、通讯系统 / 工业互联(PLC / MES 等)
• 工业协议库(C#):
• NModbus4:Modbus TCP/RTU
• S7.Net:西门子 S7 PLC
• 若有自定义 TCP 协议:System.Net.Sockets
• 架构设计:
• ICommunicationProvider / IIndustrialProtocol 抽象接口
• 插件化实现:ModbusProvider, S7Provider, TcpJsonProvider 等
• 抽象触发源与结果输出:
• ITriggerSource(软触发 / PLC 位变化触发)
• IResultOutput(写寄存器、发 JSON、写文件等)