>  기사  >  백엔드 개발  >  이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

WBOY
WBOY앞으로
2023-04-12 13:49:091688검색

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

"인피니트 리틀 라이트의 인기 과학일보"에서는 온라인에서 인기 생물을 식별하는 동영상을 자주 공개하여 생물학적 지식을 대중화할 뿐만 아니라 시청자의 호기심도 충족시킵니다. 오늘은 인터넷에서 인기 있는 식물도 알아보겠습니다! 최근 봄에는 많은 꽃이 피었습니다. 우연히 청명절을 이용하여 야외로 나가서 꽃 사진을 많이 찍었습니다.

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

우리는 꽃에 대해 특별히 익숙하지 않기 때문에 어떤 꽃인지 식별하려면 소프트웨어를 사용해야 합니다. 시중에는 Huamate, Xingse, Baidu 등 많은 꽃 인식 소프트웨어가 있습니다. 테스트 후 Baidu가 인식 효과가 가장 좋은 것으로 나타났습니다. 그래서 아이디어가 떠올랐습니다. Baidu의 인터페이스를 일괄 호출하여 꽃 사진을 식별하고 분류할 수 있을까요? (전체 코드는 기사 끝 부분을 참조하세요)

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

Baidu 이미지 인식

Baidu의 이미지 인식 인터페이스는 10개 이상의 고정밀 이미지 인식 기능을 포함하여 100,000개 이상의 개체와 장면을 정확하게 식별할 수 있으며 해당 API를 제공합니다. 서비스.

​https://www.php.cn/link/17d187eaf6157b4e219552d6a187290a​

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

그림에 표시된 대로 새 애플리케이션을 생성하고 자체 API 키와 비밀 키를 얻는 단계를 따릅니다. 아래에.

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

이미지 인식은 여러 수직 인식 서비스의 유연한 조합 호출을 지원하는 조합 API 인터페이스를 제공합니다. 여기서는 식물 인식만 호출하면 요구 사항을 충족할 수 있습니다.

Python에서 Baidu 이미지 인식 API 인터페이스를 호출하는 방법은 무엇입니까?

첫 번째 단계는 인증 인터페이스를 호출하여 토큰을 얻는 것입니다.

API_Key = '**********'
Secret_Key = '**********'
def get_access_token(API_Key,Secret_Key):
host = '**********'
response = requests.get(host)
return response.json()['access_token']
access_token = get_access_token(API_Key,Secret_Key)

두 번째 단계는 이미지 유형을 식별하는 것입니다

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

대화형 환경에서 다음 명령을 입력하세요.

import requests
import base64
request_url = '**********'
# 二进制方式打开图片文件
f = open(r'D:下载QQ截图20220407203203.png', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
print (response.json()['result'][0]['name'])

출력:

Sakura

Baidu 이미지 인식 인터페이스 호출의 반환 매개변수는 다음과 같습니다. 아래 그림에서는 이름(식물 이름) 매개변수만 필요하다고 가정합니다.

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

사진 파일 읽기

촬영한 사진은 D:다운로드 꽃 컬렉션 경로에 저장하므로 후속 배치 작업을 용이하게 하려면 os 모듈을 사용하여 파일 목록을 읽어야 합니다.

대화형 환경에서 다음 명령을 입력하세요.

import os
path = "D:下载花卉合集"
filenames = os.listdir(path)
filenames

Output:

['QQ截图20220405223301.png',
 'QQ截图20220405223320.png',
 ......
 '微信图片_20220405225020.jpg',
 '微信图片_20220405225023.jpg']

os 모듈의 listdir() 메소드는 경로 매개변수 경로를 수신하고 구성된 목록에 있는 모든 파일의 파일 이름을 반환합니다. 이런 식으로 아래 그림과 같이 이 경로에 있는 모든 꽃 그림의 파일 이름을 얻었습니다.

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!

사진 정리 및 분류

그런 다음 for 루프 문을 사용하여 꽃 사진에 대해 순차적으로 이미지 인식을 수행하고 인식된 이름에 따라 해당 폴더로 분류할 수 있습니다.

대화형 환경에서 다음 명령을 입력하세요.

for i in filenames:
flower_name = get_fname(i)
file_path = os.path.join(path,i)
folder_path = os.path.join(path,flower_name)
if not os.path.exists(folder_path):
os.mkdir(folder_path)
shutil.move(file_path,folder_path)

get_fname() 함수는 이전 기사의 Baidu 이미지 인식 코드를 사용자 정의 함수로 캡슐화하는 곳입니다. 여기에서 호출하면 사진에 해당하는 flower_name을 반환할 수 있습니다.

다음 코드는 앞서 공유한 자동 분류 파일과 거의 동일합니다. 즉, 꽃 이름에 해당하는 폴더가 이미 존재하는지 판단하고, 없으면 생성합니다. 마지막으로 shutdown 모듈을 호출하여 꽃 사진을 해당 폴더로 이동합니다.

구체적인 실행 효과는 아래 애니메이션에 나와 있습니다.

이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!


위 내용은 이 재미! Python을 사용하여 꽃의 종류를 식별하고 자동으로 정리하고 분류하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제