ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python Project]Image Tag Analysis Project
    Project/Project 2021. 3. 21. 17:02

    Image Tag Analysis Project

    • 개요 : 쿠팡의 과일 이미지를 크롤링, 카카오와 구글 비전 API를 이용하여 이미지 기반 분석 프로그램 제작
    • 팀명 : Goofanaka 팀원 : 손기훈 김동건 유주아 김은찬
    • 개발 기간 : 2020년 12월 22일 ~ 2021년 1월 10일
    • 담당 역할 : 크롤러 제작, DB 구축, , 데이터 수집, 데이터 분석 및 시각화
    • 깃허브 :  github.com/Goofanaka/image_tagging
     

    Goofanaka/image_tagging

    Contribute to Goofanaka/image_tagging development by creating an account on GitHub.

    github.com

     

    DEMO

    www.youtube.com/watch?v=YkkxcxwgIOU

     

    Tech Stack

    • 개발언어 : Python
    • 크롤링 : Beautifulsoup
    • 데이터베이스 : MongoDB Atlas
    • 분석 및 시각화 : Pandas, matplotlib, seaborn
    • Gui tool : PyQT
    • Git, Github

     

    Workflow

    Git Features

    • crawling.py : 이미지와 제목을 크롤링하고 크롤링한 이미지를 폴더에 저장
    • dict_json.py : dict에서 json으로 변경 list에서 dict로 변경
    • fruit_dict.py : 과일사전
    • pyqt_gui.py : GUI 환경을 구현
    • img_to_mongo.py : DB에 이미지 파일을 저장
    • tagdata.py : DB에 태깅된 데이터를 저장
    • kakao.py : 크롤링한 이미지를 카카오 API에 넣고 태깅한 값을 받아 list로 변환
    • google_api.py : 크롤링한 이미지를 구글 API에 넣고 태깅한 값을 받아 list로 변환
    • main : 전체적인 모듈을 실행하는 파일
    • visualization
      • Time_series_chart.py : 전체 날짜별 과일 수 시계열 분석 그래프
      • correct_answerd.py : 카카오 API, 구글 API 성능 비교 분석 그래프
      • fruit_statistics.py : 특정 날짜별 과일 빈도수 분석 그래프
      • fruit_statistics_all.py : 전체 과일 빈도 수 분석 그래프

    Code

    1.  크롤러 제작

    쿠팡에서 원하는 페이지만큼 이미지를 크롤링하는 함수이고 Beautifulsoup, selenium 사용해 크롤러를 만들었다.

    처음 하는 만드는 크롤러이기도 하고 플레이 데이터 과정에서 사용하지 않은 라이브러리다 보니 도큐먼트를 찾아가서 하나씩 참고도하고, 유튜브에서 검색해서 찾아보기도 하면서 크롤러를 만들었다.  크롤러를 만드는 것보다 원하는 성능(속도)과 데이터를 우리가 사용할 데이터만 받아오게 만드는것이 생각보다 오래 걸렸다.  

     

     

    1.  시각화

    크롤링한 전체 기간 동안 전체 과일 누적 빈도수를 그래프로 시각화한 코드이다. 

    시각화는 다른 코드보다 비교적 간단했지만 그래프의 가시성을 위해서 다양한 시각화 라이브러리를 써보고 가장 가시성이 좋은 seaborn으로 시각화를 진행했다. 시각화는 디테일한 부분들을 수정하는데 시간은 많이 들지만 수정한 티는 하나도 안나는? 그런 부분들이 되게 많은 것 같다.  

    느낀점

    • 전 회사에서 다양한 프로젝트를 해봤지만 IT도메인에서 처음 하는 프로젝트라 긴장도 많이 했지만 좋은 팀원들을 만나서 팀 멤버 간에 불화 없이 프로젝트를 진행할 수 있어서 좋았다.
    • 코드를 만들면서 막히는 부분들이 많았지만 그래도 기한 내에 프로젝트를 마무리할 수 있어서 감사했다.
    • 데이터 수집부터 저장, 분석, 시각화 등 모든 과정을 다 만들어봤고 특히 MongoDB를 사용해 nosql에 대해 알 수 있었다.
    • git과 github를 이용해 코드를 공유했지만 처음 사용하는 git이라 매끄럽게 사용하지 못한 게 아쉬웠다.
    • 프로젝트를 진행하면서 항상 새로운 것들을 배워나가는 것이 즐거웠다.
Designed by Tistory.