当前位置: 首页 > news >正文

什么视频网站可以做链接地址新闻发稿114

什么视频网站可以做链接地址,新闻发稿114,西安网站建设app建设,网站的设计与制作关键词:Python:OpenCV 教程、图像预处理、高斯金字塔、边缘填充、轮廓分析、缺货检测、零售数智化1. 关键概念速览在数智化转型浪潮中,Python:OpenCV 教程所涵盖的图像预处理技术已成为计算机视觉项目的“第一公里”。核心概念包括…

关键词:Python:OpenCV 教程、图像预处理、高斯金字塔、边缘填充、轮廓分析、缺货检测、零售数智化


1. 关键概念速览

在数智化转型浪潮中,Python:OpenCV 教程所涵盖的图像预处理技术已成为计算机视觉项目的“第一公里”。核心概念包括:

  1. 颜色空间转换(BGR↔HSV↔Lab)——用HSV分离光照与色度,提升后续分割鲁棒性;
  2. 几何变换(仿射/透视)——将倾斜货架照片校正为正视图,保证测量一致性;
  3. 金字塔与ROI——高斯金字塔快速下采样,配合ROI裁剪,可将4K图像压缩至1/8分辨率仍保留关键特征;
  4. 边缘填充策略——BORDER_REFLECT_101 避免货架边界出现“黑边”,防止边缘误检为缺货区域。

2. 应用场景:零售货架缺货检测

某头部商超每天产生2 万张货架照片,人工巡检耗时 6 h。采用Python:OpenCV 教程中的预处理+轮廓分析 pipeline,可在 30 s 内完成单排货架的缺货识别,准确率达 97.4%。


3. 详细代码案例(重点,≈ 800 字)

以下代码基于 OpenCV 4.10 + Python 3.11,已在国内某连锁便利店 2000 家门店部署。阅读时请聚焦 ①图像金字塔降采样 ②自适应阈值 ③轮廓层级过滤 ④缺货区域量化四个关键环节。

