半个小时内,用神经网络识别无人机航拍图像

2023-11-08

在这里插入图片描述

上一篇只要九分钟,用神经网络构建人脸比对模型的文章发出去之后,承蒙大家厚爱,得到了不少反馈。不少朋友希望能让我讲讲如何做图像识别。正好 TeguCV 的安装包里有一个测试数据集是我们用无人机航拍的车辆照片,就用它来做个教程吧!

前情提要:

MasterPa:只要九分钟,用神经网络构建人脸比对模型

首先,你需要能够使用神经网络进行深度学习,如果你还不会的话,你有两个选择:

从头学起,比如从吴恩达的课开始。
或者直接下载 TeguCV,一款极简又强大的计算机视觉工具,免编程训练神经网络。添加客服获得下载链接:
在这里插入图片描述

TeguCV 需要 Win 10 操作系统,并且和其他深度学习工具一样需要英伟达显卡以及最新驱动。

如果你已经下载完成 TeguCV,在 TeguCV GUI 1.15/Dataset/CarDataset 这个文件夹目录里,我们可以看到不少照片。这都是用无人机在长春航拍所得。我们今天的目标就是利用神经网络把里面的车识别出来。

在这里插入图片描述

和上次一样,在安装文件夹中找到 Tegu.exe,它长这样:
在这里插入图片描述
Tegu.exe

这次选择 Image Detection 图像识别
在这里插入图片描述

新建项目并且填写必要的信息(项目名称和保存路径)就可以开始了!
在这里插入图片描述
在这里插入图片描述
打开之后,你会看到这样一个界面。左面是参数调整,右边是日志输出。别怕,你看完这篇文章就能学会全部参数的含义。
在这里插入图片描述
首先要选择我们这次准备训练用的数据。在「Data Root」选择数据存放的地址:TeguCV GUI 1.15/Dataset/CarDataset/trainset 里面是我们的训练用数据集,双击打开后选择这个文件夹就可以。

然后是「Serval Path」,是标注文件的路径。因为我们单纯给电脑图片是没用的,还需要告诉电脑图片里有什么。.serval 是 TeguCV 专用的标注文件格式。在 TeguCV GUI 1.15/Dataset/CarDataset/ 可以看到一个名为 car.serval 的文件,选择它。

「Model Save Path」是模型保存的地址,咱们上一步新建项目的时候已经给它安排上了。

其实现在我们已经可以开始训练,教电脑如何识别车辆了。但开始之前,我们还有几个地方最好了解一下:

  • Epoch 是最大训练轮次。就是说你打算让电脑一共学习多久这些数据。就好像读完义务教育要 9 年,但是读完博士可能要 19 年。但也不是说时间越长越好,毕竟博士延毕迟迟出不来也不是啥好事对不?如果你是新手,我建议第一次这里写 100,如果你的电脑不是特别快,写 20 也行。
  • Learning Rate 是学习率。通俗地说电脑学习的速度。学的太快可能导致学不明白,但学的太慢则有可能一直学不完。调整学习率需要依赖人的经验,这个过程也就是我们所谓的「调参」。TeguCV 拥有自动搜索合适学习率的功能,但这不是这次的重点。我们下次会讲一讲。
  • Save Epoch 是每多少轮会保存一次。建议 5 或者 10 轮一次。
    Visualization When Save 是每次保存模型时,都让电脑顺便挑 20% 的训练数据去识别一下,方便我们看当前的效果。看着识别越来越准是一件很有成就的事情。不过要注意的是,最开始的轮次模型完全不准很正常。可以在保存模型的路径下找到展示效果。

这次我们可以选择 Epoch 为 50 或 100,Learning Rate 0.001,每 10 轮保存一次。请务必让全部文件路径都是英文的。

i5 + 1050ti 的话差不多 10s 跑完一轮。到了需要保存那轮会稍微慢一些。

最开始你会看到这样的效果:

在这里插入图片描述
也可能比这个还差,这都不要紧。蓝色框中是电脑认为是车的位置。

多轮训练之后,效果会开始变好:

在这里插入图片描述
看,准确多了吧!

至此,你也许是第一个,但肯定是过程最简单的一个神经网络模型就训练出来了!

如果你想使用这个模型,可以直接用下面的 Predict 功能。或者比如我们想直接实时识别无人机回传的数据,也可以开启 Server。详细介绍可以在下载包里的说明文档找到。这里也有一份在线版:

TeguCV GUI 1.15 产品简介

如果感兴趣,也可以直接添加客服,可以点击以下链接,也可以绿色通信工具加:adamgi

微信扫描二维码
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

