Fastapi 로 설계를 마친 후
로컬 환경에서 테스트
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=younguk0907&logNo=222044066647
이 블로그의 도움을 받았습니다.
중간에 도커 이미지도 필요해서 다운로드 받았다. 아마 CI/CD를 통한 자동화 배포를 위한 것 같다.
-m uvicorn main:app --reload
로컬로 서버를 열었고, Port는 8000번이다.
아마존 aws서버에서 받는 이미지는
버킷 이름과 프로젝트 명이 필요했다.
case1. jpg를 첨부 할 경우
case2. 이미지를 url로 제공할 경우
python 유료 버전을 사용할 경우,
Fastapi 기본 설정을 제공해준다.
몇번의 에러를 거치고 성공했던 Response Body내용이다.
class_id에 해당하는 라벨을 출력하고 싶은데
이름이 왜인지 string이 길다며 출력이 안 되어서 체크중에 있다.
그리고 같은 class_id가 여러개 나왔다.
아마 전처리 하는 값을 [:5]로 설정해둔 탓에
이미지에서 하나만 detect되었으나
6개가 출력된 것 같다.
뒤에 /docs만 작성하면 확인 가능
정확도 높은 순서대로 출력. 최대 2개까지,
정확도가 50% 이상인 것들
class_id 대신 한글명 출력을 위해
label.txt를 넣어주고, 참조 하게 하였다.
개인 로컬에 띄우기엔 방화벽 문제도 있어서
결국 aws EC2에 업로드했습니다.
Swagger로도 하고,
서버가 잘 연결이 안 되었다길래
Postman으로 api 값 테스트를 했습니다.
실행은 되는데
Postman 값이 안 받아져서 보니까
백엔드 코드를 살짝 수정했습니다.
출력값 바꿀때에 scp -i key-.pem 써서 main.py만 업로드했습니다.
이미지에 있는 가장 정확도 높은 이미지를 하나만 출력해주니 아쉬운 생각이 들어서 2개까지 출력해주기로 했습니다.
-> 백엔드에서 이미지 url 제공
-> 이미지 url을 이미지로 변환
-> 모델이 분류한 분류 name 추출
(바운딩박스 이미지 추출)
-> json으로 백엔드에 전달
(바운딩박스 이미지 url)
-> 백엔드에서 정보 받기
-> 프론트에 전달
-> UI에 추출
https://dataplay.tistory.com/42
https://velog.io/@rapidrabbit76/FastAPI%EB%A1%9C-Model-serving-%ED%95%98%EA%B8%B0-with-Micro-Batching