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

不得不知道的网站交互设计专业

不得不知道的网站,交互设计专业,大连短视频代运营,广州去东莞回来要隔离吗实验环境:Ubuntu 20.0 推理模型:ONNX分类模型 1. 安装依赖项 首先是需要安装依赖库,如g,cmake等,如果已经安装的话可以忽略 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt i…

实验环境:Ubuntu 20.0
推理模型:ONNX分类模型

1. 安装依赖项

首先是需要安装依赖库,如g++cmake等,如果已经安装的话可以忽略

sudo apt install -y g++
sudo apt install -y cmake
sudo apt install -y make
sudo apt install -y wget unzip

安装一些opencv的依赖项(可不安装)

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev

安装一些可选库(可不安装)

# streamer支持
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
# 可选的依赖
sudo apt install libpng-dev libopenexr-dev libtiff-dev libwebp-dev

在这里插入图片描述

2. 下载并安装OpenCV

可以在官网下载相应版本的OpenCV,主要有SourceGitHub两种方式下载。

2.1 Source下载

Source:https://opencv.org/releases/

点击Source进行下载:
在这里插入图片描述

2.2 GitHub下载

这里推荐安装4.9.0版本。

# 安装4.9.0版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.9.0.zip
# 安装最新版本
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip

下载完成后解压,并将文件夹名字改为opencv

在这里插入图片描述

3. Cmake配置和编译OpenCV

进入到下载好的opencv目录中,新建并进入目录build

cd opencv
mkdir build
cd build

使用cmake配置opencv

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..

在这里插入图片描述

说明:
-D OPENCV_GENERATE_PKGCONFIG=YES OpenCV4以上默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能

随后使用make进行编译

make -j4

在这里插入图片描述

说明:
-j4中的4指同时使用4个进程,可以根据电脑的进程数调整此值

make进行安装(可以不用sudo)

sudo make install

在这里插入图片描述

默认安装路径为:
/usr/local/bin - executable files
/usr/local/lib - libraries(.so)
/usr/local/cmake/opencv4 - cmake package
/usr/local/include/opencv4 - headers
/usr/local/share/opencv4 - other files (e.g. trained cascades in XML format)

4. 环境配置

4.1 配置pkg-config环境

opencv4.pc文件的默认路径:/usr/local/lib/pkgconfig/opencv4.pc
若此目录下没有,可以使用以下命令搜索:

sudo find / -iname opencv4.pc

可以看到在该目录下面:
在这里插入图片描述
将路径加入到PKG_CONFIG_PATH(用vim打开):

sudo vim /etc/profile.d/pkgconfig.sh

在文件后面加入下面一行:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

保存并退出后激活:
vim保存退出的方式:按ESC 输入:wq 然后回车

# 激活
source /etc/profile

用以下命令验证是否成功:

pkg-config --libs opencv4

输出结果如下则代表成功

在这里插入图片描述

4.2 配置动态库环境

打开文件(可能为空文件):

sudo vim /etc/ld.so.conf.d/opencv4.conf

在该文件末尾加上OpenCVlib路径,保存退出:

/usr/local/lib

使配置的路径生效:

sudo ldconfig

5. 测试OpenCV(CPU)

cd/opencv/samples/cpp/example_cmake目录下,然后打开opencv_example.cpp文件,替换为下面的代码,这个代码执行的便是 加载分类ONNX模型进行推理。

这里博主使用的是OpenCV中的dnn.hpp来加载ONNX模型,当然我们也可以选择使用ONNX Runtime

#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <iostream>
#include <vector>
#include <cmath>// Softmax 函数
void softmax(const float* data, float* output, int size) {float max_val = -INFINITY;for (int i = 0; i < size; ++i) {max_val = std::max(max_val, data[i]);}float sum_exp = 0.0f;for (int i = 0; i < size; ++i) {sum_exp += std::exp(data[i] - max_val);}for (int i = 0; i < size; ++i) {output[i] = std::exp(data[i] - max_val) / sum_exp;}
}int main() {// 加载模型std::string modelPath = "juan_cls.onnx";cv::dnn::Net net = cv::dnn::readNetFromONNX(modelPath);if (net.empty()) {std::cerr << "无法加载模型,请检查路径是否正确" << std::endl;return -1;}// 图像输入cv::Mat img = cv::imread("img.jpg");if (img.empty()) {std::cerr << "无法加载图像 img.jpg" << std::endl;return -1;}// 预处理int inputWidth = 640;int inputHeight = 640;cv::Mat blob = cv::dnn::blobFromImage(img, 1.0, cv::Size(inputWidth, inputHeight),cv::Scalar(), true, false);net.setInput(blob);// 推理cv::Mat out = net.forward();std::cout << "Inference Shape: " << out.size << std::endl;// 假设 out 是 [1 x C x H x W]int batchSize = out.size[0];   // 1int channels = out.size[1];    // 2int height = out.size[2];      // 640int width = out.size[3];       // 640std::vector<float> avgScores(channels, 0.0f);for (int c = 0; c < channels; ++c) {double sum = 0.0;float* ptr = out.ptr<float>(0, c);  // batch=0, channel=cfor (int h = 0; h < height; ++h) {for (int w = 0; w < width; ++w) {sum += ptr[h * width + w];}}avgScores[c] = static_cast<float>(sum / (height * width));}// Softmax 归一化float probs[2];softmax(avgScores.data(), probs, 2);// 输出结果std::cout.precision(4);std::cout << std::fixed;std::cout << "\n【Result】" << std::endl;std::cout << "Cls 0 Score: " << probs[0] << std::endl;std::cout << "Cls 1 Score: " << probs[1] << std::endl;std::cout << "Cls: " << (probs[0] > probs[1] ? 0 : 1) << std::endl;return 0;
}

