Detox: モバイル アプリ向けのグレー ボックス エンドツーエンド テスト フレームワーク
Detox は、React Native アプリケーション向けに特別に設計されたオープンソースのエンドツーエンドのテスト フレームワークです。モバイル アプリのテストを自動化するための堅牢で信頼性の高いソリューションを提供し、高品質のユーザー エクスペリエンスを保証します。
デトックステストはどのようなものですか?
`JavaScript
description('ログインフロー', () => {
beforeEach(async () => {
device.reloadReactNative(); を待ちます。
});
it('ログインに成功するはずです', async () => {
await element(by.id('email')).typeText('[email protected]');
await element(by.id('password')).typeText('123456');
const loginButton = element(by.text('ログイン'));
ログインボタン.タップ()を待ちます;
await Expect(loginButton).not.toExist();
await Expect(element(by.label('Welcome'))).toBeVisible();
});
});
`
このコード スニペットは、ログイン画面の簡単な Detox テストを示しています。テストは実際のデバイスまたはシミュレーター上のアプリと対話し、実際のユーザーのアクションを模倣します。
今すぐデトックスを始めましょう!
デトックスについて
Detox は、継続的統合ワークフローを採用することで、モバイル開発チームが高速性を達成できるようにします。エンドツーエンドのテストを自動化するための強力なソリューションを提供することで、広範な手動 QA テストの必要性がなくなります。
主な特徴:
1. 実デバイス/シミュレーターのインタラクション: Detox は、実デバイスまたはシミュレーター上で実行されるモバイル アプリをテストし、実際のユーザーと同じように操作します。
2. グレー ボックス テスト: Detox はグレー ボックス テストのアプローチを採用し、従来のブラック ボックス テストよりも堅牢で信頼性の高いテスト環境を提供します。
3. 不安定性の軽減: グレー ボックス テストに移行することで、Detox はエンドツーエンド テストによく伴う固有の不安定性に直接対処します。
サポートされている React Native バージョン
Detox は、React Native の「新しいアーキテクチャ」を含まない React Native バージョン 0.71.x、0.72.x、および 0.73.x の公式サポートを提供します。新しいバージョンと「新しいアーキテクチャ」は Detox で動作する可能性がありますが、Detox チームによってまだ完全にテストされていません。
Detox は古い React Native バージョンを公式にはサポートしていませんが、チームは互換性を維持するよう努めています。サポートされていないバージョンで問題が発生した場合は、問題を報告するか、Detox Discord サーバーに連絡して支援を求めてください。
React Native の既知の問題
Detox は継続的に監視し、React Native で発生する可能性のある既知の問題に対処します。これらの問題とその回避策に関する詳細情報は、Detox の公式ドキュメントで見つけることができます。
デトックスを始めましょう
React Native アプリで Detox の使用を開始するには、Detox Web サイトの包括的なスタート ガイドに従ってください。このガイドでは、セットアップ プロセスを順を追って説明し、数分以内に Detox を確実に実行できるようにします。
ドキュメントサイト
Detox の公式 Web サイトで、詳細なガイド、API リファレンス、トラブルシューティングのヒントを含む完全な Detox ドキュメントを参照してください。
デトックスの中核原則
Detox は、従来のエンドツーエンドのテスト原則に挑戦し、モバイル テスト固有の困難に対処するための新しい視点を採用しています。これらのユニークな原則については、Detox Web サイトでご覧ください。
デトックスに貢献
Detox はオープンソース プロジェクトであり、あなたの貢献は高く評価されています。 Detox リポジトリで「助けを求めています」ラベルが付いている問題を調べて、あなたのスキルが違いを生むことができる分野を見つけてください。
バグが発生した場合、または新機能の提案がある場合は、Detox リポジトリで問題をオープンしてください。 Detox の核心を掘り下げ、その開発に貢献するには、Detox Contribution Guide を参照してください。
ライセンス
Detox は、Apache-2.0 ライセンスに基づいてリリースされています。
ダークネットオブジェクト検出フレームワークとYOLO
Downcodes小编は、強力なダークネットオブジェクト検出フレームワークとその評価の高いYOLO(You Only Look Once)アルゴリズムの洞察力に富んだ探索を提供します。この包括的なガイドでは、この広く採用されているシステムの重要な側面を詳しく掘り下げ、その機能をさまざまな物体検出タスクに活用できるようにします。
始めましょう!
ダークネット: フレームワーク
Darknet は、C、C++、CUDA で書かれたオープンソースのニューラル ネットワーク フレームワークです。高いパフォーマンスと柔軟性を提供するため、物体検出やその他のコンピューター ビジョン タスクを扱う研究者や開発者にとって人気の選択肢となっています。
YOLO: アルゴリズム
YOLO (You Only Look Once) は、ダークネット フレームワーク内で動作するリアルタイムのオブジェクト検出アルゴリズムです。その革新的なアプローチにより、シングルパスで画像を処理できるため、高速かつ正確な物体検出が可能になります。
Hank.ai のダークネット/YOLO のサポート
AI の大手企業である Hank.ai は、ダークネット/YOLO コミュニティのサポートにおいて重要な役割を果たし、その継続的な開発とアクセシビリティを確保しています。
ダークネット V3「ジャズ」を発表
Darknet の最新リリース、バージョン 3.x は、「Jazz」という適切な名前が付けられており、次のようなさまざまな機能強化と改善が導入されています。
パフォーマンスの向上: Darknet V3 はパフォーマンスが大幅に向上し、画像やビデオをさらに高速に処理できるようになります。
新しい API: 新しい C および C++ API の導入により、アプリケーションへの Darknet の統合がさらに簡素化されます。
拡張された例: src-examples ディレクトリ内に新しいサンプル コードとアプリケーションが含まれることで、より実践的な学習の機会が提供されます。
ダークネット/YOLO リソース
公式サイト:https://darknetcv.ai
FAQ: よくある質問への回答を見つけて、Darknet/YOLO について詳しく学びましょう。
Discord サーバー: Discord のアクティブな Darknet/YOLO コミュニティに参加して、ディスカッション、サポート、コラボレーションを行ってください。
論文
YOLOv7: https://arxiv.org/abs/2207.02662
Scaled-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 などのさまざまなプラットフォームでシームレスに実行されます。
ダークネットバージョン
Darknet プロジェクトは複数回の反復を経て、各バージョンで新しい機能と改良が導入されました。
バージョン 0.x: Joseph Redmon によって開発されたオリジナルのダークネット ツール。
バージョン 1.x: Alexey Bochkovskiy によって保守されています。
バージョン 2.x "OAK": Hank.ai がスポンサーとなり、Stéphane Charette が保守します。
バージョン 3.x "JAZZ": 包括的な API とパフォーマンスの向上を導入した最新バージョン。
MSCOCO 事前トレーニング済み重み
すぐに開始できるように、Darknet/YOLO は、80 の一般的なオブジェクト クラスを含む、人気のある MSCOCO データセットでトレーニングされたさまざまな YOLO バージョンの事前トレーニングされた重みを提供します。
事前にトレーニングされた重み:
1.YOLOv2
2.YOLOv3
3.YOLOv4
4.YOLOv7
これらの事前トレーニングされた重みは、Darknet リポジトリからダウンロードできます。
使用例:
「バッシュ」
事前トレーニングされた重みのダウンロード (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- からダウンロードしてインストールします。パッケージマネージャーのインストールの概要。
* ビルド手順:
「バッシュ」
mkdir ~/srccd ~/src
git clone https://github.com/hank-ai/darknet
CD ダークネット
mkdir ビルド
CD ビルド
cmake -DCMAKEBUILDTYPE=リリース ..
-j4 パッケージを作成する
sudo dpkg -i darknet-VERSION.deb
`
3. Windows CMake メソッド:
* 前提条件:
* Git、CMake、NSIS、Visual Studio 2022 コミュニティ: winget を使用してインストールします。
* Microsoft VCPKG: OpenCV をビルドするためにインストールします。
* ビルド手順:
「バッシュ」
CDC:
mkdir c:src
cd c:src
git clone https://github.com/microsoft/vcpkg
cd vcpkg
ブートストラップ-vcpkg.bat
.vcpkg.exe 統合インストール
.vcpkg.exe は PowerShell を統合します
.vcpkg.exe インストール opencv[contrib,dnn,freetype,jpeg,openmp,png,webp,world]:x64-windows
CD ..
git clone https://github.com/hank-ai/darknet.git
CDダークネット
mkdir ビルド
CD ビルド
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:Platform=x64;Configuration=Release PACKAGE.vcxproj
`
ダークネットの使用
CLI: Darknet は、次のようなさまざまなタスクのためのコマンドライン インターフェイスを提供します。
* オブジェクト検出: 画像やビデオ内のオブジェクトを検出します。
* トレーニング: カスタムの物体検出モデルをトレーニングします。
* パフォーマンス評価: モデルの精度を測定します。
DarkHelp: DarkHelp は、オブジェクト追跡やタイリングなどの追加機能を備えた代替の堅牢な CLI です。
CLI コマンドの例:
「バッシュ」
ダークネットのバージョンを確認する
ダークネットバージョン
画像上でオブジェクト検出を実行する
ダークネット ディテクタ テストcars.datacars.cfgcars_best.weights image1.jpg
新しいネットワークをトレーニングする
ダークネット ディテクタ -map -dont_show train Animals.data Animals.cfg
`
トレーニング
DarkMark: 画像に注釈を付け、トレーニング データを生成し、Darknet/YOLO プロジェクトを管理するためのツール。
手動セットアップ: より詳細に制御するには、次のようなトレーニングに必要なファイルを手動で作成できます。
* 構成ファイル (.cfg): ネットワーク アーキテクチャとハイパーパラメータを定義します。
* 名前ファイル (.names): 検出するオブジェクト クラスをリストします。
* データ ファイル (.data): トレーニング データセットと検証データセットを指定します。
* 注釈ファイル (.txt): トレーニング画像の境界ボックス座標が含まれています。
手動トレーニングの手順:
1. トレーニング データの準備: DarkMark または別の注釈ツールを使用して画像に注釈を付けます。
2. 構成ファイルの作成: 既存の構成ファイル (yolov4-tiny.cfg など) をコピーし、特定のデータセットに合わせて変更します。
3. 名前ファイルの作成: オブジェクト クラスをテキスト ファイルにリストします。
4. データ ファイルの作成: トレーニング データセットと検証データセットへのパスを指定します。
5. モデルをトレーニングします。
「バッシュ」
ダークネット ディテクタ -map -dont_show train Animals.data Animals.cfg
`
Other Tools and Links
ダークヘルプ: https://github.com/hank-ai/darkhelp
ダークネット/YOLO FAQ: https://darknetcv.ai/faq
ステファンの YouTube チャンネル: https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
ダークネット/YOLO Discordサーバー: https://discord.gg/zSq8rtW
ロードマップ
短期的な目標:
ユーザーエクスペリエンスを向上させるためにコマンドライン解析を改善します。
パフォーマンスを向上させるためにコードを最適化します。
コードの一貫性と可読性を強化します。
Mid-term goals:
コードの安全性を高めるために、char を std::string に置き換えます。
効率的な画像処理のために cv::Mat の使用を最適化します。
画像形式とチャンネルのサポートを拡張します。
Long-term goals:
非 NVIDIA GPU のサポートを追加します。
回転されたバウンディング ボックスと角度のサポートを導入します。
より複雑なオブジェクト検出のためにキーポイント/スケルトンとヒートマップを実装します。
セグメンテーション機能を調べてください。
結論
Darknet と YOLO は物体検出の分野に革命をもたらし、研究者、開発者、愛好家などに強力で柔軟なフレームワークを提供します。オープンソースの性質を受け入れ、利用可能なリソースを探索し、アクティブなコミュニティに参加することで、Darknet/YOLO を幅広い革新的なアプリケーションに活用できます。
Downcodes小编は、この包括的なガイドでダークネットとYOLOをしっかりと理解し、自信を持って物体検出の旅に乗り出せることを願っています。