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

GLM-OCR在网络安全中的应用:自动化识别验证码与敏感信息

GLM-OCR在网络安全中的应用自动化识别验证码与敏感信息最近和几个做安全测试的朋友聊天他们都在抱怨一个事儿现在很多系统的验证码越来越复杂做自动化测试的时候人工识别验证码成了效率瓶颈。有时候审计日志或者分析网络流量里面夹杂着图片要从中找出敏感信息更是费时费力。这让我想起了之前接触过的GLM-OCR技术。你可能听说过OCR就是识别图片里的文字。但传统的OCR工具面对扭曲的验证码或者背景复杂的截图识别率往往不尽如人意。GLM-OCR作为结合了大模型能力的OCR工具在识别准确率和泛化能力上有了不小的提升。今天我们就来聊聊怎么把它用在网络安全这个领域解决一些实际又头疼的问题。1. 网络安全中的两个典型“痛点”在深入技术细节之前我们先看看GLM-OCR能帮我们解决哪两类具体问题。理解了问题才能更好地理解方案的价值。1.1 场景一图形验证码的自动化识别难题图形验证码是网站和应用防止自动化攻击比如暴力破解、批量注册的常见手段。但对于安全工程师来说这同样也阻碍了合法的自动化安全测试。效率瓶颈在进行漏洞扫描、压力测试或安全评估时遇到验证码环节测试流程就会中断需要人工介入识别。这不仅拖慢了测试进度也让大规模的自动化测试变得不现实。种类繁多现在的验证码五花八门有扭曲的数字字母、滑动拼图、点选汉字、计算题等。传统的基于模板匹配或简单机器学习的OCR工具很难适应这种多样性。动态对抗很多验证码系统会定期更新样式增加干扰线、背景噪声甚至动态扭曲字符专门对抗自动化识别工具。1.2 场景二海量数据中的敏感信息“漏网之鱼”另一个场景是在安全审计和数据分析中。系统日志、网络流量抓包、屏幕截图里都可能包含以图片形式存在的敏感信息。人工筛查如大海捞针想象一下要从数GB的日志截图或流量记录中人工找出可能包含手机号、身份证号的图片这几乎是不可能完成的任务。格式不统一这些信息可能出现在聊天记录截图、表单提交的图片、甚至是用户上传的文档图片里字体、大小、背景千差万别。合规与风险未能及时发现并处理这些泄露的敏感信息可能会违反数据保护规定并带来实际的安全风险。GLM-OCR的出现为这两个场景提供了新的自动化解决思路。它不仅能“看”图还能结合上下文“理解”图片内容从而更准确地提取文字。2. GLM-OCR技术方案的核心思路GLM-OCR并不是一个简单的文字识别工具。它的核心优势在于“视觉-语言”的协同。简单来说它先像人眼一样“看”图片提取视觉特征再结合大模型对语言的理解能力去“猜”出最可能的文字序列。这个过程让它对模糊、扭曲、有干扰的文字有了更好的抵抗力。针对我们上面提到的两个网络安全场景可以设计这样一套技术实现框架数据获取层这是起点。对于验证码识别可能是从测试目标网页实时截取或获取验证码图片接口。对于敏感信息筛查则是从日志库、流量文件或指定目录中批量读取图片。预处理与增强层原始图片可能不适合直接识别。这里会做一些处理比如调整对比度、去除简单噪声、二值化把图片变成黑白等让文字区域更突出。这一步的目标是“让图片变得更清晰易读”但不改变其本质内容。GLM-OCR识别核心层处理后的图片送入GLM-OCR模型。模型会输出识别出的文本。这里的关键在于GLM-OCR不仅能识别字符还能在一定程度上理解字符间的语义关系这对于识别破碎或不完整的字符很有帮助。后处理与校验层识别出的原始文本可能会有错误。后处理可以根据具体场景进行优化。例如对于验证码可以设定输出为固定长度如4-6位并过滤掉非数字字母字符。对于敏感信息可以利用正则表达式一种文本模式匹配规则来匹配手机号、身份证号等特定格式的字符串从而筛选出高置信度的结果。结果输出与应用层将最终结果交付给应用。验证码识别结果可以直接回填到自动化测试脚本中让测试流程继续。敏感信息识别结果则可以生成报告标注出包含敏感信息的图片位置和具体内容供安全人员复核。这个框架就像一个自动化的流水线把原始的、难以处理的图片数据转化成结构化的、可操作的文本信息。3. 实战演练搭建一个验证码识别服务理论讲完了我们动手搭一个简单的验证码识别服务看看GLM-OCR到底怎么用。这里我们假设你已经有一个可以访问的GLM-OCR API服务例如通过一些云服务或自行部署的镜像。我们会用Python写一个简单的例子它模拟了安全测试中遇到验证码并自动处理的过程。import requests import time from PIL import Image import io import re class CaptchaRecognizer: def __init__(self, ocr_api_url, api_keyNone): 初始化识别器 :param ocr_api_url: GLM-OCR API的服务地址 :param api_key: 可选的API密钥如果需要 self.api_url ocr_api_url self.headers {Content-Type: application/json} if api_key: self.headers[Authorization] fBearer {api_key} def preprocess_image(self, image_path): 简单的图片预处理转换为RGB必要时调整大小 在实际应用中这里可以加入更复杂的去噪、二值化等操作 :param image_path: 图片路径 :return: 预处理后的图片二进制数据 img Image.open(image_path).convert(RGB) # 如果图片太大可以适当缩小加快处理速度根据API要求调整 # if img.size[0] 1024: # ratio 1024 / img.size[0] # new_size (1024, int(img.size[1] * ratio)) # img img.resize(new_size, Image.Resampling.LANCZOS) img_byte_arr io.BytesIO() img.save(img_byte_arr, formatPNG) return img_byte_arr.getvalue() def recognize(self, image_path): 调用GLM-OCR API识别图片中的文字 :param image_path: 待识别图片的路径 :return: 识别出的文本字符串 # 1. 预处理图片 image_data self.preprocess_image(image_path) # 2. 构建请求这里假设API接受base64编码的图片 import base64 image_b64 base64.b64encode(image_data).decode(utf-8) payload { image: image_b64, # 可以添加其他参数比如指定语言等 task: general # 通用识别任务 } # 3. 发送请求 try: response requests.post(self.api_url, jsonpayload, headersself.headers, timeout10) response.raise_for_status() # 检查请求是否成功 result response.json() # 4. 解析返回结果根据实际API响应格式调整 # 假设返回格式为 {text: 识别出的文字, confidence: 0.95} recognized_text result.get(text, ).strip() confidence result.get(confidence, 0) print(f识别结果: {recognized_text} (置信度: {confidence:.2f})) return recognized_text except requests.exceptions.RequestException as e: print(fAPI请求失败: {e}) return except Exception as e: print(f处理结果时出错: {e}) return def post_process_for_captcha(self, raw_text): 针对验证码的后处理清理结果提取可能的验证码 :param raw_text: 原始识别文本 :return: 清理后的验证码字符串 # 移除所有空白字符 cleaned re.sub(r\s, , raw_text) # 只保留常见的验证码字符数字和字母 cleaned re.sub(r[^a-zA-Z0-9], , cleaned) # 验证码通常有固定长度比如4-6位这里我们取前6位可根据实际情况调整 captcha cleaned[:6] return captcha # 使用示例 if __name__ __main__: # 替换为你的GLM-OCR API地址 API_URL https://your-glm-ocr-service.com/v1/recognize # API_KEY your-api-key-here # 如果需要 recognizer CaptchaRecognizer(API_URL) # 如果不需要密钥就不传api_key参数 # 假设我们有一张从测试网站获取的验证码图片 captcha_image_path sample_captcha.png print(开始识别验证码...) raw_result recognizer.recognize(captcha_image_path) if raw_result: final_captcha recognizer.post_process_for_captcha(raw_result) print(f处理后得到的验证码: {final_captcha}) # 在实际的自动化测试脚本中这里可以将 final_captcha 填入网页表单 # 例如使用 selenium: # driver.find_element(By.ID, captchaInput).send_keys(final_captcha) # driver.find_element(By.ID, submitButton).click() else: print(验证码识别失败。)这段代码展示了一个最基本的流程。在实际的网络安全测试中你需要将其集成到你的自动化框架如Selenium、Playwright中实现从“获取验证码图片”到“识别并提交”的全自动闭环。4. 敏感信息筛查从图片日志中“挖”出隐私数据第二个场景我们处理的是静态的、已存在的图片数据。思路类似但目标更聚焦。我们不再需要与网页交互而是对一批图片文件进行批量处理和分析。下面是一个简化的脚本用于扫描一个文件夹中的所有图片并尝试找出可能包含手机号的图片。import os import re from concurrent.futures import ThreadPoolExecutor, as_completed class SensitiveInfoScanner: def __init__(self, ocr_recognizer, patterns): 初始化扫描器 :param ocr_recognizer: 一个配置好的OCR识别器实例如上一节的CaptchaRecognizer :param patterns: 一个字典定义需要筛查的敏感信息正则表达式模式 例如{phone: r1[3-9]\d{9}} self.recognizer ocr_recognizer self.patterns patterns def scan_image(self, image_path): 扫描单张图片 :param image_path: 图片路径 :return: (图片路径, 匹配到的敏感信息列表) findings {} print(f正在扫描: {image_path}) raw_text self.recognizer.recognize(image_path) if not raw_text: return image_path, findings # 使用预定义的正则表达式模式进行匹配 for info_type, pattern in self.patterns.items(): matches re.findall(pattern, raw_text) if matches: findings[info_type] matches return image_path, findings def scan_directory(self, directory_path, max_workers4): 批量扫描目录下的图片文件 :param directory_path: 目录路径 :param max_workers: 最大并发线程数用于加速处理 :return: 所有图片的扫描结果字典 supported_extensions (.png, .jpg, .jpeg, .bmp, .gif, .tiff) image_files [] for root, dirs, files in os.walk(directory_path): for file in files: if file.lower().endswith(supported_extensions): image_files.append(os.path.join(root, file)) print(f在目录 {directory_path} 下找到 {len(image_files)} 张图片。) all_results {} # 使用线程池并发处理提高效率 with ThreadPoolExecutor(max_workersmax_workers) as executor: future_to_file {executor.submit(self.scan_image, img_path): img_path for img_path in image_files} for future in as_completed(future_to_file): img_path future_to_file[future] try: file_path, findings future.result() if findings: # 只记录有发现的图片 all_results[file_path] findings except Exception as exc: print(f处理图片 {img_path} 时产生异常: {exc}) return all_results # 使用示例 if __name__ __main__: # 1. 初始化OCR识别器复用上一节的类 API_URL https://your-glm-ocr-service.com/v1/recognize recognizer CaptchaRecognizer(API_URL) # 2. 定义需要筛查的敏感信息模式这里以中国大陆手机号为例 sensitive_patterns { phone_number: r1[3-9]\d{9}, # 简单的手机号正则 # 可以添加更多模式例如身份证号、邮箱等 # id_card: r[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx], # email: r[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}, } # 3. 初始化扫描器 scanner SensitiveInfoScanner(recognizer, sensitive_patterns) # 4. 指定要扫描的日志图片目录 log_image_dir ./log_screenshots/ # 5. 开始扫描 results scanner.scan_directory(log_image_dir, max_workers2) # 线程数不宜过高避免给API造成压力 # 6. 输出报告 print(\n 扫描报告 ) if results: for img_path, finds in results.items(): print(f\n文件: {img_path}) for info_type, values in finds.items(): print(f 发现 {info_type}: {, .join(set(values))}) # 用set去重 else: print(未在图片中发现定义的敏感信息。)这个脚本提供了一个可扩展的框架。你可以轻松地添加更多的正则表达式模式来匹配其他类型的敏感信息如特定格式的证件号、银行卡号片段、地址关键词等。通过并发处理它能相对高效地完成大批量图片的筛查工作。5. 至关重要的隐私保护与合规考量将OCR技术用于处理可能包含敏感信息的图片我们必须格外关注隐私保护和合规性。技术是一把双刃剑用得好能提升安全用不好则会制造风险。首先是数据生命周期管理。我们处理的数据验证码图片、系统日志截图从哪来必须确保我们有合法的权限去处理这些数据。例如用于安全测试的验证码图片应来自我们有权测试的系统用于审计的日志图片应来自企业内部受控的环境。绝对不要从公开网站或未经授权的来源爬取图片进行识别那可能涉及法律风险。其次是处理过程的安全。脚本运行在哪里如果使用云上的OCR API图片数据会在网络上传输并可能在服务提供商的服务器上被处理。你需要确认API连接是否使用HTTPS加密。服务提供商是否有明确的数据处理协议承诺不存储或滥用你的数据。对于极高敏感的场景能否使用本地部署的OCR模型让数据不出私域。第三是结果数据的处理。识别出的敏感信息如手机号如何存储和使用建议最小化存储除非必要不要长期保存原始的识别结果。扫描报告完成后应考虑安全地删除或匿名化处理包含原始敏感信息的数据。访问控制对生成的扫描报告设置严格的访问权限只有授权的安全人员才能查看。审计日志记录谁、在什么时候、因为什么原因执行了敏感信息扫描。最后是目的正当性。整个应用的目的必须是增强安全防护例如发现意外的数据泄露、评估验证码强度而不是用于其他不当目的。在设计和使用这类工具时应遵循“通过技术保护安全而非制造新风险”的原则。6. 总结回过头来看GLM-OCR这类技术给网络安全工作带来的其实是一种“自动化”的赋能。它把安全人员从重复、低效的“肉眼识别”工作中解放出来让他们能更专注于分析、决策和应对更复杂的安全威胁。在验证码识别场景下它让自动化安全测试变得真正连贯和高效提升了测试的覆盖深度和频率。在敏感信息筛查场景下它则像是一个不知疲倦的“数字哨兵”能够以极快的速度扫描海量图片数据发现那些容易被忽略的隐私泄露风险。当然就像我们最后一部分讨论的能力越大责任也越大。在实际部署和应用时技术实现只是第一步围绕数据权限、传输安全、结果处理的合规框架同样重要甚至更为关键。这套组合拳打好了才能真正让技术为安全服务。如果你对基于GLM-OCR构建更复杂的自动化安全工具感兴趣不妨从文中的简单示例开始在一个可控的内部测试环境里尝试一下。先解决一个小问题感受一下它的能力和边界再逐步思考如何将其集成到你现有的安全工作流中去。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

