슬랙의 반려동물 이미지를 분류한 뒤'야옹'이라고 말한 뒤 고양이의 초상화 주머니를 만들었다

개시하다


이 기사는 Slack Advent Calendar 2020 23일째 보도다.
슬랙에 투고한 동물 이미지를 자동으로 분류한 뒤 봇에 접속해'야옹'이라고 하자 고양이 이미지를 뒤집어'왕성인'이라고 하면 개 이미지로 돌아가는 봇'iyashi을 만들었다.

샘플의 GIF 이미지는 사이즈 때문에 많이 잘랐기 때문에 이해하기 어려운 분들은 보세요GiitHub의 README.

무엇 때문에


슬랙에 기고한 이미지가 아니라 온라인에서 자동으로 이미지를 주우면 된다고 생각하는 사람도 있을 것이다.
왜 일부러 기계학습으로 봇을 만들었을까? 귀여운 애완동물 이미지를 투고하는 행복한 채널을 많이 만났기 때문이다.
여러분도 만났으면 좋겠습니다.
처음에 슬랙 표준에 탑재된 Slack Bot를 사용했는데 다음과 같은 문제가 발생했기 때문에 그 문제를 해결하기 위해 제가 직접 했습니다.
  • 수동 추가가 번거로움
  • 사용자 지정 응답의 문자 수 제한과 관련
  • 슬랙봇은 인코딩이 필요 없이 간단하게 봇을 만들 수 있기 때문에 매우 편리하다.

    데모


    프레젠테이션용 Slack 작업공간 준비가 되었으니 가볍게 시도해 보세요.
    히어로쿠 버턴에 대응해 히어로쿠 계정이 있으면 인코딩이 필요 없고 각자의 슬랙에서 봇을 가져올 수 있기 때문이다.
    Heroku Button은 GiitHub의 README에 설정됩니다.
    iyashi: Usage
    참조: Heroku Button

    대응하는 동물


    또 다른 추가하고 싶은 동물이 있다면 깃허브든 슬랙이든 마음대로 댓글을 달아주세요.
  • 고양이
  • 부엉이
  • 전단
  • 고슴도치
  • 반응의 단어

    전체 프로세스


    야옹

  • 야옹
  • Bot 데이터베이스에서 이미지 URL 무작위로 가져오기
  • bot
  • 반환
  • Bot Slack에 이미지 URL 투고

  • 영상 투고

  • 메시지에서 추가 이미지 URL 가져오기
  • 이미지 URL을 펼치고 머신러닝 모형에 던지기
  • 판정 결과를bot
  • 으로 되돌려줍니다
  • 데이터베이스에 이미지 URL 등록
  • 이미지를 올린 슬랙의 주석에 반응

  • 사용한 적이 있다


    Slack Bot

  • Heroku
  • PostgreSQL: 투고한 이미지 URL의 저장 위치

  • slackbot
  • 파이톤을 통해 슬랙 Bot의 프로그램 라이브러리를 간단하게 만들 수 있음
  • 답장, 발송, 반응을 간단하게 할 수 있다
  • from slackbot.bot import respond_to, listen_to
    
    @respond_to("疲れた")
    def tsukareta(message):
        message.reply("頑張れ")
    
    @listen_to("にゃーん")
    def nyan(message):
        message.send("ネコ発見")
    
    @listen_to("わんわん")
    def nyan(message):
        message.react("dog")
    

    기계 학습의 모형 제작

  • PyTorch: 머신러닝 라이브러리
  • 모형 제작에 사용

  • flickr API: 이미지 투고 웹 사이트의 API
  • 모델 제작에 사용되는 이미지 데이터 수집원
  • 좋은 이미지가 많음
  • Google Colab
  • 모델의 학습장소
  • GPU도 무료
  • 학습 PyTorch가 준비한 ResNet-18 학습 모드를 옮겨 모델을 제작했습니다.
    코드는 단지 공식 강좌를 약간 바꾸었을 뿐이다.
    참조: PyTorch: TRANSFER LEARNING FOR COMPUTER VISION TUTORIAL
    flickr에서 이미지를 수집한 코드여기.가 공개됩니다.
    PyTorchtorchvision.datasets.ImageFolder로 이미지를 쉽게 다운로드할 수 있습니다.

    정말 기계 학습이 필요합니까?


    이번 목적은'슬랙 멤버가 키우는 애완동물 이미지를 자동으로 등록하는 것'이기 때문에 규칙적 기반도 충분하다고 생각한다.
  • 규칙 기준 1:80%(임시)
  • 대부분'고양이'여서 모두'고양이'
  • 로 판정
  • 규칙 베이스 2:90%(임시)
  • A씨는'개'를 키우고 있다
  • A가 투고한 이미지에서 모두'개'로 판정
  • B 선생은 고양이와 개를 키우고 있다
  • B씨가 투고한 영상의 무작위 판정
  • 머신러닝: 98%
  • 이하 설치 난이도, 작업 시간, 운용 원가 생략
  • 업무 도입 기계 학습을 토론할 때는 정말 필요한지 진지하게 고려해야 한다.

    끝말


    개파이예요.

    좋은 웹페이지 즐겨찾기