VIAME은 객체 감지, 객체 추적, 이미지/비디오 주석, 이미지/비디오 검색, 이미지 모자이크, 이미지 향상, 크기 측정, 다중 카메라 데이터 처리, 신속한 모델 생성을 포함한 DIY(Do-It-Yourself) 인공 지능을 위해 설계된 컴퓨터 비전 애플리케이션입니다. , 그리고 다양한 알고리즘을 평가하기 위한 도구입니다. 원래 해양 생물 분석을 목표로 삼았던 VIAME에는 이제 많은 공통 알고리즘과 라이브러리가 포함되어 있으며 일반 컴퓨터 비전 툴킷으로도 유용합니다. 여기에는 위의 작업을 수행하기 위한 다양한 독립 실행형 도구, C/C++, Python 및 MATLAB 노드를 다중 스레드 방식으로 함께 연결할 수 있는 파이프라인 프레임워크, 파이프라인 인프라 위에 있는 여러 알고리즘이 포함되어 있습니다. 마지막으로, 공개 주석 아카이브와 viame.kitware.com에서 사용할 수 있는 웹 플랫폼의 예를 통해 알고리즘의 일부가 다양한 유형의 환경에 배포할 수 있도록 데스크탑과 웹 사용자 인터페이스 모두에 통합되었습니다.
사용자의 빠른 시작 가이드, 튜토리얼 비디오 및 개발자 매뉴얼이 더 포괄적이지만 선택 항목도 아래에 개별 기능별로 분류되어 나열되어 있습니다.
문서 개요 <> 설치 <> 구축 <> 모든 예 <> DIVE 인터페이스 <> VIEW 인터페이스 <> 검색 및 신속한 모델 생성 <> 객체 탐지기 CLI <> 객체 추적기 CLI <> 탐지기 훈련 CLI <> 탐지기 평가 <> 탐지 파일 형식 <> 교정 및 이미지 향상 <> 등록 및 모자이크 <> 스테레오 측정 및 깊이 맵 <> 파이프라이닝 개요 <> 핵심 클래스 및 파이프라인 정보 <> 플러그인 통합 <> 예제 플러그인 템플릿 <> C++에 알고리즘 삽입
VIAME의 다양한 버전에 대한 전체 설치 가이드와 설명을 보려면 위의 빠른 시작 가이드를 참조하세요. 전체 데스크톱 버전은 .msi, .zip 또는 .tar 파일로 제공됩니다. 또는 소규모 설치 프로그램을 통해 독립형 주석자(처리 알고리즘 없음)를 사용할 수 있습니다(아래의 DIVE 독립형 참조). 마지막으로 docker 파일은 VIAME 데스크톱과 웹(아래) 모두에서 사용할 수 있습니다. 전체 데스크톱 설치의 경우 바이너리를 추출하여 원하는 디렉터리에 배치합니다(예: Linux의 경우 /opt/noaa/viame, Windows의 경우 C:Program FilesVIAME). GPU 지원으로 구축된 패키지를 사용하는 경우 충분한 비디오 드라이버 버전 465.19 이상이 설치되어 있는지 확인하십시오. 드라이버를 설치하는 가장 좋은 방법은 운영 체제에 따라 다릅니다. 수동 주석자(또는 프레임 분류자만)를 사용하는 경우에는 필요하지 않습니다. 바이너리는 여러 기본 모델 파일과 프로그램이 포함되어 있기 때문에 디스크 공간 측면에서 상당히 크지만, 소스에서 원하는 기능을 빌드하는 경우(예: 임베디드 앱의 경우) 훨씬 더 작습니다.
설치 요구 사항:
설치 권장사항:
Windows 전체 데스크톱 바이너리:
Linux 전체 데스크탑 바이너리:
웹 애플리케이션 :
추가 패키지:
Docker 이미지는 https://hub.docker.com에서 사용할 수 있습니다. 명령줄을 통해 실행할 수 있고 핵심 알고리즘만 있는 기본 컨테이너의 경우 다음을 참조하세요.
키트웨어/경로:gpu-algorithms-latest
이 이미지는 헤드가 없으며(즉, GUI가 없음) /opt/noaa/viame 폴더에 VIAME 데스크탑(웹 아님) 설치가 포함되어 있습니다. VIAME-Web 도커 컨테이너에 대한 링크는 설치 설명서의 위 섹션을 참조하세요. 대부분의 추가 기능 모델은 인스턴스에 포함되어 있지 않지만 bin 폴더에 있는 download_viame_addons.sh 스크립트를 실행하여 다운로드할 수 있습니다.
이 지침은 개발자나 최신 릴리스 브랜치 구축에 관심이 있는 사람들을 위한 것입니다. 소프트웨어를 수정하지 않고 있는 그대로 실행하는 데 관심이 있는 사람은 소프트웨어 빌드를 수행할 필요 없이 이전 섹션에 나열된 설치 프로그램을 사용해야 합니다. 더 자세한 빌드 지침은 여기에서 찾을 수 있지만 소프트웨어는 자체적으로 대부분의 종속성을 빌드하는 슈퍼 빌드로 빌드하거나 독립형으로 빌드할 수 있습니다. VIAME을 빌드하려면 최소한 Git, CMake 및 C++ 컴파일러가 필요합니다. Python 및 CUDA 설치도 권장됩니다. CUDA를 사용하는 경우 CUDNN 8과 함께 버전 11.7 또는 11.6이 선호됩니다. 다른 CUDA 또는 CUDNN 버전은 작동할 수도 있고 작동하지 않을 수도 있습니다. Python 배포판의 경우 pip 설치와 함께 최소 Python3.6 이상이 필요합니다.
Linux에서 명령줄에서 빌드하려면 다음 명령을 사용하고 [source-directory] 및 [build-directory]만 원하는 위치로 바꾸세요. 이러한 디렉터리는 동일할 수 있지만 'src' 체크아웃을 두고 그 옆에 별도의 'build' 디렉터리를 두는 것이 좋습니다.
git clone https://github.com/VIAME/VIAME.git [source-directory]
cd [source-directory] && git submodule update --init --recursive
그런 다음, 빌드 디렉터리를 만들고 다음 cmake
명령을 실행합니다(또는 명령줄 인터페이스를 사용하지 않는 경우 cmake GUI를 사용합니다).
mkdir [build-directory] && cd [build-directory]
cmake -DCMAKE_BUILD_TYPE:STRING=Release [source-directory]
cmake
명령이 완료되면 'ccmake' 또는 cmake GUI를 사용하여 원하는 빌드 플래그를 구성한 후 Linux에서 다음 명령을 사용하여 빌드할 수 있습니다.
make -j8
또는 Visual Studio나 Windows에서 선택한 컴파일러에서 빌드할 수도 있습니다. Linux에서 '-j8'은 8개의 스레드를 사용하여 멀티 스레드를 실행하도록 빌드에 지시합니다. 이는 더 빠른 빌드에 유용하지만 오류가 발생하면 확인하기 어려울 수 있습니다. 이 경우 'make'만 실행하는 것은 더 도움이 됩니다. Windows의 경우 현재 VS2019가 가장 많이 테스트된 컴파일러입니다.
아래 나열된 것과 같이 어떤 플러그인이 빌드되는지 제어하는 viame에 대한 몇 가지 선택적 인수가 있습니다. OpenCV와 같은 다른 종속성에 의존하는 플러그인이 활성화된 경우 종속성 플래그가 강제로 켜집니다. 무엇을 켜야 할지 확실하지 않은 경우 대부분의(전부는 아니지만) 기능을 구축하는 기본 활성화 및 비활성화 플래그를 그대로 두는 것이 가장 좋습니다. 다음은 켜두는 것이 권장되는 핵심 구성 요소입니다.
깃발 | 설명 |
---|---|
VIAME_ENABLE_OPENCV | OpenCV 및 기본 OpenCV 프로세스 구축(비디오 리더, 간단한 GUI) |
VIAME_ENABLE_VXL | VXL 및 기본 VXL 프로세스(비디오 리더, 이미지 필터) 구축 |
VIAME_ENABLE_PYTHON | Python 프로세스(다중 알고리즘) 사용에 대한 지원을 켭니다. |
VIAME_ENABLE_PYTORCH | 모든 pytorch 프로세스(검출기, 추적기, 분류기)를 설치합니다. |
그리고 어떤 시스템 유틸리티와 최적화가 구축되는지를 제어하는 여러 플래그가 있습니다. 예:
깃발 | 설명 |
---|---|
VIAME_ENABLE_CUDA | 모든 패키지에서 CUDA(GPU) 최적화를 활성화합니다. |
VIAME_ENABLE_CUDNN | 모든 프로세스에서 CUDNN(GPU) 최적화를 활성화합니다. |
VIAME_ENABLE_DIVE | DIVE GUI 활성화(여러 시퀀스에 대한 주석 및 교육) |
VIAME_ENABLE_VIVIA | VIVIA GUI 구축(주석 및 비디오 검색을 위한 보기 및 검색) |
VIAME_ENABLE_DOCS | Doxygen 클래스 수준 문서 작성(설치 트리에 넣음) |
VIAME_BUILD_DEPENDENCIES | VIAME를 슈퍼 빌드로 빌드하고 모든 종속성을 빌드합니다(기본값) |
VIAME_INSTALL_EXAMPLES | 위 모듈의 예제를 install/examples 트리에 설치합니다. |
VIAME_DOWNLOAD_MODELS | 예제 및 인터페이스와 함께 사용할 사전 훈련된 모델을 다운로드합니다. |
마지막으로, 보다 전문화된 기능을 갖춘 알고리즘이나 인터페이스를 구축하는 여러 플래그입니다.
깃발 | 설명 |
---|---|
VIAME_ENABLE_TENSORFLOW | TensorFlow 객체 감지기 플러그인 빌드 |
VIAME_ENABLE_DARKNET | Darknet(YOLO) 개체 탐지기 플러그인 구축 |
VIAME_ENABLE_TENSORRT | TensorRT 개체 감지기 플러그인 빌드 |
VIAME_ENABLE_BURNOUT | Burn-Out 기반 픽셀 분류기 플러그인 구축 |
VIAME_ENABLE_SMQTK | 이미지/비디오 인덱싱 및 검색을 지원하는 SMQTK 플러그인 구축 |
VIAME_ENABLE_KWANT | KWANT 감지 및 트랙 평가(점수) 도구 구축 |
VIAME_ENABLE_LEARN | 로우샷 학습을 위한 추가 방법 구축 |
VIAME_ENABLE_SCALLOP_TK | Scallop-TK 기반 개체 감지기 플러그인 구축 |
VIAME_ENABLE_SEAL | Seal 다중 양식 GUI 구축 |
VIAME_ENABLE_ITK | ITK 교차 양식 이미지 등록 구축 |
VIAME_ENABLE_UW_CLASSIFIER | UW 물고기 분류기 플러그인 구축 |
VIAME_ENABLE_MATLAB | 모든 MATLAB 프로세스에 대한 지원을 활성화하고 설치합니다. |
VIAME_ENABLE_LANL | 추가 (Matlab) 가리비 감지기를 구축합니다. |
비아메 ├── cmake # 서브패키지를 위한 CMake 구성 파일 ├── docs # 문서 파일 및 매뉴얼(사전 컴파일) ├── configs # 시스템에서 실행 가능한 모든 구성 파일 및 모델 │ ├── Pipelines # 모든 처리 파이프라인 구성 │ │ └── 모델 # 플래그를 기준으로만 다운로드되는 모든 모델 │ ├── prj-linux # 기본 Linux 프로젝트 파일 │ └── prj-windows # 기본 Windows 프로젝트 파일 ├── example # 실행 가능한 모든 예제와 예제 튜토리얼 ├── packages # 시스템에서 사용하는 외부 프로젝트 │ ├── kwiver # 백엔드 인프라 처리 │ ├── fletch # 자주 변경되지 않는 항목에 대한 종속성 빌더 │ ├── kwant # 점수 매기기 및 검출기 평가 도구 │ ├── vivia # 기본 데스크톱 GUI(v1.0) │ └── ... # 기타 패키지 모음 (일반적으로 알고리즘용) ├── 플러그인 # 외부 프로젝트에 대한 통합 알고리즘 또는 래퍼 │ └── ... # 다양한 플러그인(검출기, 깊이 맵, 필터 등) ├── tools # 독립형 도구 또는 스크립트, 종종 위 항목을 기반으로 구축 └── README.md # 지금 읽고 있는 프로젝트 소개 페이지 └── RELEASE_NOTES.md # 버전별 시스템의 최신 업데이트 목록
이미 VIAME를 결제했고 브랜치를 전환하거나 코드를 업데이트하려면 다음을 다시 실행하는 것이 중요합니다.
git submodule update --init --recursive
브랜치를 전환한 후 빌드 내 하위 패키지의 올바른 해시가 있는지 확인하세요. 아주 드물게 다음을 실행해야 할 수도 있습니다.
git submodule sync
서브모듈의 주소가 변경된 경우를 대비해. "cannot fetch hash #hashid" 오류가 발생한 경우에만 이 명령을 실행하면 됩니다.
VIAME는 BSD-3 라이센스에 따라 출시됩니다.
기여자와 함께 프로젝트 내에서 사용된 관련 논문의 전체 목록은 여기에서 찾을 수 있습니다.
VIAME는 여러 출처의 자금 지원을 받아 개발되었으며, 여기에 나열된 분들께 특별한 감사를 드립니다.