![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式AI
文章平均质量分 83
荪荪
这个作者很懒,什么都没留下…
展开
-
RK3399Pro RKNN-Toolkit 的使用
RKNN-Toolkit前言模型运行在与 PC 相连的 Rockchip NPU 平台上前言目前 RKNN-Toolkit 可以运行在 PC(Linux/Windows/MacOS x64)上,也可以运行在 RK3399Pro开发板(Debian9 或 Debian10)。本人推荐PC是linux系统,rk3399pro是debian10,原因之后补充。模型运行在与 PC 相连的 Rockchip NPU 平台上该场景下,RKNN-Toolkit 运行在 PC 上,通过 PC 的 USB 连接原创 2021-10-14 14:54:13 · 4724 阅读 · 3 评论 -
TB-RK3399Pro 找不到网络图标,如何连wifi呢?
最近遇到一个问题,detain10系统下,桌面右下角的“双显示器”的网络图标不见,哎,不知道怎么连wifi了,怎么办?摸索了一会,没找到如何让添加上,但有急着要联网,怎么办?方法还是有的● 查看网络设备列表$ nmcli dev注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启● 开启WiFi$ nmcli r wifi on● 扫描附近的 WiFi 热点(此原创 2021-09-28 15:58:33 · 2756 阅读 · 1 评论 -
RK3399pro--认识一下RK3399Pro的硬件
好久不更新博文,在这里和加我的朋友说声“对不起,不好意思”,由于一直没有留意通过请求的信息,等看到的时候,已经过期!好了言归正传,此篇文章开始又要更新我的RK3399Pro的开发篇了。这次是因为工作所需,开始做产品了!首先介绍一下基础部分:首先要知道嵌入式开发和PC开发的不同之处,PC纯靠CPU和GPU通过编写程序,不计成本的进行运算,只要肯砸钱,配置越高运算能力越强。但嵌入式平台并不是这样的,嵌入式平台需要兼顾算力、功耗、成本等等因素,一颗好的嵌入式芯片,他要在控制成本和功耗的情况下尽可能的提高特定原创 2021-09-16 09:56:18 · 3871 阅读 · 0 评论 -
瑞芯微 TB-RK3399Pro -- 升级版本1.6.1以及跑demo
rknn-toolkit-1.6.0 (for 3399pro/1808/1126/1109)https://github.com/rockchip-linux/RKNPUToolsBaidu Cloud: https://eyun.baidu.com/s/3eTG3VsY (pwd:rknn)Onedrive:https://rockchips-my.sharepoint.com/:f:/g/personal/addy_ke_rockchips_onmicrosoft_com/EkQBzgZ6原创 2021-09-13 15:32:34 · 1047 阅读 · 0 评论 -
借一栗子讲解基于C的CUDA并行计算
代码1// ConsoleApplication6.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;//自定义数据类型 数据对齐typedef struct student{ char label[1]; int number; float score;}stu;int _tmain(int argc, _TCHAR* argv[]){ //在cp原创 2021-03-29 09:13:12 · 780 阅读 · 0 评论 -
实时深度学习的推理加速
作者 Yanchen 毕业于普林斯顿大学机器学习方向,现就职于微软Redmond总部,从事大规模分布式机器学习和企业级AI研发工作。在该篇文章中,作者介绍了实时深度学习的推理加速和持续性训练。引言深度学习变革了许多计算机视觉和自然语言处理(NLP)领域内的任务,它为越来越多的消费者和工业产品提供更强大的智能,并潜在地影响了人们在日常经验和工业实践上的标准流程。从理论上来说,深度学习和其他基于统计机器学习方法的自动化系统十分类似,它们都可以采用两个过程描述。首先,深度神经网络(DNN)模型明确地指向为问题原创 2020-12-18 06:25:38 · 910 阅读 · 0 评论 -
基于电力行业的智能读表系统 -- 算法设计
目录前言前言在变电站表计示数识读中,对表计的读取需要经过表计整体目标检测及二次对准、表盘目标检测及示数读取两个阶段。原来,主要是采用基于传统人工设计特征的图像处理方法实现表计的目标匹配和轮廓检测。由于这些方法只能实现浅层特征的提取,在应用的过程中容易受到图像背景、环境光照、拍摄角度等因素的影响,分类错误率较高。此外,样本量的增加对此类方法的作用也不大,大量深层特征无法被挖掘并用于提升算法的性能。比如说,背景特征难区分、类似区域易误检、环境光线影响检测准确率、现场干扰(如水珠)。如下图所示(如有所借用,请原创 2020-11-20 14:49:55 · 1417 阅读 · 1 评论 -
前向推理,合并Conv层与BN层
前言为何想到这,为何将caffe模型的合并,在这里源于对海思35XX系列开发板前向推理优化的原因。我是用darknet训练的yolo模型,转为caffemodel(darknet转caffemodel,之前我也写的博文代码。讲解以后也会好好补充完,代码先上,便于先用起来再说),然后在用RuyiStudio转为.wk模型,出于这个原因,我就想能不能做到算子融合,提升前向推理的速度,那么就有了这个文章,同时这个思路可以使用到其他的工业应用上。注意python是用的python3.x版本。合并Conv层与原创 2020-11-20 10:16:30 · 1949 阅读 · 0 评论 -
深度学习模型压缩加速
前言智慧物流是“互联网+”高效物流的重要内容,以智能化技术使物流具有学习、感知、思考、决策等能力,深度学习被大量用于智慧物流。本课程主要分为3个模块:基于深度学习的智慧物流发展状况及应用深度学习模型压缩加速原理和方法深度学习移动端开源框架介绍及部署实例技能进阶:GitHub项目《深度学习500问》深度学习模型压缩加速原理和方法...原创 2020-11-19 14:47:01 · 1179 阅读 · 1 评论 -
移动平台模型裁剪与优化的技术
前言移动平台开发的基础原理与架构设计基础 AI 与移动平台开发核心学习路径掌握核心模型裁剪与优化的工程方法基于优化的TensorFlow Lite的落地案例移动端机器学习移动平台包含的范围移动电话平板电脑可穿戴设备智能手环、智能手环、智能眼镜、智能腰带嵌入式设备:树莓派边缘计算节点边缘计算基本概念在边缘测发起应用就近提供服务更快响应用户实时、智能、安全与隐私本质在本地完成计算而不交给云端处理确保处理稳定,降低云端的工作负载面临的挑战传输带宽硬件性能与原创 2020-11-16 15:41:27 · 730 阅读 · 0 评论 -
基于电力行业的智能读表系统--基于RK3399嵌入式设备部署
目录一、需求背景二、系统架构智能云读表系统边缘智能读表系统三、技术方案面临的问题:总体方案目标检测方案语义分割方案四、边缘部署五、总结一、需求背景油田、店里等工矿奇特存在很多传统的机械指针表具。与数字式仪表不同,机械表具无法将表具度数实时发送到监控系统,需要人工进行读数检查。大型的工矿企业需要消耗大量的人力去现场读表巡检,增加了企业的人力成本,巡检周期长、频率低,更是让设备的质检、系统的稳定运行得不到有效保证。如果在非巡检期间表具度数到达异常区域,表具无法发送告警信息,异常无法被很快发现。二、原创 2020-11-03 14:00:04 · 2441 阅读 · 5 评论 -
瑞芯微 TB-RK3399Pro -- 开发板环境
本人开发环境PC:ubuntu18.04LSTboard:rk3399pro-Debian10开发环境搭建主要是参照前面写的环境安装内容:(1)PC-Ubuntu 环境安装、 keras 2.2.4 +tensorflow-gpu 1.x 安装(2)在PC-UBUNTU1804 or > version, 安装rknn虚拟环境,模拟rknn实现基本模型的转化、推理、运行(3)rk3399pro板子上刷机(fedora28 -> debian10)双系统开发板介绍1.开机2.原创 2020-10-09 22:24:49 · 13485 阅读 · 17 评论 -
瑞芯微 TB-RK3399Pro --YOLOV3开发与优化攻略实现
概述基于RKNN开发搭建开发环境训练自己的数据基于Darknet开发展望人工智能开发系列(3) YOLOV3开发与实现一、概述物体检测传统的人工设计特征加浅层分类器基于深度学习检测框架R-CNN:候选区域选择CNN特征提取分类与边界回归**Fast RCNN:**候选余秋雨选择整图CNN特征值提取,候选框在特征图上的映射分类**Faster RCNN:**区域生成网络RPN候选框提取模块+Fast RCNN检测模块(RPN是全卷积神经网络)YOLOV3: 一阶段的检测器,全卷积原创 2020-09-17 17:44:12 · 8643 阅读 · 9 评论 -
瑞芯微 TB-RK3399Pro -- 软件工具使用和AI应用开发
文章为草稿只做推理不做训练, android nn RK NNcaffe\ tf \darknet \onnxrknn tookit 转RKNNmodlefp32量化fp16 int16bitRKNN Toolkit支持做仿真自己搜索python接口原创 2020-09-17 15:17:27 · 1423 阅读 · 0 评论 -
瑞芯微 TB-RK3399Pro -- AI平台解决方案介绍
RK3399Pro AI平台解决方案介绍1,概况2,NPU3,应用开发4,demoCPU,NPU,GPU,VPU,ISP.Memory, Interface, PackageRK3399Pro NPU特性:满负荷算力强,轻载运算功耗低模型兼容性强,可支持多类型框架,支持主流层类型,易于添加自定义层,支持INT16/FP16开发工具易用,PC端可完成模型转换、性能预估、精度验证无缝升级,与RK3399 AndroidNN/LinuxNN兼容INT8可满足绝大部分需求RK339原创 2020-09-17 11:59:08 · 5489 阅读 · 1 评论 -
window版本YOLO-Fastest从Darknet源码编译、测试
摘要此darknet版本包含yolov2,yolov4,yolo-fastest,后续添加其他一、准备工作环境:window10,cuda10.0. cudnn7.6, cmake.opencv3.4.0(opencv4.4.0也是一样的)源码:二、安装1、模型编译、测试和训练1.1、draknet编译1)打开cmake,选择Yolo-Fastest文件夹为source code路径,Yolo-Fastest文件夹为目标文件夹;然后点击configure,再选择opencv.exe解压缩后的原创 2020-09-16 17:09:24 · 1687 阅读 · 0 评论 -
海思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'/home/qif/smf/caffe/python')import caffeimp原创 2020-06-30 19:09:53 · 1086 阅读 · 1 评论 -
海思AI芯片(HI35xx):tensorflow转caffemodel之模型参数转换
摘要:要把自己的模型进行移植,之前是后端的移植,最近前端也提了需求,前端一般都是用海思芯片(海思HI3516DV300),只支持caffe,所以为了先测试时间得把tf的模型转成caffemodel。这里是将tf1.x转为caffemode,后续补全darknet转为caffemode一、转换ckpt转caffemodel转换代码:# coding=utf-8# Author : AnnSun# Created date: 2020-06-23# from __future原创 2020-06-30 08:28:20 · 952 阅读 · 0 评论 -
海思AI芯片(HI35xx):tensorflow转caffemodel之caffe和tensoflow结构参数的差异
摘要:要把自己的模型进行移植,之前是后端的移植,最近前端也提了需求,前端一般都是用海思芯片(海思HI3516DV300),只支持caffe,所以为了先测试时间得把tf的模型转成caffemodel。这里是将tf1.x转为caffemode,后续补全darknet转为caffemode一、转换环节的注意点:卷积tensorflow卷积参数的存储方式是:(kernel_h, kernel_w, input_channel, output_channel)caffe卷积参数的存储方式是:(out原创 2020-06-23 16:30:47 · 1016 阅读 · 3 评论 -
海思AI芯片(HI35xx):tensorflow转caffemodel之两种框架下模型中变量名与层名之间的对应关系(映射关系)
一、查看caffe每一层的参数结构代码:# python3caffe_root = '/home/qif/smf/caffe/' import sys sys.path.insert(0, caffe_root + 'python') import caffedeploy_proto = r"./yolov3_deploy.prototxt" caffe_model = r"./yolov3_helmet.caffe原创 2020-06-23 11:03:56 · 647 阅读 · 0 评论 -
海思AI芯片(HI35xx):tensorflow转caffemodel之环境和权限问题
在pycharm中直接运行tf113tocaffe.py报错如下:cudnn_conv_layer.cpp:52] Check failed: error == cudaSuccess (30 vs. 0) unknown error如下图所示:解决方法:在tf113tocaffe.py所在目录下,打开终端:sudo python3 tf113tocaffe.py (重点是sudo python3)问题2:在终端运行:sudo python3 tf113tocaffe.py报错如原创 2020-06-22 15:31:18 · 504 阅读 · 1 评论 -
海思AI芯片(Hi35XX): 图像jpg转.bgr
前言 把一张jpg图片转成bgr(注意顺序是bgr)二进制文件,最近在弄华为Hi3516DV300开发板上的一些深度学习的样例程序,换言之,35xxnnie SDK只支持BGR以及yuv格式的数据输入。那么当手头刚好只有jpeg/png等图片文件时,怎么来进行目标识别呢,一般的思路是用opencv来读取图片文件,然后再转换成BGR/YUV等格式,最后扔到NNIE模块来进行深度学习推理。 本篇讲解jpg转bgr,也就是它的输入文件不是普通的jpg,而是bgr格式的二进制文...原创 2020-05-12 08:44:21 · 2416 阅读 · 1 评论 -
海思AI芯片(Hi35XX): 搭建linux环境(Ubuntu18.0.4)
此篇搭建环境的Linux平台为ubuntu18.0.4 64位系统,SDK的目标平台为Hi3516DV300\CV500系列。准备工作arm-himix200-linux 、 Hi3519AV100_SDK_V2.0.1.0打包下载网址:搭建工作安装交叉编译链。Linux 上安装arm-himix200-linux 交叉编译器1)将Windows下arm-himix200-li...原创 2020-04-04 11:27:24 · 4749 阅读 · 1 评论 -
海思AI芯片(Hi35XX): 交叉编译opencv4移植到海思35XX开发板(Ubuntu18.0.4)
此篇搭建环境的Linux平台为ubuntu18.0.4 64位系统,SDK的目标平台为Hi3516DV300\CV500系列。准备工作:原创 2020-04-04 05:21:18 · 3565 阅读 · 12 评论 -
Atlas 200 DK 系列 --高级篇--应用开发
一、应用开发章节指引本节是告诉大家如何基于开发板的开发框架,去编写、编译、运行属于你自己的机器学习应用。开发一个简单的机器学习应用,分三部,如下图所示:预处理–推理–后处理预处理部分:只针对图像预处理,这里提供一套工具,叫DVPP,对外呈现的是一个api。其实,开发板有两个芯片,一个是3559C,这块芯片是专门做多媒体处理的,而这个dvpp这套工具,可以充分利用这块芯片的实力,加速图片...原创 2020-03-20 11:31:27 · 1714 阅读 · 0 评论 -
Atlas 200 DK 系列 --高级篇--模型转换
一、模型转换工具的介绍与操作演示–模型转换OMG介绍Atlas200DK平台中提供了模型转换工具(OMG)。可以将caffe、Tensorflow等开源框架模型转换成Atlas200DK支持的模型,从而能够更方便快捷地把其他平台地模型放到Atlas200DK平台进行调试并拓展相关业务1)OMG的功能介绍2)OMG命令使用及命令参数解析3)Mind Studio模型转换实际操作4)OMG与...原创 2020-03-20 09:34:01 · 7891 阅读 · 3 评论 -
Atlas 200 DK 系列 --高级篇
高级章节指引/代码库讲解1) 代码库结构开源代码结构构成,后续更新到最新的版本,需要用到API使用方式和例子2)模型转换机器学习的核心在于推理模型,开发板目前不支持训练,只能用于推理,而用于开发板的模型的格式是.om(offline Model),这种离线模型是开发板框架都有的一种模型,但当前这种模型还不能直接通过训练获得,只能通过caffe/tensorflow训练得到的模型转换而来...原创 2020-03-18 16:37:18 · 2276 阅读 · 0 评论 -
Atlas 200 DK 系列--实战篇--目标检测应用的部署和使用
准备工作如上文图像分类应用的部署和使用的一样。1.下载目标检测应用代码下载sample-objectdetection1.下载代码,并解压缩,切换到解压之后的文件下:ascend@ubuntu:~/Downloads$ unzip sample-objectdetection-master.zipascend@ubuntu:~/Downloads$ cd sample-objectde...原创 2020-03-18 14:25:35 · 4462 阅读 · 1 评论 -
Atlas 200 DK 系列--初级篇--图像分类应用的部署和使用
运行此Sample前,需要按照此章节获取源码包,并进行相关的环境配置。获取源码包。将https://gitee.com/Atlas200DK/sample-classification仓中的代码以Mind Studio安装用户下载至Mind Studio所在Ubuntu服务器的任意目录,例如代码存放路径为:$HOME/sample-classification。获取此应用中所需要的原始网络模...原创 2020-03-18 10:44:33 · 4819 阅读 · 2 评论 -
extern "c"用法解析
http://www.jianshu.com/p/5d2eeeb93590引言C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,转载 2016-08-15 09:53:00 · 666 阅读 · 0 评论 -
C\C++中“#ifdef __cplusplus与extern "C" { #endif” 的理解
在工作中,C、C++密不可分,做我们嵌入式方面的,当然更多的是C,但,有时候却少不了C++,而且是C、C++混搭(混合编程)在一起的,比如,RTP视频传输,live555多媒体播放等都是C++下的,他需要调用JRTPLIB库,所以,很多时候,C++还是蛮不错的。。。。但,*.c与*.cpp文件混搭在一起,不是那么的简单。#ifdef __cplusplus //c++编译环境中才会定义__原创 2017-08-14 10:03:03 · 8139 阅读 · 0 评论 -
海思AI芯片(35xx):板端运行报错
问题,如下图所示:[Level]:Error,[Func]:SAMPLE_COMM_SVP_SysInit [Line]:41 [Info]:Error(0xa0018012):HI_MPI_VB_SetConf failed![Level]:Error,[Func]:SAMPLE_COMM_SVP_CheckSysInit [Line]:75 [Info]:Svp mpi init fail...原创 2020-03-12 15:28:15 · 2650 阅读 · 14 评论 -
window下虚拟机ubuntu与主机window系统复制粘贴文件的问题
一直卡在这里,好慢,复制粘贴不过去,虚拟机还卡着动弹不了,只能强行重启主机。多次这么操作,都不行。尝试网上很多的说法,什么共享文件之类的,都以失败告终,最终试试重新安装Vmware-Tools,最终成功了,废话少说,直接上操作。打开选择安装vmware tools 工具,如果已经安装过的话有重新安装vmware tools的选项,由于我之前已经安装过了,所以操作示意图如下:之后左面会出现一...原创 2020-03-12 14:12:37 · 1897 阅读 · 3 评论 -
海思AI芯片(35xx):linux下make交叉编译报错
linux下make编译报错如下图所示:问题1:/bin/sh: 1: syntax error: “(” unexpecd(或者/bin/sh: [[: not found 这种莫名奇妙的错误)原因分析:是linux将sh指向了dash而不是bash解决方法:在终端输入:ls -l /bin/sh # 提示如上图所示sudo dpkg -dpkg-reconfigure ...原创 2020-03-12 09:15:08 · 823 阅读 · 0 评论 -
海思AI芯片(35xx):yolov3的darknet模型转caffemodel模型
解决办法:加sudo权限:sudo python解决办法:sudo python3原因在于:原创 2020-03-11 09:09:10 · 1481 阅读 · 1 评论 -
ubuntu darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.
报错如上图所示0 CUDA Error: unknown errordarknet: ./src/cuda.c:36: check_error: Assertion `0’ failed.解决方法:加sudo权限:即加一个sudo【编译的时候,用的root权限的原因吧】...原创 2020-03-10 14:09:56 · 1499 阅读 · 1 评论 -
daknet版本yolov3训练报错:Corrupt JPEG data问题
解决思路:判断数据有问题,网上搜索,说是opencv读取图片有问题,改代码。我尝试重新制作其他数据集,读取训练没有这样的问题,说明这是我数据本身的问题。我就用python重新inread读取数据,然后将读取失败的图片数据名称保存下来,读取成功的数据再保存到对应的文件家中,最后就搞定了,废话少说了,就直接上代码吧。#!/usr/bin/env python# -*- coding: ut...原创 2020-03-02 13:10:54 · 3548 阅读 · 1 评论 -
海思AI芯片(35xx):验证daknet转caffe的yolov3模型是否正常(yolo层的实现)
一、搭建环境下载修改CMakefile.txt文件主要是修改caffe安装路径。画框的位置需要修改,此处为我的caffe路径,根据自己的路径进行修改。编译cd yolov3tocaffe_lecturemkdir buildcmake ..make -j4修改自己的参数后编译(只需要修改三个文件。detectnet.cpp、yolo_layer.cpp、yolo_la...原创 2020-01-14 17:51:52 · 1657 阅读 · 2 评论 -
Atlas 200 DK 系列--初级篇--MindStudio常见操作
一、 卸载Mind Studio 卸载Mind Studio过程中,会自动卸载DDK,使用安装用户权限登录Mind Studio后台服务器,在linux系统的“~/tools/bin”目录下执行./uninstall.sh命令卸载Mind Studio。操作步骤如下: 1. 切换到root用户在“/usr/bin”目录下为Mind Studio安装用户加权。 su...原创 2019-11-15 08:51:44 · 7541 阅读 · 0 评论 -
Atlas 200 DK 系列 -- 快速搭建开发环境
一 、PC虚拟机上安装Ubuntu(系统版本为(ubuntu-16.04.3-desktop-amd64.iso),与版端系统版本必须对应(ubuntu-16.04.3-server-arm64.iso)) 1.在Pc机上安装完ubuntu系统虚拟机的安装以及ubuntu的具体操作,就不描述了,网上很多。注意修改一下内存。 弹出系统更新时,请选择不更新,如下...原创 2019-11-14 15:49:00 · 11204 阅读 · 3 评论