半个小时内,用神经网络识别无人机航拍图像 的相关文章

  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • 在 Visual Studio 2012 中安装 OpenCV

    我正在尝试安装 OpenCV 来与 Visual Studio 一起使用 我使用的是2012Pro版本 但我认为它应该与vs10相同 我正在关注这个教程 http docs opencv org doc tutorials introduc
  • OpenCV Mat 和 Leptonica Pix 之间的转换

    我需要在 C 中在 OpenCV Mat 图像和 Leptonica Pix 图像格式之间进行转换 这用于 8 位灰度图像的二值化 我发现发现了 ikaliga的回答 https stackoverflow com a 25929320 2
  • 在 Visual Studio C++ 2008 中包含 dll

    有没有办法将 dll 包含在项目中 这样我就不必在编译后将这些 dll 与可执行文件放在同一文件夹中 这样我就可以用它们编译我的项目 这是否有可能 如果是 有人可以指导我 我的项目是一个 opencv 项目 有很多 dll 我必须包含在文件
  • 图像梯度角计算

    我实际上是按照论文的说明进行操作的 输入应该是二进制 边缘 图像 输出应该是一个新图像 并根据论文中的说明进行了修改 我对指令的理解是 获取边缘图像的梯度图像并对其进行修改 并使用修改后的梯度创建一个新图像 因此 在 MATLAB Open
  • 从扫描文档中提取行表 opencv python

    我想从扫描的表中提取信息并将其存储为 csv 现在我的表提取算法执行以下步骤 应用倾斜校正 应用高斯滤波器进行去噪 使用 Otsu 阈值进行二值化 进行形态学开局 Canny 边缘检测 进行霍夫变换以获得表格行 去除重复行 10像素范围内相
  • opencv_contrib编译错误:类没有成员

    我必须实现 SURF 算法来进行图像拼接 我在使用列出的库时遇到了问题here https stackoverflow com questions 33560251 opencv 3 0 0 ubuntu 14 04 nonfree non
  • 如何加速 svm.predict?

    我正在编写一个滑动窗口来提取特征并将其输入到 CvSVM 的预测函数中 然而 我偶然发现 svm predict 函数相对较慢 基本上 窗口以固定的步幅长度在图像比例上滑动穿过图像 遍历图像加上提取每个图像特征的速度 窗口大约需要 1000
  • 使用卡尔曼滤波器跟踪位置和速度

    我正在使用卡尔曼滤波器 恒定速度模型 来跟踪物体的位置和速度 我测量对象的 x y 并跟踪 x y vx vy 这是有效的 但是如果在传感器读数 x y vx vy 上添加 20 mm 的高斯噪声 即使该点没有移动 只是噪声也会发生波动 对
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • 将图像加载到现有 Mat 中

    有没有办法将图像加载到现有的 Mat 中 如果没有 有没有办法控制 OpenCV 在调用 cv imread 时分配内存的位置 我只是为您的类创建一个构造函数 该构造函数接受 imread 的输入参数并将图像直接加载 并分配 到您的类中 所
  • OpenCV Sobel 滤波器 - 为什么它看起来这么糟糕,尤其是与 Gimp 相比?

    我正在尝试使用 OpenCV 重建一些我之前在 Gimp 中完成的预处理 第一级是用于边缘检测的 Sobel 滤波器 它在 Gimp 中运行得很好 现在这是我对 OpenCV 的尝试 opencv imgproc Sobel src sca
  • 从基本矩阵中查找单应矩阵

    我正在尝试计算单应性矩阵H给定一组对应关系和基本矩阵F 根据对极几何原理 我知道这可以通过对极线和对极线的叉积来完成F from 极点几何 http www cs unc edu marc tutorial node44 html e ij
  • OpenCV 中的 Canny 可以同时处理灰度图像和彩色图像吗?

    我有一些关于Canny 边缘检测器 in OpenCV 这是我尝试过的代码 def auto canny image sigma 0 33 v np median image lower int max 0 1 0 sigma v uppe
  • OpenCV SVM 给出奇怪的预测结果

    我对 OpenCV 和支持向量机都很陌生 我想使用 SVM 训练具有两个标签的数据集 然后预测给定集合的标签 我当前的集合包含大约 600 行 具有相等的类分布 1 为 300 行 1 为 300 行 包含 34 列 这是我当前用于设置 O
  • HTC One M8 - 使用第二个后置摄像头

    我有一台 HTC One M8 设备 它有 2 个后置摄像头和一个额外的前置摄像头 我的问题是尝试访问第二个后置摄像头 我已经成功制作了一个应用程序 它同时运行 2 个摄像头 1 个前置摄像头和 1 个后置摄像头 但问题是我无法访问第二个后
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调

