极智AI | 教你用C++实现一般模型推理图片预处理模块

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频资源包5000点
视觉智能开放平台,图像资源包5000点
简介: 大家好,我是极智视界,本文介绍了用 C++ 实现一般模型推理图片预处理的方法,通用性较强。

大家好,我是极智视界,本文介绍了用 C++ 实现一般模型推理图片预处理的方法,通用性较强。

大家知道,对于一个视觉深度学习应用来说,主要会涉及几个流程:视频编解码、图像预处理、模型推理、后处理。这里介绍一下图像预处理的实现。

以默认如下配置为例:opencv 读图、宽高均为512、三通道、均值 [0.485, 0.456, 0.406]、方差 [0.229, 0.224, 0.225]、需做归一化、以 RGB 喂给模型。那么你的预处理可以这么写:

cv::Mat source, frame;
source = cv::imread(img_path);                      // 读图
if (!source.data)                                  // 异常判断
{
    std::cout << " read error" << std::endl;
}
int batchsize = 1;
int net_w = 512;
int net_h = 512;
cv::cvtColor(source, frame, cv::COLOR_BGR2RGB);    // 通道转换
cv::resize(frame, frame, cv::Size(net_w, net_h));  // resize
float* mat_data = new float[batchsize * net_w * net_h * 3];
int data_index = 0;
// 开启图像预处理
for(int i = 0; i < net_h; i++)
{
    const uchar* current = frame.ptr<uchar>(i);                    // 指向每行首地址
    for(int j = 0; j < net_w; j++)
    {
        mat_data[data_index] = ((current[3*j + 0] / 255.0) - 0.485) / 0.229;                    // R
        mat_data[net_w*net_h + data_index] = ((current[3*j + 1] / 255.0) - 0.456) / 0.224;      // G
        mat_data[2*net_w * net_h + data_index] = ((current[3*j + 2] / 255.0) - 0.406) / 0.225;  // B
        data_index++;
    }
}
// 然后把 mat_data 喂给模型
// 用完之后别忘了 delete mat_data
delete mat_data;

解释一下以上的代码,opencv 读图默认 BGR 排布,这个案例需要以 RGB 喂给模型,所以在做预处理的时候最重要的是要对应起来。这里的实现主要利用了指针偏移的操作,每个内循环的起始值都是指向行首地址,然后慢慢往后偏移,在偏移的途中顺便做一些预处理的操作,等走完一遍也就顺便完成了图像预处理,这样的处理方式,效率还是不错的。

然后再说一下预处理完的数据排布,前面说了 opencv 读进来是 BGR 的,经过了 cvtColor 后转换成了 RGB,这个时候的数据排布是 RGBRGBRGBRGBRGB...,然后进我们的图像预处理,做完之后的数据排布是这样的:RRRRRRRRRRRR...GGGGGGGGGGG...BBBBBBBBBBB,之后在喂给模型就行。


以上介绍了用 C++ 实现一般模型推理图片预处理的方法,预处理是深度学习应用中必不可少的一个环节,代码还算比较通用,希望我的分享能对你的学习有一点帮助。


logo_show.gif


相关文章
|
21天前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
13天前
|
机器学习/深度学习 人工智能 安全
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
GLM-Zero 是智谱AI推出的深度推理模型,专注于提升数理逻辑、代码编写和复杂问题解决能力,支持多模态输入与完整推理过程输出。
144 24
GLM-Zero:智谱AI推出与 OpenAI-o1-Preview 旗鼓相当的深度推理模型,开放在线免费使用和API调用
|
3天前
|
机器学习/深度学习 人工智能 文字识别
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
Zerox 是一款开源的本地化高精度OCR工具,基于GPT-4o-mini模型,支持PDF、DOCX、图片等多种格式文件,能够零样本识别复杂布局文档,输出Markdown格式结果。
36 4
Zerox:AI驱动的万能OCR工具,精准识别复杂布局并输出Markdown格式,支持PDF、DOCX、图片等多种文件格式
|
22天前
|
数据采集 人工智能 自然语言处理
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
FireCrawl 是一款开源的 AI 网络爬虫工具,专为处理动态网页内容、自动爬取网站及子页面而设计,支持多种数据提取和输出格式。
142 18
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
|
22天前
|
SQL 人工智能 关系型数据库
PolarDB-PG AI最佳实践 2 :PolarDB AI X EAS实现自定义库内模型推理最佳实践
PolarDB通过POLAR_AI插件支持使用SQL调用AI/ML模型,无需专业AI知识或额外部署环境。结合阿里云EAS在线模型服务,可轻松部署自定义模型,在SQL中实现如文本翻译等功能。
|
1月前
|
人工智能 安全 测试技术
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
EXAONE 3.5 是 LG AI 研究院推出的开源 AI 模型,擅长长文本处理,能够有效降低模型幻觉问题。该模型提供 24 亿、78 亿和 320 亿参数的三个版本,支持多步推理和检索增强生成技术,适用于多种应用场景。
100 9
EXAONE 3.5:LG 推出的开源 AI 模型,采用 RAG 和多步推理能力降低模型的幻觉问题
|
21天前
|
人工智能 安全 大数据
PAI年度发布:GenAI时代AI基础设施的演进
本文介绍了AI平台在大语言模型时代的新能力和发展趋势。面对推理请求异构化、持续训练需求及安全可信挑战,平台推出了一系列优化措施,包括LLM智能路由、多模态内容生成服务、serverless部署模式等,以提高资源利用效率和降低使用门槛。同时,发布了训推一体调度引擎、竞价任务等功能,助力企业更灵活地进行训练与推理任务管理。此外,PAI开发平台提供了丰富的工具链和最佳实践,支持从数据处理到模型部署的全流程开发,确保企业和开发者能高效、安全地构建AI应用,享受AI带来的红利。
|
25天前
|
人工智能 安全 算法
PAI负责任的AI解决方案: 安全、可信、隐私增强的企业级AI
在《PAI可信AI解决方案》会议中,分享了安全、可信、隐私增强的企业级AI。会议围绕三方面展开:首先通过三个案例介绍生活和技术层面的挑战;其次阐述构建AI的关键要素;最后介绍阿里云PAI的安全功能及未来展望,确保数据、算法和模型的安全与合规,提供全方位的可信AI解决方案。
|
22天前
|
人工智能 供应链 安全
面向高效大模型推理的软硬协同加速技术 多元化 AI 硬件引入评测体系
本文介绍了AI硬件评测体系的三大核心方面:统一评测标准、平台化与工具化、多维度数据消费链路。通过标准化评测流程,涵盖硬件性能、模型推理和训练性能,确保评测结果客观透明。平台化实现资源管理与任务调度,支持大规模周期性评测;工具化则应对紧急场景,快速适配并生成报告。最后,多维度数据消费链路将评测数据结构化保存,服务于综合通用、特定业务及专业性能分析等场景,帮助用户更好地理解和使用AI硬件。
|
28天前
|
人工智能 分布式计算 供应链
高效提取图片信息:AI技术赋能企业数字化转型
本文介绍了如何通过AI技术高效提取图片中的结构化信息,提升企业运营效率。具体应用场景包括票据与合同管理、电商商品信息管理、保险理赔和物流单据处理等。AI技术能将传统人工录入流程缩短至秒级,准确率高达99%,减少人为错误,提升客户满意度。方案优势在于易于扩展、灵活高性价比的调用模式及便捷安全的云产品接入。文中还详细描述了部署应用、访问示例应用及使用官方示例进行信息提取的操作步骤,并提供了参考链接和源码下载途径。

热门文章

最新文章