Giter Club home page Giter Club logo

final-project-level3-cv-09's People

Contributors

jeongjae96 avatar km9mn avatar leeyoonghee avatar tjrudrnr2 avatar updaun avatar yoonghee avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

final-project-level3-cv-09's Issues

Update requirements.txt to include all Python library

Hi! Your GitHub repository looks fantastic, and I'm eager to dive into the code. However, I encountered an issue while setting up the project locally. It appears that the requirements.txt file doesn't specify all the Python libraries needed. Would you be kind enough to update the code and include all the required dependencies?

[Discussion] Git convention

Issue

  • [Feat] : 기능 추가, 삭제, 변경 시 사용
  • [EDA] : EDA 결과 공유 시 사용
  • [Discussion] : 의논할 주제가 있을 시 사용
  • [Test] : git 관련 테스트 시 사용
  • [Data] : 데이터 실험 시 사용
  • [Model]: 모델 실험 시 사용
  • [Refactor] : 코드 리팩토링
  • [Style] : 코드 형식, 정렬, 주석 등의 변경
  • [Docs]: 문서 추가, 삭제, 변경

Label

  • bug : Something isn't working
  • data : data experiments
  • discussion : Share info
  • documentation : Improvements or additions to documentation
  • duplicate : This issue or pull request already exists
  • enhancement : New feature or request
  • good first issue : Good for newcomers
  • help wanted : Extra attention is needed
  • invalid : This doesn't seem right
  • model : change backbone model experiments
  • question : Further information is requested
  • wontfix : This will not be worked on
  • test : For test purpose

Branch

  • 이름/목적

Branch 예시
jdu/feat, kkm/feat

Commit

  • feat : 기능 추가, 삭제, 변경 (코드 수정 발생)
  • fix : 버그를 고친 경우 (코드 수정 발생)
  • refactor : 결과의 변경 없이 코드의 구조를 재조정한 경우 (코드 수정 발생)
  • style : 코드 형식, 정렬, 주석 등의 변경 (코드 수정 발생, 그러나 동작에 영향을 주지 않음)
  • test : 테스트 코드 추가, 삭제 변경 (테스트 코드에 관련된 모든 변경)
  • docs : 문서 추가, 삭제 변경 (코드 수정 없음)
  • chore : 빌드 스크립트 수정, 패키지 배포 설정 변경 등 (코드 수정 없음)

commit 예시
git commit -m "[feat] Stratified Kfold #1" -m "세부내용"

[Refactoring] FastAPI 개발환경 세팅 및 포팅

What?

  • 백엔드를 분리하기 위해 FastAPI 초기 환경 세팅 및 이전 기능 그대로 사용할 수 있도록 포팅
  • Dependency에 영향을 받지 않게 하기 위해 Dockerizing

Todo

  • FastAPI 듀토리얼로 띄우기
  • Dockerizing
  • Streamlit 프론트와 API 송수신 테스트
  • 각 기능을 실행할 때마다 threshold set 하도록 구현
  • Violence Detection 기능 추가
  • Violence Filtering - YOLOv5
  • Violence Filtering - kinetics
  • Skip 기능 추가
  • Mute 기능 추가
  • 대체이미지 기능 추가
  • Reset 기능 추가

[feat] Submit Source to Smliegate

What?

  • 스마게 제출을 위한 소스 수정

How?

  • 새로운 가상 환경 생성 및 라이브러리 설치 실험
  • 데모 동작에 성공하면 requirements.txt로 저장
  • 경로 수정

Why?

  • 잘 동작하는 상태로 제작하여 소스 제출

Todo

  • Dependency update
  • 절대 경로를 상대 경로로 바꾸기

[Feat] video extraction for video-level annotation

What?

기존에는 영상에서 폭력구간을 pixel-level로 annotation한 .json 파일을 이용하여 video extract를 진행했는데
이를 비디오 레벨로 변경

How?

영상 제목을 불러와 폭력이면 모든 프레임을 1, 비폭력이라면 0으로 라벨링

[Feat] Yolo Annotation Tool 기능 추가

What?

  • 기존에 사용하고 있는 Yolo Annotation Tool에

