Detox:移动应用的灰盒端到端测试框架
Detox 是一个开源的端到端测试框架,专为 React Native 应用程序设计。它提供了一个强大而可靠的解决方案,用于自动化移动应用程序测试,确保高质量的用户体验。
排毒测试是什么样的?
`javascript
描述('登录流程', () => {
beforeEach(异步() => {
等待 device.reloadReactNative();
});
it('应该登录成功', async () => {
等待元素(by.id('email')).typeText('[email protected]');
等待元素(by.id('密码')).typeText('123456');
const loginButton = element(by.text('登录'));
等待登录按钮.tap();
等待期望(loginButton).not.toExist();
等待期望(元素(by.label('欢迎'))).toBeVisible();
});
});
`
此代码片段演示了登录屏幕的简单 Detox 测试。该测试与真实设备或模拟器上的应用程序进行交互,模仿真实用户的操作。
现在就开始排毒吧!
关于排毒
Detox 使移动开发团队能够通过采用持续集成工作流程来实现高速度。它通过提供强大的自动化端到端测试解决方案,消除了大量手动 QA 测试的需要。
主要特点:
1. 真实设备/模拟器交互:Detox 测试您的移动应用程序,因为它在真实设备或模拟器上运行,就像真实用户一样与之交互。
2. 灰盒测试:Detox 采用灰盒测试方法,提供比传统黑盒测试更强大、更可靠的测试环境。
3. 缓解不稳定现象:通过转向灰盒测试,Detox 直接解决了通常与端到端测试相关的固有不稳定现象。
支持的 React Native 版本
Detox 为 React Native 版本 0.71.x、0.72.x 和 0.73.x 提供官方支持,没有 React Native 的“新架构”。虽然较新的版本和“新架构”可能与 Detox 兼容,但它们尚未经过 Detox 团队的全面测试。
尽管 Detox 并不正式支持较旧的 React Native 版本,但团队努力保持兼容性。如果您遇到不受支持的版本的任何问题,请提出问题或联系 Detox Discord 服务器寻求帮助。
React Native 的已知问题
Detox 持续监控并解决 React Native 可能出现的任何已知问题。您可以在官方 Detox 文档中找到有关这些问题及其解决方法的详细信息。
开始排毒
要开始在 React Native 应用程序中使用 Detox,请遵循 Detox 网站上的综合入门指南。本指南将引导您完成设置过程,确保您在几分钟内即可运行 Detox。
文件站点
在 Detox 官方网站上探索完整的 Detox 文档,包括深入指南、API 参考和故障排除提示。
排毒的核心原则
Detox 挑战传统的端到端测试原则,采用全新的视角来解决移动测试固有的困难。在 Detox 网站上了解这些独特的原则。
有助于排毒
Detox 是一个开源项目,您的贡献受到高度重视。探索 Detox 存储库中标有“需要帮助”标签的问题,以找到您的技能可以发挥作用的领域。
如果您遇到错误或有新功能建议,请在 Detox 存储库上提出问题。要深入了解 Detox 的核心并为其发展做出贡献,请参阅 Detox 贡献指南。
执照
Detox 是在 Apache-2.0 许可证下发布的。
暗网目标检测框架和 YOLO
Downcodes小编带您深入探索强大的Darknet物体检测框架及其广受好评的YOLO(You Only Look Once)算法。本综合指南深入探讨了这一广泛采用的系统的关键方面,使您能够利用其功能来执行各种对象检测任务。
让我们开始吧!
暗网:框架
Darknet 是一个用 C、C++ 和 CUDA 编写的开源神经网络框架。它提供高性能和灵活性,使其成为从事对象检测和其他计算机视觉任务的研究人员和开发人员的热门选择。
YOLO:算法
YOLO(You Only Look Once)是一种在 Darknet 框架内运行的实时目标检测算法。其创新方法使其能够一次性处理图像,从而实现快速、准确的物体检测。
Hank.ai 对 Darknet/YOLO 的支持
Hank.ai 是一家领先的人工智能公司,在支持 Darknet/YOLO 社区、确保其持续发展和可访问性方面发挥着重要作用。
宣布暗网 V3“爵士乐”
Darknet 的最新版本 3.x 被恰当地命名为“Jazz”,引入了一系列增强和改进,包括:
增强的性能:Darknet V3 拥有令人印象深刻的性能提升,使其能够以更快的速度处理图像和视频。
新 API:新 C 和 C++ API 的引入进一步简化了将 Darknet 集成到您的应用程序中的过程。
扩展示例:src-examples 目录中包含新的示例代码和应用程序,提供了更多实践学习机会。
暗网/YOLO 资源
官方网站:https://darknetcv.ai
常见问题解答:查找常见问题的答案并了解有关 Darknet/YOLO 的更多信息。
Discord 服务器:加入 Discord 上活跃的 Darknet/YOLO 社区,进行讨论、支持和协作。
文件
YOLOv7:https://arxiv.org/abs/2207.02662
缩放-YOLOv4:https://arxiv.org/abs/2102.05909
YOLOv4:https://arxiv.org/abs/2004.10934
YOLOv3:https://pjreddie.com/media/files/papers/YOLOv3.pdf
一般信息
速度和准确性:Darknet/YOLO 在速度和准确性方面始终优于其他对象检测框架。
开源:框架及其相关算法完全开源,允许免费使用和定制。
跨平台支持:Darknet/YOLO 在各种平台上无缝运行,包括 Linux、Windows 和 macOS。
暗网版本
暗网项目经历了多次迭代,每个版本都引入了新功能和改进。
版本 0.x:由 Joseph Redmon 开发的原始暗网工具。
版本 1.x:由 Alexey Bochkovskiy 维护。
版本 2.x“OAK”:由 Hank.ai 赞助,由 Stéphane Charette 维护。
版本 3.x“JAZZ”:最新版本,引入了全面的 API 和性能改进。
MSCOCO 预训练权重
为了快速入门,Darknet/YOLO 为在流行的 MSCOCO 数据集上训练的各种 YOLO 版本提供了预训练权重,其中包括 80 个常见对象类。
预训练权重:
1.YOLOv2
2.YOLOv3
3.YOLOv4
4.YOLOv7
这些预先训练的权重可以在 Darknet 存储库上下载。
用法示例:
`bash
下载预训练权重 (YOLOv4-tiny)
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
`
构建暗网
Darknet 需要 C++17 或更高版本、OpenCV,并使用 CMake 进行构建。
建筑选项:
1. Google Colab:使用与 Linux 相同的指令。
2.Linux CMake方法:
* 先决条件:
* build-essential、git、libopencv-dev、cmake(使用发行版的包管理器安装)
* CUDA(可选):用于 GPU 加速。从 https://developer.nvidia.com/cuda-downloads 下载并安装。
* cuDNN(可选):从 https://developer.nvidia.com/rdp/cudnn-download 或 https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn- 下载并安装包管理器安装概述。
* 构建步骤:
`bash
mkdir ~/srccd ~/src
git 克隆 https://github.com/hank-ai/darknet
CD暗网
mkdir 构建
光盘构建
cmake -DCMAKEBUILDTYPE=发布 ..
制作-j4包
sudo dpkg -i darknet-VERSION.deb
`
3. Windows CMake方法:
* 先决条件:
* Git、CMake、NSIS、Visual Studio 2022 社区:使用 winget 安装。
* Microsoft VCPKG:安装以构建 OpenCV。
* 构建步骤:
`bash
CDC:
mkdir c:src
cd c:src
git 克隆 https://github.com/microsoft/vcpkg
cd vcpkg
bootstrap-vcpkg.bat
.vcpkg.exe集成安装
.vcpkg.exe 集成 powershell
.vcpkg.exe 安装 opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
光盘 ..
git 克隆 https://github.com/hank-ai/darknet.git
CD暗网
mkdir 构建
光盘构建
cmake -DCMAKEBUILDTYPE=发布-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:平台=x64;配置=发布 PACKAGE.vcxproj
`
使用暗网
CLI:Darknet 为各种任务提供命令行界面,包括:
* 物体检测:检测图像和视频中的物体。
* 训练:训练自定义对象检测模型。
* 性能评估:测量模型的准确性。
DarkHelp:DarkHelp 是一种替代的、强大的 CLI,具有对象跟踪和平铺等附加功能。
CLI 命令示例:
`bash
检查暗网版本
暗网版本
对图像运行对象检测
暗网探测器测试 cars.data cars.cfg cars_best.weights image1.jpg
训练新网络
暗网探测器-map-dont_show火车animals.dataanimals.cfg
`
训练
DarkMark:用于注释图像、生成训练数据和管理 Darknet/YOLO 项目的工具。
手动设置:为了获得更多控制,您可以手动创建培训所需的文件,包括:
* 配置文件(.cfg):定义网络架构和超参数。
* 名称文件 (.names):列出您要检测的对象类。
* 数据文件 (.data):指定训练和验证数据集。
* 注释文件 (.txt):包含训练图像的边界框坐标。
手动训练步骤:
1. 准备训练数据:使用 DarkMark 或其他注释工具对图像进行注释。
2. 创建配置文件:复制现有配置文件(例如yolov4-tiny.cfg)并针对您的特定数据集进行修改。
3. 创建名称文件:在文本文件中列出您的对象类。
4. 创建数据文件:指定训练和验证数据集的路径。
5. 训练模型:
`bash
暗网探测器-map-dont_show火车animals.dataanimals.cfg
`
其他工具和链接
黑暗帮助:https://github.com/hank-ai/darkhelp
Darknet/YOLO 常见问题解答:https://darknetcv.ai/faq
Stéphane 的 YouTube 频道:https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
Darknet/YOLO Discord 服务器:https://discord.gg/zSq8rtW
路线图
短期目标:
改进命令行解析以获得更好的用户体验。
优化代码以提高性能。
增强代码的一致性和可读性。
中期目标:
将 char 替换为 std::string 以增强代码安全性。
优化 cv::Mat 的使用以实现高效的图像处理。
扩展对图像格式和通道的支持。
长期目标:
添加对非 NVIDIA GPU 的支持。
引入旋转边界框和角度支持。
实现关键点/骨架和热图以进行更复杂的对象检测。
探索细分能力。
结论
Darknet 和 YOLO 彻底改变了对象检测领域,为研究人员、开发人员和爱好者提供了强大而灵活的框架。通过拥抱其开源特性、探索可用资源并参与活跃的社区,您可以利用 Darknet/YOLO 实现广泛的创新应用程序。
Downcodes小编希望这份全面的指南能让您对Darknet和YOLO有一个扎实的了解,让您充满信心地踏上物体检测之旅!