-
Notifications
You must be signed in to change notification settings - Fork 14
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
Conversation
{ | ||
yolo2::ImageDetections detections; | ||
detections.detections = forward(data); | ||
detections.detections = forward(data, original_width, original_height); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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?).
9e3b370
to
85b82b8
Compare
0f5da2d
to
72f2207
Compare
Repostando aqui:
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. |
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. |
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. |
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