티스토리 뷰

[업데이트 2019.07.04 10:46]

 

TT100K 벤치마크

지난번 포스팅에 이어서 web service 기반의 Object Detector를 만들어보았습니다. 기존에 만들었던 base docker container를 포함하도록 하였습니다. 따라서 기존의 Caffe 등을 그대로 사용할 수 있게 됩니다. 기존 base 이미지에서 참조하는 폴더 구조를 기반으로 해당 서비스가 참조하도록 구성하였습니다. TT100K 데이터셋에 대해 교통 표지판 검출이 가능하도록 REST API 인터페이스를 구현 하였으며, 웹서비스를 만들기 위해 Python 기반의 Flask를 사용하였습니다.

 

Flask의 경우 micro-framework로 작은 단위의 기능을 마이크로 서비스로 구현할 때 용이합니다. Docker 서비스를 배포하기 위해 AWS EC2를 사용하였고, TT100K 데이터셋이나 모델 파일은 AWS S3로부터 다운로드 할 수 있도록 Dockerfile을 구성하였습니다.

 

AWS S3에 접근하기 위해서는 Access ID/Key가 필요한데, 특정 폴더에 해당 config를 설정하도록 하였습니다. 해당 Docker 서비스가 실행되면, AWS S3로부터 필요한 파일들을 다운로드합니다. 아래는 .aws/config에 정의된 AWS 접근용 config 파일 예시입니다.

 

AWS S3의 폴더 구조는 아래와 같이 구성하였습니다.

아래와 같이 entrypoint.sh를 실행하도록 Dockerfile을 구성하였고, Docker 서비스가 실행되면 데이터/모델 파일들에 대해 다운로드를 진행합니다.

 

REST API 스펙은 아래와 같이 정의하였습니다. Request Parameter중에 embed_image의 경우 true로 설정시 실제 검출 결과(경계 상자 포함)에 대한 이미지 전체를 Response로 받을 수 있습니다.

 

아래는 REST API 사용에 대한 샘플입니다.

 

아래의 링크는 해당 Object Detector를 Web UI를 통해 테스트 해볼 수 있도록 웹사이트를 구축하였습니다.

http://ai.bakevision.com/task03

 

아래의 스크린샷은 TT100K 교통 표지판을 검출한 결과입니다.

 

자세한 내용은 아래의 GitHub를 참조하시기 바랍니다.

https://github.com/asyncbridge/object-detector-tt100k

 

* 참고

http://flask.pocoo.org

https://github.com/asyncbridge/object-detector-tt100k

http://ai.bakevision.com/task03

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함