Implementing yolov4 target detection and tracking based on nao robot

Overview

基于nao机器人实现yolov4目标检测并进行跟踪

Introduction - 介绍

本项目为yolov4算法在nao机器人上的应用。

关于YOLOv4原理请参考YOLOv4原论文
本项目主要YOLOv4框架参考Bubbliiiing博主复现的代码
原博客链接:https://blog.csdn.net/weixin_44791964/article/details/106214657
复现代码链接:https://github.com/bubbliiiing/yolov4-pytorch
nao机器人单目测距方法请参考:https://wenku.baidu.com/view/bdc7eea7482fb4daa48d4b24.html
使用本项目前请先下载复现YOLOv4代码,并用py3.6文件夹中.py文件替换原文件中的同名文件


下图为目标跟踪流程图。由于nao机器人sdk库naoqi仅支持py2.7环境,本项目需分别运行py2.7环境下的"封装跟踪.py"文件和py3.6环境下的"predict.py"文件。
该项目可以让nao机器人转头寻找水瓶目标,检测到目标后通过单目测距向目标前进,当目标距离和nao小于1.09m时,程序完成运行。 image

Requirements - 必要条件

py2.7环境

numpy==1.16.6+vanilla
opencv-python==2.4.13.7
Pillow==6.2.2
pynaoqi==2.1.4.13

tips

naoqi库为软银官方提供的nao机器人sdk
naoqi库百度云链接:链接: https://pan.baidu.com/s/1kib-Bx9BjiOXCjrIycsIAw 提取码: 5k8b


py3.6环境

pytorch和cuda版本参考Bubbliiiing博文,其他缺少环境任意版本即可。 参考环境见py3.6环境文件(仅供参考,因为包含了很多自用无关的库)

Configuration - 配置

使用本项目前请先下载复现YOLOv4代码,并用py3.6文件夹中.py文件替换原文件中的同名文件
YOLOv4环境的配置方法:
1.将训练好的只检测水瓶类的权重文件放入model_data文件夹,并替换yolo.py中的初始路径
2.把model_data文件夹下的voc_classes.txt文件中物品类别改为只有bottle
3.更多问题详见Bubbliiiing博文。

本项目跟踪的只有水瓶类,所以训练时只提取了VOC2007数据集中的水瓶类别
只有水瓶类别的VOC2007数据集百度云链接:链接: https://pan.baidu.com/s/1d11f3lm2BvPtwxXuRYZ5HQ 提取码: w2kn
训练好的只检测水瓶类的权重百度云链接: 链接: https://pan.baidu.com/s/1Qt__j8RAOZeRbY8BjXitpA 提取码: 5u2b

Usage - 用法

配置好py3.6和py2.7环境后。先运行"封装跟踪.py"文件,再运行"predict.py"文件。
检测到的图片信息可见于img文件夹

Changelog - 更新日志

License - 版权信息

本项目证书为GPL-3.0 License,详见GPL-3.0 License.md

Neural Scene Flow Fields using pytorch-lightning, with potential improvements

nsff_pl Neural Scene Flow Fields using pytorch-lightning. This repo reimplements the NSFF idea, but modifies several operations based on observation o

AI葵 178 Dec 21, 2022
A unified 3D Transformer Pipeline for visual synthesis

Overview This is the official repo for the paper: NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion. NÜWA is a unified multimodal p

Microsoft 2.6k Jan 06, 2023
An implementation of Deep Graph Infomax (DGI) in PyTorch

DGI Deep Graph Infomax (Veličković et al., ICLR 2019): https://arxiv.org/abs/1809.10341 Overview Here we provide an implementation of Deep Graph Infom

Petar Veličković 491 Jan 03, 2023
Online Pseudo Label Generation by Hierarchical Cluster Dynamics for Adaptive Person Re-identification

Online Pseudo Label Generation by Hierarchical Cluster Dynamics for Adaptive Person Re-identification

TANG, shixiang 6 Nov 25, 2022
TaCL: Improving BERT Pre-training with Token-aware Contrastive Learning