GLM-OCR在网络安全中的应用:自动化识别验证码与敏感信息

GLM-OCR在网络安全中的应用:自动化识别验证码与敏感信息 最近和几个做安全测试的朋友聊天,他们都在抱怨一个事儿:现在很多系统的验证码越来越复杂,做自动化测试的时候,人工识别验证码成了效率瓶颈。有时候审计日志或者…...

Z-Image Atelier 在AIGC内容创作中的应用:自动化海报生成系统

Z-Image Atelier 在AIGC内容创作中的应用:自动化海报生成系统 电商运营小张最近有点头疼。公司每周要策划好几场线上活动,每场活动都需要配套的宣传海报。以前找设计师,一张海报从沟通到定稿,快则半天,慢则一两天。现…...

MySQL中事务、索引和数据库管理设计

1. 事务和索引 事务ACID原则特性英文通俗解释原子性Atomicity事务是最小单位,不可分割。要么全成功,要么全失败一致性Consistency执行前后数据总量不变(转账:A 扣钱 B 加钱 总金额不变)隔离性Isolation多个事务同时执…...

Day02 优化版|阿里云ACP大模型解决方案专家

文章目录Day02 优化版|阿里云ACP大模型解决方案专家今日核心目标一、30min|RAG优化核心考点(ACP必背)1. 文档切分优化2. 检索策略优化3. 向量相关优化4. 生成环节优化二、25min|阿里云百炼平台 RAG 实操流程&#xff0…...

