具身智能工业视觉分析与物联监护应用演练
1 工效组合展示

2 具身智能工业视觉获取与分析应用
2.1 工具软件安装



2.2 工业视觉环境构建与应用

2.3 昇腾工业视觉终端应用展现





3 具身智能工业视觉识别快速编码实现
3.1 IMA-DS借力
给出PYTHON虚拟环境OCR文字识别的编码及其运行过程,包括汉字,WINDOws环境,非 COnDA, 使用本机连接的网络摄像机,并且使用的是cpu

3.2 运行环境构造
cd camera_ocr
:: 1. 创建虚拟环境
python -m venv venv
:: 2. 激活(Windows 用 Scripts 目录)
venv\Scripts\activate
:: 3. 安装依赖(国内可加镜像加速)
python -m pip install --upgrade pip -i https://mirror.baidu.com/pypi/simple
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
:: 4. 运行实时识别
python main.py
3.3 编码实现
main主函数
# -*- coding: utf-8 -*-
"""
实时网络摄像机 OCR(中文)识别主程序。
流程:读取视频流 -> 按间隔抽帧 -> PaddleOCR 识别 -> 画框显示 -> 打印到终端。
按键:
# -*- coding: utf-8 -*-
"""
实时网络摄像机 OCR(中文)识别主程序。
流程:读取视频流 -> 按间隔抽帧 -> PaddleOCR 识别 -> 画框显示 -> 打印到终端。
按键:
q 或 ESC 退出
s 保存当前帧的标注图 + 识别文本
"""
import os
import time
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
import config
from camera import CameraStream
from ocr_engine import OCREngine
_CN_FONT = None
_CN_FONT_LOADED = False
def get_cn_font(size=18):
global _CN_FONT, _CN_FONT_LOADED
if _CN_FONT_LOADED:
return _CN_FONT
_CN_FONT_LOADED = True
for path in (
"C:/Windows/Fonts/msyh.ttc",
"C:/Windows/Fonts/simhei.ttf",
"C:/Windows/Fonts/simsun.ttc",
):
if os.path.exists(path):
try:
_CN_FONT = ImageFont.truetype(path, size)
return _CN_FONT
except Exception:
pass
_CN_FONT = ImageFont.load_default()
return _CN_FONT
def draw_results(frame, items):
for it in items:
if it["box"]:
pts = np.array([[int(x), int(y)] for x, y in it["box"]], dtype=np.int32)
cv2.polylines(frame, [pts], True, (0, 255, 0), 2)
if not items:
return frame
rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
pil = Image.fromarray(rgb)
draw = ImageDraw.Draw(pil)
font = get_cn_font(18)
for it in items:
if it["box"]:
x, y = int(it["box"][0][0]), int(it["box"][0][1])
else:
x, y = 10, 10
label = f"{it['text']} {it['score']:.2f}"
bbox = draw.textbbox((x, y - 22), label, font=font)
draw.rectangle(bbox, fill=(0, 0, 0))
draw.text((x, y - 22), label, fill=(0, 255, 0), font=font)
return cv2.cvtColor(np.asarray(pil), cv2.COLOR_RGB2BGR)
def save_result(frame, items, output_dir, prefix="capture"):
os.makedirs(output_dir, exist_ok=True)
ts = time.strftime("%Y%m%d_%H%M%S")
img_path = os.path.join(output_dir, f"{prefix}_{ts}.jpg")
txt_path = os.path.join(output_dir, f"{prefix}_{ts}.txt")
cv2.imwrite(img_path, frame)
with open(txt_path, "w", encoding="utf-8") as f:
for it in items:
f.write(f"{it['text']}\t{it['score']:.4f}\n")
print(f"[保存] {img_path}")
return img_path
def main():
print("=" * 50)
print("网络摄像机 OCR 识别(PaddleOCR 中文 / CPU)")
print("=" * 50)
cam = CameraStream(config.CAMERA_URL, use_tcp=config.CAMERA_USE_TCP)
if not cam.open():
print("[错误] 无法连接摄像机,请检查 config.py 里的 CAMERA_URL、网络与账号密码。")
return
print("[OCR] 正在加载模型,首次运行会自动下载(约 10~300MB),请稍候...")
ocr = OCREngine(lang=config.OCR_LANG, use_gpu=config.OCR_USE_GPU).load()
print("[OCR] 模型加载完成。")
cv2.namedWindow("Camera OCR", cv2.WINDOW_NORMAL)
frame_idx = 0
last_items = []
while True:
frame = cam.read()
if frame is None:
print("[摄像头] 读取失败,尝试重连...")
if not cam.reconnect():
print("[错误] 重连失败,退出。")
break
continue
frame_idx += 1
if frame_idx % config.OCR_EVERY_N_FRAMES == 1:
t0 = time.time()
last_items = ocr.recognize(frame)
cost = time.time() - t0
if last_items:
print(f"[OCR] 第 {frame_idx} 帧,识别 {len(last_items)} 条,耗时 {cost:.2f}s")
for it in last_items:
print(f" 识别: {it['text']} (置信度 {it['score']:.2f})")
if config.DRAW_BOX:
frame = draw_results(frame, last_items)
cv2.imshow("Camera OCR", frame)
key = cv2.waitKey(1) & 0xFF
if key in (ord("q"), 27):
break
elif key == ord("s"):
save_result(frame, last_items, config.OUTPUT_DIR)
cam.release()
cv2.destroyAllWindows()
print("[退出] 程序结束。")
if __name__ == "__main__":
main()
3.4 运行测试


4 IoTDA中转空间构建
4.0 IoTDA构造



4.1 产品及其模型构建
4.1.1 温湿度计

温湿度计产品信息如下:
产品信息:
- 产品名称:温湿度计
- 协议类型:MQTT
- 数据格式:JSON
- 所属行业:智能家居
- 所属子行业:智能家居
服务列表:
- 服务ID:T&H
- 属性名称:temperature
- 数据类型:decima
- 访问权限:可读可写
- 取值范围:-100-100
- 属性名称:humidity
- 数据类型:decimal
- 访问权限:可读可写
- 取值范围:0-10
4.1.2 吸顶灯

产品信息:
-- 产品名称:智能吸顶灯
-- 协议类型:MQTT
-- 数据格式:JSON
-- 所属行业:智能家居
-- 所属子行业:智能家居
服务列表:Light
属性名称:光照强度
数据类型:decimal
访问权限:可读可写
取值范围:0-5000
属性名称:功率
数据类型:decimal
访问权限:可读可写
取值范围:0-10000
命令名称:Light
下发参数名称:turn
数据类型:string
长度:10
下发参数名称:power
数据类型:string
取值范围:0-10000
服务ID:Color
属性名称:当前颜色
数据类型:string
长度:10
命令名称:设置颜色
下发参数名称:color
数据类型:string
长度:10
4.2 设备实例化应用

4.2.1 温湿度计设备注册及模拟测试



4.2.2 吸顶灯设备注册及模拟测试




5 CodeArts智慧路灯快速构建与部署
5.1 应用项目创建


5.2 代码托管操作

5.3 构建任务设立



5.4 项目构建实现

5.5 项目部署运行


更多推荐




所有评论(0)