분류 전체보기 69

산란계 달걀 tracking 코드 cpu로 실행방법

detect_track_trails.py 코드 동작환경 python: 3.7.13 torch: 1.8.1+cpu torchvision: 0.9.1+cpu 0. 가상환경 생성 conda create -n egg python=3.7.13 1. torch, torchvision 설치 # CPU only pip install torch==1.8.1+cpu torchvision==0.9.1+cpu torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html 2. detect_track_trails.py 코드 수정 - 149 line의 use_cuda=True 에서 False로 변경 - 159 line의 model = Darknet(cfg, img..

카테고리 없음 2022.09.22

[mmdetection] roi_head 변경방법

기존 mask rcnn model에서 pointRend model로 mask_head를 변경하려고 하였는데 다음과 같은 오류가 발생하였다. AssertionError: The `num_classes` (80) in MaskPointHead of MMDataParallel does not matches the length of `CLASSES` 1) in VOCDataset 해당 오류는 2가지의 이유로 발생할 수 있는데 먼저, 해결방법 1 mmdetection-master 디렉토리에는 python 파일이 일부만 존재하는데, 실제로 프로그램이 실행될 때 환경에서 소스 파일을 직접 수정하기 때문에 환경의 소스 파일은 계속 실행됩니다. 내 conda 환경의 이름이 conda_env_name이라고 가정하고 다음 ..

[ubuntu18.04] pyinstaller 사용법 및 문제해결

오늘은 pyinstaller를 사용해 여러개의 모듈이 묶인 python code를 deploy하는 방법을 정리하려 한다. 리눅스는 윈도우10과 달리 file_name.spec 라는 파일이 생성되지 않는다. 따라서 하나하나 라이브러리 경로를 입력해줄 필요가 없어서 윈도우에 비해 간편하다. 0. python code가 동작하는 가상환경 활성화 conda activate 가상환경이름 1. pyinstaller 설치 pip install pyinstaller 2. pyinstaller로 실행파일로 변환 pyinstaller --distpath /scratch/dohyeon main.py --distpath : 실행파일이 저장될 디렉토리 주소 3. 문제해결 에러 1 - Assertionerror: /scratch..

기본기/OS 2022.08.29

[Depth camera] - Stereolabs ZED2i(Neural Depth mode 세팅방법)

연구실에서 ZED camera로 neural depth mode setting을 하던 중 발생했던 에러를 정리하려한다. 진행방법은 다음과 같다. os: window10 gpu: RTX 2060 1. gpu dependency에 맞는 cuda version 설치 나의 경우 cuda 11.7을 설치하였다. 2. cuda version에 맞는 cudnn을 설치하고, 설치가 완료되면 cudnn-11.6-windows10-x64-v8.3.2.어쩌고.zip 이라는 파일이 다운로드 되고 압축을 풀면 bin, include, lib 라는 폴더가 있을 것 이다. 다음과 같이 종류별로 CUDA Toolkit 디렉토리에 복사한다. cuda\bin에 있는 *.dll 파일을 아래 경로로 복사 (버전은 알아서 맞게 고쳐써라 11..

[mmdetection] custom training 방법 (개선)

1. config file들 새로 만들기 config의 대분류는 datasets, model, scedule, runtime 이다. 이번에 만들 config file들도 이렇게 구성된다. 1-1 mmdetection/configs 폴더 안에 새로운 폴더 생성 ex) smartfarm 1-2 새로만든 폴더안에 dataset.py 생성 해당 파일은 config/_base_/coco_instance.py 를 복붙하고 주석처리한 부분만 수정한다. # dataset settings dataset_type = 'CocoDataset' data_root = '/scratch/dohyeon/mmdetection/coco_output/' #dataset이 저장된 root위치 classes = ('chicken') # _..

[mmdetection] custom dataset 학습방법

오늘은 custom dataset(육계 데이터셋)을 이용해 mmdetection model을 training하는 방법을 정리하고자 한다. 1. training.py file 생성 from mmdet.apis import init_detector, inference_detector import mmcv import torch import cv2 from mmdet.datasets.builder import DATASETS from mmdet.datasets.coco import CocoDataset from mmcv import Config print(f"Setup complete. Using torch {torch.__version__} ({torch.cuda.get_device_properties(0)..

[mmdetection] 탐지 개체수 설정방법

mmdetection에는 이미지 하나당 감지될 수 있는 개체수가 정해져있다. (default 100) 내가 다루는 데이터의 경우 하나의 이미지에 보통 2~300개의 instance가 존재하므로 위 설정을 바꿀 필요가 있었다. 변경방법은 다음과 같다. mmdetection/configs/_base_/models/mask_rcnn_r50_fpn.py 위 파일에서 맨 아래부분의 test_cfg 부분을 살펴보면 rcnn 내부에 max_per_img 이 변수가 하나의 이미지에서 탐지할 수 있는 최대 개체수 파라미터다. 해당 파라미터를 1000으로 변경하면 최대 1000개까지 instance를 탐지할 수 있다. test_cfg=dict( rpn=dict( nms_pre=1000, max_per_img=1000, n..

[mmdetection] bbox title 변경방법

오늘은 실험실에서 mmdetection 툴박스에서 제공하는 Mask R-CNN으로 추론하던 중 추론결과 표시되는 bbox title을 변경하는 task가 주어졌다. 위 문제를 해결하는 방법을 정리해보려 한다. 원본코드를 이용한 추론결과는 위와 같다. mmdetection Mask R-CNN코드는 다음 순서에 따라 동작한다. 1. config, checkpoint file을 불러오기 2. init_detector를 이용해 detector model 생성 3. 추론하고자 하는 image를 불러들여 inference_detector(model, image_name) 함수를 이용해 추론 4. show_result 함수를 이용해 추론된 결과를 원본 이미지 위에 그려주고 저장 # config 파일을 설정하고, ma..

[2022 매카톤] Video Abnormal Detection Tutorial

1. 데이터셋 수집(동영상 촬영) AI Hub의 이상행동 탐지 데이터셋 활용예정 https://aihub.or.kr/aidata/139 이상행동 CCTV 영상 12가지의 이상행동(폭행, 싸움, 절도, 기물파손, 실신, 배회, 침입, 투기, 강도, 데이트 폭력 및 추행, 납치, 주취행동), 총 700시간(8400컷) 비디오 데이터셋 촬영 및 구축한 영상 데이터 제공 aihub.or.kr 2. video file 프레임 분할 https://n2infotech.co.kr/193 위 블로그에 나와있는대로 VLC Media Player 프로그램을 이용하여 프레임을 분할한다. 3. 데이터 라벨링 https://github.com/tzutalin/labelImg GitHub - tzutalin/labelImg: 🖍️..

[2022 매카톤] Face Detection+Blur Tutorial

1. 데이터셋 수집(동영상 촬영) 인터넷에 공개된 오픈소스 데이터셋 대부분은 머리 전체를 face로 놓고 데이터셋을 구성하였기 때문에 우리의 목적과 다소 차이가 있다. 따라서 이번 매카톤 프로젝트에서는 한국인의 얼굴 데이터를 직접 동영상 촬영한 뒤 프레임 분할하여 face datset을 구성할 예정이다. 2. video file 프레임 분할 https://n2infotech.co.kr/193 위 블로그에 나와있는대로 VLC Media Player 프로그램을 이용하여 프레임을 분할한다. 3. 데이터 라벨링 https://github.com/tzutalin/labelImg GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool..