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
疾病管制署:
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有一個紮實的了解,讓您充滿信心地踏上物體偵測之旅!