TaCL: Improving BERT Pre-training with Token-aware Contrastive Learning Authors: Yixuan Su, Fangyu Liu, Zaiqiao Meng, Lei Shu, Ehsan Shareghi, and Nig

Yixuan Su 79 Nov 04, 2022
This repository for project that can Automate Number Plate Recognition (ANPR) in Morocco Licensed Vehicles. 💻 + 🚙 + 🇲🇦 = 🤖 🕵🏻‍♂️

MoroccoAI Data Challenge (Edition #001) This Reposotory is result of our work in the comepetiton organized by MoroccoAI in the context of the first Mo

SAFOINE EL KHABICH 14 Oct 31, 2022
Explore extreme compression for pre-trained language models

Code for paper "Exploring extreme parameter compression for pre-trained language models ICLR2022"

twinkle 16 Nov 14, 2022
Reinforcement learning library in JAX.

Reinforcement learning library in JAX.

Yicheng Luo 96 Oct 30, 2022
Official implementation of ACTION-Net: Multipath Excitation for Action Recognition (CVPR'21).

ACTION-Net Official implementation of ACTION-Net: Multipath Excitation for Action Recognition (CVPR'21). Getting Started EgoGesture data folder struct

V-Sense 171 Dec 26, 2022
Library extending Jupyter notebooks to integrate with Apache TinkerPop and RDF SPARQL.

Graph Notebook: easily query and visualize graphs The graph notebook provides an easy way to interact with graph databases using Jupyter notebooks. Us

Amazon Web Services 501 Dec 28, 2022
Learning Dynamic Network Using a Reuse Gate Function in Semi-supervised Video Object Segmentation.

Training Script for Reuse-VOS This code implementation of CVPR 2021 paper : Learning Dynamic Network Using a Reuse Gate Function in Semi-supervised Vi

HYOJINPARK 22 Jan 01, 2023
iris - Open Source Photos Platform Powered by PyTorch

Open Source Photos Platform Powered by PyTorch. Submission for PyTorch Annual Hackathon 2021.

Omkar Prabhu 137 Sep 10, 2022
Collection of generative models in Tensorflow

tensorflow-generative-model-collections Tensorflow implementation of various GANs and VAEs. Related Repositories Pytorch version Pytorch version of th

3.8k Dec 30, 2022
Negative Interactions for Improved Collaborative Filtering:

Negative Interactions for Improved Collaborative Filtering: Don’t go Deeper, go Higher This notebook provides an implementation in Python 3 of the alg

Harald Steck 21 Mar 05, 2022
Image restoration with neural networks but without learning.

Warning! The optimization may not converge on some GPUs. We've personally experienced issues on Tesla V100 and P40 GPUs. When running the code, make s

Dmitry Ulyanov 7.4k Jan 01, 2023
SCNet: Learning Semantic Correspondence

SCNet Code Region matching code is contributed by Kai Han ([email protected]). Dense

Kai Han 34 Sep 06, 2022
Pytoydl: A toy deep learning framework built upon numpy.

Documents: https://pytoydl.readthedocs.io/zh/latest/ Pytoydl A toy deep learning framework built upon numpy. You can star this repository to keep trac

28 Dec 10, 2022
MultiLexNorm 2021 competition system from ÚFAL

ÚFAL at MultiLexNorm 2021: Improving Multilingual Lexical Normalization by Fine-tuning ByT5 David Samuel & Milan Straka Charles University Faculty of

ÚFAL 13 Jun 28, 2022
Classic Papers for Beginners and Impact Scope for Authors.

There have been billions of academic papers around the world. However, maybe only 0.0...01% among them are valuable or are worth reading. Since our limited life has never been forever, TopPaper provi

Qiulin Zhang 228 Dec 18, 2022
A Low Complexity Speech Enhancement Framework for Full-Band Audio (48kHz) based on Deep Filtering.

DeepFilterNet A Low Complexity Speech Enhancement Framework for Full-Band Audio (48kHz) based on Deep Filtering. libDF contains Rust code used for dat

Hendrik Schröter 292 Dec 25, 2022