IO/XFS 故障现场排查手册

文章目录🛠️ IO/XFS 故障现场排查手册📝 一、 现场结论汇报模板(直接复制)📋 二、 核心排查命令速查表🔍 三、 分场景排查清单🧠 四、 术语速查与解释(用于向客户解释)&…...

Figma设计数据双向转换:如何实现设计文件与JSON格式的高效互转

Figma设计数据双向转换:如何实现设计文件与JSON格式的高效互转 【免费下载链接】figma-to-json 💾 Read/Write Figma Files as JSON 项目地址: https://gitcode.com/gh_mirrors/fi/figma-to-json 在当今设计驱动开发的生态系统中,Figm…...

SenseVoiceSmall实战分享:多语言会议录音的情感与事件分析

SenseVoiceSmall实战分享:多语言会议录音的情感与事件分析 1. 项目背景与模型介绍 在跨国企业会议、学术研讨会等场景中,语音记录不仅要准确转写文字,更需要理解发言者的情绪状态和会议氛围。传统语音识别系统仅提供文字转录,丢…...

多进程multiprocessing加速程序的运行

在 Python 中,多线程(threading)和多进程(multiprocessing)是并行处理的常用工具,但它们的适用场景不同。以下我将基于核心概念逐步梳理知识点,确保内容真实可靠。1、有了多线程 threading&…...

