yolo9000's Introduction
yolo9000's People
yolo9000's Issues
이미 머지된 PR에 코드리뷰
이미 머지된 PR에 코드리뷰하는 방법이 있을까요?
Add loss function in Model
Paper Review : YOLO9000: Better, Faster, Stronger
Survey for Python coding convention Cheat-sheet
DeepBaksu Model Zoo
ImageNet pretrained darknet-19 weight for pytorch
Repository에 기본적인 test 및 travis 관리
아래 내용 알아보고, 공부하기
그리고 적용하기.
-
python 버전은 3.6으로 고정하기
-
mypy 사용하기.
http://mypy-lang.org/
https://item4.github.io/2017-09-14/Python-Typing-with-mypy/ -
python makefile 알아보기
https://github.com/kkweon/icarebot/blob/master/Makefile
https://krzysztofzuraw.com/blog/2016/makefiles-in-python-projects.html -
pytest 알아보기
https://twpower.github.io/15-install-pytest-and-basic-usage -
doctest 알아보기
https://python-guide-kr.readthedocs.io/ko/latest/writing/tests.html -
pytest --cov 옵션 알아보기
특정 폴더의 코드를 coverage 대상으로 지정 -
isort 알아보기
import 순서 정리
https://pypi.org/project/isort/ -
black 알아보기
코드 정리
https://github.com/ambv/black
https://black.readthedocs.io/en/stable/ -
pylint 알아보기
https://github.com/kkweon/icarebot/blob/master/.pylintrc -
개발환경 고정
virtualenv -
pipreqs 알아보기
requirements.txt 자동 생성
https://github.com/bndr/pipreqs
NMS 함수 만들기
- Test data로 확인
- Test data merge가 원하는 방식으로 되는지 확인
YOLOv2 forward implementation
K-means cluster measure distance IOU 바꾸기
Measure distance를 교체할 수 있도록 짜기
-
Test data
- PASCAL VOC 데이터 labeling loader 짜기
-
Test
- PASCAL VOC 데이터 clustering 후, darknetv2 cfg 비교
README 약식으로 YOLO 9000 소개로 변경
Darknet-19 pretrained weight 에서 input normalization 문제.
pretrained weight를 가져와서 테스트해보니
input을 zero-mean으로 하면 안되고
그냥 그대로(?) to_tensor로 만들어야 정답이 제대로 나옵니다.
가령 아래와 같이 짜면 값이 안 나오고
dataset = dset.ImageFolder(root="samples/",
transform=transforms.Compose([
transforms.Resize((256,256)),
transforms.ToTensor(), # Tensor로 바꾸고 (0~1로 자동으로 normalize)
transforms.Normalize(mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225]),
]))
이렇게 해야합니다..
dataset = dset.ImageFolder(root="samples/",
transform=transforms.Compose([
transforms.Resize((256,256)),
transforms.ToTensor() # Tensor로 바꾸고 (0~1로 자동으로 normalize)
]))
각 모듈 조립 후 작동 테스트
#13 Darknet19 의 마지막 linear activation의 정체
https://github.com/pjreddie/darknet/blob/master/cfg/darknet19.cfg
darknet19.cfg
를 보면 마지막 conv_layer의 activation이 linear_layer 입니다.
이때 linear_layer의 정체는 뭘까요?
우선은 Torch.nn.modules.linear 으로 구현해놨습니다.
대충은 알겠는데 bias가 들어가는지가 제일 궁금하네요..
조만간 코드를 한번 뜯어보겠습니다.
yolo9000 paper 내용
We also shrink the network to operate on 416 input images instead of 448×448. We do this because we want an odd number of locations in our feature map so there is a single center cell. Objects, especially large objects, tend to occupy the center of the image so it’s good to have a single location right at the center to predict these objects instead of four locations that are all nearby. YOLO’s convolutional layers downsample the image by a factor of 32 so by using an input image of 416 we get an output feature map of 13 × 13
여기에서
we want an odd number of locations in our feature map
이 어떤 의미 인가요?
Dataloader & Visualizer & Augmentator 모듈 YOLO v1에서 가져오기
-
Test data
- Visualizer 작동 확인
- Augmentator Visualizer 짜기
- Dataloader Visualizer 짜기
-
Test
- visualizing했을 때, 결과 잘 나오는지 확인
IOU 계산 함수 작성
-
Test data 만들기
- 임의의 Box coordinates 생성
-
Test
- IOU 정확히 나오는 지 확인
Templete 가져오기
Darknet19 pretrain weight transfer learning
- Darknet19 weight 가져오기
- Post hoc transfer learning에 대해서 데모
random Seed 관련
이번에 네이버 AI Hackathon에서 멘토님에게 받은 조언 중 하나가 실험 시 random seed 설정
이었습니다! network 랜덤 초기화 등 다양한 random value 생성 시 seed를 정해주면
성능재현의 측면에서 좋다는 조언을 받았습니다!
filepath.split("/") error in OS windows
YOLO9000/data_loader/voc_dataset.py
Line 51 in 2de61b7
windows에서는
filepath.split("/")
이 동작하지 않고
filepath.split("\") 으로 해야 잘 동작합니다.
https://stackoverflow.com/questions/22804002/how-to-split-path-with-slashes
가 대안이 될 수 있을 것 같습니다.
Reading "Clean Code" chapter 1-2
K-means Cluster 개발
-
Test data만들기
- 임의의 가우시안 분포 데이터 자동 generator
-
Test
- K-mean cluster 동작시켜서 잘 Clustering하는지 확인
LICENSE 문서 멤버 이름 변경하여 다시 명시
Loss Calc Demo script 작성
LOSS 함수 구현
- Forward output test 작성 후, 확인
- Test 확인은 손으로 풀어본 값 맞추기
travic-ci 연동
travis-ci와 연동을 위한 setting
IOU 계산
-
Test data 만들기
- 2개 이미지의 레이블 계산
-
Test data 통과하는지 확인
학습 돌리기
Python Naming Conventions 자료
Implement Darknet19 backbone with pre-trained weight
- Darknet 19 Backbone Network module 구현 (3일)
- Detection Network 구현 (3일)
완료 : 동작, shape 확인 및 명세 공지
Dataloader label tensor block 만들기
YOLO v2 output에 맞춰서 label 만들기
reference는 재원님 명세 확인
-
Test data
- 변환된 output tensor block GT visualizer 짜기
-
Test
- 변환된 output tensor block과 실제 GT 비교
Refactoring repository's folder hierarchy
PEP8 적용
이번 프로젝트에도 PEP8 적용 관련 스크립트가 추가되면 좋을 것 같습니다.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.