이미지 분류에 텔레그램 봇 사용
12006 단어 machinelearningtensorflow
모델 훈련:
편안한 프레임워크인 PyTorch/Tensorflow를 선택하십시오. 그런 다음 이미지 분류기를 훈련시키거나/또는/훈련된 모델을 사용하십시오.
학습 예시: tensorflow | pytorch
I'm using tflite model as it serves best for edge and low computing devices.
모델 변환:
pytorch에서 tflite로 변환하려면 omerferhatt에서 이 코드를 사용할 수 있습니다.
토치에서 ONNX로 변환한 다음 TF2 >>> tflite로 변환합니다.
토치->ONNX->TF2->TFLite
이 모델에 대한 추론 코드를 '.py' 파일에 넣고 모델 파일 및 labels.txt(tensorflow용)와 함께 배치합니다.
텔레그램 봇:
쉬운 단계:
1) bot father과 연결
2) 봇 생성 및 토큰 받기
봇을 구축하기 위해 python-telegram-bot 라이브러리를 사용했습니다. 간단한 echo-bot 템플릿 예제를 사용하고 필요에 따라 변경했습니다.
import logging
import os
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
from model import get_predictions # calling model func
# Enable logging
logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO
)
logger = logging.getLogger(__name__)
# Define a few command handlers. These usually take the two arguments update and
# context. Error handlers also receive the raised TelegramError object in error.
def start(update: Update, context: CallbackContext) -> None:
"""Send a message when the command /start is issued."""
update.message.reply_text('Hi send an image to classify!')
def help_command(update: Update, context: CallbackContext) -> None:
"""Send a message when the command /help is issued."""
update.message.reply_text('Help!')
def photo(update: Update, context: CallbackContext) -> int:
user = update.message.from_user
photo_file = update.message.photo[-1].get_file()
photo_file.download('user_photo.jpg')
logger.info("Photo of %s: %s", user.first_name, 'user_photo.jpg')
update.message.reply_text(
'Okay now wait a few seconds!!!'
)
update.message.reply_text(get_prediction('user_photo.jpg'))
def main():
"""Start the bot."""
# Create the Updater and pass it your bot's token.
TOKEN = " " # place your token here
updater = Updater(TOKEN, use_context=True)
PORT = int(os.environ.get('PORT', '8443'))
# Get the dispatcher to register handlers
dispatcher = updater.dispatcher
# on different commands - answer in Telegram
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CommandHandler("help", help_command))
# on noncommand i.e message - echo the message on Telegram
dispatcher.add_handler(MessageHandler(Filters.photo & ~Filters.command, photo))
updater.start_webhook(listen="0.0.0.0",
port=PORT,
url_path=TOKEN)
updater.bot.set_webhook("https://yourapp.herokuapp.com/" + TOKEN)
updater.idle()
if __name__ == '__main__':
main()
위의 코드
update.message.reply_text(get_prediction('user_photo.jpg'))
에서 모델을 호출하여 결과 예측을 사용자에게 전달하고 있으므로 추론 모델 코드에 따라 대체할 수 있습니다.최종 터치
내 봇을 배포하기 위해 Heroku 플랫폼을 선택합니다. 더 많은 호스팅 아이디어를 보려면 여기link를 방문하세요.
계속 진행하기 전에 요구 사항 파일과 Procfile을 만들어야 합니다.
tflite 추론의 경우 전체 tensorflow 라이브러리가 필요하지 않으며 tflite 인터프리터를 설치하기만 하면 됩니다. 전체 정보는 여기guide를 참조하십시오.
필요에 따라 다음 줄을 Procfile에 넣으십시오.
web: python bot.py
이제 내 폴더 구조는 다음과 같습니다.
└── img_classify_bot
├── model.py
└── bot.py
└── model.tflite
└── labels.txt
└── bot.py
└── requirements.txt
└── Procfile
마지막으로 heroku-cli를 사용하여 봇을 배포합니다.(봇 토큰은 민감한 정보이므로 공개하지 마십시오)
.
분류기 봇
Reference
이 문제에 관하여(이미지 분류에 텔레그램 봇 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ash11sh/using-telegram-bot-for-image-classification-3afk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)