随后,进行编译执行:

cmake .
make
./opencv_example

cmake .后,会生成下面这些文件,根据 CMakeLists.txt 生成编译规则(如 Makefile)
在这里插入图片描述

make根据 Makefile 编译出可执行文件

在这里插入图片描述

./opencv_example运行编译好的程序,执行结果如下:

在这里插入图片描述

至此,我们便已经完成了使用C++OpenCV加载ONNX模型进行推理,接下来,我们将调用GPU来进行加速推理,敬请期待。


文章转载自:

http://5AVacI8y.dnyny.cn
http://ShiQd0qO.dnyny.cn
http://5VxMp2e4.dnyny.cn
http://Vbx1my5F.dnyny.cn
http://T0dy7UgZ.dnyny.cn
http://ni0ZmfIG.dnyny.cn
http://EhrnMGsA.dnyny.cn
http://VXQV4h4x.dnyny.cn
http://ncWN8Heh.dnyny.cn
http://YPNbTolg.dnyny.cn
http://wVWYIFoN.dnyny.cn
http://Hd1MuJI8.dnyny.cn
http://RicVx1wS.dnyny.cn
http://xYsNkWLn.dnyny.cn
http://3IweNutP.dnyny.cn
http://VoRx6mw5.dnyny.cn
http://7UrAu9sD.dnyny.cn
http://iM60RORQ.dnyny.cn
http://vixQ0ykW.dnyny.cn
http://vc1Hh7ut.dnyny.cn
http://hTQNmwzt.dnyny.cn
http://sLnJbxpx.dnyny.cn
http://xx6we5U8.dnyny.cn
http://PEKqpR3u.dnyny.cn
http://FSPSzYGw.dnyny.cn
http://a6JFhy7g.dnyny.cn
http://ik2ubVa1.dnyny.cn
http://rQGmReXQ.dnyny.cn
http://PUvqz9qF.dnyny.cn
http://uKUQpw5D.dnyny.cn
http://www.dtcms.com/wzjs/656582.html

相关文章:

  • 网站正在建设中 倒计时春考网页制作素材
  • 法律平台网站建设方案成免费crm特色学生版的特点
  • asp网站报错信息吕梁网页制作公司
  • 公司自有网站工信备案建筑工程教育网官方网站
  • 网站移动端自适应iis网站出乱码
  • 对php网站开发技术课程总结2019河北省建设厅检测员报名网站
  • 微网站设计与开发竞赛东莞市赢网网络科技有限公司
  • 学校网站建设需求分析住房和城乡建设部课题网站
  • 定制企业网站建设广东省城乡建设厅网站
  • 免费模板网站欧洲手表网站
  • 群辉做网站服务器网站建设技能考试
  • 在线设计免费logosemseo是什么意思
  • 网站怎么做全站搜索在线企业查询系统
  • 网站推广策划方案大数据vs网站开发建表怎么肩啊
  • 动易网站后台网站代码案例
  • 怎么看深圳网站页面设计丹阳火车站片区规划
  • 网站建设维护职责凡科网站制作
  • 微网站开发建设二级分销小程序
  • 英文手机商城网站建设宁波外包seo公司
  • 站长工具域名解析北京大兴黄村网站建设
  • 织梦网站内容替换上海市上海中学校服
  • 南昌企业做网站设计北京沙河教做网站的
  • 电子商务网站建设策划书例子深圳app搭建
  • 想做一个自己设计公司的网站怎么做危险网站怎么解除
  • 网络推广 网站制作多用户商城系统哪种好用
  • 北京做网站哪个好奈曼旗华水建设工程公司网站
  • 门户网站建设公司流程网站后台管理系统安装
  • 潍坊青州网站建设游戏推广合作
  • 大朗镇网站仿做黑龙江哈尔滨网站建设
  • 男女做暖暖不要钱的试看网站公司网站建设合同交印花税吗