Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to YOLO9000 #13

Closed
wants to merge 6 commits into from
Closed

Update to YOLO9000 #13

wants to merge 6 commits into from

Conversation

tiagoshibata
Copy link
Member

@tiagoshibata tiagoshibata commented Nov 23, 2017

YOLO mais nova!

WIP, não mergear ainda, mas podem revisar já. Vou colocar uns comentários de algumas poucas coisas que faltam. Antes de mergear com a master a gente precisa retreinar o modelo com a YOLO mais nova e ver se está OK nessa branch.

Aliás, mano do céu, ontem mesmo eu estava pensando como é chato adicionar as pessoas uma a uma em review e que falta a feature de adicionar um time inteiro facilmente... E olha só, hoje a feature está aqui 😄 . Estou colocando o @ThundeRatz/trekking-magellan. Acho que é uma boa oportunidade de arrumar quem deve (ou não) estar no time Trekking, deem uma olhada se todos os bixos atuais foram colocados para receberem os PR

{
yolo2::ImageDetections detections;
detections.detections = forward(data);
detections.detections = forward(data, original_width, original_height);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Na darknet, depois do forward eles passam uma média das últimas detecções para tirar valores esporádicos que possam surgir. Não era interessante pra gente porque as imagens variavam muito de frame pra frame (o FPS com a TK1 era baixo), mas talvez valha a pena testar com a TX2 dependendo do FPS nela.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
return im;
}
image resized = resize_image(im, net_.w, net_.h);
image resized = letterbox_image(im, net_->w, net_->h);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isso é importante e pode afetar a gente: o padrão da YOLO passou para letterbox ao invés de redimensionar distorcendo a imagem (ver essa thread). Não deve mudar nada no nosso código (a YOLO trata de converter de volta para o tamanho inicial), mas a gente pode brincar com as capturas da câmera e ver o que dá melhores resultados (talvez se a gente cortar as laterais da imagem para torná-la quadrada ao invés de usar letterbox?).

@erickotsuka erickotsuka requested review from a team and removed request for a team, FelipeGdM, Dupletor, d-nery, erickotsuka and gabrielok November 23, 2017 04:01
@tiagoshibata tiagoshibata self-assigned this Mar 19, 2018
@tiagoshibata tiagoshibata mentioned this pull request Apr 27, 2018
@tiagoshibata
Copy link
Member Author

Repostando aqui:

Se for atualizar e retreinar a YOLO, vale a pena ir direto pra v3 ao invés da 9000.

Então ignorem esse PR por enquanto.


Estava dando uma olhada na arquitetura da YOLO. A gente já aplica alguns desvios da arquitetura original pra torná-la mais rápida pro nosso uso (como a classe é única a gente tira saídas extras), mas dando uma olhada com calma tem mais coisas que dá pra tirar da rede. A gente poderia ajustar as anchor boxes usadas pra diminuir um pouco a rede:

Como nossas detecções tem uma razão largura/altura sempre parecida, com certeza dá pra tirar parte das anchor boxes sem perda de IOU. Além disso, se estivermos interessados apenas em objetos grandes (se cones longe não importam tanto), acho que daria pra apagar toda a parte do modelo após a primeira camada de detecção.

Se forem retreinar a YOLO tenham isso em mente.

@tiagoshibata
Copy link
Member Author

Acabei de ver que o processo é descrito no paper da YOLO: https://arxiv.org/pdf/1612.08242.pdf , na seção 2, em Dimension Clusters.

@d-nery
Copy link
Member

d-nery commented Sep 30, 2019

@tiagoshibata
Copy link
Member Author

As coisas que eu mencionei no #13 (comment) eu fiz na Automni hahaha, e funciona muito bem mesmo. Vou fechar esse PR, o da YOLOv3 é o mais novo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants