화인스텍 로고

지식정보

제품사용 매뉴얼

FLIR_Detection 환경 구성

2022-10-25

 

1.영상 취득

 

학습을 하고자 하는 대상체의 영상을 취득합니다.

확장자는 PNG, JPG로 이미지를 저장 합니다.

 

2. Data Annotation

Data Annotation은 Detection과 같은 지도 학습 전처리의 필수 단계입니다.

딥러닝 네트워크는 Annotation 설정이 되어 있는 데이터에서 반복되는 패턴을 인식하는 방법을 학습니다.

충분한 학습이 되어야 새 데이터가 제공될 때, 패턴을 인식하게 됩니다.

다운로드 링크 : https://tzutalin.github.io/labelImg/

Labelmg를 실행 합니다.

Open Dir를 클릭하여 이미지 경로를 Open 합니다.

Change Save Dir를 클릭합니다.

Data Annotation 결과 파일 (XML)이 저장될 경로를 설정 합니다.

※이미지 경로 하위경로로 만드는 걸 권장합니다.

키보드의 “W“ 버튼을 클릭 합니다.

Drag 기능을 이용하여 Object에 Bounding Box를 그립니다.

Label 명을 기입하고 OK 버튼을 클릭 합니다.

File 을 눌러 Save를 실행 합니다.

※View 목록에 “Auto Saving” 을 체크 할 경우, 자동 저장이 됩니다.

File List의 이미지를 선택해 가며 모든 이미지에 Annotation을 진행 합니다.

 

Save 경로에, XML 파일이 정상적으로 저장되어 있는지 확인 합니다.

3. Augmentation

 

Detection 학습을 위해 데이터 셋의 숫자를 증가 시키는 작업이 필요합니다.

(이미지 수가 충분한 경우, 해당 단계는 Skip하여도 됩니다.)

Augmentation은 취득된 이미지를 변형시켜 새로운 이미지를 생성 합니다.

Pip를 설치 합니다.

Sudo apt-get install python3-pip

다음 명령어를 실행 합니다.

sudo -H pip3 install --upgrade --ignore-installed pip setuptools

Imgaug를 설치 합니다.

pip3 install imgaug

하기 명령어를 실행 합니다

cd Desktop

git clone https://github.com/FLIR/IIS_Object_Detection.git

IIS_Object_Detection 폴더의 image_aug_w_bounding_boxes.py 를 실행합니다.

“RGB”를 “L”로 변경 합니다. (Mono 이미지 학습 시)

다른이름으로 저장을 진행 합니다.

ex ) image_aug_w_bounding_boxes_Mono.py

IIS_Object_Detection 폴더에 학습에 필요한 이미지를 옮깁니다.

수정된 py를 이미지 경로로 복사 합니다.

터미널을 실행 합니다.

하기 명령어를 실행 합니다.

python3 image_aug_w_bounding_boxes_Mono.py --input_image_dir='./image/’ --input_bbox_dir='./Annotate/'

정상적으로 동작이 완료 되었는지 확인 합니다.

4. Docker 실행 하기

 

하기 명령어를 실행 합니다.

docker run --gpus all --rm -it --name caffe-env-1 -e DISPLAY=${DISPLAY} --net=host --privileged --shm-size=2g --ulimit memlock=-1 --ulimit stack=67108864 -v /dev:/dev -v ~/Desktop:/home/dockerasigiuk/caffe-ssd_devel:latest

해당 terminal은 켜둔 상태로 유지 합니다.

5. Docker 학습 환경 구성하기

새로운 terminal을 실행합니다.

하기 명령어를 실행 합니다

cd Desktop/IIS_Object_Detection

nano project.config

DATA_DIR에 Augmentation 경로를 설정 합니다.

CLASSNUM은 학습하고자 하는 Detection Class 개수를 의미 합니다.

*항상 학습 개수 +1 로 설정해야 합니다. (BackGround)

CLASSES 는 학습하는 Detection Class의 이름을 지정 합니다.

다수인 경우 “camera,lens” 형태로 ‘,’로 구분합니다.

PROJECT_NAME은 출력물이 저장될 폴더명을 지정합니다. (학습 시 자동 생성 됩니다)

6. Project.config 수정 하기

 

하기 명령어를 실행 합니다.Nano project.config

수정할 부분을 수정한 뒤 CTRL + O , Enter, CTRL + X 를 진행 합니다.

7. 학습 하기

Docker가 실행중인 terminal에서 경로를 이동 합니다.

cd IIS_Object_Detection

학습 실행 명령을 실행 합니다.

./run.sh

8. Project.config 수정하기

 

Docker가 실행중인 Terminal에서 목록을 확인 합니다.ls

IIS_Object_Detection 폴더로 이동 합니다.

cd IIS_Object_Detection

학습을 시작 합니다.

./run.sh

첨부파일