OpenClaw技术架构解析与企业落地方法论

OpenClaw作为开源AI Agent框架,在企业级应用场景中展现出独特价值。本文从技术架构、核心能力、落地方法论三个维度,系统解析OpenClaw的设计理念与应用实践,可按需自取《OpenClaw完全使用手册》。 一、技术架构解析 1.1 整体架构设计 OpenC…...

SDXL 1.0电影级绘图工坊:大模型微调实战

SDXL 1.0电影级绘图工坊:大模型微调实战 想让AI画出你心目中的电影级画面吗?学会微调SDXL 1.0,你就能让AI按照你的风格创作专属艺术作品 你是否曾经遇到过这样的情况:用SDXL 1.0生成的图片虽然质量很高,但总觉得缺了点…...

AI股票分析师在模拟投资中的应用:快速生成多支股票的对比分析简报

AI股票分析师在模拟投资中的应用:快速生成多支股票的对比分析简报 1. 引言:当AI遇上股票分析 想象一下这样的场景:你正在准备一个投资组合,需要在短时间内评估10家不同公司的基本面。传统方法可能需要花费数小时查阅财报、整理数…...

Pixel Couplet Gen部署案例:基于ModelScope大模型的轻量级春联服务上线

Pixel Couplet Gen部署案例:基于ModelScope大模型的轻量级春联服务上线 1. 项目概述 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成器。该项目基于ModelScope大模型技术栈构建,通过创新的8-bit视觉设计,为用户提…...

