ONNX 및 YOLOv7 모델을 사용한 자동 주석(객체 감지)
그래서 ONNX 모드를 사용하여 데이터 세트에 자동 주석을 달 수 있는 Python 모듈을 만들었습니다.
YOLOv7 모델(.pb)을 사용하여 새로운 Auto-Annotator도 추가했습니다.
GitHub 리포지토리 링크:-
다른 유형의 모델 Tensorflow(.pb) 또는 PyTorch(.pth) 또는 기타 모델을 ONNX로 변환할 수 있습니다. 그래서 저는 Auto-Annotator 모듈을 구축하기 위해 ONNX 모델을 선택했습니다.
ONNX 모델로 변환
1. Tensorflow(.pb)에서
이를 위해 Object Detection API를 사용하고 있기를 바랍니다.
https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/index.html
수출할 때,
사용:-
--input_type image_tensor
아니다--input_type float_image_tensor
예시:-python .\exporter_main_v2.py --input_type image_tensor --pipeline_config_path .\models\my_ssd_resnet50_v1_fpn\pipeline.config --trained_checkpoint_dir .\models\my_ssd_resnet50_v1_fpn\ --output_directory .\exported-models\my_model
pb에서 ONNX로
tensorflow-onnx를 따르십시오:-
pip install -U tf2onnx
python -m tf2onnx.convert --saved-model tensorflow-model-path --opset 16 --output model.onnx
ONNX opset의 경우 기본값
13
입니다. 최신 opset이 필요하거나 이전 opset을 사용하도록 모델을 제한하려는 경우 명령에 --opset
인수를 제공할 수 있습니다. 사용할 opset이 확실하지 않은 경우 ONNX 연산자 설명서를 참조하세요.2. Pytorch(.pth)에서 [pth에서 ONNX로]
아래 체크아웃 링크:
https://github.com/danielgatis/rembg/issues/193
https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html
자동 주석 — ONNX 모델
복제 Git 리포지토리:-
git clone https://github.com/naseemap47/autoAnnoter
cd autoAnnoter
필수 라이브러리 설치:
pip3 install -r requirements.txt
변수:
-x
, --xml
XML 주석의 경우 _____-t
, --txt
_____ (.txt) 형식으로 주석 달기-i
, --dataset
_ 데이터 세트 경로-c
, --classes
_ classes.txt 파일 경로(객체 감지 클래스 이름)classes.txt의 예:
car
person
book
apple
mobile
bottle
....
-m
, --model
__ ONNX 모델 경로-s
, --size
__ 객체 감지 모델 학습에 사용되는 이미지 크기-conf
, --confidence
__ 모델 감지 신뢰도(0XML 주석의 경우:
python3 autoAnnot.py -x -i <PATH_TO_DATA> -c <PATH_TO_classes.txt> -m <ONNX_MODEL_PATH> -s <SIZE_OF_IMAGE_WHEN_TRAIN_YOUR_MODEL> -conf <MODEL_OBJCET_DETECTION_CONFIDENCE>
TXT 형식 주석의 경우:
python3 autoAnnot.py -t -i <PATH_TO_DATA> -c <PATH_TO_classes.txt> -m <ONNX_MODEL_PATH> -s <SIZE_OF_IMAGE_WHEN_TRAIN_YOUR_MODEL> -conf <MODEL_OBJCET_DETECTION_CONFIDENCE>
모든 작업을 수행하고 프로세스가 끝나면 데이터 내부에 자동 주석 데이터가 표시됩니다.
자동 주석 데이터는 해당 이미지 데이터와 함께 표시됩니다.
이렇게 하면 주석이 올바른지 아닌지 쉽게 확인할 수 있습니다.
자동 주석 YOLOv7 모델
복제 Git 리포지토리:-
git clone https://github.com/naseemap47/autoAnnoter
변수:
-i
, --dataset
____ 데이터 세트 경로-m
, --model
____ YOLOv7 모델(.pt)에 대한 경로-c
, --confidence
___ 모델 감지 신뢰도(0python3 autoAnotYolov7.py -i <PATH_TO_DATA> -m <YOLOv7_MODEL_PATH> -c <MODEL_OBJCET_DETECTION_CONFIDENCE>
모든 작업을 수행하고 프로세스가 끝나면 데이터 내부에 자동 주석 데이터가 표시됩니다.
자동 주석 데이터는 해당 이미지 데이터와 함께 표시됩니다.
이렇게 하면 주석이 올바른지 아닌지 쉽게 확인할 수 있습니다.
자동 주석 데이터 정확도는 사용자 지정 모델에 따라 완전히 달라집니다.
So, its better to check the Annotation is Correct or NOT.
Let me know your feedback about my Auto-Annotator
Thank you…
Reference
이 문제에 관하여(ONNX 및 YOLOv7 모델을 사용한 자동 주석(객체 감지)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/naseemap47/auto-annotation-using-onnx-and-yolov7-model-object-detection-2pii텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)