jpg转海思nnie所需要的.bgr格式的数据

基于深度学习的轻量化生物特征认证系统实战 生物特征认证是现代身份验证的核心技术,其本质是通过人脸、指纹等生理特征提取高判别性向量,并在嵌入式环境中完成低延迟、高精度的相似度比对。关键技术原理包括特征嵌入、度量学习(如ArcFace Loss)与活体检测协同设计,确保系统既能抵抗打印攻击、屏幕回放等欺诈行为,又能在资源受限设备上稳定运行。该方案的技术价值在于摆脱云端依赖、支持本地化部署、具备强泛化能力与工业级误识率(FAR<0.001%),广泛适用于智能门禁、考勤终端、IoT支付等边缘场景。本文聚焦可落地的深度学习实现路径,涵盖MobileFaceN 阅读详情
# -*- coding: utf-8 -*-
# @Time : 2020/8/11 下午5:47
# @Author :libin
# @File : jpg2bgr.py
# @Software: PyCharm
import cv2
from numpy import *
import numpy as np
import glob
import os
class JPG2BGR(object):
    def __init__(self,basedir="./",test_path="./test.bgr",image_size="416"):
        self.img_size = image_size  # save bgr size

        self.imgpath = basedir
        self.path = test_path


    def letterbox(self,image):
        """
        letterbox
        :param image: source box
        :return:
        """
        ih = iw = self.img_size
        h, w, _ = image.shape

        scale = min(iw / w, ih / h)
        nw, nh = int(scale * w), int(scale * h)
        image_resized = cv2.resize(image, (nw, nh))
        image_paded = np.full(shape=[ih, iw, 3], fill_value=128.0,dtype=np.uint8)
        dw, dh = (iw - nw) // 2, (ih - nh) // 2
        image_paded[dh:nh + dh, dw:nw + dw, :] = image_resized

        return image_paded

    def reverseletterbox(self,image,target_shape):
        """
        :param image:
        :param target_shape: target image shape(h,w,c)
        :return:
        """
        ih,iw,_=image.shape
        h, w, _ = target_shape
        scale=min(ih/h,iw/w)

        n_h,n_w=int(h*scale),int(w*scale)
        dh,dw=(ih-n_h)//2,(iw-n_w)//2
        new_img=image[dh:dh+n_h,dw:dw+n_w,:]
        targetimg=cv2.resize(new_img, (w, h))
        return targetimg


    def jpg2bgr(self):
        save_img_size = self.img_size
        imgpath = self.imgpath
        imgfile=glob.glob(os.path.join(imgpath,"*.jpg"))
        for jpg in imgfile:
            img = cv2.imread(jpg)
            n_img=self.letterbox(img)

            if n_img is None:
                print("img is none")
            else:

                cv2.imwrite(jpg,n_img)
                (B, G, R) = cv2.split(n_img)

                savepath=self.imgpath+os.path.basename(jpg)[:-3]+'bgr'
                with open(savepath, 'wb')as fp:
                    for i in range(save_img_size):
                        for j in range(save_img_size):
                            fp.write(B[i, j])
                    for i in range(save_img_size):
                        for j in range(save_img_size):
                            fp.write(G[i, j])
                    for i in range(save_img_size):
                        for j in range(save_img_size):
                            fp.write(R[i, j])

                print("save success")


    def transform(self,test=False):
        if not test:
            self.jpg2bgr()
        else:
            self.bgr2rgb()


    def bgr2rgb(self,shape=(1080,1920,3)):

        path = self.path
        imgsize = self.img_size

        f = open(path, 'rb')

        src=np.zeros(shape, np.uint8)

        src = cv2.resize(src, (imgsize, imgsize))

        print(src.shape)

        B, G, R = cv2.split(src)

        data = f.read(imgsize * imgsize * 3)
        for j in range(imgsize):
            for i in range(imgsize):
                R[j, i] = data[j * imgsize + i]
                G[j, i] = data[j * imgsize + i + imgsize * imgsize]
                B[j, i] = data[j * imgsize + i + imgsize * imgsize * 2]


        newimg = cv2.merge([R,G,B])
        newimg=self.reverseletterbox(newimg,shape)
        cv2.imshow("test",newimg)
        cv2.waitKey(0)
        cv2.imwrite('./Test.jpg',newimg)

        f.close()
        cv2.waitKey(0)


if __name__ == '__main__':
    preprocess=JPG2BGR("/mnt/share/test/","/mnt/share/test/0.bgr",416)
    preprocess.transform(test=True)

 

