尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

海康MV工业相机的检测、识别、测量,华为昇腾算力工业视觉终端动态识别跟踪

海康MV工业相机的检测、识别、测量,华为昇腾算力工业视觉终端动态识别跟踪 具身智能工业视觉实战全记录昇腾 YOLOv5 目标检测 海康相机 EasyOCR 华为云 IoTDA 与 CodeArts 智慧路灯部署本文记录一次完整的具身智能工业视觉 物联网实训过程覆盖工业相机采集、YOLOv5 目标检测、EasyOCR 文字识别、华为云 IoTDA 设备接入与 CodeArts 智慧路灯部署五大环节内容可直接复现。目录一、整体概览二、具身智能工业视觉获取与分析应用三、具身智能工业视觉识别快速编码实现四、IoTDA 中转空间构建五、CodeArts 智慧路灯快速构建与部署六、总结一、整体概览本次实训围绕「工业视觉」与「物联网」两条主线展开技术栈如下模块核心技术作用工业视觉采集USB3 Vision / MVS / 昇腾开发板相机驱动、画面采集、远程环境目标检测YOLOv5昇腾算力实时识别画面中的人物、座椅等目标文字识别海康相机 EasyOCR实时 OCR 识别并标注置信度物联平台华为云 IoTDA MQTT.fx设备建模、注册、数据上报与指令下发应用部署华为云 CodeArts智慧路灯项目构建与 Spring Boot 部署二、具身智能工业视觉获取与分析应用2.1 工具软件安装本阶段完成工业视觉相关驱动与工具的部署安装具体包括USB3 Vision 工业相机驱动安装后设备管理器中正常显示USB3 Vision Camera设备驱动生效MVS 机器视觉客户端可成功识别并连接工业相机输出实时采集画面USB RNDIS6 网卡驱动适配昇腾开发板的 USB 网络连接MobaXterm 远程终端工具为后续开发板调试提供连接支持。2.2 工业视觉环境构建与应用配置本地以太网静态 IP地址设为192.168.137.101子网掩码255.255.255.0使本地电脑与昇腾开发板处于同一网段保障网络互通。通过 MobaXterm 以 SSH 方式登录开发板进入样例代码目录执行启动脚本排查脚本权限与格式问题后成功启动 Jupyter Notebook 服务。终端输出服务访问地址与认证令牌搭建起远程开发的工业视觉运行环境。2.3 昇腾工业视觉终端应用展现在浏览器访问 Jupyter 服务地址进入 JupyterLab 界面运行 YOLOv5 目标检测样例代码。程序基于昇腾算力加载 YOLO 模型对实时画面进行推理可识别画面中的人物、座椅等物体用绿色检测框标注目标位置同时输出识别类别与对应置信度直观展现昇腾终端的工业视觉实时检测效果。三、具身智能工业视觉识别快速编码实现3.1 IMA-DS 借力依托IMA-DS 工业视觉开发套件完成海康 USB 工业相机的硬件层适配。套件内置相机驱动与图像采集接口可直接对接 EasyOCR 文字识别算法。对应开发文档明确了 Windows CPU 环境下的相机适配方案与编码框架快速打通工业相机的图像采集底层链路为后续 OCR 识别开发提供硬件接入与采集能力支撑。3.2 运行环境构造# 创建虚拟环境python-mvenv ocr_env# 激活虚拟环境Windowsocr_env\Scripts\activate# 安装依赖包pipinstalleasyocr opencv-python pillow numpy3.3 编码实现核心流程初始化 SDK → 枚举设备 → 创建句柄 → 打开设备 → 连续取流 → Bayer 转 BGR → 隔帧 OCR → 绘制标注 → 释放资源。# 导入需要的库importsysimportosfromctypesimport*sys.path.append(./MvImport)fromMvImport.MvCameraControl_classimport*importcv2importnumpyasnpimporteasyocr# 初始化OCR模型 readereasyocr.Reader([ch_sim,en],gpuFalse)# 主函数相机采集OCR识别 defmain():# 初始化SDKMvCamera.MV_CC_Initialize()# 枚举设备deviceListMV_CC_DEVICE_INFO_LIST()tlayerTypeMV_GIGE_DEVICE|MV_USB_DEVICE retMvCamera.MV_CC_EnumDevices(tlayerType,deviceList)ifret!0:print(枚举设备失败 ret[0x%x]%ret)returnifdeviceList.nDeviceNum0:print(未找到相机)returnprint(找到 %d 台相机%deviceList.nDeviceNum)# 选择第0号设备camMvCamera()stDeviceListcast(deviceList.pDeviceInfo[0],POINTER(MV_CC_DEVICE_INFO)).contents# 创建句柄retcam.MV_CC_CreateHandle(stDeviceList)ifret!0:print(创建句柄失败 ret[0x%x]%ret)return# 打开设备retcam.MV_CC_OpenDevice(MV_ACCESS_Exclusive,0)ifret!0:print(打开设备失败 ret[0x%x]%ret)cam.MV_CC_DestroyHandle()return# 设置触发模式为关闭连续采集cam.MV_CC_SetEnumValue(TriggerMode,MV_TRIGGER_MODE_OFF)# 开始取流cam.MV_CC_StartGrabbing()stOutFrameMV_FRAME_OUT()memset(byref(stOutFrame),0,sizeof(stOutFrame))print(相机已启动按键盘 q 关闭窗口退出程序)frame_count0last_result[]# 缓存最近一次OCR结果whileTrue:# 获取一帧图像超时1000msretcam.MV_CC_GetImageBuffer(stOutFrame,1000)ifret0:stFrameInfostOutFrame.stFrameInfo widthstFrameInfo.nWidth heightstFrameInfo.nHeight# 原始Bayer数据转numpy数组img_datastring_at(stOutFrame.pBufAddr,stFrameInfo.nFrameLen)imgnp.ndarray(bufferimg_data,dtypenp.uint8,shape(height,width))# Bayer转彩色BGRimg_rgbcv2.cvtColor(img,cv2.COLOR_BAYER_RG2BGR)# 缩小用于显示和OCR大幅提升速度display_w960display_hint(height*display_w/width)img_smallcv2.resize(img_rgb,(display_w,display_h))# 每隔5帧做一次OCR避免卡顿frame_count1ifframe_count%50:last_resultreader.readtext(img_small)# 把识别到的文字打印到cmd窗口forbbox,text,confinlast_result:print(f识别文字{text}置信度{round(conf,2)})# 在缩小图上绘制OCR结果forbbox,text,confinlast_result:ptsnp.array(bbox,np.int32)cv2.polylines(img_small,[pts],True,(0,255,0),2)cv2.putText(img_small,text,(int(bbox[0][0]),int(bbox[0][1])-5),cv2.FONT_HERSHEY_SIMPLEX,0.6,(0,255,0),2)cv2.imshow(海康USB相机 OCR预览,img_small)cam.MV_CC_FreeImageBuffer(stOutFrame)# 检测键盘按键keycv2.waitKey(1)0xFFifkeyord(q):break# 释放资源cam.MV_CC_StopGrabbing()cam.MV_CC_CloseDevice()cam.MV_CC_DestroyHandle()MvCamera.MV_CC_Finalize()cv2.destroyAllWindows()if__name____main__:main()3.4 运行测试程序运行后工业相机实时采集画面识别到的文字用绿色框标注控制台同步输出识别内容与置信度整体运行稳定按键盘q键即可退出。四、IoTDA 中转空间构建本章使用华为云IoTDA 物联网平台搭建设备接入的中转空间完成温湿度计、吸顶灯两类设备的模型搭建、设备注册和模拟测试验证终端设备和平台之间的数据上报、指令下发链路是否通畅。4.0 IoTDA 简介IoTDA 是面向物联网场景的设备管理与数据中转平台相当于终端设备和上层应用之间的「中转站」。它具备以下能力支持各类设备统一接入自定义设备型号产品功能存储设备上报的数据向设备下发远程控制命令监控设备在线状态、身份校验。4.1 产品及其模型构建在 IoTDA 平台分别创建温湿度计、吸顶灯两类设备产品完成各自的物模型定义与发布同步在对应产品下完成设备实例注册。全部配置完成后在平台设备列表页可查看所有已建设备页面展示设备状态、设备名称、设备标识码、所属产品、节点类型等信息。4.1.1 温湿度计先在平台新建温湿度计自定义产品选择直连设备接入方式填写产品基础信息。接着定义产品物模型新增温湿度采集服务添加温度、湿度两个浮点型属性分别设置单位为摄氏度和% RH配置完成后保存并发布物模型。模型发布后在该产品下注册名为「大温湿度计」的设备实例注册完成后设备列表自动生成对应条目平台为设备分配唯一的设备标识码与设备 ID作为后续设备接入的身份凭证节点类型标注为直连设备。4.1.2 吸顶灯按照相同流程创建吸顶灯产品同样采用直连设备接入方案。定义设备控制服务添加布尔型的开关状态属性配置状态上报与命令下发的交互规则完成后发布产品物模型。模型发布完成后注册「大吸顶灯」设备实例设备列表同步更新对应记录生成专属设备标识信息节点类型为直连设备。4.2 设备实例化应用使用MQTT.fx客户端模拟真实设备接入 IoTDA 平台分别完成温湿度计、吸顶灯的设备联调测试验证设备与平台之间数据上报、指令下发的双向通信链路。4.2.1 温湿度计设备注册及模拟测试通过 MQTT.fx 配置平台 Broker 地址、端口与温湿度计的设备身份凭证完成设备接入。向平台上报温度23、湿度35的属性数据后平台设备详情页显示设备在线物模型数据与上报值一致验证温湿度数据上报链路正常。4.2.2 吸顶灯设备注册及模拟测试完成吸顶灯的 MQTT 接入并订阅平台命令主题在平台侧下发开关、功率控制指令设备端可正常接收设备上报灯光状态数据后平台物模型同步更新验证远程控制与状态上报的双向链路通畅。五、CodeArts 智慧路灯快速构建与部署5.1 应用项目创建登录华为云 CodeArts 开发平台依次完成项目与代码仓库的创建。首先新建项目时选择适配物联网项目的开发模板搭建项目管理与协作框架随后创建代码仓库在官方模板库中选用IoT_Streetlight_Demo智慧路灯 Java 示例模板该模板内置路灯应用的基础代码结构与依赖配置选中后完成仓库初始化为后续智慧路灯应用的开发与部署提供基础环境。5.2 代码托管操作仓库创建完成后智慧路灯项目代码托管在 CodeArts 代码托管服务中。仓库默认master分支包含完整的 Java 项目结构有源码目录src、Maven 配置文件pom.xml、项目说明文档等文件同时记录了提交次数、分支数量等仓库信息支持代码版本管理可直接对接后续构建部署流水线。5.3 构建任务设立在 CodeArts 构建服务中新建构建任务配置任务基础信息填写构建任务名称选定所属的智慧路灯项目代码源选择平台内置 Repo关联对应的智慧路灯代码仓库完成配置后即可进入下一步构建参数设置。5.4 项目构建实现构建任务执行完成环境准备、代码检出、Maven 构建、软件包上传全流程执行成功构建日志显示最终状态为SUCCESS项目 jar 包已成功上传至发布库。5.5 项目部署运行将构建好的应用 jar 包下载到本地在 PowerShell 中执行以下命令启动 Spring Boot 服务java-jarsmartlight.jar服务启动后访问智慧路灯 Web 页面可进行设备注册、参数设置等操作完成项目部署运行。六、总结本次实训完整走通了「工业视觉 → 文字识别 → 物联平台 → 应用部署」的技术链路主要收获如下工业视觉采集掌握了 USB3 Vision 相机驱动、MVS 客户端、昇腾开发板网络配置及 Jupyter 远程环境搭建目标检测基于昇腾算力运行 YOLOv5 实现对实时画面的目标检测与置信度输出OCR 识别通过 IMA-DS 套件 EasyOCR 完成海康相机实时文字识别掌握了 Bayer 数据转换、隔帧推理等优化技巧物联平台熟悉了 IoTDA 的产品建模、设备注册、MQTT 接入及双向通信链路验证应用部署掌握了 CodeArts 从代码托管、构建到 Spring Boot 部署运行的完整流程。整个过程技术栈跨度较大但各环节环环相扣是一套较完整的「端—边—云」一体化实践案例。标签华为云IoTDACodeArts昇腾YOLOv5EasyOCR工业视觉具身智能MQTT智慧路灯Spring Boot
返回列表