随机推荐

  • JSP四大域

    JSP四大域对象 pageContext 当前jsp页面范围内有效 request 一次请求内有效 session 一次会话范围内有效 也就是打开浏览器访问服务器到关闭浏览器 application 整个Web工程内有效 作用范围 创建一个
  • Arthas线上监控诊断产品[学习笔记]

    1下载启动arthas tunnel server Arthas Tunnel arthasarthas 使用文档https arthas aliyun com doc tunnel html E4 B8 8B E8 BD BD E9 83
  • Ceph集群生产环境安装部署

    前言 ceph的组件以及工作流程非常的复杂 是一个庞大的系统 在尝试ceph之前尽量多查阅官方的文档 理解ceph的mon osd mds pg pool等各组件 Unit的协同工作方式 Ceph官方文档 一 配置规划 二 部署 1 ntp
  • 超强OCR文字识别软件 图像文字识别软件工具-独有直接屏幕截图识别功能

    原文地址 http blog sina com cn s blog 4d36b4ba0100vnzc html 相关文章 1 Screen OCR 屏幕画面截屏工具 13 5 官方绿色版 http www newasp net soft 6
  • 人的一生(none)

    曾仕强 情绪管理 要有理想 情绪负债 享受错误的决定 错误嘴巴推给别人心里推给自己 没有人会因为你的抱怨而改变 只有改变自己 立场不同 讲话不一样 反求诸己 治标方法 散步 发泄 要看开 不要看破 被看待事情的观点所困扰 而不是被事情所困扰
  • linux 系统命令行查看电池剩余电量

    proc acpi battery BAT0 state 文件里的remaining capacity表示剩余电量 proc acpi battery BAT0 info 文件里的last full capacity表示满电量 如果有多块电
  • python数据分析——pyecharts折线图全解(小白必看)

    折线图是排列在工作表的列或行中的数据可以绘制到折线图中 折线图可以显示随时间 根据常用比例设置 而变化的连续数据 因此非常适用于显示在相等时间间隔下数据的趋势 下面我给大家介绍一下如何用pyecharts画出各种折线图 1 基本折线图 im
  • 【WSL2】win11创建秒级启动openEuler虚拟机

    前言 Windows上安装openEuler虚拟机 现在大多采用的是 vmware workstation virtual box 方案 可以完整地体验openEuler系统以及使用图形界面 这个方案的缺点是启动慢 资源消耗大 性能损耗大
  • VMware虚拟机安装+Ubuntu安装+VMware Tools安装+Ubuntu下g++编译器的安装+虚拟机中系统的移动

    一 VMware虚拟机安装 Ubuntu安装 本人VMware15 Pro Ubuntu18 04 06 LTS 该部分安装可见博客 提示 VMware15 Pro可在win7及以上系统中安装 VMware Workstation 16 P
  • Libevent使用例子,从简单到复杂

    出处 http blog csdn net luotuo44 article details 39670221 本文从简单到复杂 展示如何使用libevent 网上的许多例子都是只有服务器端的 本文里面客户端和服务器端都有 以飨读者 关于l
  • 3-rospy介绍

    Client Library 1 提供ROS编程的库 2 例如建立node 发布消息 调用服务 3 提供了如下几种client library roscpp rospy roslisp rospy的组成 1 Node 2 Topic 3 S
  • vscode编译多文件的方法(C和C++通用)

    vscode编译多文件的方法 1 新建一个文件夹作为工程 我这里以struct为工程文件夹 其中 xixi c 和 xixi h 是该工程下list文件夹里的内容 xixi c include xixi h include
  • 简单注册界面

    register html div class form container div
  • webpack 转换 ES6高级语法 bable插件 module rules

    在webpack中只能处理一部分es6语法 一些高级的ES6或者ES7 webpack处理不了 借助第三方loader处理 会将结果打包到main js loader 通过Bable可以转换 webpack中运行 如下两套命令 去安装bab
  • Go分布式缓存 使用 Protobuf 通信(day7)

    Go分布式缓存 使用 Protobuf 通信 day7 为什么要使用 protobuf 使用 protobuf 进行节点间通信 编码报文 提高效率 代码约50行 1 为什么要使用 protobuf protobuf 即 Protocol B
  • c语言之输出

    c语言之输出 1 printf 功能 格式化输出函数 一般用于向标准输出设备按照规定的格式输出信息 头文件
  • java hasnextstring_Java – ListIterator和hasNext

    如果列表只有一个元素 那就更清楚了 让我们说 b hasNext 实际上会返回true 而next 会读取它 迭代将在此之后结束 说明 如果你打电话给Iterator lt Object gt 任何非空列表上的it list iterato
  • flutter 左右循环跑马灯,html实现

    import dart async import package flutter cupertino dart import package flutter material dart import package flutter html
  • js数组去重的方法

    Js数组去重的方法 1 ES6 Set方法去重 1 利用ES6 Set去重 let arr 1 2 3 25 4 1 2 3 function deduplicationBySet array return Array from new S
  • 半个小时内,用神经网络识别无人机航拍图像

    上一篇只要九分钟 用神经网络构建人脸比对模型的文章发出去之后 承蒙大家厚爱 得到了不少反馈 不少朋友希望能让我讲讲如何做图像识别 正好 TeguCV 的安装包里有一个测试数据集是我们用无人机航拍的车辆照片 就用它来做个教程吧 前情提要 Ma