hisi3516下yuv图片到nnie bgr_u8c3格式转换 首先要看的sdk文档(HiIVE API 参考) 其中详细说明了 IVE_IMAGE_TYPE_YUV420SP,IVE_IMAGE_TYPE_YUV420P,IVE_IMAGE_TYPE_YUV422SP,IVE_IMAGE_TYPE_U8C3_PACKAGE,IVE_IMAGE_TYPE_U8C3_PLANAR等文件格式,而我们也需要使用IVE提供的 HI_MPI_IVE_CSC 进行图片格式... 阅读详情

相关推荐

海思SD3403,SS928/926,hi3519dv500,hi3516dv500移植yolov7,yolov8(7)

第一个和第二个值分别对应 阈值设置nms_threshold,IOU_score_threshold,具体值与模型本身有关,如果叠框明显就调高IOU值,如果误报很多就调高NMS值。初始化时还需要配置一下IOU与NMS的阈值,在模型导出时其实在代码里已经有默认值,但是在这里初始化过程中会更新对应的阈值,首先SDK里推理验证方式有两种,一个是用H264实时视频流的方式,还有一种是通过图片的方式。至此,yolov7的整个过程就OK了,下一篇我们讲讲如何使用yolov8的模型。首先在参数配置中选择对应的模型。

Littro Innovations 2190

海思人脸识别(1) -- YUV2BGR

海思人脸识别(1) – YUV2BGR 这可能是全网第一个YUV转BGR(B0B1B2…G0G1G2…R0R1R2…)的博客。 网上全部都是yuv2rgb(B0G0R0B1G1R1…),而且代码都不规整,不知道对错。所以自己在实际过程中整理了一份YUV2BGR的详细过程。 任务要求:人脸识别模型要求图像输入格式BGR(B0B1B2…G0G1G2…R0R1R2…),输入图片的大小是1024 * 576,需要先在外面把图片缩放和格式转化。 需要用到的模块VI、VPSS、IVE 需要理解的视频格式YUV4

小柯的博客 2547

YOLOv5部署到海思Hi3559A实战:从模型转换到板端推理全流程

目标检测作为计算机视觉的核心任务,在安防、工业质检和边缘计算领域应用广泛。YOLOv5凭借高效的单阶段网络结构,成为嵌入式部署的首选。边缘设备部署需解决算力与精度的平衡,海思Hi3559A芯片内置NNIE推理引擎,提供INT8量化下的边缘算力,适合存量项目未升级硬件时的智能化改造。基于一个完整工程包,本文梳理从PyTorch导出ONNX,经Caffe中转,再通过NNIE Mapper量化为.wk文件的全流程,并详解交叉编译、板端C++推理、常见踩坑排查等内容,帮助开发者在3559A上快速落地实时目标检测,减

weixin_26873711的博客 353

【python把海思的.bgr图像转jpg图像】

python把海思的.bgr图像转jpg图像

qq_39523300的博客 1117

YOLOv5工程化注释套件:从代码读懂原理与部署

YOLOv5作为主流目标检测框架,其代码逻辑复杂、工程细节隐蔽,初学者常陷入‘能跑不能懂’困境。理解其张量流动路径、anchor匹配机制、Detect检测头设计及ONNX/TensorRT部署约束,是掌握模型训练、调试与落地的关键。本文聚焦YOLOv5源码的深度工程化注释实践,覆盖PyTorch张量调度、COCO数据加载链路、mAP计算原理、NMS坐标格式转换等核心概念,并结合RK3568、Jetson等边缘平台部署适配,提供带上下文的逐行中文注释、故障定位树与可复用的pipeline分层结构,助力算法工程

weixin_30633405的博客 367

NNIE精度问题定位步骤.rar

海思的NNIE精度问题定位步骤 精度损失问题原因很多,但是从我们的开发经验来讲,有80%的问题是因为转换工具配置错误,还有一部分是模型训练的时候有问题,不是工具转换的问题,剩下的才去找海思定位,找海思定位之前需要第三方厂商做好定位素材,请参考《NNIE精度问题定位步骤》请提供数据

转载:海思Hi3559AV100 NNIE开发(1)--(7)

