欢迎来到 Schema.org
这是 Schema.org 项目存储库。它包含用于发布 schema.org 的所有模式、示例和软件。对于网站本身,请参阅 Schema.org。
注意:大部分支持软件是从子模块导入的:'sdopythonapp'
问题和提案由项目周围的合作者(尤其是 W3C Schema.org 社区组的参与者)管理。如果您有兴趣参与,请加入 W3C 小组,介绍您自己并在此处查找或提交您感兴趣的问题。如果您不熟悉 Git 和 GitHub,W3C Wiki 中提供了有关 GitHub 的有用介绍。
还有持续集成测试来检查传入的拉取请求。
GitHub 中的问题 #1 是发布计划的入口点。它应该从广泛的主题、具体问题和发布里程碑方面概述即将开展的工作。 Issue #1 将链接到每个版本的入口点,或者通过 GitHub 中的标签或里程碑导航问题。
网站的每项更改都是通过此处的讨论进行的。实质性更改记录在我们的发行说明中。新发行说明草案的预览可以作为我们下一个版本的测试站点的一部分找到。大约每个月,在 Schema.org 指导小组和更广泛的社区进行最终审核后,我们都会发布正式版本。
有关文档和软件的 CC 和开源许可证,请参阅我们的常见问题解答条目。
我们始终对改进 schema.org 的实用建议感兴趣,自 2011 年推出以来,我们的模式集合一直在逐渐增长。我们尝试优先考虑对现有模式、示例和文档的简单修复和改进,而不是添加新的模式。当有证据表明某些(最好是大规模)消费应用程序将使用这些数据时,我们最有可能添加新的模式。消费应用程序不一定是搜索引擎;软件工具(例如,开源、标记丰富的网络分析方法、浏览器插件或云工具)都是探索和协作的丰富领域。重要的是,数据消费者应该对充分利用这些变化有一定的合理期望。仅凭搜索引擎通常尝试使用基于 Schema.org 的结构化数据来证明添加的合理性是不够的。较小的更改和向后兼容的更改更容易合并。
注意:Schema.org 并不尝试捕获 Web 内容的全部细节;而是尝试获取 Web 内容的完整细节。它必然是更复杂的现实的简化。这意味着在很多情况下都可以向 Schema.org 添加更多详细信息。然而,为了保持 Schema.org 简单并可供发布商和网站管理员使用,我们通常会选择不添加此类详细信息。
Schema.org 使用 JSON-LD、Microdata 和 RDFa 等 Web 标准来允许独立扩展(例如,请参阅 GS1 的词汇表)。
如果纯粹出于优雅、“正确建模”、本体纯粹性或概念统一的考虑,我们也不太可能对 Schema.org 的术语进行大规模重组。尽管项目创始人和团队熟悉并尊重此类问题背后的传统,但 Schema.org 的规模、范围和性质要求我们放弃优雅和全球一致性,转而采用稍微邋遢的渐进式进化概念和务实的方法。对与正式本体论格格不入的风格的容忍。关于统一、跨领域的基于逻辑的知识结构的建议可能会在 Ontolog 社区中得到更好的接受。
我们有时会引入没有专用属性关联的类型,仅仅是出于标记可用性的原因。在正式本体中,这通常被认为是糟糕的建模。然而,逻辑上等效的结构可能会因不熟悉 JSON-LD 或 RDF/S 背后的底层形式概念的发布者/网站管理员而导致更多错误。
Schema.org 不是一个封闭的系统,其他举措(例如 Wikidata 或 GS1)已经定义了许多其他术语,这些术语可以与我们在 schema.org 定义的术语混合在一起。我们还努力使我们的设计与相关的外部标准和计划保持一致,即使它降低了单独考虑的 Schema.org 的全球优雅性。例如,在书目或文化遗产方面,我们可能会受到 MARC、BibFrame 和 FRBR 等倡议的影响,而在电子商务方面,我们与 GoodRelations 和 GS1 合作。 Schema.org 的新闻相关术语受到 IPTC 的 rNews 设计以及与事实检查者、Trust Project 等的合作的严重影响。我们的电视和音乐相关词汇深受与 BBC 和欧洲广播联盟以及音乐本体和 MusicBrainz 合作的影响;我们的模式反映了这些先前的设计。我们更喜欢以这种方式进行协作,逐步改进 Schema.org,并致力于完善、集成和混合此类设计,而不是孤立地生成我们自己的纯模型。结果可能缺乏全球优雅,但使我们的工作与全球相关工作保持一致。
我们始终欢迎跟踪可用性和可读性问题的问题,但鼓励关注具体情况(例如,如何描述重复事件)而不是全局哲学问题(例如,预订或行动是否“真正”是一个事件)。我们优先考虑局部一致性(有合理的方式来描述许多常见情况),而不是全局优雅(有一个全局理论,其中所有事物都有一个合理的位置)。这并不意味着我们从不进行清理,但它们与其他考虑因素相平衡(并且常常被其他考虑因素所压倒)。
当我们添加术语时(通常添加到“待处理”区域),我们强烈鼓励采取全球视角的反馈:新术语如何与其他术语相关,它如何与预先存在的模式一起使用等。这一整合阶段反映了此类考虑,但通常通过适度的改写、示例或对类型/属性链接的文档的调整来表达,而不是通过重大重组来表达。
详细了解“我们如何工作”
对于大多数协作者来说,您需要了解的有关软件的只是如何运行它。该软件的目标是创建 Schema.org 站点的静态副本(包括潜在的本地更改),以检查并在本地系统上的简单 Web 服务器后面运行以进行测试。就像将生产版本部署到云服务器一样,您的本地版本可以使用 gcloud 部署到虚拟机,以实现与其他人的协作。
SOFTWARE_README.md 中提供了完整的说明,解释了如何创建要使用的初始本地副本,然后进行演变以测试任何更改。本质上,您需要有一个类似 Linux(包括 Mac)的环境,并加载了 Python 3.6 或更高版本。然后,您可以在您自己的计算机上运行 schema.org 的测试版本,可通过 http://localhost:8080/ 进行访问,或者将它们发布到 appspot.com 上进行协作。有关相关 gcloud 命令的详细信息,请参阅 Appengine 文档。
有关该软件及其使用的更多详细信息,请参阅 SOFTWARE_README.md。另请参阅 wiki 中的注释:https://github.com/schemaorg/schemaorg/wiki/Contributing
所有模式和示例都位于 data/ utf-8 编码文件中。
主要模式文件是 data/schema.ttl (utf-8)。
在开发模式时,使用 data/sdo-somethinghere-schema.ttl 可能很有用。
该格式基于 RDF/Turtle 格式的 W3C RDFS。
示例存储在 data/examples.txt (utf-8) 和其他 .txt 文件中。
与模式一样,data/examples.txt 也将被读取。使用单独的文件进行开发可能很有用。
当词汇表最终集成到主存储库中时,模式数据将合并到 schema.org 中。然而,示例将保留在单独的文件中,因为这与 git 的文件比较机制配合得更好。
data/releases/ 层次结构是为发布快照保留的(请参阅 https://schema.org/version/)。
ext // 层次结构是为扩展保留的(请参阅 https://schema.org/docs/extension.html)。
我们不再使用 github 分支来进行正在进行的工作。主要/分支是我们最新的候选者。不保证它处于概念上一致的状态,但应该在发布候选版本供审查之前稳定下来。
本文档涉及软件代码库而不是 schema.org 本身。但是,请注意,如果需要在英语变体之间进行选择,标签、注释和文档应使用美国英语(在代码和模式中)。请尽可能以国际英语为目标。
另请参阅:https://twitter.com/schemaorg_dev
例子:
`
Apache-2.0 许可证
目录
暗网目标检测框架和 YOLO
文件
一般信息
暗网版本
MSCOCO 预训练权重
建筑
谷歌合作实验室
Linux CMake方法
Windows CMake方法
使用暗网
命令行界面
训练
其他工具和链接
路线图
短期目标
中期目标
长期目标
暗网目标检测框架和 YOLO
暗网和 hank.ai 徽标
Darknet 是一个用 C、C++ 和 CUDA 编写的开源神经网络框架。
YOLO(You Only Look Once)是一个最先进的实时目标检测系统,运行在 Darknet 框架中。
了解 Hank.ai 如何帮助 Darknet/YOLO 社区
宣布暗网 V3“爵士乐”
请参阅 Darknet/YOLO 网站
请仔细阅读 Darknet/YOLO 常见问题解答
加入 Darknet/YOLO Discord 服务器
文件
论文YOLOv7
纸比例-YOLOv4
论文YOLOv4
论文YOLOv3
一般信息
Darknet/YOLO 框架仍然比其他框架和 YOLO 版本更快、更准确。
该框架是完全免费且开源的。您可以将 Darknet/YOLO 整合到现有的项目和产品中(包括商业项目和产品),无需许可证或支付费用。
2024 年 10 月发布的 Darknet V3(“Jazz”)在使用 NVIDIA RTX 3090 GPU 时可以以高达 1000 FPS 的速度准确运行乐高数据集视频,这意味着每个视频帧都可以由 Darknet/YOLO 在 1 毫秒或 1 毫秒内读取、调整大小和处理。较少的。
如果您需要帮助或想讨论 Darknet/YOLO,请加入 Darknet/YOLO Discord 服务器:https://discord.gg/zSq8rtW
Darknet/YOLO 的 CPU 版本可以在简单的设备上运行,例如 Raspberry Pi、云和 Colab 服务器、台式机、笔记本电脑和高端训练设备。 Darknet/YOLO 的 GPU 版本需要 NVIDIA 提供的支持 CUDA 的 GPU。
众所周知,Darknet/YOLO 可在 Linux、Windows 和 Mac 上运行。请参阅下面的搭建说明。
暗网版本
Joseph Redmon 在 2013-2017 年编写的原始暗网工具没有版本号。我们认为这个版本是 0.x。
Alexey Bochkovskiy 在 2017 年至 2021 年间维护的下一个流行的暗网存储库也没有版本号。我们认为这个版本是 1.x。
从 2023 年开始,由 Hank.ai 赞助并由 Stéphane Charette 维护的 Darknet 存储库是第一个带有版本命令的存储库。从 2023 年到 2024 年底,它返回了版本 2.x“OAK”。
目标是在熟悉代码库的同时尝试尽可能少地破坏现有功能。
重新编写了构建步骤,以便我们有 1 种统一的方式在 Windows 和 Linux 上使用 CMake 进行构建。
将代码库转换为使用 C++ 编译器。
训练时增强了chart.png。
错误修复和与性能相关的优化,主要与减少训练网络所需的时间有关。
该代码库的最后一个分支是 v2 分支中的版本 2.1。
下一阶段的开发于 2024 年中期开始,并于 2024 年 10 月发布。版本命令现在返回 3.x“JAZZ”。
如果您需要运行这些命令之一,您始终可以签出之前的 v2 分支。请告诉我们,以便我们研究添加回所有丢失的命令。
删除了许多旧的和未维护的命令。
在训练和推理过程中进行了许多性能优化。
修改了旧版 C API;使用原始 Darknet API 的应用程序需要进行少量修改:https://darknetcv.ai/api/api.html
新的 Darknet V3 C 和 C++ API:https://darknetcv.ai/api/api.html
src-examples 中的新应用程序和示例代码:https://darknetcv.ai/api/files.html
MSCOCO 预训练权重
为了方便起见,YOLO 的几个流行版本在 MSCOCO 数据集上进行了预训练。该数据集有 80 个类,可以在文本文件 cfg/coco.names 中看到。
还有其他几个更简单的数据集和预训练权重可用于测试 Darknet/YOLO,例如 LEGO Gears 和 Rolodex。有关详细信息,请参阅 Darknet/YOLO 常见问题解答。
MSCOCO 预训练权重可以从几个不同的位置下载,也可以从此存储库下载:
YOLOv2,2016 年 11 月
YOLOv2-微小
YOLOv2-full
YOLOv3,2018 年 5 月
YOLOv3-微小
YOLOv3-full
YOLOv4,2020 年 5 月
YOLOv4-小
YOLOv4-full
YOLOv7,2022 年 8 月
YOLOv7-微小
YOLOv7-full
MSCOCO 预训练权重仅用于演示目的。 MSCOCO 相应的 .cfg 和 .names 文件位于 cfg 目录中。命令示例:
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.视频
请注意,人们应该训练自己的网络。 MSCOCO 通常用于确认一切正常工作。
建筑
过去(2023 年之前)可用的各种构建方法已合并为一个统一的解决方案。 Darknet 需要 C++17 或更高版本、OpenCV,并使用 CMake 生成必要的项目文件。
您不需要了解 C++ 来构建、安装或运行 Darknet/YOLO,就像您不需要成为机械师来驾驶汽车一样。
谷歌合作实验室
Linux
视窗
如果您遵循具有更复杂构建步骤的旧教程,或者构建步骤与本自述文件中的内容不匹配,请注意。如下所述的新构建步骤于 2023 年 8 月开始。
我们鼓励软件开发人员访问 https://darknetcv.ai/ 以获取有关 Darknet/YOLO 对象检测框架内部的信息。
谷歌合作实验室
Google Colab 指令与 Linux 指令相同。有多个 Jupyter 笔记本可以展示如何执行某些任务,例如训练新网络。
请参阅 colab 子目录中的笔记本,和/或按照下面的 Linux 说明进行操作。
Linux CMake方法
Linux 暗网构建教程
可选:如果您有现代 NVIDIA GPU,则此时可以安装 CUDA 或 CUDA+cuDNN。如果安装,Darknet 将使用您的 GPU 来加速图像(和视频)处理。
您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新查找所有必需的文件。
记得重建暗网。
Darknet 可以在没有它的情况下运行,但如果您想训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview 下载并安装 cuDNN。
安装 CUDA 后,请确保可以运行 nvcc 和 nvidia-smi。您可能必须修改 PATH 变量。
如果您稍后安装 CUDA 或 CUDA+cuDNN,或者升级到较新版本的 NVIDIA 软件:
这些说明假设(但不要求!)系统运行 Ubuntu 22.04。如果您使用不同的发行版,请根据需要进行调整。
sudo apt-get install build-essential git libopencv-dev cmake mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 package sudo dpkg -i darknet-VERSION.deb
如果您使用的是旧版本的 CMake,则需要先升级 CMake,然后才能运行上面的 cmake 命令。可以使用以下命令在 Ubuntu 上升级 CMake:
sudo apt-get purge cmake sudo snap install cmake --classic
如果使用 bash 作为命令 shell,此时您需要重新启动 shell。如果使用鱼,它应该立即选择新路径。
高级用户:
如果您想要构建 RPM 安装文件而不是 DEB 文件,请参阅 CM_package.cmake 中的相关行。在运行 make -j4 package 之前,您需要编辑以下两行:
设置(CPACKGENERATOR“DEB”)#设置(CPACKGENERATOR“RPM”)
对于 Centos 和 OpenSUSE 等发行版,您需要将 CM_package.cmake 中的这两行切换为:
设置(CPACKGENERATOR“DEB”)设置(CPACKGENERATOR“RPM”)
要在安装包完成构建后进行安装,请使用您的发行版常用的包管理器。例如,在基于 Debian 的系统(例如 Ubuntu)上:
sudo dpkg -i darknet-2.0.1-Linux.deb
安装 .deb 包将复制以下文件:
/usr/bin/darknet 是通常的 Darknet 可执行文件。从 CLI 运行 darknet 版本以确认其安装正确。
/usr/include/darknet.h 是面向 C、C++ 和 Python 开发人员的 Darknet API。
/usr/include/darknet_version.h 包含供开发人员使用的版本信息。
/usr/lib/libdarknet.so 是 C、C++ 和 Python 开发人员链接的库。
/opt/darknet/cfg/... 是存储所有 .cfg 模板的位置。
现在你已经完成了! Darknet 已构建并安装到 /usr/bin/ 中。运行此测试:暗网版本。
如果你没有 /usr/bin/darknet 那么这意味着你没有安装它,你只是构建了它!确保如上所述安装 .deb 或 .rpm 文件。
Windows CMake方法
这些说明假定全新安装 Windows 11 22H2。
打开普通的 cmd.exe 命令提示符窗口并运行以下命令:
winget安装Git.Git winget安装Kitware.CMake winget安装nsis.nsis winget安装Microsoft.VisualStudio.2022.Community
此时我们需要修改 Visual Studio 安装以包括对 C++ 应用程序的支持:
单击“Windows 开始”菜单并运行“Visual Studio Installer”
点击修改
选择使用 C++ 进行桌面开发
单击右下角的修改,然后单击是下载并安装所有内容后,再次单击“Windows 开始”菜单并选择 VS 2022 的开发人员命令提示符。这些步骤不要使用 PowerShell,您将运行陷入问题!
高级用户:
您可以使用普通命令提示符或 ssh 进入设备并手动运行“Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat”,而不是运行开发人员命令提示符。
一旦您按照上述方式运行开发人员命令提示符(不是 PowerShell!),请运行以下命令来安装 Microsoft VCPKG,然后它将用于构建 OpenCV:
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe 集成安装 .vcpkg.exe 集成 powershell.vcpkg.exe 安装 opencv[contrib, dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
最后一步请耐心等待,因为它可能需要很长时间才能运行。它需要下载和构建很多东西。
高级用户:
请注意,在构建 OpenCV 时您可能需要添加许多其他可选模块。运行 .vcpkg.exe 搜索 opencv 以查看完整列表。
可选:如果您有现代 NVIDIA GPU,则此时可以安装 CUDA 或 CUDA+cuDNN。如果安装,Darknet 将使用您的 GPU 来加速图像(和视频)处理。
您必须从 Darknet 构建目录中删除 CMakeCache.txt 文件,以强制 CMake 重新查找所有必需的文件。
记得重建暗网。
Darknet 可以在没有它的情况下运行,但如果您想训练自定义网络,则需要 CUDA 或 CUDA+cuDNN。
访问 https://developer.nvidia.com/cuda-downloads 下载并安装 CUDA。
访问 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows 下载并安装 cuDNN。
安装 CUDA 后,请确保可以运行 nvcc.exe 和 nvidia-smi.exe。您可能必须修改 PATH 变量。
下载 cuDNN 后,解压并将 bin、include 和 lib 目录复制到 C:/Program Files/NVIDIA GPU Compute Toolkit/CUDA/[version]/ 中。您可能需要覆盖一些文件。
如果您稍后安装 CUDA 或 CUDA+cuDNN,或者升级到较新版本的 NVIDIA 软件:
CUDA 必须在 Visual Studio 之后安装。如果升级 Visual Studio,请记住重新安装 CUDA。
成功完成前面的所有步骤后,您需要克隆 Darknet 并构建它。在此步骤中,我们还需要告诉 CMake vcpkg 所在位置,以便它可以找到 OpenCV 和其他依赖项:
cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake .. msbuild。 exe /property:Platform=x64;Configuration=Release /target:Build -maxCpuCount -verbosity:normal -detailedSummary darknet.sln msbuild.exe /property:Platform=x64;Configuration=Release PACKAGE.vcxproj
如果出现有关缺少某些 CUDA 或 cuDNN DLL(例如 cublas64_12.dll)的错误,请手动将 CUDA .dll 文件复制到与 Darknet.exe 相同的输出目录中。例如:
复制“C:Program FilesNVIDIA GPU计算工具包CUDAv12.2bin * .dll”src-cliRelease
(这是一个示例!检查以确保您正在运行什么版本,然后运行适合您已安装的版本的命令。)
复制文件后,重新运行最后的 msbuild.exe 命令以生成 NSIS 安装包:
msbuild.exe /property:平台=x64;配置=发布 PACKAGE.vcxproj
高级用户:
请注意,cmake 命令的输出是普通的 Visual Studio 解决方案文件 Darknet.sln。如果您是经常使用 Visual Studio GUI 而不是 msbuild.exe 来构建项目的软件开发人员,则可以忽略命令行并在 Visual Studio 中加载 Darknet 项目。
您现在应该拥有可以运行的文件:C:srcDarknetbuildsrc-cliReleasedarknet.exe。运行此命令来测试:C:srcDarknetbuildsrc-cliReleasedarknet.exe 版本。
要正确安装 Darknet、库、包含文件和必要的 DLL,请运行上一步中构建的 NSIS 安装向导。请参阅构建目录中的文件 darknet-VERSION.exe。例如:
darknet-2.0.31-win64.exe
安装 NSIS 安装包将:
创建一个名为 Darknet 的目录,例如 C:Program FilesDarknet。
安装 CLI 应用程序、darknet.exe 和其他示例应用程序。
安装所需的第 3 方 .dll 文件,例如来自 OpenCV 的文件。
安装必要的 Darknet .dll、.lib 和 .h 文件以使用其他应用程序中的 darknet.dll。
安装模板 .cfg 文件。
现在你已经完成了!安装向导完成后,Darknet 将被安装到 C:Program FilesDarknet 中。运行此命令来测试:C:Program FilesDarknetbindarknet.exe 版本。
如果您没有 C:/Program Files/darknet/bin/darknet.exe 那么这意味着您没有安装它,您只是构建了它!确保您在上一步中完成了 NSIS 安装向导的每个面板。
使用暗网
命令行界面
以下不是 Darknet 支持的所有命令的完整列表。
除了 Darknet CLI 之外,还请注意 DarkHelp 项目 CLI,它提供了 Darknet/YOLO 的替代 CLI。 DarkHelp CLI 还具有一些在 Darknet 中无法直接使用的高级功能。您可以同时使用 Darknet CLI 和 DarkHelp CLI,它们并不相互排斥。
对于下面显示的大多数命令,您需要 .weights 文件以及相应的 .names 和 .cfg 文件。您可以训练自己的网络(强烈推荐!),也可以下载某人已经训练过并在互联网上免费提供的神经网络。预训练数据集的示例包括:
LEGO Gears(在图像中查找对象)
Rolodex(在图像中查找文本)
MSCOCO(标准80级物体检测)
要运行的命令包括:
列出一些可能运行的命令和选项:
暗网帮助
检查版本:
暗网版本
使用图像进行预测:
V2:暗网探测器测试 cars.data cars.cfg cars_best.weights image1.jpg
V3:darknet02displayannotatedimages cars.cfg image1.jpg
DarkHelp:DarkHelp cars.cfg cars.cfg cars_best.weights image1.jpg
输出坐标:
V2:暗网探测器测试animals.dataanimals.cfganimalsbest.weights-extoutputdog.jpg
V3:darknet01inference_images 动物 狗.jpg
DarkHelp:DarkHelp --json Animals.cfg Animals.names Animals_best.weights Dog.jpg
处理视频:
V2:暗网探测器演示 Animals.data Animals.cfg Animalbest.weights -extoutput test.mp4
V3:darknet03display_videos Animals.cfg test.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
从网络摄像头读取:
V2:暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -c 0
V3:darknet08display_网络摄像头动物
将结果保存到视频:
V2:暗网探测器演示animals.data Animals.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3:darknet05processvideos多线程animals.cfganimals.namesanimals_best.weightstest.mp4
DarkHelp:DarkHelp Animals.cfg Animals.names Animals_best.weights test.mp4
JSON:
V2:暗网探测器演示animals.data Animals.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3:darknet06imagestojson 动物 image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animals_best.weights image1.jpg
在特定 GPU 上运行:
V2:暗网探测器演示 Animals.data Animals.cfg Animals_best.weights -i 1 test.mp4
检查神经网络的准确性:
暗网检测器地图 Driving.data Driving.cfg Driving_best.weights ... Id 名称 AvgPrecision TP FN FP TN 准确度 错误率 精确度 召回率 特异性 FalsePosRate -- ---- ------------ ---- -- ------ ------ ------ -------- --------- --------- ---- -- ---------- ------------ 0 辆汽车 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821 1 辆摩托车 80.4499 2936 513 569 5393 0.8850 0. 1150 0.8377 0.8513 0.9046 0.0954 2 自行车 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285 3 人 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855 4 多辆车 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610 5 绿灯 86.8118 1969 239 5 10 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102 6 黄光 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236 7 红光 94.1033 3449 2 17 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
检查精度 mAP@IoU=75:
暗网探测器地图animals.dataanimals.cfganimalsbest.weights-iothresh 0.75
重新计算锚点最好在 DarkMark 中完成,因为它将连续运行 100 次并从所有计算的锚点中选择最佳锚点。但如果你想在 Darknet 中运行旧版本:
暗网探测器 calcanchors Animals.data -numof_clusters 6 -宽度 320 -高度 256
训练一个新网络:
darknet detector -map -dont_show train Animals.data Animals.cfg(另请参阅下面的训练部分)
训练
暗网/YOLO 常见问题解答相关部分的快速链接:
我应该如何设置我的文件和目录?
我应该使用哪个配置文件?
训练自己的网络时应该使用什么命令?
最简单的注释和训练方法是使用 DarkMark 创建所有必要的 Darknet 文件。这绝对是训练新神经网络的推荐方法。
如果您想手动设置各种文件来训练自定义网络:
创建一个用于存储文件的新文件夹。对于本例,将创建一个神经网络来检测动物,因此创建以下目录:~/nn/animals/。
复制您想要用作模板的暗网配置文件之一。例如,请参见 cfg/yolov4-tiny.cfg。将其放入您创建的文件夹中。对于此示例,我们现在有 ~/nn/animals/animals.cfg。
在放置配置文件的同一文件夹中创建animals.names 文本文件。对于此示例,我们现在有 ~/nn/animals/animals.names。
使用文本编辑器编辑animals.names 文件。列出您要使用的类。每行必须有 1 个条目,没有空行,也没有注释。对于此示例,.names 文件将包含 4 行:
狗 猫 鸟 马
在同一文件夹中创建animals.data 文本文件。对于此示例,.data 文件将包含:
类= 4 火车= /home/用户名/nn/animals/animalstrain.txt 有效= /home/用户名/nn/animals/animalsvalid.txt 名称= /home/用户名/nn/animals/animals.names 备份= /home/用户名/nn/动物
创建一个文件夹,用于存储图像和注释。例如,这可能是 ~/nn/animals/dataset。每个图像都需要一个相应的 .txt 文件来描述该图像的注释。 .txt 注释文件的格式非常具体。您无法手动创建这些文件,因为每个注释都需要包含注释的精确坐标。请参阅 DarkMark 或其他类似软件来注释您的图像。 YOLO 注释格式在 Darknet/YOLO FAQ 中有描述。
创建在 .data 文件中命名的“train”和“valid”文本文件。这两个文本文件需要单独列出 Darknet 在计算 mAP% 时必须用于训练和验证的所有图像。每行只有一张图像。路径和文件名可以是相对的或绝对的。
使用文本编辑器修改 .cfg 文件。
确保批次=64。
注意细分。根据网络尺寸和 GPU 上可用的内存量,您可能需要增加细分。最好使用的值是 1,因此从该值开始。如果 1 不适合您,请参阅 Darknet/YOLO 常见问题解答。
注意 maxbatches=...。开始时使用的一个很好的值是 2000 x 类数。对于此示例,我们有 4 只动物,因此 4 * 2000 = 8000。这意味着我们将使用 maxbatches=8000。
注意steps=...。这应该设置为maxbatch的80%和90%。对于此示例,我们将使用steps=6400,7200,因为 maxbatches 设置为 8000。
注意 width=... 和 height=.... 这些是网络尺寸。 Darknet/YOLO 常见问题解答解释了如何计算最佳使用大小。
搜索 class=... 行的所有实例,并使用 .names 文件中的类数对其进行修改。对于本例,我们将使用classes=4。
在每个 [yolo] 部分之前的 [卷积] 部分中搜索 linefilters=... 的所有实例。使用的值是 (numberofclasses + 5) 3。本例的含义是 (4 + 5) 3 = 27。因此我们在适当的行上使用filters=27。
开始训练!运行以下命令:
cd ~/nn/animals/ 暗网探测器 -map -dont_show train Animals.data Animals.cfg
要有耐心。最佳权重将保存为animals_best.weights。并且可以通过查看训练进度来观察