이전 게시글에서 Flask를 통해 구축한 서버에서, RestAPI를 사용해 DenseNet121모델을 통해 사진을 분류하고 그 결과를 보여주도록 했다.
프로젝트를 위 구조를 이용해서, 개의 사진을 올리면 품종을 알려주고 그에 대한 정보를 주도록 진행하고자 하였다.
일단 개에 대해서 추가학습을 시키는 모델은 팀원에게 맡기고... 나는 결과페이지의 구성을 알차게 하려고 한다.
위키 API 사용하기
우선 분류한 클래스의 결과를 위키피디아에 검색하려고 한다.
찾아보니 위키피디아 API가 존재하였다.
우선 위키피디아 api를 다운받는다.
pip install wikipedia -api
내가 숙지한 사용법은 다음과 같다.
위키피디아의 언어를 설정하고, 내가 원하는 페이지를 찾아 데이터를 얻어오는 방식으로 사용하였다.
구체적인 페이지가 없으면 검색결과가 뜨는 것 같다.
#위키api
import wikipediaapi
#class_name = 분류한 개 이름
def wiki(class_name):
wiki = wikipediaapi.Wikipedia(language='en')
p_wiki = wiki.page(class_name)
#페이지 있으면 페이지 출력
if(p_wiki.exists()):
print(p_wiki.text)
golden_retriever로 분류된 값을, 위키 페이지에서 전체 내용을 잘 가져온다.
구글 번역 API 사용하기
그럼 한국어로 검색하면 어떨까
우선 이름을 한국어로 바꿔서 검색하기 위해 구글 번역 API를 사용하고자 한다.
아래는 무료로 제공하는 번역 api이고 유료버전인 Google Cloud Translation도 존재한다.
무료로 제공되었던 번역 api (googletrans)가 에러가 많고, 작동이 안된다는 게시글이 많아서 기존의 install 링크가 아닌, 아래 링크에서 다운받아서 사용하였다.
pip install git+https://github.com/alainrouillon/py-googletrans@feature/enhance-use-of-direct-api
간단한 사용법은 translate 함수를 사용해서 사용하면 된다. src는 원래 언어 (생략가능) -> dest는 바뀌는 언어
from googletrans import Translator
trans = Translator(service_urls=['translate.googleapis.com'])
result = trans.translate(class_name, dest='ko', src='en')
#origin = 원래 -> text = 변환
print(result.origin +" " + result.text)
위 코드를 추가하고, 위키는 한국으로 바꿔서 돌려보니 잘 가져온다.
전체 메소드는 아래와 같다.
#english word -> translate korean -> search wiki
def wiki(class_name):
wiki = wikipediaapi.Wikipedia(
language='ko',
extract_format=wikipediaapi.ExtractFormat.WIKI)
trans = Translator(service_urls=['translate.googleapis.com'])
result = trans.translate(class_name, dest='ko', src='en')
class_name = result.text
print(result.origin + " " + result.text)
p_wiki = wiki.page(class_name)
if(p_wiki.exists()):
print(p_wiki.text)
하지만 실제로 이렇게 사용하면 원했던 결과와는 다른 많은 문제점이 발생한다.
문제점들에 대해서는 다음 게시글에 작성하도록 하겠다...
전문가가 아니라 정확하지 않은 지식이 담겨있을 수 있습니다.
언제든지 댓글로 의견을 남겨주세요!
'코딩 > 이미지 분류 [PyTorch]' 카테고리의 다른 글
웹 크롤링하기 [Beautiful Soup] (0) | 2020.12.22 |
---|---|
Flask를 이용하여 파이토치를 REST API로 베포하기2 (0) | 2020.11.13 |
Flask를 이용하여 파이토치를 REST API로 베포하기 (0) | 2020.11.02 |
REST API란? [특징, 규칙] (0) | 2020.11.02 |
머신러닝 : CIFAR-10 성능향상 [Conv, Linear, Dropout] (2) | 2020.10.07 |
Comment