地平线旭日X3开发板Object Detection测试调试

旭日X3派具有最高5TOPS的等效算力

(X3M BPU主频1.2GHz、算力5TOS; X3E BPU 主频0.6GHZ,算力3TOPS),

因此在开发板上可以运行丰富的AI算法。

在系统/app/ai_inference目录下提供了基础算法示例:

01_basic_sample

系统给出的测试程序只能对给定的斑马图片(zebra_cls.jpg)进行检测,

对其进行少许改造、使其能够对给定的任意图片进行检测,

同时能够输出对象分类ID、置信度和对象名称。

修改后的测试程序目录结构如下:

修改要点:

1)将imagenet1000_clsidx_to_labels.tx文件转换成imagenet1000_clsidx_to_labels.json

2) 增加image目录

存储测试图片,本次测试使用以下4张图片

3)修改test_mobilenetv1.py

#!/usr/bin/env python3
from hobot_dnn import pyeasy_dnn as dnn
import numpy as np
import cv2
import sys
import json

def bgr2nv12_opencv(image):
    height, width = image.shape[0], image.shape[1]
    area = height * width
    yuv420p = cv2.cvtColor(image, cv2.COLOR_BGR2YUV_I420).reshape((area * 3 // 2,))
    y = yuv420p[:area]
    uv_planar = yuv420p[area:].reshape((2, area // 4))
    uv_packed = uv_planar.transpose((1, 0)).reshape((area // 2,))

    nv12 = np.zeros_like(yuv420p)
    nv12[:height * width] = y
    nv12[height * width:] = uv_packed
    return nv12

def print_properties(pro):
    print("tensor type:", pro.tensor_type)
    print("data type:", pro.dtype)
    print("layout:", pro.layout)
    print("shape:", pro.shape)


def get_hw(pro):
    if pro.layout == "NCHW":
        return pro.shape[2], pro.shape[3]
    else:
        return pro.shape[1], pro.shape[2]

if __name__ == '__main__':
    
    #input a picture file
    if len(sys.argv) == 1:
        print("please input picture!!!\nusage: test_mobilenetv1.py filename\n")
        exit(1)
    
    filename = sys.argv[1]
    
    #load object classify infomation
    data_base = None
    with open("./imagenet1000_clsidx_to_labels.json", "r") as f:
        data_base = json.load(f)  

    #load inference modle file
    models = dnn.load('../models/mobilenetv1_224x224_nv12.bin')
    
    #load image file and process
    img_file = cv2.imread(filename)
    h, w = get_hw(models[0].inputs[0].properties)
    des_dim = (w, h)
    resized_data = cv2.resize(img_file, des_dim, interpolation=cv2.INTER_AREA)
    nv12_data = bgr2nv12_opencv(resized_data)
    
    #ai inference
    outputs = models[0].forward(nv12_data)
    cls_id = np.argmax(outputs[0].buffer)
    confidence = outputs[0].buffer[0][np.argmax(outputs[0].buffer)]
   
    #print result 
    print("#"*20, "Result", "#"*20)
    print("->Object Class Id: %d" % (cls_id))
    print("->Confidence: %f" % (confidence))
    print("->Object Name: ", (data_base[str(cls_id)]))
    print("#"*48)

测试用例:

1)斑马检测

2)老虎检测

3)大鹅检测

4)卷纸检测

通过以上4个测试用例的运行,可以体验到旭日X3派检测分类准确率和效率还是非常高的。

imagenet1000支持1000个物体类别,更多的物体检测和分类,

可以通过增加image中的图片进行测试体验。

文中所有文件,均已打包在附件中,见如下链接:

https://download.csdn.net/download/bingdund/89309722

参考资料:

3.1. 模型推理示例 — 旭日X3派用户手册 1.0.1 文档icon-default.png?t=N7T8https://developer.horizon.ai/api/v1/fileData/documents_pi/Samples/AI_Inference.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/627715.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

中腾食品上海食堂承包创新食堂空间,构建企业第三文化沙龙

在快节奏的现代职场生活中,企业食堂已不再是简单的餐饮供应地,而是逐渐演变成为员工休息休闲、互动体验、阅读思考的重要场所。中腾国际团餐产业集团通过专业的定制化食堂承包,在企业食堂内部打造企业第三文化空间,为员工提供一个…

社交媒体的探索者:探寻Facebook的发展历程

在当今数字化时代,社交媒体已经成为了人们日常生活中不可或缺的一部分,而Facebook作为最具影响力的社交平台之一,其发展历程承载着无数的探索与创新。本文将深入探讨Facebook的发展历程,从其创立初期到如今的全球化影响&#xff0…

leetcode.环形链表问题

目录 题目1 示例 解题思路 代码实现 补充 题目2 示例 解题思路 代码实现 题目1 该题链接:https://leetcode.cn/problems/linked-list-cycle/description/ 示例 解题思路 要创建两个指针一个是快指针(fast),另一个慢指针(slow)。快指针走两步慢指…

网络安全快速入门(十二)(下) 目录结构相关命令补充

12.4 补充命令 我们已经了解了linux的目录结构,接下来我们大概看一下针对目录及文件的一些相关命令, 我们本章只讲三个目录及文件相关的命令,分别是tree,find及校验文件命令,我们一个一个来看这些命令。 12.4.1 tree命…

MySQL 编译安装

一、数据库的基本概念 数据(Data) 数据库中存储的实际信息,可以是数字、文本、图像等形式。 表 以行和列的形式结构化存储数据。 数据库 表的集合,存放数据的仓库 数据库 ——> 数据表 ——> 数据 数据库管理系统&…

【OceanBase诊断调优】—— 备份恢复如何定位 NFS 服务异常

当备份、归档出现异常时,我们应该首先排除备份介质、网络是否正常,本文讲述如何通过系统表和日志来定位 NFS 服务异常。 适用版本 OceanBase 数据库所有版本。 如何查看备份归档异常? 查看备份归档状态表,MAX_NEXT_TIME 应与当…

Adaboost集成学习 | Matlab实现基于CNN-BiLSTM-Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于CNN-BiLSTM-Adaboost集成学习时间序列预测(股票价格预测) 模型设计 融合Adaboost的CNN-BiLSTM模型的时间序列预测,下面是一个基本的框架。 数据准备: 收集并整理用于时…

MVP产品设计与数据指标

MVP(minimum viable product,最小化可行产品)概念最早由埃里克莱斯提出,刊载于哈弗商业评论,并有出版物《精益创业》 和常规产品不同,MVP更侧重于对未知市场的勘测,用最小的代价接触客户的方法…

5.14_练习

1、字符串逆序 编写一个函数reverse_string(char* string)(递归实现) 实现:将参数字符串中的字符反向排列,不是逆序打印 要求:不能使用C函数库中的字符串操作函数 比如: char arr[ ]"abcdef"; 逆序之后数组的内容…

Vue的学习 —— <vue事件处理>

前言 事件指的就是用户和网页交互的行为,这些行为,包括:鼠标单击、鼠标双击、键盘按下、抬起等。为了简化开发,Vue为开发者提供了事件修饰符,它可以与v-on配合使用,以便于对事件进行控制和处理&#xff0c…

最新的GPT4o文档解析能力实测

5.13日,openAI发布了最新的GPT模型-GPT4o,发布会虽短,但是带来的模型却提升很大,速度更快,推理能力更强,tokens更↓ 下面简单测一下他的文档解析能力如何: 1.我们使用国内某官方直连站&#xff…

momentjs

Moment.js 是一个用于处理日期和时间的 JavaScript 库,它提供了许多方便的函数和方法来操作、格式化和解析日期时间。官网 常见用法 格式化日期时间:可以使用format方法将日期时间格式化为指定的字符串格式,例如YYYY-MM-DD HH:mm:ss。获取日…

免费申请https证书

免费申请https证书 https域名证书对提高网站排名有一定的好处,所以当今很多企业为了给网站一个好的安全防护,就会去申请该证书。如今很多企业虽然重视网站的安全防护,但是也重视成本,所以为了节约成本会考虑申请免费的https证书。…

搭建Rust开发环境

Windows搭建 下载:https://www.rust-lang.org/zh-CN/tools/install Linux搭建 这里我更推荐基于Linux搭建。 curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh等一会儿以后,会让你输入命令,这里输入1: 之后就…

【源码】2024全新多语言区块链交易所源码/期权交易/申购/币币秒合约交易所

全新ui,更新很多内容,具体看图,全部开源 全新多语言区块链交易所源码/期权交易/申购/币币秒合约交易所 - 吾爱资源网

LeetCode算法题:128. 最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 …

3、用Vue快雕塑搭建一个管理系统的页面布局框架

3.2.顶部栏header 在el-header标签里对标签栏header进行样式定义 <template><div id"app"><el-container><el-header style"background-color: #4c535a"><img src"/assets/logo.png" alt"" style"w…

卷积网络项目:实现识别鲜花四分类对比LeNet5、VGG16、ResNet18、ResNet34分类网络

卷积四分类项目 Gitee传送门 分类目标选取 鲜花 杏花 apricot_blossom桃花 peach_blossom梨花 pear_blossom梅花 plum_blossom 模型选择 卷积 LeNet5VGG16ResNet18ResNet34 以图搜图 获取相似度前10的搜图结果 数据清洗 鲜花四分类 删除非图片文件 删除重复图片 整理…

FlyFlow:支持驳回后自动跨节点跳回

本周更新 新增&#xff1a;审批节点驳回&#xff08;拒绝配置的驳回&#xff09;支持自动跳回当前节点新增&#xff1a;修改数据节点新增&#xff1a;删除数据节点新增&#xff1a;子流程支持配置自动跳过发起人节点优化&#xff1a;两个项目合并一个单体项目优化&#xff1a;…

Springboot3 链接Redis遇到的报错(本文仅记录保存,优质文章移步springboot专栏)

出现的报错&#xff1a; cannot connect to Redisedis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is setredis wrong number of arguments for ‘auth’ command 其实上面的三个报错是不同界面显示的&#xff0c;后面两个是通过Ide…