Janus-Pro-7B快速调用API封装教程:Python/Java/Node.js客户端实现

Janus-Pro-7B快速调用API封装教程:Python/Java/Node.js客户端实现 1. 引言 如果你已经成功部署了Janus-Pro-7B的WebUI服务,看着那个漂亮的界面,心里可能在想:这界面用起来是挺方便,但我的业务系统怎么才能直接调用它…...

QT 软件外包开发流程

对于 QT 软件外包开发,由于其跨平台(Windows, macOS, Linux, 嵌入式)以及高性能 GUI 的特性,其流程相比通用软件开发更强调环境一致性和性能验收。以下是 2026 年标准化的 QT 软件外包开发流程:1. 需求分析与技术选型 …...

风雪高原,稳如磐石 灼识熔接机高海拔挑战实录

在高原高海拔地区进行光纤熔接,是一场对设备性能的极限考验。缺氧、低温、强风,多重环境因素同时考验熔接机的“稳定性”“精准度”与“耐候力”。灼识全系干线熔接机,正是在这样的环境中完成了它的高原试炼。四川甘孜 折多山垭口时间&#x…...

Gemma-3 Pixel Studio案例集:社交媒体截图问答→情绪识别→回复建议生成演示

Gemma-3 Pixel Studio案例集:社交媒体截图问答→情绪识别→回复建议生成演示 1. 引言:当AI能“看懂”你的社交截图 想象一下这个场景:你在社交媒体上看到一张截图,里面有段对话让你摸不着头脑,或者你想知道发帖人的真…...

GLM-4.7-Flash完整使用指南:部署、调用、调优一站式解决,小白友好

GLM-4.7-Flash完整使用指南:部署、调用、调优一站式解决,小白友好 1. 从零开始部署GLM-4.7-Flash 1.1 环境准备与快速启动 GLM-4.7-Flash作为30B参数的大模型,部署过程经过精心优化,即使是新手也能快速上手。以下是部署前的准备…...

Nanbeige4.1-3B部署案例:国产A10/A800显卡适配经验——CUDA 11.8+torch2.0实测

Nanbeige4.1-3B部署案例:国产A10/A800显卡适配经验——CUDA 11.8torch2.0实测 1. 引言:为什么选择Nanbeige4.1-3B? 如果你正在寻找一个能在国产显卡上流畅运行,同时兼具强大推理和代码生成能力的开源小模型,那么Nanb…...

lychee-rerank-mm生产环境部署:支持中英文混合查询的稳定图文匹配服务