Todo

  • 선택된 bbox가 어느 box인지를 확인하기 위해 spacebar를 누를 시, 그 bbox의 색상을 변환하도록 한다.
  • bbox 사이즈 조절 기능 추가
  • 줌인/줌아웃 기능 추가
  • 다른 이미지로 넘어가지 않을 시, bbox가 저장되지 않는 문제 해결하기

[Feat] Streamlit Demo App

What?

  • Violence Detection and Violence Filtering Streamlit demo app
  • blurred image + wav = output video

How?

  • backend 없이 구현
  • Streamlit Hydralit을 활용한 페이지 분리
  • ffmpeg 를 활용한 영상 encoding

Why?

  • 결과 시연용, 발표자료 제작용

Todo

  • Streamlit app
  • dev env setting
  • make output video

[Discussion] Google Cloud를 이용한 데이터 관리

What?

  • 구글 드라이브를 사용하다가 용량 문제가 생길 시, 구글 클라우드로 대체할 수 있을 것 같다.
  • 구글 클라우드 첫 가입 시, 90일 동안 사용할 수 있는 $300 크레딧 제공. 프로젝트 기간 동안 무료로 사용할 수 있을 것이라 예상. Cloud Storage 가격 책정
  • 클라우드에 업로드한 파일을 스크립트를 이용해 다운 받아서 실행 가능하다고 하다. Python Client for Google Cloud Storage

버킷은 폴더와 같은 개념이라고 보면 된다.

image

image

image

Todo

  • 구글 드라이브와 같이 마운트 기능이 있는지 확인하기

글 확인하셨으면, 이모지 부탁드립니다! 바로 사용할 방법은 아닌듯하여 다들 확인하시면 issue close하도록 하겠습니다.

[Feat] Real-time Animated Graph

What?

  • 실시간으로 그래프 그리는 기능 추가

How?

  • matplotlib.animation, PyQT, Tkinter을 사용한 여러 예제 찾아보기

Why?

  • 동영상을 실시간으로 재생하며 성능 그래프를 확인하기 위해

Todo

  • 여러 예제 찾아보기
  • 동영상과 같이 plot하는 방법 찾기

[Feat] Output Indexing

What?

  • output에 index 추가

Why?

  • output에 index가 없어 어디서부터 어디까지가 어떤 영상인지 모름

How?

  1. gt와 같은 순서이니 gt를 만든 annotations.txt 활용
  2. feature의 길이 활용

Todo

  • indexing

[Discussion] 프로젝트를 Windows 환경에 맞게 세팅

What?

현재 사용하고 있는 컴퓨터 사양
CPU: Intel i9-10850K
GPU: NVIDIA GeForce RTX 3090 (CUDA Version: 11.5)

기존 requirements.txt.에서 사용하는 torch 버전 말고
conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge 사용해서 설치.

현재 맞닥뜨린 에러

image

어떻게 해결해야 할까?

[Git] Pre-commit Black 적용하기

What?

Pre-commit 기능 중 하나인 자동 포맷팅 Black으로 적용해보기

Why?

Python Code 자동 포맷팅으로 편리한 개발환경 구축
기타 툴도 하나하나 적용해볼 예정

Todo

  • local에 테스트 해보기
  • 전체 팀원에게 적용하기
  • 다른 기능도 추가하기

[Discussion] Tensorflow install for Pose Blur

What?

  • Tensorflow install

[as-is]

pip install tensorflow==2.6.0

[to-be]

pip install tensorflow

Why?

[as-is]

  • numpy 버전 종속으로 인해 2.6.0 버전으로 다운로드 받아 사용하는 것으로 하겠습니다!

[to-be]

  • tensorflow 에러 문제로 2.9.X 버전으로 다운로드 받아 사용하는 것으로 하겠습니다!

Todo

  • pose blur cpu
  • tensorflow gpu setting and pose blur gpu

[data] SpeedCheck MP4 to JPG FFMPEG vs OPENCV

What?

  • 프로그램 속도 비교

Why?

  • ffmpeg가 성능이 좋아보여서 테스트를 진행하게 되었습니다.

Todo

  • 성능비교 결과 공유
  • 소스 수정 및 업데이트

[Discussion] Movie 라벨링 통일 필요

Why?

