FlickrAPI로 이미지 다운로드
소개
화상 인식 프로그램을 만들기 위해서는, 우선은 훈련시키기 위한 대량의 화상 데이터가 필요.
이를 위해 이미지 데이터를 자동으로 수집하는 프로그램을 만듭니다.
참고 교재: 【화상 판정 AI 어플 개발·파트 1】TensorFlow·Python·Flask로 만드는 화상 판정 AI 어플 개발 입문
Flickr
이미지 수집 사이트
htps //w w. fぃckr. 코m/
API
htps //w w. fぃckr. 코 m/세 rゔぃ세 s/아피/
아래 준비
htps : // 코 m / 사아야 만 / ms / 3066697 A108 A7 7fc39
"1. api 등록"참조.
키와 비밀키(?)의 취득이 필요.
설치 방법
pip install flickrapi
소스 코드
검색한 이미지를 지정된 폴더에 저장합니다. download.py
라는 프로그램을 만듭니다.
예를 들어,
python download.py monkey
를 입력하면 monkey
에서 검색한 이미지를 monkey
라는 폴더에 저장합니다.
가져오기
from flickrapi import FlickrAPI
from urllib.request import urlretrieve
from pprint import pprint
import os, time, sys
API 키 정보
# APIキーの情報
key = "<<文字列>>"
secret = "<<文字列>>"
wait_time = 1
취득한 키와 비공개 키를 저장해 둔다.
wait_time은 이름대로 무게 시간. 자주 Flickr에 액세스하면 액세스 거부되어 버리기 때문에, 이미지 1장 취득할 때마다 1초 기다리도록 한다.
이미지 정보 획득
# 保存フォルダの指定
animalname = sys.argv[1]
savedir = "./" + animalname
flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
text = animalname,
per_page = 400,
media = 'photos',
sort = 'relative',
safe_search = 1,
extras = 'url_q, licence'
)
FlickrAPI
에, 「아래 준비」로 취득한 키, 비밀열쇠, 포맷을 지정(이번은 json 형식)해 flickr
인스턴스를 작성해, flickr.photos.search
메소드를 호출한다.result
에는 다음과 같은 데이터가 들어 있습니다.
{'photos': {'page': 1,
'pages': 541,
'perpage': 400,
'photo': [{'farm': 66,
'height_q': 150,
'id': '49823614651',
'isfamily': 0,
'isfriend': 0,
'ispublic': 1,
'owner': '14136614@N03',
'secret': '888c8a381a',
'server': '65535',
'title': 'LEGO Minifigures Series 19 Rainbow Bear',
'url_q': 'https://live.staticflickr.com/65535/49823614651_888c8a381a_q.jpg',
'width_q': 150},
...
이미지 다운로드
result
의 정보를 사용하여 이미지를 다운로드합니다.
이미지의 URL을 photo['url_q']
로 취득.
다운로드의 실행은 urlretrieve
로 실시한다.
photos = result['photos']
for i, photo in enumerate(photos['photo']):
print(i)
url_q = photo['url_q']
filepath = savedir + '/' + photo['id'] + '.jpg'
if os.path.exists(filepath): continue
urlretrieve(url_q, filepath)
time.sleep(wait_time)
확인
python download.py monkey
실행하면 monkey
폴더에 다음과 같이 저장됩니다.
그러나 원숭이가 아닌 이미지 (원숭이의 그림이거나 원숭이와 전혀 관계가없는 것 등)도 포함되어 있기 때문에 수동으로 제거하는 것이 필요.
Reference
이 문제에 관하여(FlickrAPI로 이미지 다운로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yohiro/items/04e488805433a2f6e03d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install flickrapi
검색한 이미지를 지정된 폴더에 저장합니다.
download.py
라는 프로그램을 만듭니다.예를 들어,
python download.py monkey
를 입력하면
monkey
에서 검색한 이미지를 monkey
라는 폴더에 저장합니다.가져오기
from flickrapi import FlickrAPI
from urllib.request import urlretrieve
from pprint import pprint
import os, time, sys
API 키 정보
# APIキーの情報
key = "<<文字列>>"
secret = "<<文字列>>"
wait_time = 1
취득한 키와 비공개 키를 저장해 둔다.
wait_time은 이름대로 무게 시간. 자주 Flickr에 액세스하면 액세스 거부되어 버리기 때문에, 이미지 1장 취득할 때마다 1초 기다리도록 한다.
이미지 정보 획득
# 保存フォルダの指定
animalname = sys.argv[1]
savedir = "./" + animalname
flickr = FlickrAPI(key, secret, format='parsed-json')
result = flickr.photos.search(
text = animalname,
per_page = 400,
media = 'photos',
sort = 'relative',
safe_search = 1,
extras = 'url_q, licence'
)
FlickrAPI
에, 「아래 준비」로 취득한 키, 비밀열쇠, 포맷을 지정(이번은 json 형식)해 flickr
인스턴스를 작성해, flickr.photos.search
메소드를 호출한다.result
에는 다음과 같은 데이터가 들어 있습니다.{'photos': {'page': 1,
'pages': 541,
'perpage': 400,
'photo': [{'farm': 66,
'height_q': 150,
'id': '49823614651',
'isfamily': 0,
'isfriend': 0,
'ispublic': 1,
'owner': '14136614@N03',
'secret': '888c8a381a',
'server': '65535',
'title': 'LEGO Minifigures Series 19 Rainbow Bear',
'url_q': 'https://live.staticflickr.com/65535/49823614651_888c8a381a_q.jpg',
'width_q': 150},
...
이미지 다운로드
result
의 정보를 사용하여 이미지를 다운로드합니다.이미지의 URL을
photo['url_q']
로 취득.다운로드의 실행은
urlretrieve
로 실시한다.photos = result['photos']
for i, photo in enumerate(photos['photo']):
print(i)
url_q = photo['url_q']
filepath = savedir + '/' + photo['id'] + '.jpg'
if os.path.exists(filepath): continue
urlretrieve(url_q, filepath)
time.sleep(wait_time)
확인
python download.py monkey
실행하면
monkey
폴더에 다음과 같이 저장됩니다.그러나 원숭이가 아닌 이미지 (원숭이의 그림이거나 원숭이와 전혀 관계가없는 것 등)도 포함되어 있기 때문에 수동으로 제거하는 것이 필요.
Reference
이 문제에 관하여(FlickrAPI로 이미지 다운로드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yohiro/items/04e488805433a2f6e03d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)