ONNX 및 YOLOv7 모델을 사용한 자동 주석(객체 감지)

5053 단어
주석은 매우 지루한 작업이므로 사용자 지정 학습 모델(ONNX 모델)을 사용하여 새 데이터에 주석을 달 수 있다고 생각합니다.

그래서 ONNX 모드를 사용하여 데이터 세트에 자동 주석을 달 수 있는 Python 모듈을 만들었습니다.

YOLOv7 모델(.pb)을 사용하여 새로운 Auto-Annotator도 추가했습니다.

GitHub 리포지토리 링크:-

https://github.com/naseemap47/autoAnnoter



다른 유형의 모델 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를 따르십시오:-

https://github.com/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 __ 모델 감지 신뢰도(0

XML 주석의 경우:



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 ___ 모델 감지 신뢰도(0
python3 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…

좋은 웹페이지 즐겨찾기