(1)-RFCN(.wk)LoadModel函数参数解析 Hi3559AV100 NNIE开发(1)-RFCN(.wk)LoadModel函数参数解析 - 尚码园 以后随笔将更多笔墨着重于NNIE开发系列,下文是关于Hi3359AV100 NNIE开发(1)-RFCN NNIE LoadModel函数与参数解析,经过对LoadModel函数的解析,可以很好理解.wk文件的具体内容,为方便为对其余不一样模型.wk加载时如何进行修改给出参照。数组   在RFCNdemo中把RFCN的.wk模型文件经...

m0_54437879的博客 3662

一文掌握python图形界面开发PyQt6--(一)基本操作、控件、信号与槽、常用控件、布局管理、事件处理、文件对话框

一文掌握python图形界面开发PyQt6--(一)基本操作、控件、信号与槽、常用控件、布局管理、事件处理、文件对话框

qq_38120851的博客 4047

海思 .jpg转.bgr

【代码】海思 .jpg转.bgr。

邮箱:feboreigns001@163.com 165

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3587

CA(载波聚合)

文章目录CA基本概念1. CA分类2. Pcell、Scell以及Serving CellPcell(Primary Cell)Scell(Secondary Cell)3. Pcell、Scell部署场景场景1场景2场景3场景44. CA的协议控制4.1 Camping/Connetion Establishment:4.2 CC Management/SCell Addition/Release:4.3 Handover/Measurements:4.4 SCell激活 CA基本概念 CA也就是我们中文

你又来看我了,一起学习吧 4万+

海思AI芯片(Hi35XX): 图像jpg转.bgr

前言 把一张jpg图片转成bgr(注意顺序是bgr)二进制文件,最近在弄华为Hi3516DV300开发板上的一些深度学习的样例程序,换言之,35xxnnie SDK只支持BGR以及yuv格式的数据输入。那么当手头刚好只有jpeg/png等图片文件时,怎么来进行目标识别呢,一般的思路是用opencv来读取图片文件,然后再转换成BGR/YUV等格式,最后扔到NNIE模块来进行深度学习推理。 本篇讲解jpg转bgr,也就是它的输入文件不是普通的jpg,而是bgr格式的二进制文...

荪荪的博客 2685

从零开始利用MATLAB进行FPGA设计(六)用ADC采集信号教程1

用AN9238采集信号的方法(1),包含PLL、FIFO、ILA的基础教程。

WZT725的博客 3095

基于海思hi3516dv300的yolov3目标检测任务的工程实战

hi3516dv300端侧AI芯片;NNIE AI Subsystem;yolov3部署应用

FreeBird 7610

性能调优秘籍——让OpenClaw运行速度提升10倍(2026优化版)

OpenClaw性能优化核心摘要 本文详细介绍了提升OpenClaw系统性能的关键技术,包括: 使用性能分析器进行代码级性能诊断 内存优化与高效缓存策略 并发处理优化技术 数据库查询性能提升方法 重点内容包括: 全面的性能分析工具实现(计时、内存监控、错误跟踪) 自动生成性能报告和优化建议 操作耗时与内存占用分析算法 关键性能指标(平均耗时、内存增长)计算 通过系统性的性能分析优化,可使OpenClaw运行速度提升10倍以上。

博客 903

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

海康摄像头 海思AI芯片(Hi35XX): 图像jpg转.bgr

前言 把一张jpg图片转成bgr(注意顺序是bgr)二进制文件,最近在弄华为Hi3516DV300开发板上的一些深度学习的样例程序,换言之,35xx nnie SDK只支持BGR以及yuv格式的数据输入。那么当手头刚好只有jpeg/png等图片文件时,怎么来进行目标识别呢,一般的思路是用opencv来读取图片文件,然后再转换成BGR/YUV等格式,最后扔到NNIE模块来进行深度学习推理。 本篇讲解jpg转bgr,也就是它的输入文件不是普通的jpg,而是bgr格式的二进制文件,还别说,这样确实是大大节省了空间

Dontla的博客 1504

Microsoft AI SDK 与 SAP ABAP:让企业级 AI 能力触手可及的深度整合指南

借助 Microsoft AI SDK,ABAP 开发者无需跳出熟悉的事务码与数据字典,就能把 GPT‑4 的强大语言理解与生成能力深度植入采购、销售、财务等核心业务流程。只要掌握“初始化 SDK → 构造 Prompt → 解析输出”这一范式,未来无论 Azure OpenAI、OpenAI 还是本地化 LLM,都能在同一套代码骨架内快速切换,实现真正的“AI 即服务”。现在,就让我们在下一行 ABAP 里拥抱智能未来。参考链接均于 2025‑07‑22 提取,推荐读者结合实际版本进一步验证。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 437