lychee-rerank-mm生产环境部署:支持中英文混合查询的稳定图文匹配服务 1. 项目概述与核心价值 lychee-rerank-mm是一个专为RTX 4090显卡优化的多模态图文匹配系统,基于Qwen2.5-VL多模态大模型和Lychee-rerank-mm重排序模型构建。这个系统能够智能分析图…...

告别自研踩坑:Java 技术栈 AI 转型的务实路径

在企业推进 AI 落地的过程中,以 Java 为核心技术栈的传统研发团队普遍面临落地成本高、改造风险大、生态不兼容、运维管理复杂等问题。很多项目因底层架构不匹配、自研试错成本过高,迟迟无法实现规模化落地。围绕这类实际工程痛点,结合企业级…...

使用Typora编写SDMatte技术文档:Markdown与图片工作流整合

使用Typora编写SDMatte技术文档:Markdown与图片工作流整合 1. 为什么选择Typora进行技术写作 在技术文档创作过程中,我们常常面临两个核心痛点:内容排版耗时和图片处理繁琐。Typora作为一款轻量级Markdown编辑器,完美解决了这些…...

千问3.5-2B多模型对比展示:轻量级2B参数模型的效率与精度平衡

千问3.5-2B多模型对比展示:轻量级2B参数模型的效率与精度平衡 1. 轻量级大模型的独特价值 在AI模型日益庞大的今天,千问3.5-2B作为一款仅20亿参数的轻量级大模型,却在效率与精度之间找到了令人惊喜的平衡点。对于大多数开发者而言&#xff…...

Qwen3-14B镜像空间优化:精简日志+清理缓存+压缩模型权重技巧

Qwen3-14B镜像空间优化:精简日志清理缓存压缩模型权重技巧 1. 镜像空间优化背景 当我们在RTX 4090D 24GB显存的服务器上部署Qwen3-14B模型时,虽然镜像已经针对硬件进行了优化,但在实际使用过程中仍然会遇到磁盘空间不足的问题。系统盘50GB数…...

高效清理磁盘,优化电脑性能,数据治理4-企业数仓开发标准与规范。

磁盘清理工具的使用方法 Windows系统内置的磁盘清理工具可帮助释放存储空间。打开“此电脑”,右键点击需要清理的磁盘,选择“属性”。在“常规”选项卡中点击“磁盘清理”,系统会自动扫描可删除的文件类型。勾选需要清理的项目(如…...

React Router v6 动态加载实现

React Router v6 动态加载实现:提升应用性能的利器 在现代前端开发中,应用性能优化是开发者关注的重点之一。React Router v6 的动态加载功能(即代码分割)通过按需加载组件,显著减少了初始加载时间,提升了…...

【DeepSeek】

在计算机程序的内存布局中,.data 段和 .bss 段都属于数据段,用于存放程序中的全局变量和静态变量。它们最核心的区别在于是否包含初始值以及在可执行文件中的存储方式。 以下是详细的对比分析: 1. 核心区别总结表特性.data 段.bss 段全称Data…...

DLSS Swapper终极指南:如何智能管理多平台游戏的DLSS文件配置

DLSS Swapper终极指南:如何智能管理多平台游戏的DLSS文件配置 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为NVIDIA显卡用户设计的智能DLSS文件管理工具,它解决了手动管…...

信息学奥赛一本通C语言解法(题号1004)

自留or欢迎大佬纠错【题目描述】给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。【输入】输入只有一行,包含一个字符。【输出】该字符构成的等腰三角形,底边长5个字符,高3个字符。【输入样例】*【…...

2026年集团办公软件哪家口碑好?上海集团办公软件推荐

随着企业数字化转型进入深水区,集团型企业的管理复杂度与协同需求日益攀升。一套功能强大、稳定可靠、服务完善的集团办公软件,不仅是提升日常运营效率的工具,更是支撑集团战略管控、实现“业管一体”的核心平台。面对市场上琳琅满目的产品&a…...

cv_resnet101_face-detection_cvpr22papermogface代码实例:自定义置信度阈值与结果过滤逻辑

cv_resnet101_face-detection_cvpr22papermogface代码实例:自定义置信度阈值与结果过滤逻辑 1. 项目概述 MogFace人脸检测工具基于CVPR 2022发表的先进人脸检测算法开发,是一个完全本地运行的高精度人脸检测解决方案。这个工具特别针对实际应用场景中的…...