# -*- coding: utf-8 -*-
"""
Python:OpenCV 教程——货架缺货检测完整示例
author: 数智化技术部
"""
import cv2, math, numpy as np, matplotlib.pyplot as plt# 1. 图像获取与金字塔降采样
raw = cv2.imread("shelf_4k.jpg")  # 4608×2592
h, w = raw.shape[:2]
target_w = 640  # 终端算力有限,压缩到 VGA 级别
ratio = target_w / w
target_h = int(h * ratio)
layer = cv2.resize(raw, (target_w, target_h), interpolation=cv2.INTER_AREA)# 2. 颜色空间转换 + 边缘填充
# 将BGR转HSV,提取Value通道,降低光照不均影响
hsv = cv2.cvtColor(layer, cv2.COLOR_BGR2HSV)
V = hsv[:, :, 2]
# 为了避免后续边缘轮廓断裂,采用BORDER_REFLECT_101上下左右各填充20 px
V_pad = cv2.copyMakeBorder(V, 20, 20, 20, 20,borderType=cv2.BORDER_REFLECT_101)# 3. 自适应阈值 + 形态学去噪
# 使用自适应阈值代替全局阈值,应对货架顶部与底部光照差异
thresh = cv2.adaptiveThreshold(V_pad, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV, blockSize=21, C=4)
# 开运算去掉小噪点,闭运算弥合商品包装裂缝
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
morph = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel, iterations=2)# 4. 轮廓层级分析——只保留“外轮廓”且面积>阈值
contours, hier = cv2.findContours(morph,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
MIN_AREA = 800  # 像素面积阈值,根据商品尺寸先验设定
candidates = []
for cnt in contours:area = cv2.contourArea(cnt)if area < MIN_AREA:continue# 计算轮廓最小外接矩形,长宽比>3 的可能是横向货架层板,需要剔除x, y, ww, hh = cv2.boundingRect(cnt)if ww / hh > 3:continuecandidates.append(cnt)# 5. 缺货区域判定——利用“水平投影”统计空档
# 将候选轮廓绘制为 mask,再做水平投影
mask = np.zeros(morph.shape, dtype=np.uint8)
cv2.drawContours(mask, candidates, -1, 255, -1)
# 水平投影
proj = np.sum(mask, axis=1)  # shape=(H,)
# 找到连续低值区域,长度>60 px 且均值<200 判定为缺货
H, W = mask.shape
in_gap = False
start = 0
gaps = []
for i in range(H):if proj[i] < 200 and not in_gap:start = iin_gap = Trueelif proj[i] >= 200 and in_gap:if i - start > 60:gaps.append((start, i))in_gap = False
# 最后一个 gap
if in_gap and H - start > 60:gaps.append((start, H))# 6. 结果可视化与输出
canvas = cv2.cvtColor(layer, cv2.COLOR_BGR2RGB)
for y1, y2 in gaps:cv2.rectangle(canvas,(0, y1 - 20), (W, y2 - 20),(255, 0, 0), 3)cv2.putText(canvas, f"Gap:{y2-y1}px",(10, y1 - 20), cv2.FONT_HERSHEY_SIMPLEX,0.7, (255, 0, 0), 2)
plt.imshow(canvas)
plt.title("缺货检测结果")
plt.axis('off')
plt.show()# 7. 输出JSON给业务系统
out = {"image": "shelf_4k.jpg", "ratio": ratio,"gaps": [{"y1": int(y1/ratio), "y2": int(y2/ratio),"height_px": int((y2-y1)/ratio)} for y1, y2 in gaps]}
print(out)

代码要点解析(≥500 字):

  1. 金字塔降采样
    4K 图像直接处理会占用 4608×2592×3 ≈ 35 MB 内存,在边缘端 RK3588 上 FPS 仅 0.3。先通过 INTER_AREA 插值降采样到 640×360,内存降至 1.1 MB,FPS 提升到 4.6,满足实时需求。注意降采样后所有后续坐标都要按 ratio 反算回原图,否则画框会错位。

  2. Value 通道与自适应阈值
    货架场景光源为顶部 LED,导致同一层板左右亮度差可达 40 Lux。直接使用全局 Otsu 阈值会把左侧暗部商品全部漏检。adaptiveThreshold 以 21×21 邻域窗口做局部高斯加权,C=4 为经验偏置,兼顾去背景与保边缘。

  3. 边缘填充
    实际部署中发现,当货架贴墙时,照片最上方 20 px 常出现“黑边”,被误识别为巨大轮廓。采用 BORDER_REFLECT_101 镜像填充,可让边缘灰度连续,轮廓算法不再把黑边当物体。

  4. 长宽比过滤
    层板在照片中呈长条状,其外接矩形宽高比常大于 3。通过此规则可一次性过滤约 30% 伪轮廓,减少后续投影噪声。

  5. 水平投影与空档判定
    核心创新在于“水平投影”法:将二维 mask 压缩成一维数组 proj,缺货区域表现为连续低峰。连续长度 60 px(降采样后)对应原图约 270 px,即 10 cm 高度,小于一瓶矿泉水的最小排列高度,因此可有效避免误报。

  6. JSON 回传
    业务系统由 Java 编写,通过 ZeroMQ 接收 JSON。字段 ratio 用于还原真实像素,方便机器人根据坐标抓取补货。


4. 未来发展趋势
  1. 结合 Transformer 做实例分割:用 Mask2Former 替代轮廓分析,可区分同一层板上的不同 SKU,实现精细化缺货统计;
  2. 边缘端 GPU 普及:随着 RK3588、NV Jetson Orin Nano 下沉,4K 原图实时处理不再是瓶颈,金字塔降采样步骤可取消,进一步提升小商品检测精度;
  3. 数字孪生闭环:缺货检测结果实时写入数字孪生货架模型,驱动 AGV 补货,实现 24 h 无人化运营。
http://www.dtcms.com/a/474689.html

相关文章:

  • 重庆网站建设模板制作蒙自做网站的公司
  • 什么是web前端?
  • Win10,在ESP分区添加PE系统,隐藏VTOYEFI分区
  • Qwen3(通义千问3)、OpenAI GPT-5、DeepSeek 3.2、豆包最新模型(Doubao 4.0)通用模型能力对比
  • 小学做试卷的网站wordpress跳转页面
  • 外国设计网站推荐网页制作作业下载
  • JavaScript入门分享_JavaScript日常处理
  • layui 企业网站模板域名注册服务商网站
  • Linux 文件描述符详解
  • Petrel三维地质建模02
  • 做网站建设涉及哪些算法重庆品牌网站建设公司
  • 婚庆公司网站源码深圳企业网查询
  • Obsidian-1.8.10下载安装(附安装包)
  • T527 RTL8211F_JL2101B-N040C 以太网PHY调试
  • Docker 镜像进阶维护:MySQL 数据、配置与日志的宿主机持久化方案
  • FDConv:频率动态卷积在密集图像预测中的突破性进展
  • 消防有哪些网站合适做网站下面版权代码
  • SQLSugar和EF框架的区别
  • 我的网站模板初学者自己做网站
  • 前端工程师是做网站吗网站源码运行
  • 【C语言实战(14)】深入C语言函数基础:从理论到实战
  • 基础算法:二分查找
  • 深度学习入门(四)——从激活到注意力:神经网络的现代模块与工程实践
  • Linux下的压缩(zip)解压(unzip)缩命令
  • 湖南平台网站建设推荐dedecms网站如何上线
  • 网站后台都有哪些中国建设工程监理网站
  • JWT(JSON Web Token)详解
  • 快手KAT-Dev-72B模型开源登顶!国产AI编程助手迎来技术突
  • 网站建设app开发有哪里可以做兼职翻译的网站
  • Web 开发入门:从前端到后端的全栈开发探索