s5unnyjjj's LOG

Code Review: Detection using ImageAI 본문

Review (Paper, Code ...)/Code Review

Code Review: Detection using ImageAI

s5unnyjjj 2022. 5. 5. 21:42

ImageAI를 이용하여 detection을 진행해보았습니다. ImageAI는 오픈 소스로 해당 코드를 이용하면 detection model을 쉽게 구동할 수 있습니다.

https://github.com/OlafenwaMoses/ImageAI#detection

 

GitHub - OlafenwaMoses/ImageAI: A python library built to empower developers to build applications and systems with self-contai

A python library built to empower developers to build applications and systems with self-contained Computer Vision capabilities - GitHub - OlafenwaMoses/ImageAI: A python library built to empower ...

github.com

 

이미지를 이용한 detection과 비디오를 이용한 detection을 진행하였습니다. ImageAI에 사용되는 함수의 각 기능은 아래 링크에 상세히 나와있습니다.

https://imageai.readthedocs.io/en/latest/detection/index.html

 

Detection Classes — ImageAI 2.1.6 documentation

This ObjectDetection class provides you function to perform object detection on any image or set of images, using pre-trained models that was trained on the COCO dataset. The models supported are RetinaNet, YOLOv3 and TinyYOLOv3. This means you can detect

imageai.readthedocs.io

 

1. Detection on image dataset

마지막 인자는 custom object 설정 여부에 대한 True/False 입니다. 즉, 첫번째 줄은 custom object를 설정 안하는 것이고 두번째 줄은 custom object를 설정한다는 것입니다.

 

CustomObject함수를 이용하면 원하는 객체 검출이 가능합니다. 총 80개의 객체가 지원되며 이외의 객체를 검출하고 싶다면 따로 추가로 학습을 시켜줘야합니다. 해당 페이지에서는 지원되는 객체에 한해서 검출하도록 하겠습니다.

(Ref: https://imageai.readthedocs.io/en/latest/detection/index.html)

There are 80 possible objects that you can detect with the
ObjectDetection class, and they are as seen below.

    person,   bicycle,   car,   motorcycle,   airplane,
    bus,   train,   truck,   boat,   traffic light,   fire hydrant,   stop_sign,
    parking meter,   bench,   bird,   cat,   dog,   horse,   sheep,   cow,   elephant,   bear,   zebra,
    giraffe,   backpack,   umbrella,   handbag,   tie,   suitcase,   frisbee,   skis,   snowboard,
    sports ball,   kite,   baseball bat,   baseball glove,   skateboard,   surfboard,   tennis racket,
    bottle,   wine glass,   cup,   fork,   knife,   spoon,   bowl,   banana,   apple,   sandwich,   orange,
    broccoli,   carrot,   hot dog,   pizza,   donot,   cake,   chair,   couch,   potted plant,   bed,
    dining table,   toilet,   tv,   laptop,   mouse,   remote,   keyboard,   cell phone,   microwave,
    oven,   toaster,   sink,   refrigerator,   book,   clock,   vase,   scissors,   teddy bear,   hair dryer,
    toothbrush.

 

코드 실행 결과는 아래와 같습니다.

custom object = False

 

custom object = True (only person)

 

640x415 이미지의 경우, custom object를 설정 여부에 따른 이미지 한장 당 실행 처리 소요 시간은 아래와 같습니다. custom object를 안하게되면 모든 object를 탐지하기때문에 시간이 조금 더 걸리는 것으로 보입니다.

custom object = False
custom obejct = True (only person)

 

2. Detection on video dataset

코드 실행 결과는 하단에 작성되어 있는 github의 result 폴더 안에 저장되어있습니다. 실행하게되면 현재 몇 번째의 프레임이 처리되고 있는지 나타납니다. (파라미터 중, log_process를 True로 설정하면 됩니다.)

실행 결과는 하단의 github에서 확인할 수 있습니다.

854x480 프레임으로 구성된 5초의 영상의 경우, custom object를 설정 여부에 따른 한개의 영상 당 실행 처리 소요 시간은 아래와 같습니다. custom object를 안하게되면 모든 object를 탐지하기때문에 시간이 조금 더 걸리는 것으로 보입니다.

custom object = False
custom object = True (only person)

----------------------------------------------------------------------------------------------------

 

>> 위 내용은 필자가 직접 작성한 내용입니다.

>> 필자가 직접 구현한 코드를 아래의 링크에 업로드하였으니 참고바랍니다.

https://github.com/s5unnyjjj/Object-detection-using-ImageAI

>> 부족한 점이 많을 수 있기에 잘못된 내용이나 궁금한 사항이 있으면 댓글 달아주시기 바랍니다.

>> 긴 글 읽어주셔서 감사합니다. 

 

반응형
Comments