Detox: 모바일 앱을 위한 그레이박스 엔드투엔드 테스트 프레임워크
Detox는 React Native 애플리케이션을 위해 특별히 설계된 오픈 소스 엔드 투 엔드 테스트 프레임워크입니다. 모바일 앱 테스트 자동화를 위한 강력하고 안정적인 솔루션을 제공하여 고품질 사용자 경험을 보장합니다.
디톡스 테스트는 어떤 모습인가요?
`자바스크립트
explain('로그인 흐름', () => {
beforeEach(비동기 () => {
device.reloadReactNative()를 기다립니다.
});
it('성공적으로 로그인해야 합니다.', async () => {
wait element(by.id('email')).typeText('[email protected]');
wait element(by.id('password')).typeText('123456');
const loginButton = element(by.text('Login'));
loginButton.tap()을 기다립니다.
기다리고 기대(loginButton).not.toExist();
wait 예상(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 웹 사이트의 포괄적인 시작 가이드를 따르세요. 이 가이드는 설정 과정을 안내하여 몇 분 안에 Detox가 실행되도록 합니다.
문서 사이트
Detox 공식 웹사이트에서 심층 가이드, API 참조, 문제 해결 팁을 포함한 전체 Detox 문서를 살펴보세요.
디톡스의 핵심 원리
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 지원
선도적인 AI 회사인 Hank.ai는 Darknet/YOLO 커뮤니티를 지원하여 지속적인 개발과 접근성을 보장하는 데 중요한 역할을 합니다.
Darknet V3 "Jazz" 발표
"Jazz"라는 적절한 이름의 Darknet 버전 3.x의 최신 릴리스에는 다음을 포함하여 다양한 개선 사항과 개선 사항이 도입되었습니다.
향상된 성능: 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이 개발한 원본 Darknet 도구입니다.
버전 1.x: Alexey Bochkovskiy가 관리합니다.
버전 2.x "OAK": Hank.ai가 후원하고 Stéphane Charette가 유지 관리합니다.
버전 3.x "JAZZ": 포괄적인 API와 성능 향상을 도입한 최신 버전입니다.
MSCOCO 사전 훈련된 가중치
빠르게 시작하기 위해 Darknet/YOLO는 80개의 공통 개체 클래스를 포함하는 인기 있는 MSCOCO 데이터 세트에서 훈련된 다양한 YOLO 버전에 대해 사전 훈련된 가중치를 제공합니다.
다음에 대한 사전 훈련된 가중치:
1. 욜로v2
2. 욜로v3
3. 욜로v4
4. 욜로v7
이러한 사전 훈련된 가중치는 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. 리눅스 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
자식 클론 https://github.com/hank-ai/darknet
CD 다크넷
mkdir 빌드
CD 빌드
cmake -DCMAKEBUILDTYPE=릴리스 ..
-j4 패키지 만들기
sudo dpkg -i darknet-VERSION.deb
`
3. 윈도우 CMake 방법:
* 전제조건:
* Git, CMake, NSIS, Visual Studio 2022 커뮤니티: Winget을 사용하여 설치합니다.
* Microsoft VCPKG: OpenCV를 빌드하기 위해 설치합니다.
* 빌드 단계:
`배쉬
질병통제예방센터:
mkdir c:src
CD C:src
자식 클론 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
CD ..
자식 클론 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;구성=PACKAGE.vcxproj 릴리스
`
다크넷 사용
CLI: Darknet은 다음을 포함한 다양한 작업을 위한 명령줄 인터페이스를 제공합니다.
* 객체 감지: 이미지 및 동영상에서 객체를 감지합니다.
* 훈련: 맞춤형 객체 감지 모델을 훈련합니다.
* 성능 평가: 모델의 정확성을 측정합니다.
DarkHelp: DarkHelp는 객체 추적 및 타일링과 같은 추가 기능을 갖춘 강력한 대체 CLI입니다.
CLI 명령 예:
`배쉬
다크넷 버전 확인
다크넷 버전
이미지에서 객체 감지 실행
다크넷 감지기 테스트 cars.data cars.cfg cars_best.weights image1.jpg
새 네트워크 훈련
다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
`
훈련
DarkMark: 이미지에 주석을 달고, 훈련 데이터를 생성하고, Darknet/YOLO 프로젝트를 관리하기 위한 도구입니다.
수동 설정: 더 많은 제어를 위해 다음을 포함하여 훈련에 필요한 파일을 수동으로 생성할 수 있습니다.
* 구성 파일(.cfg): 네트워크 아키텍처 및 하이퍼파라미터를 정의합니다.
* 이름 파일(.names): 탐지하려는 개체 클래스를 나열합니다.
* 데이터 파일(.data): 학습 및 검증 데이터세트를 지정합니다.
* 주석 파일(.txt): 훈련 이미지에 대한 경계 상자 좌표를 포함합니다.
수동 훈련 단계:
1. 훈련 데이터 준비: DarkMark 또는 다른 주석 도구를 사용하여 이미지에 주석을 답니다.
2. 구성 파일 생성: 기존 구성 파일(예: yolov4-tiny.cfg)을 복사하고 특정 데이터 세트에 맞게 수정합니다.
3. 이름 파일 만들기: 개체 클래스를 텍스트 파일에 나열합니다.
4. 데이터 파일 생성: 교육 및 검증 데이터 세트의 경로를 지정합니다.
5. 모델 훈련:
`배쉬
다크넷 탐지기 -map -dont_show 기차 동물.데이터 동물.cfg
`
기타 도구 및 링크
다크헬프: https://github.com/hank-ai/darkhelp
다크넷/YOLO FAQ: https://darknetcv.ai/faq
스테판의 YouTube 채널: https://www.youtube.com/channel/UC3c1x727824J8oV8YfH57A
다크넷/YOLO 디스코드 서버: https://discord.gg/zSq8rtW
로드맵
단기 목표:
더 나은 사용자 경험을 위해 명령줄 구문 분석을 개선합니다.
성능 향상을 위해 코드를 최적화합니다.
코드 일관성과 가독성을 향상시킵니다.
중기 목표:
코드 안전성을 강화하려면 char을 std::string으로 바꾸세요.
효율적인 이미지 처리를 위해 cv::Mat 사용을 최적화합니다.
이미지 형식 및 채널에 대한 지원을 확장합니다.
장기 목표:
NVIDIA 이외의 GPU에 대한 지원을 추가합니다.
회전된 경계 상자 및 각도 지원을 도입합니다.
보다 복잡한 객체 감지를 위해 키포인트/골격 및 히트맵을 구현합니다.
세분화 기능을 살펴보세요.
결론
Darknet과 YOLO는 연구자, 개발자, 매니아 모두에게 강력하고 유연한 프레임워크를 제공하여 객체 감지 분야에 혁명을 일으켰습니다. 오픈 소스 특성을 수용하고, 사용 가능한 리소스를 탐색하고, 활발한 커뮤니티에 참여함으로써 Darknet/YOLO를 다양하고 혁신적인 애플리케이션에 활용할 수 있습니다.
Downcodes小编는 이 포괄적인 가이드가 Darknet과 YOLO에 대한 확실한 이해를 제공하여 자신감을 갖고 개체 감지 여정을 시작할 수 있기를 바랍니다!