Skip to content

XY-cpp/SRM-Vision-2022

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SRM Vision Project 2022


SRM Vision Project 2022 is the first well established visual project from SRM. Using deeplearning model detection, kalman prediction etc.

Build project

Requirements

To build this project, all of these libraries should be pre-installed:

  1. G++ compiler 8.x with binary g++-8 available.
  2. CUDA 11.x, cuDNN and TensorRT 7+.
  3. OpenCV 4.5.x.
  4. Ceres Solver 2.x.
  5. FMT Library 8.x.
  6. HikRobots MVS and DaHeng imaging camera drivers.

Build with CMake

Steps to build with CMake:

  1. Open CMakeLists.txt, check paths after # Custom library path. can be reached, or correct them to fit your system environment.
  2. Make a new directory naming build and go there:
    mkdir -p build && cd build
  3. Run cmake initialization command. To build a debug binary for performance testing and debugging, use -DCMAKE_BUILD_TYPE=Debug flag, otherwise use -DCMAKE_BUILD_TYPE=Release flag. Here is an example of building a release binary:
    cmake -DCMAKE_BUILD_TYPE=Release ..
    Do not miss the last ...
  4. If no error occurs, run make -jn (replace n with your cpu core number like make -j4) to build executable file.
  5. Run ./SRM2021 --type=controller_type to run, with controller_type replaced with a valid type in this list:
    • infantry
    • Hero
    • Sentry (lower gimbal)

Benchmarks

Some math algorithms in this project support x86_64 SSE2 and ARMv8 NEON for hardware acceleration. To benchmark these algorithms, build all targets with CMake and run executables in benchmark folder. Here are all benchmark items:

  1. rsqrt includes hardware acceleration, "magic number" 0x5f375a86 and standard inverse square root algorithms.
  2. trigonometric includes hardware acceleration and standard trigonometric functions.
  3. sse2 is an x86-only basic benchmark for float performance.

All of these accelerated method are based on SSEMath ( under Zlib license) and SSE2NEON ( under MIT license) open source projects.

Note that when building benchmark targets on mismatching architectures, targets will be empty to avoid errors.

Documentation

This project uses doxygen for documentation. All docs in code follow doxygen documentation rules and can be identified by IDEs and doxygen tools.

Default PDF file

A default PDF doc file refman.pdf is placed at docs directory. Directly open it to read all docs of this project. Note that this file is automatically generated by programs, so, duplicate and useless information may be included in it.

Web pages and custom-builds

A default doxygen config file is provided in directory docs. Here are steps to build it:

  1. Run doxywizard and import this config file.
  2. Select the root directory of project in "Step 1" of doxygen GUI window.
  3. Custom your config, turn to "Run" page and click "Run doxygen" button.
  4. All source files will be generated in a minute. Now HTML files are ready to use.
  5. (Optional) Open terminal at docs/latex and run make -jn (replace n with your cpu core number) to build PDF file. You must install TeXLive (or something else to run tex) in your system first to use it.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.3%
  • CMake 1.2%
  • C 0.5%