Dataloader 구현 당시 영화이름_시작시간_끝시간_label_B.mp4 형식을 기준으로 영화 이름, violence flag를 추출하도록 작성했는데 현재 드라이브에 저장된 영상들 제목이 각자 형식이 달라 이 부분에서 추출이 잘 되지 않음.
image

  • 두 영화의 세번째 라인(violence flag) 추출물이 다른 모습

How?

영화 길이는 cv2로 구할 수 있기 때문에 영화 이름, violence flag를 추출해야한다. 영화 길이는 맨 앞에 나오니 문제가 없고 "_"를 기준으로 split 할 때 A, B, P와 다르게 B_P 같은 경우가 문제.

  1. 현재 코드에서 하드코딩(if 문 추가)으로 수정
  2. 영상 제목을 통일해서 수정

"label_"를 기준으로 split => B_P.mp4로 뽑으면 될 듯. 신의 한수랑 감시자들이 label_이 없는데 얘네만 추가할게요

[Feat] 대체 이미지 기능 추가

What?

  • 폭력 구간에 대체 이미지 또는 gif를 넣는 기능 추가

Todo

  • 모코코.gif 랜덤 좌표에 합성
  • mp4 -> opencv processing -> mp4 -> h264 코덱 변경
  • 비디오 + 오디오
  • 모자이크 할 부분에 불투명한 비눗방울 이미지 합성
  • 큰 비눗방울 하나가 있는 png -> 풍성한 비눗방울 적용해보기
  • 크기를 더 키워 더 가려질 수 있도록 필터링 영역 확장
  • kinetics(violence_localization)에도 적용
  • 피가 나오는 구간 이미지 전체를 GRAY SCALE로 변경 (논의 필요)

[bug] Tensorflow import Error PoseBlur and ViolenceLocalization

  • PoseBlur 모듈과 ViolenceLocalization 모듈을 함께 import하면 error가 발생합니다.
  • ViolenceLocalization 에서 tensorflow 버전 1 기능을 가져와 사용하는 부분에서 에러가 발생하는 것 같습니다.
  • 현재로서는 둘 중에 한 가지만 선택하여 import 해야할 것 같습니다.

[Model] Evaluate Yolov5

Why?

Determine why blood detection performance is low

  1. Object Detection or Segmentation
  2. Lack of Data
  3. Etc

How?

Visualize mAP, loss and inference result

[Model] YOLOv5 Custom Trainning

What?

  • violence localization (blood scene object detection)
  • custom dataset 준비

Why?

  • violence localization + 모자이크(blur)

Todo

  • pre-trained model, streamlit으로 http 송수신 해보기 (FastAPI)
  • 데이터 추가 수집 or 기존 400장에서 제외할 목록 정하기
  • 어노테이션 가이드 (어떤걸 라벨링하고, 크기는 어떻게할지) 작성하기
  • annotation tool research 및 Set-up
  • custom dataset annotation
  • custom trainning set-up
  • custom trainning
  • blood detection 영화 영상으로 테스트 해보기
  • movie data to image (2frame/1sec)
  • movie data annotation task (협업) (class 1개 -> 5개로 세분화)
  • trainning
  • 결과 테스트

Reference

[Model] Blood detection

What?

  • blood detection관련 논문, 레포 서치

Why?

  • violence localization + 모자이크

Todo

  • paperswithcode에서 서치
  • inference

[Data] Blood Detection EDA

What?

Blood Detection EDA 및 output 시각화하는 공간

시각화해야 할 것 요청해주셔도 됩니다.

[Refactoring] hydralit library customizing

What?

  • hydralit 라이브러리 분리를 위한 커스터마이징
  • hydralit/sessionate.py 수정을 위한 git fork 및 수정

Todo

  • hydralit fork
  • tag switching 1.0.12
  • make new tag 1.0.12.1
  • hydralit/sessionate.py customizing
  • git push origin 1.0.12.1
  • 가상환경 신설 및 모듈 설치 테스트

주의사항

  • 설치 시 사전 모듈이 없으면 에러가 나는 부분을 테스트 하면서 확인했습니다.
  • 다음과 같은 순서로 설치해야 합니다.
pip install streamlit==1.9.0
pip install -U protobuf==3.20
pip install hydralit_components==1.0.10
pip install bokeh==2.4.3
pip install compress-pickle==2.1.0
pip install git+https://github.com/updaun/[email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.