海思AI芯片(Hi35XX): 图像jpg转.bgr升级版

我是摘要我是摘要我是摘要我是摘要我是摘要我是摘要我是摘要

邮箱:feboreigns001@163.com 668

YOLOv8剪枝 稀疏训练+slim剪枝测试精度仅掉1.6个点,速度提高10.3fps!

摘要 本文介绍了YOLOv8剪枝方法Slim(Network Slimming),通过L1正则化作用于BN层的缩放因子(γ),自动识别并剪除冗余通道,实现模型轻量化。核心步骤包括:稀疏训练(引入L1正则化)、通道剪枝(按γ阈值裁剪)、微调恢复精度。实验表明,该方法能有效压缩模型大小、减少计算量,且支持通过调整speed_up等超参数控制剪枝强度。移植代码需修改C2F模块以适配剪枝,并配置稀疏训练参数(如reg、sl_epochs)。最终剪枝模型需移除优化器以减小体积,但不支持多卡训练。

FJN110的博客 862

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

海思AI芯片35XX系列

原创 海思AI芯片(HI35xx):darknet转caffemodel # The caffe module needs to be on the Python path; # we'll add it here explicitly. caffe_root='/home/qif/smf/caffe/' #os.chdir(caffe_root) import sys # sys.path.insert(0, caffe_root+'python') sys.path.append(r'/hom..

u010451780的专栏 1232

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

海思开发:python下转换图片为bgr_planner格式

前言 模型转换后,性能多多少少都有点损失,为了评估肯定需要在海思上跑个数据集,但是海思的图片输入格式是bgr_planner格式,所以需要对图片做个格式转换。对于大神来说,直接全用c/c++完成,但本菜逼只能选择这种two-stage方式了。 代码 废话不多说,代码都是经过试验,确定能跑的通的。为了放心,特意还做了个试验,同一张图片用python转为bgr_planner格式,和用c++转为bgr_planner格式,再先后喂入人脸识别模型,最后的输出特征值差了0.05左右。 import cv2 impo

tangshopping的博客 1400

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Hi3519A】在Hi3519A上跑yolov3(提供文件)

1. 说明 海思3519A自带的sdk中是没有yolov3的demo例子的,这就让人很不开心,而且华为的人给的资料很乱,其次,很多的demo都是支持Hi3559A的,还没入坑的,推荐选Hi3559A进行开发。 需要相关资料的留下邮箱 2. 整个流程 将图片转bgr文件或用原有提供的bgr文件 在Hi3519A上进行推理,打印出检测结果 用python进行结果可视化检查 3. 结果 impo...

怡宝2号 1693

海思nnie-yolov3图片预处理

nnie只支持yuv和bgr格式的图片,所以要把图片处理成bgr格式。其他的图像预处理方式要和yolov3训练时相同,这样才能保证识别的精度。 先等比例的resize,再填充,我这里是608*608的,最后转化成bgr的格式。还有注意填充的时候是灰色填充还是黑色填充。 (ps:训练和量化的时候图片顺序都是rgb的,我以为这里把图片转化成rgb的效果会好,但事实证明不对,就要用bgr的顺序,转化成.bgr)。 python代码: ...

weixin_41012399的博客 1552

海思NNIE开发(四):NNIE模块读入JPEG图片或视频

系列文章 海思NNIE开发(一):海思Hi3559AV100/Hi3519AV100 NNIE深度学习模块开发与调试记录 海思NNIE开发(二):FasterRCNN在海思NNIE平台上的执行流程(一) 海思NNIE开发(三):FasterRCNN在海思NNIE平台上的执行流程(二) 海思NNIE开发(四):NNIE模块读入JPEG图片或视频 海思NNIE开发(五):基于Hi3559AV...

夜风里唱的专栏 8775

海思AI芯片(Hi3519A/3559A)方案学习(十一)分析bgr文件格式

前言 3519A nnie SDK只支持BGR以及yuv格式的数据输入。那么当手头刚好只有jpeg/png等图片文件时,怎么来进行目标识别呢?一般的思路是用opencv来读取图片文件,然后再转换成BGR/YUV等格式,最后扔到NNIE模块来进行深度学习推理。 BGR文件数据格式 nnie sample里面提供的测试图片有后缀名为bgr的文件,例如dog_bick_car.bgr。在sam...

ltshan139的专栏 7693
上一篇: 模拟退火算法(代码)
下一篇: ncnn上部署yolov5
LiBin1103
博客等级 码龄9年 38粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值